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