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