Tag: evp cipher

使用AES-128 / CBC时,EVP_DecryptFinal_ex中的间歇性解密失败

我正在使用此处的EVP库: https : //www.openssl.org/docs/manmaster/crypto/EVP_EncryptInit.html 这是我的两个加密和解密function: 我正在尝试使用AES 128 CBC加密字符串。 该字符串的格式通常为word1 word2 word3 char* encrypt(char *s, char *key) { unsigned char iv[16] = {[0 … 15 ] = 0}; unsigned char outbuf[1024] = {[0 … 1023] = 0}; int outlen1, outlen2; EVP_CIPHER_CTX ctx; EVP_CIPHER_CTX_init(&ctx); EVP_EncryptInit_ex(&ctx, EVP_aes_128_cbc(), NULL, key, iv); if (EVP_EncryptUpdate(&ctx, outbuf, &outlen1, s, strlen(s)) == 1) […]

具有AES-NI支持的EVP接口

在C / C ++中使用OpenSSL加密库时,EVP接口是否自动支持AES-NI硬件加速(假设处理器支持)? 参考这个 ,看起来命令行OpenSSL确实有支持。 我想知道是否有特定的函数调用,我必须使用它来利用这种支持。 例如,如果我使用EVP_EncryptInit_ex(ctx, type, imp, key, iv) ,那么这些参数中的任何一个都必须指定NI加速度吗? 即EVP_EncryptInit_ex(ctx, EVP_aes_256_cbc(), NULL, key, iv)诀窍? 谢谢!