CHANGES (11663B)
1 Changelog 2 3 2.7.0 4 5 #746 - Fix function signature mismatch for srtp_remove_stream 6 7 #733 - Fix srtp_unprotect_rtcp_mki when RTP auth != RTCP 8 9 2.6.0 10 11 #667 - remove use of pointers to 32bit values 12 13 #666 - Cleaning up cmake and enabled more warnings. 14 15 #665 - start using const on internal arguments 16 17 #662 - Some srtp_driver fixes 18 19 #661 - remove travis reference from README.md 20 21 #660 - meson.build: implement mbedtls support 22 23 #649 - iv length is constant so set only once 24 25 #507 - Add x86 SIMD optimizations to crypto datatypes 26 27 #643 - Add a missing typedef for stream list ctx 28 29 #641 - cmake: Rename TEST_APPS as LIBSRTP_TEST_APPS option 30 31 #640 - cmake: Support configuring as subproject 32 33 2.5.0 34 35 #636 - Make mbedtls hmac less restrictive in line with RFC and library capabilities 36 37 #612 - Allow overriding stream list implementation 38 39 #629 - update min openssl version to 1.1.0 40 41 #602 - Openssl 3 support for EVP MAC 42 43 #628 - Add android build to CI 44 45 #616 - add CIFuzz Github action to workflows 46 47 #621 - Add policy_set_aes_cm_192_xxx symbols to def file 48 49 #617 - Use current directions in stream update test 50 51 #614 - Call `set_aad` and `get_tag` in AEAD performance tests 52 53 #611 - Create alias for srtp2 as libSRTP::srtp2 54 55 #593 - Remove compatibility code for legacy OpenSSL to fix LibreSSL build 56 57 #573 - Export CMake Targets 58 59 #586 - Avoid initializing local char table when converting nibble to hex 60 61 #591 - EVP_CIPHER_CTX_cleanup() is deprecated in OpenSSL 1.1.0 62 63 #589 - Correct null cipher key sizes and be more defensive 64 65 #570 - Include directory should point to 'include' not to 'include/srtp2' 66 67 #551 - Count blocks instead of bytes in AES-ICM limit computation 68 69 #561 - Rtp decoder support ssrc and roc 70 71 #559 - Use a full-length key even with null ciphers 72 73 #558 - Fix set ROC functionality with gcm 74 75 2.4.0 76 77 Major changes 78 79 #529 - Remove EKT files, this was never completed and the draft has since changed. 80 81 #512 - Adds support for Mbedtls as a crypto backend. 82 83 #503 - Support apple silicon build. 84 85 #495 - Adds support for the Meson build system. This is an alternative to Cmake and auto tools. 86 87 Other changes 88 89 #546 - Improve OpenSSL KDF check. 90 91 #542 - Add void to function declarations for EVP_EncryptInit check. 92 93 #531 - Remove dead code. 94 95 #524 - Support running against nss >= 3.52. 96 97 #521 - Remove references to dtls from libsrtp. 98 99 #520 - Use nss based hmac when nss enabled. 100 101 #519 - Move selftest vectors form backends to common files. 102 103 #515 - Extend cmake support. 104 105 #514 - Fix gcc11 warning by defining output length. 106 107 #502 - Remove visual studio build files. 108 109 #501 - cmake: Set the VERSION property of the srtp2 library. 110 111 #500 - Fixed issue #499 with buffer overflow. 112 113 #498 - Feature/additional error checks. 114 115 #496 - Rework check for OPENSSL_cleanse(). 116 117 #492 - Avoid non-existing compiler flag -O4. 118 119 #491 - Fix two-byte RTP header extension encryption. 120 121 #478 - Modify cmake to install crypto_types.h instead of cipher_types.h 122 123 2.3.0 124 125 Major changes 126 127 A fuzzer was added to the project based on libFuzzer. This is run as part of Google oss-fuzz, the current status can be found at https://oss-fuzz-build-logs.storage.googleapis.com/index.html#libsrtp . Details available in PR #442 and issue #393. 128 129 CMake support was added as an alternative build system. This was primarily added to replace the Visual Studio project files currently checked in but has been extend to support building on all platforms. Initial PR #449 and #455 but has been support has been continuously improved. 130 131 NSS support for crypto backend was added. This is can be used as an alternative to openssl. Initial PR #413 but there has been numerous improvements. 132 133 Other changes 134 135 PR #474 - Add flag to disable pcap dependency when build test apps. 136 137 PR #472 - Add ci builds for ios and android. 138 139 PR #463 - problem on srtp_aes_icm_openssl_encrypt. 140 141 PR #471 - Allow the pcap file to be read from a physical file. 142 143 PR #457 - Fix docs crypto_policy_* -> srtp_crypto_policy_* . 144 145 PR #452 - crypto/cipher: Reset the EVP_CIPHER_CTX structure before each test. 146 147 PR #444 - Extend rtp_ecoder to support RTCP and multiplexed SSRC's. 148 149 PR #443 - rtp_decoder avoid crash when no packets found. 150 151 PR #429 - Rand for test only. 152 153 PR #421 - Fix GCM IV logging. 154 155 PR #415 - Fixes unaligned trailer access. 156 157 PR #414 - Detect and handle broken "OPENSSL_cleanse". 158 159 2.2.0 160 161 Major changes 162 163 All 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. 164 165 Other changes 166 167 PR #409 - Compatibilty with LibreSSL 168 169 PR #406 - Fix unprotect when pktlen < (2*mki_size + tag_len) 170 171 PR #405 - Prevent potential double free 172 173 PR #404 - Add back extern to global variables 174 175 PR #403 - Set gcm IV directly with EVP_CipherInit_ex 176 177 PR #401 - Fix memory access issue in srtp_get_session_keys() 178 179 PR #398 - Fix memory access fixes when invalid profiles where used 180 181 PR #391 - Return NULL when allocating memory of size zero 182 183 PR #390 - Bitvector of length zero is not valid 184 185 PR #385 - Treat warnings as errors on travis builds 186 187 PR #388 - Moved externs from crypto_kernel into its own header 188 189 PR #379 - Fixed several compiler warnings from Firefox builds 190 191 PR #377 - Removed variable init code in rdbx which never gets used 192 193 PR #381 - Added error in case the platform is not detected 194 195 PR #376 - Add coverity scan to travis builds 196 197 PR #374 - Add a big endian build on travis 198 199 PR #373 - Fixed buffer size issue in test/srtp_driver.c 200 201 PR #372 - Make rtp_decoder compile on MinGW 202 203 PR #367 - Rename configure.in to configure.ac 204 205 PR #365 - Replace calls to free() with srtp_crypto_free() 206 207 PR #364 - Add valgrind to travis and fix leaks in tests 208 209 PR #363 - Change smtp_crypto_alloc to initialize memory to zero 210 211 PR #354 - Fix potential leak if cloning of stream fails 212 213 PR #340 - Fix potential leak in srtp_add_stream() 214 215 PR #323 - Fix running test in out of source builds 216 217 Issue #316 - Remove VERSION file 218 219 2.1.0 220 221 Compatibility changes 222 223 PR #253 - Cipher type cleanup for AES 224 When libSRTP is compiled with OpenSSL and the AES 256 ICM cipher is used 225 with RTCP an incorrect initialization vector is formed. 226 This change will break backwards compatibility with older versions (1.5, 227 2.0) of libSRTP when using the AES 256 ICM cipher with OpenSSL for RTCP. 228 229 PR #259 - Sequence number incorrectly masked for AES GCM IV 230 The initialization vector for AES GCM encryption was incorrectly formed on 231 little endian machines. 232 This change will break backwards compatibility with older versions (1.5, 233 2.0) of libSRTP when using the AES GCM cipher for RTCP. 234 235 PR #287 - Fix OOB read in key generation for encrypted headers with GCM ciphers 236 Adds padding of GCM salt to the corresponding ICM length used for header 237 encryption. 238 This change will break backwards compatibility with version 2.0 of libSRTP 239 when using the header encryption extension with the AES GCM cipher. 240 241 Major changes 242 243 PR #204 - OpenSSL performance improvements 244 Changed key expansion to occur once per key instead of once per packet. 245 246 PR #209 - Restore AES-192 under BoringSSL 247 BoringSSL supports AES-192 and is now enabled in libSRTP. 248 249 PR #224 - Master Key Identifiers (MKI) Support patch 250 Adds MKI support with up to 4 keys. 251 252 PR #234 - Report SSRC instead of srtp_stream_t in srtp_event_data_t 253 srtp_stream_t is an opaque type making the event framework almost useless. 254 Now the SSRC is returned instead for use as a key in the public API. 255 256 PR #238 - Configure changes and improvements 257 CFLAGS check more shell neutral, quotation fixes, always generate and 258 install pkg-config file, improved OpenSSL discovery and linking, remove 259 -fPIC flag on Windows, fix shared library generation under Cygwin, replace 260 hardcoded CFLAGS with compiler checks, and regenerate configure after 261 configure.in changes. 262 263 PR #241 & PR #261 - Improved logging API to receive log messages from libSRTP 264 Provides a logging API and the ability to enable logging to stdout and a 265 file, as well as a switch to enable all internal debug modules. 266 267 PR #289 - Added support for set and get the roll-over-counter 268 Adds an API to set and get the ROC in an (S)RTP session. 269 270 PR #304 - Fix (S)RTP and (S)RTCP for big endian machines 271 The structures srtp_hdr_t, srtcp_hdr_t and srtcp_trailer_t were defined 272 incorrectly on big endian systems. 273 274 Other changes 275 276 PR #149 - Don't create a symlink if there is no $(SHAREDLIBVERSION) 277 278 PR #151 - Make srtp_driver compile for MIPS 279 280 PR #160 - Use PKG_PROG_PKG_CONFIG to find correct pkg-config 281 282 PR #167 - Additional RTCP and SRTCP tests 283 284 PR #169 - Identified merge conflict created by commit 6b71fb9 285 286 PR #173 - Avoid error 'possibly undefined macro: AM_PROG_AR' 287 288 PR #174 - Avoid warning 'The macro AC_TRY_LINK is obsolete.' 289 290 PR #175 - Remove 2nd -fPIC 291 292 PR #182 - Add a length check before reading packet data 293 294 PR #191 - On debug, output correct endianness of SSRC 295 296 PR #192 - Replace octet_string_is_eq with a constant-time implementation 297 298 PR #195 - Add missing __cplusplus header guards 299 300 PR #198 - Update sha1_driver.c to avoid memory leaks 301 302 PR #202 - Add an explicit cast to avoid a printf format warning on macOS 303 304 PR #205 - Update Windows build files to Visual Studio 2015 305 306 PR #207 - Fix to install-win.bat syntax, and add installation of x64 libraries 307 308 PR #208 - Make replace_cipher and replace_auth public again 309 310 PR #211 - Changes for OpenSSL 1.1.0 compatibility 311 312 PR #213 - Add cast to `unsigned int` in call to printf in test 313 314 PR #214 - Avoid empty initializer braces 315 316 PR #222 - Fix issue: No consistency when use some srtp_* functions 317 318 PR #231 - Advance version on master in preparation for 2.1 release 319 320 PR #232 - Update Travis, do not build with OpenSSL on OSX 321 322 PR #233 - crypto/replay/rdbx.c: Return type of srtp_index_guess from int to 323 int32_t 324 325 PR #236 - test/rtp_decoder.c: Removed superfluous conditional 326 327 PR #237 - test/rtp_decoder.c: spring cleaning 328 329 PR #239 - octet_string_set_to_zero() delegates to OPENSSL_cleanse() if 330 available, if not it will use srtp_cleanse() to zero memory 331 332 PR #243 - EKT is not really supported yet, remove from install 333 334 PR #244 - Add simple error checking in timing test to avoid false results 335 336 PR #245 - Add missing srtp_cipher_dealloc calls when test fails 337 338 PR #246 - test/rtp_decoder: Add missing conditional 339 340 PR #248 - New README.md that integrates intro, credits and references from 341 /doc/ and is used to generate documentation 342 343 PR #249 - Remove support for generic aesicm from configure.in 344 345 PR #250 - Update README.md, incorrect tag for link 346 347 PR #255 - Cleanup outdated comment related to MKI 348 349 PR #258 - Add AES-GCM to DTLS-SRTP Protection Profiles 350 351 PR #263 - Cleaning up and removing duplicated and outdated code 352 353 PR #265 - Introduction of unit test framework: CUTest 354 355 PR #267 - crypto/kernel/err.c: Include datatypes.h 356 357 PR #272 - Reduce literal constants 358 359 PR #273 - SRTP AEAD SRTCP initialization vector regression tests 360 361 PR #274 - Update Travis build - add ccache 362 363 PR #276 - Reference and docs updates 364 365 PR #278 - Removed crypto/test/auth_driver.c and test/lfsr.c 366 367 PR #279 - Bump copyright year 368 369 PR #283 - Add missing docs in srtp.h 370 371 PR #284 - Add strict-prototypes warning if supported 372 373 PR #291 - Use const char * for srtp_set_debug_module() 374 375 PR #294 - Fix incorrect result of rdb_increment on overflow 376 377 PR #300 - Standalone tests 378 379 PR #301 - Configure fixes 380 381 PR #302 - Fix warning regarding unused variable 382 383 PR #303 - Makefile.in: Add gnu as match for shared lib suffix