[corlib] Improve CancellationTokenSource test
[mono.git] / mcs / class / Mono.Security / Mono.Security.Cryptography / ChangeLog
1 2010-07-16  Sebastien Pouliot  <sebastien@ximian.com>
2
3         * MD2Managed.cs:
4         * MD4Managed.cs:
5                 Increment ibStart in HashCore
6
7 2008-08-07  Sebastien Pouliot  <sebastien@ximian.com>
8
9         * CryptoTools.cs: Make this usable with Silverlight 2.0 (NET_2_1)
10         * SymmetricTransform.cs: Make this (more) usable with SL2 limited
11         crypto support.
12
13 2008-04-21  Sebastien Pouliot  <sebastien@ximian.com>
14
15         * CryptoConvert.cs: Fix HMAC to respect start index inside an array.
16         Patch by Kazuki Oikawa.
17
18 2008-03-13  Sebastien Pouliot  <sebastien@ximian.com>
19
20         * CryptoConvert.cs: Re-order exception handling to report the most
21         precise error to caller. Apply RSA extra check to DSA.
22         * RSAManaged.cs: Test imported parameters to ensure the public and 
23         private parts of the keypair match together.
24
25 2008-03-04  Sebastien Pouliot  <sebastien@ximian.com>
26
27         * SymmetricTransform.cs: Sync with corlib. Fix ANSIX923 padding check
28         (#366623)
29
30 2008-02-03  Sebastien Pouliot  <sebastien@ximian.com>
31
32         * RSAManaged.cs: Replace "" (found by Gendarme) with more useful text.
33
34 2008-01-10  Sebastien Pouliot  <sebastien@ximian.com>
35
36         * PKCS1.cs: Add a new method that optionally checks for badly 
37         padding, technically invalid, PKCS#1 block. This is required to
38         support timestamping verification for Authenticode (since the 
39         main timestamping service does this). Fix for #350958
40
41 2007-11-18  Sebastien Pouliot  <sebastien@ximian.com>
42
43         * RSAManaged.cs: Fix the rare case where the inverse of q modulo p 
44         can result in bigint one byte shorter than expected, which could 
45         mess up the export/import of the key.
46
47 2007-05-08  Randolph Chung  <tausq@debian.org>
48
49         * CryptoConvert.cs: Add DSA blob conversion functions.
50
51 2007-03-05  Sebastien Pouliot  <sebastien@ximian.com>
52
53         * SymmetricTransform.cs: Fix KeepLastBlock to be true for decryption 
54         with no padding or zero padding. Part of the fix for #81008.
55
56 2007-01-08  Sebastien Pouliot  <sebastien@ximian.com>
57
58         * SymmetricTransform.cs: Fix #80439 again. This time we have tests for
59         all ciphers, modes and padding.
60
61 2007-01-04  Sebastien Pouliot  <sebastien@ximian.com>
62
63         * SymmetricTransform.cs: Fix previous fix (for #80439) as we were now
64         too permissive.
65
66 2007-01-03  Sebastien Pouliot  <sebastien@ximian.com>
67
68         * SymmetricTransform.cs: Reduce inputCount if larger than the output
69         data can hold. Fix bug #80439.
70
71 2006-12-11  Sebastien Pouliot  <sebastien@ximian.com>
72
73         * PKCS8.cs: Normalize the private key X integer, not it's ASN.1
74         container, to 20 bytes.
75
76 2006-10-04  Sebastien Pouliot  <sebastien@ximian.com>
77
78         * PKCS1.cs: Remove compatibility block where all padding wasn't 
79         verified (can't find the original test case for it). Note: the 
80         existing implementation wasn't affected by CVE-2006-4339, aka RSA 
81         PKCS#1 1.5 signature forgery (but we're stronger without it).
82
83 2006-09-27  Sebastien Pouliot  <sebastien@ximian.com>
84
85         * RSAManaged.cs: Ensure that the results of Encrypt and Decrypt will
86         always be the same length as the key. If smaller then we left pad the
87         result with 0x00 (same integer, correct length for everyone). Fix bug
88         #79502 where an LDAP/SSL server didn't like the missing byte.
89
90 2006-09-05  Sebastien Pouliot  <sebastien@ximian.com>
91
92         * RSAManaged.cs: Backport NRE fix from mscorlib.dll.
93
94 2006-06-15  Sebastien Pouliot  <sebastien@ximian.com>
95
96         * CryptoTools.cs: Fix offset in block processor. This fix the HMAC
97         algorithms when large buffer where used (with multiple calls to
98         TransformBlock).
99
100 2006-02-28  Sebastien Pouliot  <sebastien@ximian.com>
101
102         * CryptoConvert.cs: Make sure we can import a keypair into our RSA 
103         instance (even if the key store isn't available). See bug #77559.
104         * PKCS8.cs: Make sure we can import a keypair into our RSA instance
105         (even if the key store isn't available). See bug #77559.
106
107 2005-11-23  Sebastien Pouliot  <sebastien@ximian.com>
108
109         * SymmetricTransform.cs: Synched with corlib version (IV behaviour for
110         NET_2_0). Virtualized some methods (like Dispose). Fix bug #76801.
111
112 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
113
114         * KeyPairPersistence.cs: Use PlatformID.Unix under NET_2_0. 
115         * PKCS8.cs: In sync with corlib;
116
117 2005-04-18  Sebastien Pouliot  <sebastien@ximian.com> 
118  
119         * Null.cs: New "null" symmetric encryption for debugging. This class 
120         isn't (and shouldn't be) built by default.
121         * SymmetricTransform.cs: Fixed a division by zero if someone changes 
122         the feedback value to 0.
123         * SHA224Managed.cs: Fixed warning about unused private constant.
124
125 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
126
127         * SymmetricTransform.cs: Fixed a padding bug affecting that can occurs
128         when no padding is used.
129
130 2005-03-07  Sebastien Pouliot  <sebastien@ximian.com>
131
132         * MD2Managed.cs: Removed memory allocation from the transform method.
133         * MD4Managed.cs: Moved memoty allocation to constructor (from init).
134         * SHA224Managed.cs: Fixed bug #73404 which gaves bad results when the
135         digested data is longer than 2^32 bits.
136
137 2005-01-11  Sebastien Pouliot  <sebastien@ximian.com>
138
139         * SymmetricTransform.cs: Added support for ANSI X9.23 padding and
140         ISO 10126 padding modes (applies to all symmetric block ciphers).
141
142 2004-12-22  Sebastien Pouliot  <sebastien@ximian.com>
143
144         * KeyPairPersistence.cs: Commented imperative asserts until it is 
145         supported by the runtime.
146
147 2004-12-06  Sebastien Pouliot  <sebastien@ximian.com>
148
149         * RSAManaged.cs: Implement key blinding for RSA decryption with, or
150         without, using CRT.
151
152 2004-11-23  Sebastien Pouliot  <sebastien@ximian.com>
153
154         * PKCS1.cs: Fix PKCS#1 v1.5 decryption when the ciphertext isn't 
155         exactly the same of the public key (which happens sometimes on Fx 1.1
156         probably because it doesn't do the last I2OSP operation to left pad
157         the resulting big integer with zeros).
158
159 2004-11-10  Sebastien Pouliot  <sebastien@ximian.com>
160
161         * RC4.cs: Fixed RC4 for compatibility with .NET 2.0. The algorithm is 
162         OK but the check for IV, unused for stream ciphers, has changed.
163
164 2004-10-28  Sebastien Pouliot  <sebastien@ximian.com>
165
166         * KeyPairPersistence.cs: Added localization for exceptions messages.
167         Also added more details (type and path) when an exception is thrown.
168
169 2004-09-29  Sebastien Pouliot  <sebastien@ximian.com>
170
171         * RSAManaged.cs: In synch with corlib. KeySize is now always a 
172         multiple of 8 bits. Fix #66929.
173
174 2004-09-17  Sebastien Pouliot  <sebastien@ximian.com>
175
176         * CryptoConvert.cs: In synch with corlib version. Fixed all level 4 
177         compilation warnings.
178         * KeyPairPersistence.cs: In synch with corlib version. Fixed all level
179         4 compilation warnings.
180         * PKCS1.cs: In synch with corlib version. Fixed all level 4 
181         compilation warnings.
182         * SHA224Managed.cs: Fixed all level 4 compilation warnings.
183
184 2004-09-17  Sebastien Pouliot  <sebastien@ximian.com>
185
186         * SHA224.cs: New. Abstract class for all SHA224 implementations.
187         * SHA224Managed.cs: New. Managed implementation of SHA224 (a SHA256
188         derivate) as specified in RFC3874 and FIPS 180-2 Change Notice.
189
190 2004-06-23  Sebastien Pouliot  <sebastien@ximian.com>
191
192         * SymmetricTransform.cs: Reduce by one the number of block when 
193         decrypting. This operation was in CryptoStream before but is only
194         required for decryption (which CryptoStream can't know). 
195         Fix bug #60573.
196
197 2004-05-27  Sebastien Pouliot  <sebastien@ximian.com>
198
199         * ARC4Managed.cs: Added missing exception handling in TransformBlock 
200         and TransformFinalBlock.
201         * SymmetricTransform.cs: Fixed possible integer overflow. Added 
202         missing exception handling in TransformBlock and TransformFinalBlock.
203
204 2004-05-10  Sebastien Pouliot  <sebastien@ximian.com>
205
206         * PKCS8.cs: Fixed negative Version check.
207         * MD2Managed.cs: Added readonly to static array constants.
208         * MD4Managed.cs: Removed unrequired memory allocation in MD4Transform.
209
210 2004-05-01  Sebastien Pouliot  <sebastien@ximian.com>
211
212         * CryptoConvert.cs: Added support for truncated, but still valid, RSA
213         private key blob. Fix #57941 (couldn't sign with nunit key).
214         * RSAManaged.cs: Normalized the size of D when not present. This 
215         allows us to output a compatible base64 representation of 1024bits 0.
216
217 2004-04-28  Sebastien Pouliot  <sebastien@ximian.com>
218
219         * SymmetricTransform.cs: Fixed bug when offset > 0 in destination 
220         buffer.
221
222 2004-04-22  Sebastien Pouliot  <sebastien@ximian.com>
223
224         * CryptoConvert.cs: FxCop-ized. Sealed class. Use Buffer.BlockCopy.
225         * CryptoTools.cs: FxCop-ized. Sealed KeyBuilder class. Delay creation
226         of RNG object. Use Buffer.BlockCopy.
227         * DiffieHellman.cs: FxCop-ized. Removed public constructor.
228         * DiffieHellmanManaged.cs: FxCop-ized. Actualized with changes from
229         BigInteger.
230         * KeyPairPersistance.cs: FxCop-ized. Updated version for management
231         of keypairs.
232         * MD2Managed.cs: Use Buffer.BlockCopy instead of Array.Copy.
233         * PKCS1.cs: FxCop-ized. Sealed class. Use Buffer.BlockCopy instead of
234         Array.Copy. Also includes endian patches from Bernie Solomon.
235         * PKCS8.cs: FxCop-ized. Sealed class. 
236         * RSAManaged.cs: FxCop-ized. Actualized with changes from BigInteger.
237         * SymmetricTransform.cs: Use Buffer.BlockCopy instead of Array.Copy.
238
239 2004-04-20  Sebastien Pouliot  <sebastien@ximian.com>
240
241         * CryptoConvert.cs: Synched with corlib version to get endian fixes 
242         from Bernie Solomon.
243
244 2004-03-23  Sebastien Pouliot  <sebastien@ximian.com>
245
246         * CryptoConvert.cs: Added exception for null and bad parameters.
247         * RSAManaged.cs: CryptographicException thrown when trying to export
248         the private key when only the public key is present (CRT aware).
249
250 2004-03-22  Sebastien Pouliot  <sebastien@ximian.com>
251
252         * CryptoConvert.cs: Added new methods to convert [From|To]Hex. Added
253         new version of FromCapiPublicKeyBlob with an integer offset.
254
255 2004-03-10  Sebastien Pouliot  <sebastien@ximian.com>
256
257         * PKCS8.cs: Added EncodeRSA, EncodeDSA and completed GetBytes() so it
258         is now possible to encode PKCS8 files (this is required to encode 
259         PKCS12 files).
260
261 2004-02-15  Sebastien Pouliot  <sebastien@ximian.com>
262
263         * ARC4Managed.cs: Removed all % 256 (modulo) because typecasting to 
264         byte already ensure the result would be correct (as suggested by 
265         Technoboy). Now use KeyBuilder to create new keys.
266
267 2004-02-13  Sebastien Pouliot  <sebastien@ximian.com>
268
269         * DHKeyGeneration.cs: New. Enumuration of possible key generation for
270         Diffie-Hellman. Contributed by Pieter Philippaerts (mentalis.org).
271         * DHParameters.cs: New. Structure to hold the different elements of a
272         Diffie-Hellman key. Contributed by Pieter Philippaerts (mentalis.org).
273         * DiffieHellman.cs: New. Astract class as base for all Diffie-Hellman
274         implementations. Contributed by Pieter Philippaerts (mentalis.org).
275         * DiffieHellmanManaged.cs: New. Managed implementation of the Diffie-
276         Hellman key agreement algorithm. Contributed by Pieter Philippaerts.
277
278 2004-02-09  Sebastien Pouliot  <sebastien@ximian.com>
279
280         * PKCS1.cs: New. Copied from corlib. Required for RSAManaged.
281         * RSAManaged.cs: New. Copied from corlib. Required for TLS - some
282         parts (MD5SHA1) cannot work with the default RSACryptoServiceProvider.
283
284 2004-02-06  Sebastien Pouliot  <sebastien@ximian.com>
285
286         * CryptoTools.cs: New. Copied from corlib to offer the sames services
287         to symmetric algorithms in Mono.Security assembly.
288         * KeyPairPersistance.cs: Provides a similar to CryptoAPI persistence 
289         mechanism for keypairs (based on CspParameters).
290         * SymmetricTransform.cs: New. Copied from corlib to offer the sames 
291         services to symmetric algorithms in Mono.Security assembly.
292
293 2004-01-12  Sebastien Pouliot  <spouliot@videotron.ca>
294
295         * CryptoConvert.cs: RSA doesn't start with a Q - at least that what
296         a strongname told me. Sorry Ron :(
297
298 2003-11-27  Sebastien Pouliot  <spouliot@videotron.ca>
299
300         * MD4.cs: New. Asbtract class for all MD4 implementations. WARNING:
301         The MD4 algorithm is BROKEN (collisions) and SHOULDN'T be used in 
302         NEW designs. However some higher level algorithms (like NTLM) requires 
303         MD4 (and may even be secure using it). YOU'RE WARNED!
304         * MD4Managed.cs: New. Managed implementation of MD4 (RFC1320).
305         * PKCS8.cs: New. Added Private-Key Information Syntax Standard as a 
306         building block for PKCS12.
307
308 2003-10-30  Sebastien Pouliot  <spouliot@videotron.ca>
309
310         * CryptoConvert.cs: Fixed strongname generation for small exponents 
311         (like 17). Part of the fixed for bug #50341.
312
313 2003-06-19  Nick Drochak <ndrochak@gol.com>
314
315         * CryptoConvert.cs: Work around for mcs? bug 45127.
316
317 2003-03-07  Sebastien Pouliot  <spouliot@videotron.ca>
318
319         * ARC4Managed.cs: New. Implementation of the Alleged RC4(tm)
320         stream cipher in managed code (required for SSL/TLS).
321         * CryptoConvert.cs: New. Helper class to help convert between
322         Windows crypto structures and .NET crypto classes (required
323         for security tools).
324         * MD2.cs: New. Abstract class for all MD2 hash implementations.
325         * MD2Managed.cs: New. Managed implementation of the MD2 hash
326         algorithm (required for old, but still valid, X.509 certificates).
327         * RC4.cs: New. Abstract class for all RC4 stream cipher 
328         implementations.