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