当我尝试在Lubuntu 16.04 x86_64上构建PJSIP 2.6时,即使我安装了OpenSSL,它也找不到AES GCM支持。
./configure | grep -e ssl -e SSL -e crypto
checking for OpenSSL installations..
checking openssl/ssl.h usability... yes
checking openssl/ssl.h presence... yes
checking for openssl/ssl.h... yes
checking for ERR_load_BIO_strings in -lcrypto... yes
checking for SSL_CTX_new in -lssl... yes
OpenSSL library found, SSL support enabled
OpenSSL AES GCM support not found, SRTP will only support AES CM cryptos
我也尝试构建一个单独版本的OpenSSL(1.1.0e),行为就是simillar。如何启用AES GCM支持?
答案 0 :(得分:1)
解决了我的问题是手动编译openssl-1.0.2k。我不知道为什么ubuntu默认(1.0.2g)不起作用,但“k”设法工作。 1.1.0版本无效,因为AES GCM将使用以下代码进行测试:
#include <openssl/evp.h>
int main () {
EVP_CIPHER_CTX ctx;
EVP_aes_128_gcm();
return 0;
}
而Ubuntu实现和OpenSSL 1.1.0&gt;期望EVP_CIPHER_CTX
个变量被声明为指针(或者可能是初始化的?)。两个版本都会破坏,配置会将其理解为不支持密码。改变测试也不会起作用,因为它是如何在内部实现的。