blob: 86a5545f110661c11c58d29a75ca630f84af12d4 [file] [log] [blame]
Cullen Jennings235513a2005-09-21 22:51:36 +00001Changelog
2
jfigus385e6752015-02-19 08:30:36 -050031.5.1
4
5 Pull request 95 - Additional header check from Chromium
6
7 Pull request 94 - Add missing copyright headers.
8
9 Pull request 90 - Fix out-of-source tree builds.
10
11 Pull request 89 - Introduce little endian RISC support
12
13 Pull request 86 - Add support for cross-compiling the shared library for Windows and OS X
14
15 Pull request 85 - Add -f <pcap filter> option to rtp_decoder
16
17 Pull request 84 - Avoid problems due to unsafe macros
18
19 Pull request 82 - Align the AES ICM nonce
20
21 Pull request 80 - Take advantage of base64 conversion in testapps
22
23 Pull request 75 - Cleanup: miscellaneous cleanup of initial OpenSSL AES support
24
25 Pull request 74 - Allow testing with pcap file or capture - Issue #45
26
27 Other trivial fixes are included as well. Please see github for details.
28
jfigusd6580192014-10-13 10:31:30 -0400291.5.0
30
31 Add support for using OpenSSL crypto using the --enable-openssl
32 option.
33
34 Add support for AES-GCM crypto suites.
35
36 Add support for pkg_config.
37
38 Add user data API to allow user to associate additional data with a
39 SRTP context.
40
41 This release also includes a variety of bug fixes, which can be
42 viewed at: https://github.com/cisco/libsrtp/commits/master
43
44 Note: The change log was not maintained between versions 1.3.20 and
45 1.4.5.
46
Cullen Jennings235513a2005-09-21 22:51:36 +0000471.3.20
48
49 Lots of changes. Thanks to Jeff Chan for catching a memory leak and
50 helping track down the endian issues with the SSRCs.
51
521.3.8
53
54 This is an interim release. Several little-endian bugs were identified
55 and fixed; this means that we can use intel/linux for development again.
56
57 Cleaned up sha1 and hmac code significantly, got rid of some excess
58 functions and properly documented the fuctions in the .h files.
59
60 Eliminated some vestigial files.
61
62 There is a SIGBUS error in the AES encrypt function on sparc
63 (observed on both solaris and openbsd) with gcc 2.95. Was unable to
64 find bad pointer anywhere, so I'm wondering if it isn't a compiler
65 problem (there's a known problem whose profile it fits). It doesn't
66 appear on any other platform, even in the cipher_driver stress
67 tests.
68
69 Planned changes
70
71 Change interface to nonces (xtd_seq_num_t) so that it uses
72 network byte ordering, and is consistent with other arguments.
73
74
751.3.6
76
77 Changed /dev/random (in configure.in and crypto/rng/rand_source.c) to
78 /dev/urandom; the latter is non-blocking on all known platforms (which
79 corrects some programs that seem to hang) and is actually present on
80 Open BSD (unlike /dev/random, which only works in the presence of
81 hardware supported random number generation).
82
83 Added machine/types.h case in include/integers.h.
84
851.3.5
86
87 Removing srtp_t::template and stream_clone().
88
89 Adding a new policy structure, which will reflect a complete SRTP
90 policy (including SRTCP).
91
92 This version is *incomplete* and will undergo more changes. It is
93 provided only as a basis for discussion.
94
951.3.4
96
97 Removed tmmh.c and tmmh.h, which implemented version one of TMMH.
98
99 Changed srtp_get_trailer_length() to act on streams rather than
100 sessions, and documented the macro SRTP_MAX_TRAILER_LEN, which should
101 usually be used rather than that function.
102
103 Removed 'salt' from cipher input.
104
105 Changed rdbx to use err.h error codes.
106
107 Changed malloc() and free() to xalloc() and xfree; these functions
108 are defined in crypto/kernel/alloc.c and declared in
109 include/alloc.h.
110
111 Added 'output' functions to cipher, in addition to 'encrypt'
112 functions. It is no longer necessary to zeroize a buffer before
113 encrypting in order to get keystream.
114
115 Changed octet_string_hex_string() so that "times two" isn't needed
116 in its input.
117
118 Added crypto_kernel_init() prior to command-line parsing, so that
119 kernel can be passed command-line arguments, such as "-d
120 debug_module". This was done to for the applications
121 test/srtp-driver, test/kernel-driver, and test/ust-driver.
122
123 Improved srtp_init_aes_128_prf - wrote key derivation function
124 (srtp_kdf_t).
125
126 Add the tag_len as an argument to the auth_compute() function, but
127 not the corresponding macro. This change allows the tag length for
128 a given auth func to be set to different values at initialization
129 time. Previously, the structure auth_t contained the
130 output_length, but that value was inaccessible from hmac_compute()
131 and other functions.
132
133 Re-named files from a-b.c to a_b.c. in order to help portability.
134
135 Re-named rijndael to aes (or aes_128 as appropriate).
136
137
1381.2.1
139
140 Changes so that 1.2.0 compiles on cygwin-win2k.
141
142 Added better error reporting system. If syslog is present on the
143 OS, then it is used.
144
145
1461.2.0 Many improvements and additions, and a fex fixes
147
148 Fixed endian issues in RTP header construction in the function
149 rtp_sendto() in srtp/rtp.c.
150
151 Implemented RIJNDAEL decryption operation, adding the functions
152 rijndael_decrypt() and rijndael_expand_decryption_key(). Also
153 re-named rijndael_expand_key() to rijndael_expand_encryption_key()
154 for consistency.
155
156 Implemented random number source using /dev/random, in the files
157 crypto/rng/rand_source.c and include/rand_source.h.
158
159 Added index check to SEAL cipher (only values less than 2^32 are
160 allowed)
161
162 Added test case for null_auth authentication function.
163
164 Added a timing test which tests the effect of CPU cache thrash on
165 cipher throughput. The test is done by the function
166 cipher_test_throughput_array(); the function
167 cipher_array_alloc_init() creates an array of ciphers for use in
168 this test. This test can be accessed by using the -a flag to
169 the application cipher-driver in the test subdirectory.
170
171 Added argument processing to ust-driver.c, and added that app to
172 the 'runtest' target in Makefile.in.
173
174 A minor auth_t API change: last argument of auth_init() eliminated.
175
176
1771.0.6 A small but important fix
178
179 Fixed srtp_init_aes_128_prf() by adding octet_string_set_to_zero()
180 after buffer allocation.
181
182 Eliminated references to no-longer-existing variables in debugging
183 code in srtp/srtp.c. This fixes the compilation failure that
184 occured when using PRINT_DEBUG in that file.
185
186 Corrected spelling of Richard Priestley's name in credits. Sorry
187 Richard!
188
189
1901.0.5 Many little fixes
191
192 Fixed octet_string_set_to_zero(), which was writing one
193 more zero octet than it should. This bug caused srtp_protect()
194 and srtp_unprotect() to overwrite the byte that followed the
195 srtp packet.
196
197 Changed sizeof(uint32_t) to srtp_get_trailer_length() in
198 srtp-driver.c. This is just defensive coding.
199
200 Added NULL check to malloc in srtp_alloc().
201
202
2031.0.4 Many minor fixes and two big ones (thanks for the bug reports!)
204
205 Removed 'ssrc' from the srtp_init_aes_128_prf() function argument
206 list. This is so that applications which do not a priori know the
207 ssrc which they will be receiving can still use libsrtp. Now the
208 SSRC value is gleaned from the rtp header and exored into the
209 counter mode offset in the srtp_protect() and srtp_unprotect()
210 functions, if that cipher is used. This change cascaed through
211 many other functions, including srtp_init_from_hex(),
212 srtp_sender_init() and srtp_receiver_init() in rtp.c, and also
213 changing the CLI to test/rtpw. In the future, another function
214 call will be added to the library that enables multiple ssrc/key
215 pairs to be installed into the same srtp session, so that libsrtp
216 works with multiple srtp senders. For now, this functionality is
217 lacking.
218
219 Removed the GDOI interface to the rtpw demo program. This will be
220 added again at a later date, after the SRTP and GDOI distributions
221 stabilize. For now, I've left in the GDOI #defines and autoconf
222 definitions so that they'll be in place when needed.
223
224 Updated tmmhv2_compute() so that it didn't assume any particular
225 alginment of the output tag.
226
227 Changed bit field variables in srtp.h to unsigned char from
228 unsigned int in order to avoid a potential endianness issue.
229
230 Fixed rdbx_estimate_index() to handle all input cases. This solves
231 the now notorious "abaft" bug in the rtpw demo app on linux/intel,
232 in which spurious replay protection failures happen after that word
233 is received.
234
235 Added ntohs(hdr->seq) to srtp_protect and srtp_unprotect, removed
236 from rijndael_icm_set_segment().
237
238 Added error checking and handling to srtp_sender_init() and
239 srtp_receiver_init().
240
241 Changed srtp_alloc() so that it does what you'd expect: allocate an
242 srtp_ctx_t structure. This hides the library internals.
243
244
2451.0.1 Many minor fixes
246
247 Added cipher_driver_buffer_test(...) to test/cipher-driver.c. This
248 function checks that the byte-buffering functions used by a cipher
249 are correct.
250
251 Fixed SunOS/Solaris build problems: added HAVE_SYS_INT_TYPES_H and
252 changed index_t to xtd_seq_num_t (see include/rdbx.h).
253
254 Fixed SEAL3.0 output byte buffering, added byte-buffering test to
255 cipher/cipher-driver.c.
256
257 Fixed roc-driver so that the non-sequential insertion test
258 automatically recovers from bad estimates. This was required to
259 prevent spurious failures.
260
261 Made rdbx_estimate_index(...) function smarter, so that initial RTP
262 sequence numbers greater than 32,768 don't cause it to estimate the
263 rollover counter of 0xffffffff.
264
265
2661.0.0 Initial release
267