2008-03-04 Sebastien Pouliot <sebastien@ximian.com>
[mono.git] / mcs / class / corlib / Mono.Security.Cryptography / ChangeLog
1 2008-03-04  Sebastien Pouliot  <sebastien@ximian.com>
2
3         * SymmetricTransform.cs: Fix ANSIX923 padding check (#366623) to be
4         just like PKCS7 (but comparing to 0).
5
6 2008-02-03  Sebastien Pouliot  <sebastien@ximian.com>
7
8         * DSAManaged.cs: Replace "" (found by Gendarme) with more useful text.
9         * RSAManaged.cs: Replace "" (found by Gendarme) with more useful text.
10
11 2008-01-10  Sebastien Pouliot  <sebastien@ximian.com>
12
13         * PKCS1.cs: Add a new method that optionally checks for badly 
14         padding, technically invalid, PKCS#1 block. This is required to
15         support timestamping verification for Authenticode (since the 
16         main timestamping service does this). Fix for #350958
17
18 2007-11-18  Sebastien Pouliot  <sebastien@ximian.com>
19
20         * RSAManaged.cs: Fix the rare case where the inverse of q modulo p 
21         can result in bigint one byte shorter than expected, which could 
22         mess up the export/import of the key.
23
24 2007-05-08  Sebastien Pouliot  <sebastien@ximian.com>
25
26         * CryptoConvert.cs: Sync with Mono.Security version - mostly the patch
27         from Randolph Chung to add DSA CAPI BLOB support.
28
29 2007-05-08  Randolph Chung  <tausq@debian.org>
30
31         * DSAManaged.cs: Do not reject the input if only Y is null.
32         Fixes #81558. [small edits from Sebastien]
33
34 2007-03-22  Sebastien Pouliot  <sebastien@ximian.com>
35
36         * SymmetricTransform.cs: Before 2.0 an IndexOutOfRangeException was 
37         thrown (for all unmanaged transforms) in case of an overflow.
38
39 2007-03-05  Sebastien Pouliot  <sebastien@ximian.com>
40
41         * SymmetricTransform.cs: Fix KeepLastBlock to be true for decryption 
42         with no padding or zero padding. Part of the fix for #81008.
43
44 2007-01-08  Sebastien Pouliot  <sebastien@ximian.com>
45
46         * SymmetricTransform.cs: Fix #80439 again. This time we have tests for
47         all ciphers, modes and padding.
48
49 2007-01-04  Sebastien Pouliot  <sebastien@ximian.com>
50
51         * SymmetricTransform.cs: Fix previous fix (for #80439) as we were now
52         too permissive.
53
54 2007-01-03  Sebastien Pouliot  <sebastien@ximian.com>
55
56         * SymmetricTransform.cs: Reduce inputCount if larger than the output
57         data can hold. Fix bug #80439.
58
59 2006-12-11  Sebastien Pouliot  <sebastien@ximian.com>
60
61         * PKCS8.cs: Synchronize source with Mono.Security.dll
62
63 2006-09-27  Sebastien Pouliot  <sebastien@ximian.com>
64
65         * RSAManaged.cs: Ensure that the results of Encrypt and Decrypt will
66         always be the same length as the key. If smaller then we left pad the
67         result with 0x00 (same integer, correct length for everyone). Fix bug
68         #79502 where an LDAP/SSL server didn't like the missing byte.
69
70 2006-09-05  Sebastien Pouliot  <sebastien@ximian.com>
71
72         * RSAManaged.cs: Fix a NRE when decrypting without a private key 
73         (#79269). We now throw a CryptographicException with an appropriate
74         text message.
75
76 2006-06-15  Sebastien Pouliot  <sebastien@ximian.com>
77
78         * CryptoTools.cs: Fix offset in block processor. This fix the HMAC
79         algorithms when large buffer where used (with multiple calls to
80         TransformBlock).
81
82 2005-11-23  Sebastien Pouliot  <sebastien@ximian.com>
83
84         * SymmetricTransform.cs: Virtualized some methods (like Dispose). Fix
85         bug #76801.
86
87 2005-11-22  Sebastien Pouliot  <sebastien@ximian.com>
88
89         * DSAManaged.cs: Don't export J if it wasn't imported (i.e. it was 
90         calculated from the other parameters).
91
92 2005-10-21  Sebastien Pouliot  <sebastien@ximian.com>
93
94         * SymmetricTransform.cs: Clone IV so it cannot be changed once the 
95         transform starts. Generate a new IV if null is specified (not really
96         useful but compatible with MS behaviour). Added a check for IV length
97         on 2.0.
98
99 2005-05-26  Ben Maurer  <bmaurer@ximian.com>
100
101         * KeyPairPersistence.cs: Lock *before* checking if things are null
102         to prevent race conditions. Also, do not lock on typeof object.
103
104 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
105
106         * KeyPairPersistence.cs: Use PlatformID.Unix under NET_2_0. 
107
108 2005-04-27  Sebastien Pouliot  <sebastien@ximian.com>
109
110         * PKCS8.cs: New. Copied from Mono.Security.dll to allow support of
111         PKCS#12 files in X509Certificate for 2.0.
112
113 2005-04-18  Sebastien Pouliot  <sebastien@ximian.com>
114
115         * SymmetricTransform.cs: Fixed a division by zero if someone changes 
116         the feedback value to 0.
117
118 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
119
120         * SymmetricTransform.cs: Fixed a padding bug affecting that can occurs
121         when no padding is used.
122
123 2005-01-11  Sebastien Pouliot  <sebastien@ximian.com>
124
125         * DSAManaged.cs: PublicOnly now reports false when a key hasn't yet 
126         been generated.
127         * RSAManaged.cs: PublicOnly now reports false when a key hasn't yet 
128         been generated.
129
130 2005-01-10  Sebastien Pouliot  <sebastien@ximian.com>
131
132         * MACAlgorithm.cs: Added support for different padding modes (required
133         in 2.0).
134         * SymmetricTransform.cs: Added support for ANSI X9.23 padding and
135         ISO 10126 padding modes (applies to all symmetric block ciphers).
136
137 2004-12-22  Sebastien Pouliot  <sebastien@ximian.com>
138
139         * KeyPairPersistence.cs: Commented imperative asserts until it is 
140         supported by the runtime.
141
142 2004-12-06  Sebastien Pouliot  <sebastien@ximian.com>
143
144         * RSAManaged.cs: Implement key blinding for RSA decryption with, or
145         without, using CRT.
146
147 2004-11-23  Sebastien Pouliot  <sebastien@ximian.com>
148
149         * PKCS1.cs: Fix PKCS#1 v1.5 decryption when the ciphertext isn't 
150         exactly the same of the public key (which happens sometimes on Fx 1.1
151         probably because it doesn't do the last I2OSP operation to left pad
152         the resulting big integer with zeros).
153
154 2004-10-28  Sebastien Pouliot  <sebastien@ximian.com>
155
156         * KeyPairPersistence.cs: Added localization for exceptions messages.
157         Also added more details (type and path) when an exception is thrown.
158
159 2004-09-29  Sebastien Pouliot  <sebastien@ximian.com>
160
161         * RSAManaged.cs: KeySize is always a multiple of 8 bits (promotion to
162         a bigger size if required) to match MS implementation (and other 
163         issues like SSL).
164
165 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
166
167         * CryptoConvert.cs: Fixed warning (l4) for unused variables.
168         * KeyPairPersistence.cs: Fixed warning (l4) for unused variable.
169         * PKCS1.cs: Added empty {} to fix warning about possible empty stmnt.
170
171 2004-07-07  Sebastien Pouliot  <sebastien@ximian.com>
172
173         * MACAlgorithm.cs: Removed the hardcoded PaddingMode.Zeros as this is 
174         now selectable in Fx 2.0.
175         * SymmetricTransform.cs: Throw CryptographicException when CipherMode
176         CTS or OFB is being used (to match MS implementation).
177
178 2004-06-23  Sebastien Pouliot  <sebastien@ximian.com>
179
180         * SymmetricTransform.cs: Reduce by one the number of block when 
181         decrypting. This operation was in CryptoStream before but is only
182         required for decryption (which CryptoStream can't know). 
183         Fix bug #60573.
184
185 2004-05-27  Sebastien Pouliot  <sebastien@ximian.com>
186
187         * SymmetricTransform.cs: Fixed possible integer overflow. Added 
188         missing exception handling in TransformBlock and TransformFinalBlock.
189
190 2004-05-01  Sebastien Pouliot  <sebastien@ximian.com>
191
192         * CryptoConvert.cs: Synched with Mono.Security.dll. Fix bug #57941 
193         (truncated key pair).
194         * RSAManaged.cs: Synched with Mono.Security.dll. Fix bug #57941 
195         (truncated key pair).
196
197 2004-04-28  Sebastien Pouliot  <sebastien@ximian.com>
198
199         * CryptoConvert.cs: In sync with Mono.Security.dll version.
200         * CryptoTools.cs: In sync with Mono.Security.dll version.
201         * DSAManaged.cs: Changed delegate to please FxCop.
202         * PKCS1.cs: In sync with Mono.Security.dll version.
203         * RSAManaged.cs: In sync with Mono.Security.dll version.
204         * SymmetricTransform.cs: Fixed a bug when offset > 0 in destination
205         buffer. Changed Array.Copy to Buffer.BlockCopy.
206
207 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
208
209         * KeyPairPersistence.cs: Completed key pair protection for both
210         Linux and Windows (protection done by runtime).
211
212 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
213
214         * PKCS1.cs: Use BitConverterLE
215
216 2004-04-06  Bernie Solomon  <bernard@ugsolutions.com>
217
218         * CryptoConvert.cs: Add private methods to always
219         handle data as little endian (GetBytesLE, ToInt32LE, ToUInt32LE).
220
221 2004-03-23  Sebastien Pouliot  <sebastien@ximian.com>
222
223         * CryptoConvert.cs: Added support for public keys preceded by an 
224         header like the one generated by "sn -e".
225
226 2004-03-23  Sebastien Pouliot  <sebastien@ximian.com>
227
228         * CryptoConvert.cs: Added exception for null and bad parameters.
229         * RSAManaged.cs: CryptographicException thrown when trying to export
230         the private key when only the public key is present (CRT aware).
231
232 2004-03-22  Sebastien Pouliot  <sebastien@ximian.com>
233
234         * CryptoConvert.cs: Added new methods to convert [From|To]Hex. Added
235         new version of FromCapiPublicKeyBlob with an integer offset.
236
237 2004-02-06  Sebastien Pouliot  <sebastien@ximian.com>
238
239         * DSAManaged.cs: Added an event after key generation (so that
240         DSACryptoServiceProvider can persist the keypair if required). Added
241         PublicOnly property (like 1.2) so we do not have to catch an exception
242         to know if a private key is present or not. Added a Random property so
243         we do not always have to create a RNG instance (not always required).
244         * RSAManaged.cs: Added an event after key generation (so that
245         DSACryptoServiceProvider can persist the keypair if required). Added
246         PublicOnly property (like 1.2) so we do not have to catch an exception
247         to know if a private key is present or not.
248         * SymmetricTransform.cs: This class was split from S.S.C.
249         SymmetricAlgorithm.cs so it could be reused in Mono.Security 
250         assembly for other symmetric algorithms transforms.
251
252 2004-02-05  Sebastien Pouliot  <sebastien@ximian.com>
253
254         * KeyPairPersistence.cs: New. Class to persist keypairs in an XML
255         format to mimic the CryptoAPI key containers.
256
257 2004-01-12  Sebastien Pouliot  <spouliot@videotron.ca>
258
259         * CryptoConvert.cs: RSA doesn't start with a Q - at least that what
260         a strongname told me. Sorry Ron :(
261
262 2003-12-15  Sebastien Pouliot  <spouliot@videotron.ca>
263
264         * MACAlgorithm.cs: Fixed difference between 1.0 and 1.1 framework. 
265         The 1.0 framework is adding an additional  padding block (empty) 
266         to MAC when MACing an exact multiple of the TripleDES block size.
267         * PKCS1.cs: Fixed a typo which prevented "lame" (without OID) 
268         signature verification.
269
270 2003-10-30  Sebastien Pouliot  <spouliot@videotron.ca>
271
272         * CryptoConvert.cs: Fixed strongname generation for small exponents 
273         (like 17). Part of the fixed for bug #50341.
274
275 2003-10-17  Sebastien Pouliot  <spouliot@videotron.ca>
276
277         * CryptoConvert.cs: Added from Mono.Security to support StrongNames.
278
279 2003-07-05  Sebastien Pouliot  <spouliot@videotron.ca>
280
281         * DSAManaged.cs: Fixed bugs that appeared with the new unit tests.
282         * RSAManaged.cs: Fixed bugs that appeared with the new unit tests.
283
284 2003-07-02  Zoltan Varga  <vargaz@freemail.hu>
285
286         * PKCS1.cs DSAManaged.cs: Changed strange characters in comments to 
287         human-readable ones, since they break XML export in monocov.
288
289 2003-06-15  Sebastien Pouliot <spouliot@motus.com>
290
291         * RSAManaged.cs: Now includes CRT (Chinese Remainder Theorem) 
292         optimization when using the private key (DecryptValue). This
293         cut more than 5 seconds of nunit on my system (out of 14 sec
294         for complete asymmetric tests). Thanks to Ben Maurer for help!
295
296 2003-06-11  Sebastien Pouliot <spouliot@motus.com>
297
298         * DSAManaged.cs: Refactored from DSACryptoServiceProvider.cs. Cannot
299         be reused outside [ms]corlib because DSA constructor is internal :-(
300
301         * PKCS1.cs: Now support any hash algorithm when encoding PKCS 1.5
302         (i.e. not limited to pre-calculated values for known hashes). Some
303         other API changes to ease the use of other hash algorithms.
304
305         * RSAManaged.cs: Refactored from RSACryptoServiceProvider.cs. This 
306         class is required for custom PKCS#1 padding in SSL (which is not 
307         possible using RSACryptoServiceProvider).
308
309 2003-05-12  Sebastien Pouliot  <spouliot@videotron.ca>
310
311         * PKCS1.cs: Corrected I2OSP to match PKCS#1 v.2.1 test vector
312         and fix the OAEP incompatibility issue.
313
314 2003-04-01  Sebastien Pouliot  <spouliot@videotron.ca>
315
316         * PKCS1.cs: Corrected fix (partially) for the lame PKCS1 v1.5
317         signatures done without specifying an OID.
318         
319 2003-03-01  Sebastien Pouliot  <spouliot@videotron.ca>
320
321         * PKCS1.cs: Fix for some (lame) PKCS1 v1.5 signatures done
322         without specifying an OID.
323
324 2003-02-08  Sebastien Pouliot  <spouliot@videotron.ca>
325
326         * CryptoTools.cs: Renamed namespace to match new location.
327         * PKCS1.cs: Renamed namespace to match new location.
328         * HMACAlgorithm.cs: New. Generic class to implement HMAC
329         using any hash algorithm (was in S.S.C.HMACSHA1.cs).
330         * MACAlgorithm.cs: New. Generic class to implement MAC
331         using any symmetric algorithm (was in S.S.C.MACTripleDES.cs).
332