在openssl中,我在哪里可以找到aes.h
的实现,这是头文件{{1}}中的一个函数。
答案 0 :(得分:1)
...我在哪里可以找到AES_encryption的实现
其AES_encrypt
,而不是AES_encryption
。您可以在aes_core.c
找到它。
$ grep -IR AES_encrypt * | cut -f 1 -d ':' | sort | uniq | grep '\.c'
apps/speed.c
crypto/aes/aes_cbc.c
crypto/aes/aes_cfb.c
crypto/aes/aes_core.c
crypto/aes/aes_ctr.c
crypto/aes/aes_ecb.c
crypto/aes/aes_ige.c
crypto/aes/aes_ofb.c
crypto/aes/aes_wrap.c
crypto/aes/aes_x86core.c
crypto/evp/e_aes.c
crypto/modes/cts128.c
crypto/modes/gcm128.c
但是,您应该直接使用EVP_*
,而不是AES_*
。 AES_*
是纯软件实现,因此您不会喜欢AES-NI等硬件支持。请参阅OpenSSL wiki上的EVP Symmetric Encryption and Decryption。
事实上,您应该使用经过身份验证的加密,因为它提供 机密性和真实性。请参阅OpenSSL wiki上的EVP Authenticated Encryption and Decryption。