3

当我尝试在 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)并且行为是相似的。如何启用 AES GCM 支持?

4

1 回答 1

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> 都期望EVP_CIPHER_CTX变量被声明为指针(或者可能被初始化?)。两种构建都会中断,并且配置会将其理解为不支持密码。更改测试也不起作用,因为它是在内部实现的。

于 2017-04-25T16:50:02.843 回答