Hi

    This is my piece of program:

    EVP_CIPHER_CTX_init(&ctx);
    ret = EVP_CIPHER_CTX_set_padding(&ctx, 0); //0 for no padding, 1 for
padding  // ret ==1 here
    unsigned char *key = GetKeyPtr();
    ret = EVP_EncryptInit(&ctx, EVP_aes_128_cbc(), NULL, NULL);  // ret ==1
here
    ret = EVP_CIPHER_CTX_set_key_length(&ctx, 16);  // ret ==1 here
    ret = EVP_EncryptInit(&ctx, NULL, key, NULL);  // ret ==1 here
///...
    unsigned char buffer[128];
    int outl;
    int len=0;

    ret = EVP_EncryptUpdate(&ctx, buffer, &outl, (unsigned char *)in, 16);
// ret ==1 here
    len += outl;  // == 16

    ret = EVP_EncryptFinal(&ctx, buffer+len, &outl);  // ret ==1 here
    len += outl;  // == 32
///...

Should len equals 16 at last ? But , why the result is 32?  Can anyone tell
me the reason?


Regards,

Vin

Reply via email to