Я хочу зашифровать данные, используя AES-128 и Base-64 (используя OpenSSL), а затем отправить их через локальный сокет запрашивающему клиенту.
Я использую 16-битную (128-битную) клавишу вместе с входными данными. Входные данные могут быть меньше или больше 16 байтов.
Проблема в том, что когда длина моих входных данных превышает 16 байтов, шифрование завершается неудачно, и я не могу получить свои данные при использовании открытого SSL. Обязывает ли это меня отправлять только 16 зашифрованных байтов через сокет в определенный момент времени?
Я пытался зациклить API шифрования несколько раз (по 16 байт за раз), но есть ли другой способ?
unsigned char aes_input[]="Hello Where are you How are you";
char *base64EncodeOutput2;
char* base64DecodeOutput2;
size_t test2;
/* Buffers for Encryption and Decryption */
unsigned char enc_out[sizeof(aes_input)];
unsigned char dec_out[sizeof(aes_input)];
/* AES-128 bit CBC Encryption */
AES_KEY enc_key, dec_key;
AES_set_encrypt_key(aes_key, sizeof(aes_key)*8, &enc_key);
AES_ecb_encrypt(aes_input, enc_out, &enc_key, AES_ENCRYPT);
/* Encoding over Base64 */
Base64Encode(enc_out, strlen(enc_out), &base64EncodeOutput2)