c - openssl中 `aes.h`函数的实现

标签 c openssl

在openssl中,我在哪里可以找到AES_encrypt的实现,它是头文件aes.h中的一个函数。

最佳答案

... where can i find the implementation of AES_encryption

它是AES_加密,而不是AES_加密。您将在 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 等硬件支持。请参阅EVP Symmetric Encryption and Decryption在 OpenSSL wiki 上。

事实上,您可能应该使用经过身份验证的加密,因为它同时提供 secret 性和真实性。请参阅EVP Authenticated Encryption and Decryption在 OpenSSL wiki 上。

关于c - openssl中 `aes.h`函数的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36651355/

相关文章:

c++ - 如何解密没有明文大小的数据? - openssl加密c++ ubuntu环境

python - PyOpenSSL:获取 CRL 的上次更新和下一次更新字段

c++ - 如何有效地避免使用 goto 和中断嵌套循环

c - 我无法运行 c 程序

c - HMAC-SHA1 与 OpenSSL/请求到 Amazon S3 签名

c++ - 验证加载到 Char[] 或 C/C++ 内存中的 SSL 证书

c - 将 Led 重置为 LOW 形式 Visual Studio 到 arduino

C - 打印 char * 数组

无法删除(rm)c程序中的文件但可以在shell中

c++ - 是什么导致 OpenSSL 出现段错误?