1Changelog 2 32.2.0-pre (This version) 4 5Major changes 6 7All code has been reformatted to be consistent. A .clang-format file and format.sh script has been added that can be use to verify and enforce consistent formatting. An automated check on code formatting is now part of travis build. 8 9Other changes 10 11PR #409 - Compatibilty with LibreSSL 12 13PR #406 - Fix unprotect when pktlen < (2*mki_size + tag_len) 14 15PR #405 - Prevent potential double free 16 17PR #404 - Add back extern to global variables 18 19PR #403 - Set gcm IV directly with EVP_CipherInit_ex 20 21PR #401 - Fix memory access issue in srtp_get_session_keys() 22 23PR #398 - Fix memory access fixes when invalid profiles where used 24 25PR #391 - Return NULL when allocating memory of size zero 26 27PR #390 - Bitvector of length zero is not valid 28 29PR #385 - Treat warnings as errors on travis builds 30 31PR #388 - Moved externs from crypto_kernel into its own header 32 33PR #379 - Fixed several compiler warnings from Firefox builds 34 35PR #377 - Removed variable init code in rdbx which never gets used 36 37PR #381 - Added error in case the platform is not detected 38 39PR #376 - Add coverity scan to travis builds 40 41PR #374 - Add a big endian build on travis 42 43PR #373 - Fixed buffer size issue in test/srtp_driver.c 44 45PR #372 - Make rtp_decoder compile on MinGW 46 47PR #367 - Rename configure.in to configure.ac 48 49PR #365 - Replace calls to free() with srtp_crypto_free() 50 51PR #364 - Add valgrind to travis and fix leaks in tests 52 53PR #363 - Change smtp_crypto_alloc to initialize memory to zero 54 55PR #354 - Fix potential leak if cloning of stream fails 56 57PR #340 - Fix potential leak in srtp_add_stream() 58 59PR #323 - Fix running test in out of source builds 60 61Issue #316 - Remove VERSION file 62 632.1.0 64 65Compatibility changes 66 67 PR #253 - Cipher type cleanup for AES 68 When libSRTP is compiled with OpenSSL and the AES 256 ICM cipher is used 69 with RTCP an incorrect initialization vector is formed. 70 This change will break backwards compatibility with older versions (1.5, 71 2.0) of libSRTP when using the AES 256 ICM cipher with OpenSSL for RTCP. 72 73 PR #259 - Sequence number incorrectly masked for AES GCM IV 74 The initialization vector for AES GCM encryption was incorrectly formed on 75 little endian machines. 76 This change will break backwards compatibility with older versions (1.5, 77 2.0) of libSRTP when using the AES GCM cipher for RTCP. 78 79 PR #287 - Fix OOB read in key generation for encrypted headers with GCM ciphers 80 Adds padding of GCM salt to the corresponding ICM length used for header 81 encryption. 82 This change will break backwards compatibility with version 2.0 of libSRTP 83 when using the header encryption extension with the AES GCM cipher. 84 85Major changes 86 87 PR #204 - OpenSSL performance improvements 88 Changed key expansion to occur once per key instead of once per packet. 89 90 PR #209 - Restore AES-192 under BoringSSL 91 BoringSSL supports AES-192 and is now enabled in libSRTP. 92 93 PR #224 - Master Key Identifiers (MKI) Support patch 94 Adds MKI support with up to 4 keys. 95 96 PR #234 - Report SSRC instead of srtp_stream_t in srtp_event_data_t 97 srtp_stream_t is an opaque type making the event framework almost useless. 98 Now the SSRC is returned instead for use as a key in the public API. 99 100 PR #238 - Configure changes and improvements 101 CFLAGS check more shell neutral, quotation fixes, always generate and 102 install pkg-config file, improved OpenSSL discovery and linking, remove 103 -fPIC flag on Windows, fix shared library generation under Cygwin, replace 104 hardcoded CFLAGS with compiler checks, and regenerate configure after 105 configure.in changes. 106 107 PR #241 & PR #261 - Improved logging API to receive log messages from libSRTP 108 Provides a logging API and the ability to enable logging to stdout and a 109 file, as well as a switch to enable all internal debug modules. 110 111 PR #289 - Added support for set and get the roll-over-counter 112 Adds an API to set and get the ROC in an (S)RTP session. 113 114 PR #304 - Fix (S)RTP and (S)RTCP for big endian machines 115 The structures srtp_hdr_t, srtcp_hdr_t and srtcp_trailer_t were defined 116 incorrectly on big endian systems. 117 118Other changes 119 120 PR #149 - Don't create a symlink if there is no $(SHAREDLIBVERSION) 121 122 PR #151 - Make srtp_driver compile for MIPS 123 124 PR #160 - Use PKG_PROG_PKG_CONFIG to find correct pkg-config 125 126 PR #167 - Additional RTCP and SRTCP tests 127 128 PR #169 - Identified merge conflict created by commit 6b71fb9 129 130 PR #173 - Avoid error 'possibly undefined macro: AM_PROG_AR' 131 132 PR #174 - Avoid warning 'The macro AC_TRY_LINK is obsolete.' 133 134 PR #175 - Remove 2nd -fPIC 135 136 PR #182 - Add a length check before reading packet data 137 138 PR #191 - On debug, output correct endianness of SSRC 139 140 PR #192 - Replace octet_string_is_eq with a constant-time implementation 141 142 PR #195 - Add missing __cplusplus header guards 143 144 PR #198 - Update sha1_driver.c to avoid memory leaks 145 146 PR #202 - Add an explicit cast to avoid a printf format warning on macOS 147 148 PR #205 - Update Windows build files to Visual Studio 2015 149 150 PR #207 - Fix to install-win.bat syntax, and add installation of x64 libraries 151 152 PR #208 - Make replace_cipher and replace_auth public again 153 154 PR #211 - Changes for OpenSSL 1.1.0 compatibility 155 156 PR #213 - Add cast to `unsigned int` in call to printf in test 157 158 PR #214 - Avoid empty initializer braces 159 160 PR #222 - Fix issue: No consistency when use some srtp_* functions 161 162 PR #231 - Advance version on master in preparation for 2.1 release 163 164 PR #232 - Update Travis, do not build with OpenSSL on OSX 165 166 PR #233 - crypto/replay/rdbx.c: Return type of srtp_index_guess from int to 167 int32_t 168 169 PR #236 - test/rtp_decoder.c: Removed superfluous conditional 170 171 PR #237 - test/rtp_decoder.c: spring cleaning 172 173 PR #239 - octet_string_set_to_zero() delegates to OPENSSL_cleanse() if 174 available, if not it will use srtp_cleanse() to zero memory 175 176 PR #243 - EKT is not really supported yet, remove from install 177 178 PR #244 - Add simple error checking in timing test to avoid false results 179 180 PR #245 - Add missing srtp_cipher_dealloc calls when test fails 181 182 PR #246 - test/rtp_decoder: Add missing conditional 183 184 PR #248 - New README.md that integrates intro, credits and references from 185 /doc/ and is used to generate documentation 186 187 PR #249 - Remove support for generic aesicm from configure.in 188 189 PR #250 - Update README.md, incorrect tag for link 190 191 PR #255 - Cleanup outdated comment related to MKI 192 193 PR #258 - Add AES-GCM to DTLS-SRTP Protection Profiles 194 195 PR #263 - Cleaning up and removing duplicated and outdated code 196 197 PR #265 - Introduction of unit test framework: CUTest 198 199 PR #267 - crypto/kernel/err.c: Include datatypes.h 200 201 PR #272 - Reduce literal constants 202 203 PR #273 - SRTP AEAD SRTCP initialization vector regression tests 204 205 PR #274 - Update Travis build - add ccache 206 207 PR #276 - Reference and docs updates 208 209 PR #278 - Removed crypto/test/auth_driver.c and test/lfsr.c 210 211 PR #279 - Bump copyright year 212 213 PR #283 - Add missing docs in srtp.h 214 215 PR #284 - Add strict-prototypes warning if supported 216 217 PR #291 - Use const char * for srtp_set_debug_module() 218 219 PR #294 - Fix incorrect result of rdb_increment on overflow 220 221 PR #300 - Standalone tests 222 223 PR #301 - Configure fixes 224 225 PR #302 - Fix warning regarding unused variable 226 227 PR #303 - Makefile.in: Add gnu as match for shared lib suffix 228