PJSIP 构建找不到 OpenSSL AES GCM 支持
PJSIP build doesn't find OpenSSL AES GCM support
当我尝试在 Lubuntu 16.04 x86_64 上构建 PJSIP 2.6 时,它没有找到 AES GCM 支持,即使我安装了 OpenSSL。
./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 支持?
解决我问题的是手动编译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
变量被声明为指针(或者可能被初始化?)。两个构建都会中断,配置会将其理解为不支持密码。更改测试也不起作用,因为这是内部实现的方式。
当我尝试在 Lubuntu 16.04 x86_64 上构建 PJSIP 2.6 时,它没有找到 AES GCM 支持,即使我安装了 OpenSSL。
./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 支持?
解决我问题的是手动编译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
变量被声明为指针(或者可能被初始化?)。两个构建都会中断,配置会将其理解为不支持密码。更改测试也不起作用,因为这是内部实现的方式。