Files
2025-04-27 19:24:27 +02:00

45 lines
1.0 KiB
C

#include <stdio.h>
#include <string.h>
#include <openssl/evp.h>
#define ENCRYPT 1
#define DECRYPT 0
int main()
{
unsigned char key[] = "0123456789ABCDEF";
unsigned char iv[] = "1111111111111111";
EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new();
EVP_CipherInit(ctx,EVP_aes_128_cbc(), key, iv, ENCRYPT);
//This disable the padding
EVP_CIPHER_CTX_set_padding(ctx, 0);
unsigned char plaintext[] = "This is the plaintext to encrypt."; //len 33
unsigned char ciphertext[48];
int update_len, final_len;
int ciphertext_len=0;
EVP_CipherUpdate(ctx,ciphertext,&update_len,plaintext,strlen(plaintext));
ciphertext_len+=update_len;
printf("update size: %d\n",ciphertext_len);
EVP_CipherFinal_ex(ctx,ciphertext+ciphertext_len,&final_len);
ciphertext_len+=final_len;
EVP_CIPHER_CTX_free(ctx);
printf("Ciphertext lenght = %d\n", ciphertext_len);
for(int i = 0; i < ciphertext_len; i++)
printf("%02x", ciphertext[i]);
printf("\n");
return 0;
}