2
0

CHANGES 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. Changelog
  2. 1.3.20
  3. Lots of changes. Thanks to Jeff Chan for catching a memory leak and
  4. helping track down the endian issues with the SSRCs.
  5. 1.3.8
  6. This is an interim release. Several little-endian bugs were identified
  7. and fixed; this means that we can use intel/linux for development again.
  8. Cleaned up sha1 and hmac code significantly, got rid of some excess
  9. functions and properly documented the fuctions in the .h files.
  10. Eliminated some vestigial files.
  11. There is a SIGBUS error in the AES encrypt function on sparc
  12. (observed on both solaris and openbsd) with gcc 2.95. Was unable to
  13. find bad pointer anywhere, so I'm wondering if it isn't a compiler
  14. problem (there's a known problem whose profile it fits). It doesn't
  15. appear on any other platform, even in the cipher_driver stress
  16. tests.
  17. Planned changes
  18. Change interface to nonces (xtd_seq_num_t) so that it uses
  19. network byte ordering, and is consistent with other arguments.
  20. 1.3.6
  21. Changed /dev/random (in configure.in and crypto/rng/rand_source.c) to
  22. /dev/urandom; the latter is non-blocking on all known platforms (which
  23. corrects some programs that seem to hang) and is actually present on
  24. Open BSD (unlike /dev/random, which only works in the presence of
  25. hardware supported random number generation).
  26. Added machine/types.h case in include/integers.h.
  27. 1.3.5
  28. Removing srtp_t::template and stream_clone().
  29. Adding a new policy structure, which will reflect a complete SRTP
  30. policy (including SRTCP).
  31. This version is *incomplete* and will undergo more changes. It is
  32. provided only as a basis for discussion.
  33. 1.3.4
  34. Removed tmmh.c and tmmh.h, which implemented version one of TMMH.
  35. Changed srtp_get_trailer_length() to act on streams rather than
  36. sessions, and documented the macro SRTP_MAX_TRAILER_LEN, which should
  37. usually be used rather than that function.
  38. Removed 'salt' from cipher input.
  39. Changed rdbx to use err.h error codes.
  40. Changed malloc() and free() to xalloc() and xfree; these functions
  41. are defined in crypto/kernel/alloc.c and declared in
  42. include/alloc.h.
  43. Added 'output' functions to cipher, in addition to 'encrypt'
  44. functions. It is no longer necessary to zeroize a buffer before
  45. encrypting in order to get keystream.
  46. Changed octet_string_hex_string() so that "times two" isn't needed
  47. in its input.
  48. Added crypto_kernel_init() prior to command-line parsing, so that
  49. kernel can be passed command-line arguments, such as "-d
  50. debug_module". This was done to for the applications
  51. test/srtp-driver, test/kernel-driver, and test/ust-driver.
  52. Improved srtp_init_aes_128_prf - wrote key derivation function
  53. (srtp_kdf_t).
  54. Add the tag_len as an argument to the auth_compute() function, but
  55. not the corresponding macro. This change allows the tag length for
  56. a given auth func to be set to different values at initialization
  57. time. Previously, the structure auth_t contained the
  58. output_length, but that value was inaccessible from hmac_compute()
  59. and other functions.
  60. Re-named files from a-b.c to a_b.c. in order to help portability.
  61. Re-named rijndael to aes (or aes_128 as appropriate).
  62. 1.2.1
  63. Changes so that 1.2.0 compiles on cygwin-win2k.
  64. Added better error reporting system. If syslog is present on the
  65. OS, then it is used.
  66. 1.2.0 Many improvements and additions, and a fex fixes
  67. Fixed endian issues in RTP header construction in the function
  68. rtp_sendto() in srtp/rtp.c.
  69. Implemented RIJNDAEL decryption operation, adding the functions
  70. rijndael_decrypt() and rijndael_expand_decryption_key(). Also
  71. re-named rijndael_expand_key() to rijndael_expand_encryption_key()
  72. for consistency.
  73. Implemented random number source using /dev/random, in the files
  74. crypto/rng/rand_source.c and include/rand_source.h.
  75. Added index check to SEAL cipher (only values less than 2^32 are
  76. allowed)
  77. Added test case for null_auth authentication function.
  78. Added a timing test which tests the effect of CPU cache thrash on
  79. cipher throughput. The test is done by the function
  80. cipher_test_throughput_array(); the function
  81. cipher_array_alloc_init() creates an array of ciphers for use in
  82. this test. This test can be accessed by using the -a flag to
  83. the application cipher-driver in the test subdirectory.
  84. Added argument processing to ust-driver.c, and added that app to
  85. the 'runtest' target in Makefile.in.
  86. A minor auth_t API change: last argument of auth_init() eliminated.
  87. 1.0.6 A small but important fix
  88. Fixed srtp_init_aes_128_prf() by adding octet_string_set_to_zero()
  89. after buffer allocation.
  90. Eliminated references to no-longer-existing variables in debugging
  91. code in srtp/srtp.c. This fixes the compilation failure that
  92. occured when using PRINT_DEBUG in that file.
  93. Corrected spelling of Richard Priestley's name in credits. Sorry
  94. Richard!
  95. 1.0.5 Many little fixes
  96. Fixed octet_string_set_to_zero(), which was writing one
  97. more zero octet than it should. This bug caused srtp_protect()
  98. and srtp_unprotect() to overwrite the byte that followed the
  99. srtp packet.
  100. Changed sizeof(uint32_t) to srtp_get_trailer_length() in
  101. srtp-driver.c. This is just defensive coding.
  102. Added NULL check to malloc in srtp_alloc().
  103. 1.0.4 Many minor fixes and two big ones (thanks for the bug reports!)
  104. Removed 'ssrc' from the srtp_init_aes_128_prf() function argument
  105. list. This is so that applications which do not a priori know the
  106. ssrc which they will be receiving can still use libsrtp. Now the
  107. SSRC value is gleaned from the rtp header and exored into the
  108. counter mode offset in the srtp_protect() and srtp_unprotect()
  109. functions, if that cipher is used. This change cascaed through
  110. many other functions, including srtp_init_from_hex(),
  111. srtp_sender_init() and srtp_receiver_init() in rtp.c, and also
  112. changing the CLI to test/rtpw. In the future, another function
  113. call will be added to the library that enables multiple ssrc/key
  114. pairs to be installed into the same srtp session, so that libsrtp
  115. works with multiple srtp senders. For now, this functionality is
  116. lacking.
  117. Removed the GDOI interface to the rtpw demo program. This will be
  118. added again at a later date, after the SRTP and GDOI distributions
  119. stabilize. For now, I've left in the GDOI #defines and autoconf
  120. definitions so that they'll be in place when needed.
  121. Updated tmmhv2_compute() so that it didn't assume any particular
  122. alginment of the output tag.
  123. Changed bit field variables in srtp.h to unsigned char from
  124. unsigned int in order to avoid a potential endianness issue.
  125. Fixed rdbx_estimate_index() to handle all input cases. This solves
  126. the now notorious "abaft" bug in the rtpw demo app on linux/intel,
  127. in which spurious replay protection failures happen after that word
  128. is received.
  129. Added ntohs(hdr->seq) to srtp_protect and srtp_unprotect, removed
  130. from rijndael_icm_set_segment().
  131. Added error checking and handling to srtp_sender_init() and
  132. srtp_receiver_init().
  133. Changed srtp_alloc() so that it does what you'd expect: allocate an
  134. srtp_ctx_t structure. This hides the library internals.
  135. 1.0.1 Many minor fixes
  136. Added cipher_driver_buffer_test(...) to test/cipher-driver.c. This
  137. function checks that the byte-buffering functions used by a cipher
  138. are correct.
  139. Fixed SunOS/Solaris build problems: added HAVE_SYS_INT_TYPES_H and
  140. changed index_t to xtd_seq_num_t (see include/rdbx.h).
  141. Fixed SEAL3.0 output byte buffering, added byte-buffering test to
  142. cipher/cipher-driver.c.
  143. Fixed roc-driver so that the non-sequential insertion test
  144. automatically recovers from bad estimates. This was required to
  145. prevent spurious failures.
  146. Made rdbx_estimate_index(...) function smarter, so that initial RTP
  147. sequence numbers greater than 32,768 don't cause it to estimate the
  148. rollover counter of 0xffffffff.
  149. 1.0.0 Initial release