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