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