CHANGES 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321
  1. Changelog
  2. 2.4.2
  3. #563 - Fix typo introduced by PR 559
  4. 2.4.1
  5. Major changes
  6. #560 - Merge PR 559, Use a full-length key even with null ciphers
  7. 2.4.0
  8. Major changes
  9. #529 - Remove EKT files, this was never completed and the draft has since changed.
  10. #512 - Adds suport for Mbedtls as a crypto backend.
  11. #503 - Support apple silicon build.
  12. #495 - Adds support for the Meson build system. This is an alternative to Cmake and auto tools.
  13. Other changes
  14. #546 - Improve OpenSSL KDF check.
  15. #542 - Add void to function declarations for EVP_EncryptInit check.
  16. #531 - Remove dead code.
  17. #524 - Support running against nss >= 3.52.
  18. #521 - Remove references to dtls from libsrtp.
  19. #520 - Use nss based hmac when nss enabled.
  20. #519 - Move selftest vectors form backends to common files.
  21. #515 - Extend cmake support.
  22. #514 - Fix gcc11 warning by defining output length.
  23. #502 - Remove visual studio build files.
  24. #501 - cmake: Set the VERSION property of the srtp2 library.
  25. #500 - Fixed issue #499 with buffer overflow.
  26. #498 - Feature/additional error checks.
  27. #496 - Rework check for OPENSSL_cleanse().
  28. #492 - Avoid non-existing compiler flag -O4.
  29. #491 - Fix two-byte RTP header extension encryption.
  30. #478 - Modify cmake to install crypto_types.h instead of cipher_types.h
  31. 2.3.0
  32. Major changes
  33. 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.
  34. 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.
  35. 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.
  36. Other changes
  37. PR #474 - Add flag to disable pcap dependency when build test apps.
  38. PR #472 - Add ci builds for ios and android.
  39. PR #463 - problem on srtp_aes_icm_openssl_encrypt.
  40. PR #471 - Allow the pcap file to be read from a physical file.
  41. PR #457 - Fix docs crypto_policy_* -> srtp_crypto_policy_* .
  42. PR #452 - crypto/cipher: Reset the EVP_CIPHER_CTX structure before each test.
  43. PR #444 - Extend rtp_ecoder to support RTCP and multiplexed SSRC's.
  44. PR #443 - rtp_decoder avoid crash when no packets found.
  45. PR #429 - Rand for test only.
  46. PR #421 - Fix GCM IV logging.
  47. PR #415 - Fixes unaligned trailer access.
  48. PR #414 - Detect and handle broken "OPENSSL_cleanse".
  49. 2.2.0
  50. Major changes
  51. 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.
  52. Other changes
  53. PR #409 - Compatibilty with LibreSSL
  54. PR #406 - Fix unprotect when pktlen < (2*mki_size + tag_len)
  55. PR #405 - Prevent potential double free
  56. PR #404 - Add back extern to global variables
  57. PR #403 - Set gcm IV directly with EVP_CipherInit_ex
  58. PR #401 - Fix memory access issue in srtp_get_session_keys()
  59. PR #398 - Fix memory access fixes when invalid profiles where used
  60. PR #391 - Return NULL when allocating memory of size zero
  61. PR #390 - Bitvector of length zero is not valid
  62. PR #385 - Treat warnings as errors on travis builds
  63. PR #388 - Moved externs from crypto_kernel into its own header
  64. PR #379 - Fixed several compiler warnings from Firefox builds
  65. PR #377 - Removed variable init code in rdbx which never gets used
  66. PR #381 - Added error in case the platform is not detected
  67. PR #376 - Add coverity scan to travis builds
  68. PR #374 - Add a big endian build on travis
  69. PR #373 - Fixed buffer size issue in test/srtp_driver.c
  70. PR #372 - Make rtp_decoder compile on MinGW
  71. PR #367 - Rename configure.in to configure.ac
  72. PR #365 - Replace calls to free() with srtp_crypto_free()
  73. PR #364 - Add valgrind to travis and fix leaks in tests
  74. PR #363 - Change smtp_crypto_alloc to initialize memory to zero
  75. PR #354 - Fix potential leak if cloning of stream fails
  76. PR #340 - Fix potential leak in srtp_add_stream()
  77. PR #323 - Fix running test in out of source builds
  78. Issue #316 - Remove VERSION file
  79. 2.1.0
  80. Compatibility changes
  81. PR #253 - Cipher type cleanup for AES
  82. When libSRTP is compiled with OpenSSL and the AES 256 ICM cipher is used
  83. with RTCP an incorrect initialization vector is formed.
  84. This change will break backwards compatibility with older versions (1.5,
  85. 2.0) of libSRTP when using the AES 256 ICM cipher with OpenSSL for RTCP.
  86. PR #259 - Sequence number incorrectly masked for AES GCM IV
  87. The initialization vector for AES GCM encryption was incorrectly formed on
  88. little endian machines.
  89. This change will break backwards compatibility with older versions (1.5,
  90. 2.0) of libSRTP when using the AES GCM cipher for RTCP.
  91. PR #287 - Fix OOB read in key generation for encrypted headers with GCM ciphers
  92. Adds padding of GCM salt to the corresponding ICM length used for header
  93. encryption.
  94. This change will break backwards compatibility with version 2.0 of libSRTP
  95. when using the header encryption extension with the AES GCM cipher.
  96. Major changes
  97. PR #204 - OpenSSL performance improvements
  98. Changed key expansion to occur once per key instead of once per packet.
  99. PR #209 - Restore AES-192 under BoringSSL
  100. BoringSSL supports AES-192 and is now enabled in libSRTP.
  101. PR #224 - Master Key Identifiers (MKI) Support patch
  102. Adds MKI support with up to 4 keys.
  103. PR #234 - Report SSRC instead of srtp_stream_t in srtp_event_data_t
  104. srtp_stream_t is an opaque type making the event framework almost useless.
  105. Now the SSRC is returned instead for use as a key in the public API.
  106. PR #238 - Configure changes and improvements
  107. CFLAGS check more shell neutral, quotation fixes, always generate and
  108. install pkg-config file, improved OpenSSL discovery and linking, remove
  109. -fPIC flag on Windows, fix shared library generation under Cygwin, replace
  110. hardcoded CFLAGS with compiler checks, and regenerate configure after
  111. configure.in changes.
  112. PR #241 & PR #261 - Improved logging API to receive log messages from libSRTP
  113. Provides a logging API and the ability to enable logging to stdout and a
  114. file, as well as a switch to enable all internal debug modules.
  115. PR #289 - Added support for set and get the roll-over-counter
  116. Adds an API to set and get the ROC in an (S)RTP session.
  117. PR #304 - Fix (S)RTP and (S)RTCP for big endian machines
  118. The structures srtp_hdr_t, srtcp_hdr_t and srtcp_trailer_t were defined
  119. incorrectly on big endian systems.
  120. Other changes
  121. PR #149 - Don't create a symlink if there is no $(SHAREDLIBVERSION)
  122. PR #151 - Make srtp_driver compile for MIPS
  123. PR #160 - Use PKG_PROG_PKG_CONFIG to find correct pkg-config
  124. PR #167 - Additional RTCP and SRTCP tests
  125. PR #169 - Identified merge conflict created by commit 6b71fb9
  126. PR #173 - Avoid error 'possibly undefined macro: AM_PROG_AR'
  127. PR #174 - Avoid warning 'The macro AC_TRY_LINK is obsolete.'
  128. PR #175 - Remove 2nd -fPIC
  129. PR #182 - Add a length check before reading packet data
  130. PR #191 - On debug, output correct endianness of SSRC
  131. PR #192 - Replace octet_string_is_eq with a constant-time implementation
  132. PR #195 - Add missing __cplusplus header guards
  133. PR #198 - Update sha1_driver.c to avoid memory leaks
  134. PR #202 - Add an explicit cast to avoid a printf format warning on macOS
  135. PR #205 - Update Windows build files to Visual Studio 2015
  136. PR #207 - Fix to install-win.bat syntax, and add installation of x64 libraries
  137. PR #208 - Make replace_cipher and replace_auth public again
  138. PR #211 - Changes for OpenSSL 1.1.0 compatibility
  139. PR #213 - Add cast to `unsigned int` in call to printf in test
  140. PR #214 - Avoid empty initializer braces
  141. PR #222 - Fix issue: No consistency when use some srtp_* functions
  142. PR #231 - Advance version on master in preparation for 2.1 release
  143. PR #232 - Update Travis, do not build with OpenSSL on OSX
  144. PR #233 - crypto/replay/rdbx.c: Return type of srtp_index_guess from int to
  145. int32_t
  146. PR #236 - test/rtp_decoder.c: Removed superfluous conditional
  147. PR #237 - test/rtp_decoder.c: spring cleaning
  148. PR #239 - octet_string_set_to_zero() delegates to OPENSSL_cleanse() if
  149. available, if not it will use srtp_cleanse() to zero memory
  150. PR #243 - EKT is not really supported yet, remove from install
  151. PR #244 - Add simple error checking in timing test to avoid false results
  152. PR #245 - Add missing srtp_cipher_dealloc calls when test fails
  153. PR #246 - test/rtp_decoder: Add missing conditional
  154. PR #248 - New README.md that integrates intro, credits and references from
  155. /doc/ and is used to generate documentation
  156. PR #249 - Remove support for generic aesicm from configure.in
  157. PR #250 - Update README.md, incorrect tag for link
  158. PR #255 - Cleanup outdated comment related to MKI
  159. PR #258 - Add AES-GCM to DTLS-SRTP Protection Profiles
  160. PR #263 - Cleaning up and removing duplicated and outdated code
  161. PR #265 - Introduction of unit test framework: CUTest
  162. PR #267 - crypto/kernel/err.c: Include datatypes.h
  163. PR #272 - Reduce literal constants
  164. PR #273 - SRTP AEAD SRTCP initialization vector regression tests
  165. PR #274 - Update Travis build - add ccache
  166. PR #276 - Reference and docs updates
  167. PR #278 - Removed crypto/test/auth_driver.c and test/lfsr.c
  168. PR #279 - Bump copyright year
  169. PR #283 - Add missing docs in srtp.h
  170. PR #284 - Add strict-prototypes warning if supported
  171. PR #291 - Use const char * for srtp_set_debug_module()
  172. PR #294 - Fix incorrect result of rdb_increment on overflow
  173. PR #300 - Standalone tests
  174. PR #301 - Configure fixes
  175. PR #302 - Fix warning regarding unused variable
  176. PR #303 - Makefile.in: Add gnu as match for shared lib suffix