#ifndef __LIB2_H__ #define __LIB2_H__ #include #include #include #include struct key_value_pair { char *key; char *value; }; char key[17]; char iv[17]; char nonce[17]; char *pkcs7_padding(char *string, int length_string, int blocksize); char *__pkcs7_padding(char *string, int length_string, int blocksize, int *padding); int aes_cbc(char *in, int length_in, char *out, unsigned char *string_key, char *init_vector, int encrypt); int valid_pkcs7_padding(const char *in, int length_in, char *unpadded, int blocksize); int aes_ecb(char *in, int length_in, char *out, unsigned char *string_key, int blocksize, int encrypt); int generate_random_hex(char *buf, int length_key_bytes); int generate_random_bytes(char *buf, int length_key_bytes); int random_number_between(int min, int max); char *encrypt_with_random_bytes(char *toencrypt, int length, int ecb); char create_dictionary_and_match(char *prefix, char *match, char *key, int blocksize_bytes); int detect_blocksize_ecb(char*,int,char*); int crack_aes_ecb(char **plaintext, int blocksize, int offset); struct key_value_pair *parse_key_value(char *string, int length_string); char *profile_for(char *email); void send_user(char *encrypted_user, int length); int challenge16_encrypt(char *input, char **encrypted, int cbc_mode); void challenge16_decrypt(char *encrypted, int length, int cbc_mode); int challenge12_and_14_oracle(char *attacker_data, int attacker_data_lengthn, char **ciphertext, int prepend_data); int aes_ecb_detect_prepended_data(); int aes_cbc_padded(char *in, int length_in, char **out, unsigned char *string_key, char *init_vector, int encrypt); #endif