Closed ibc closed 4 years ago
Hi @ibc , yes you are right it is time for a new release. We will work at releasing 2.3.0 in the coming months, there are just few small things to wrap up first.
In there is a one or two branches that could be removed but in general we would like to keep older release branch.
Thanks for the update, @pabuhler.
version 2.3.0 has now been released!
Congrats!
Just a minor things: CHANGES file still says "2.3.0-pre".
Thanks for pointing that out. I have changed it in master and updated note to ensure it is fixed up during release next time.
I just upgraded from 2.2.0 to 2.3.0 and got several errors when building my app:
CC(target) /Users/ibc/src/v3-mediasoup/worker/out/Release/obj.target/libsrtp/deps/libsrtp/srtp/crypto/cipher/aes_gcm_ossl.o
../deps/libsrtp/srtp/crypto/cipher/aes_gcm_ossl.c:126:23: error: use of undeclared identifier 'srtp_aes_gcm_128'; did you mean 'srtp_aes_icm_128'?
(*c)->type = &srtp_aes_gcm_128;
^~~~~~~~~~~~~~~~
srtp_aes_icm_128
../deps/libsrtp/srtp/crypto/include/cipher_types.h:48:33: note: 'srtp_aes_icm_128' declared here
extern const srtp_cipher_type_t srtp_aes_icm_128;
^
../deps/libsrtp/srtp/crypto/cipher/aes_gcm_ossl.c:132:23: error: use of undeclared identifier 'srtp_aes_gcm_256'; did you mean 'srtp_aes_icm_256'?
(*c)->type = &srtp_aes_gcm_256;
^~~~~~~~~~~~~~~~
srtp_aes_icm_256
../deps/libsrtp/srtp/crypto/include/cipher_types.h:49:33: note: 'srtp_aes_icm_256' declared here
extern const srtp_cipher_type_t srtp_aes_icm_256;
I use GYP to build the app so I also use a libsrtp.gyp
file I copied from libwebrtc code and then adapted to my app. I've updated it with new file changes in libsrtp 2.3.0 so no idea what is wrong. It works if I disable OpenSSL BTW. When with OpenSSL support, it's clear that when aes_gcm_ossl.c
is being compiled it cannot find srtp_aes_gcm_128
symbol.
Just in case, do I miss something? Thanks a lot.
Ok, it seems that GCM
define is needed. This seems to be new. In cipher_types
:
extern const srtp_cipher_type_t srtp_null_cipher;
extern const srtp_cipher_type_t srtp_aes_icm_128;
extern const srtp_cipher_type_t srtp_aes_icm_256;
#ifdef GCM
extern const srtp_cipher_type_t srtp_aes_icm_192;
extern const srtp_cipher_type_t srtp_aes_gcm_128;
extern const srtp_cipher_type_t srtp_aes_gcm_256;
#endif
extern const srtp_cipher_type_t srtp_null_cipher;
extern const srtp_cipher_type_t srtp_aes_icm_128;
extern const srtp_cipher_type_t srtp_aes_icm_256;
#ifdef OPENSSL
extern const srtp_cipher_type_t srtp_aes_icm_192;
extern const srtp_cipher_type_t srtp_aes_gcm_128_openssl;
extern const srtp_cipher_type_t srtp_aes_gcm_256_openssl;
#endif
So somehow now the app must define GCM
for OpenSSL support to work. Is it expected?
BTW config_in_cmake.h
does include it (it seems):
/* Define this to use AES-GCM. */
#cmakedefine GCM 1
It should be defined by the build system, it is set by either cmake or configure in the repo. It was changed I think from OPEENSSL to GCM to better reflex that GCM is supported and this is the case for both openssl & NSS back ends. That change could have been more clearly noted.
Clear, thanks.
I see many commits since 2.2.0 release. Just wondering if it would make sense to release a new version with those new additions and improvements. Note that 2.2.0 GIT tag was created in 16 May 2018, more than a year ago.
BTW there are also lot of unused/inactive branches. Does it make sense to hold all them?