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