openssl 版本更新了, 导致 librtmp 库不能使用, 于是查查资料.
根据上面的讨论, 反正改动挺大的.
我看了下,这次 openssl 虽然没有 使用 c++ 进行改写, 但是内容规范又向c++靠近了, 对一些私有变量进行了封装, 大致就是在公开的 api 头文件中不将结构体细节公布出来,所以不能直接调用结构体内的成员.
必须得用 其提供得 api 进行修改 .
我修改得代码主要是 dh.h 中得部分.
old | new |
---|---|
dh->pub_key | DH_get0_pub_key(dh) |
dh->priv_key | DH_get0_priv_key(dh) |
dh->p | DH_get0_p(dh) |
dh->g | DH_get0_g(dh) |
dh->q | DH_get0_q(dh) |
HMAC_CTX ctx | HMAC_CTX *ctx |
成员变量也不能直接赋值:
DH_set0_pqg(dh, mt, NULL, NULL); // 通过api设置P值
DH_set_length(dh, nKeyBits); // 设置长度
具体修改,大家可以参考我的代码: gitee - https://gitee.com/hocker/rtmpdump