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