2007-01-04 Sebastien Pouliot <sebastien@ximian.com>
[mono.git] / mcs / class / Mono.Security / 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: Normalize the private key X integer, not it's ASN.1
14         container, to 20 bytes.
15
16 2006-10-04  Sebastien Pouliot  <sebastien@ximian.com>
17
18         * PKCS1.cs: Remove compatibility block where all padding wasn't 
19         verified (can't find the original test case for it). Note: the 
20         existing implementation wasn't affected by CVE-2006-4339, aka RSA 
21         PKCS#1 1.5 signature forgery (but we're stronger without it).
22
23 2006-09-27  Sebastien Pouliot  <sebastien@ximian.com>
24
25         * RSAManaged.cs: Ensure that the results of Encrypt and Decrypt will
26         always be the same length as the key. If smaller then we left pad the
27         result with 0x00 (same integer, correct length for everyone). Fix bug
28         #79502 where an LDAP/SSL server didn't like the missing byte.
29
30 2006-09-05  Sebastien Pouliot  <sebastien@ximian.com>
31
32         * RSAManaged.cs: Backport NRE fix from mscorlib.dll.
33
34 2006-06-15  Sebastien Pouliot  <sebastien@ximian.com>
35
36         * CryptoTools.cs: Fix offset in block processor. This fix the HMAC
37         algorithms when large buffer where used (with multiple calls to
38         TransformBlock).
39
40 2006-02-28  Sebastien Pouliot  <sebastien@ximian.com>
41
42         * CryptoConvert.cs: Make sure we can import a keypair into our RSA 
43         instance (even if the key store isn't available). See bug #77559.
44         * PKCS8.cs: Make sure we can import a keypair into our RSA instance
45         (even if the key store isn't available). See bug #77559.
46
47 2005-11-23  Sebastien Pouliot  <sebastien@ximian.com>
48
49         * SymmetricTransform.cs: Synched with corlib version (IV behaviour for
50         NET_2_0). Virtualized some methods (like Dispose). Fix bug #76801.
51
52 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
53
54         * KeyPairPersistence.cs: Use PlatformID.Unix under NET_2_0. 
55         * PKCS8.cs: In sync with corlib;
56
57 2005-04-18  Sebastien Pouliot  <sebastien@ximian.com> 
58  
59         * Null.cs: New "null" symmetric encryption for debugging. This class 
60         isn't (and shouldn't be) built by default.
61         * SymmetricTransform.cs: Fixed a division by zero if someone changes 
62         the feedback value to 0.
63         * SHA224Managed.cs: Fixed warning about unused private constant.
64
65 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
66
67         * SymmetricTransform.cs: Fixed a padding bug affecting that can occurs
68         when no padding is used.
69
70 2005-03-07  Sebastien Pouliot  <sebastien@ximian.com>
71
72         * MD2Managed.cs: Removed memory allocation from the transform method.
73         * MD4Managed.cs: Moved memoty allocation to constructor (from init).
74         * SHA224Managed.cs: Fixed bug #73404 which gaves bad results when the
75         digested data is longer than 2^32 bits.
76
77 2005-01-11  Sebastien Pouliot  <sebastien@ximian.com>
78
79         * SymmetricTransform.cs: Added support for ANSI X9.23 padding and
80         ISO 10126 padding modes (applies to all symmetric block ciphers).
81
82 2004-12-22  Sebastien Pouliot  <sebastien@ximian.com>
83
84         * KeyPairPersistence.cs: Commented imperative asserts until it is 
85         supported by the runtime.
86
87 2004-12-06  Sebastien Pouliot  <sebastien@ximian.com>
88
89         * RSAManaged.cs: Implement key blinding for RSA decryption with, or
90         without, using CRT.
91
92 2004-11-23  Sebastien Pouliot  <sebastien@ximian.com>
93
94         * PKCS1.cs: Fix PKCS#1 v1.5 decryption when the ciphertext isn't 
95         exactly the same of the public key (which happens sometimes on Fx 1.1
96         probably because it doesn't do the last I2OSP operation to left pad
97         the resulting big integer with zeros).
98
99 2004-11-10  Sebastien Pouliot  <sebastien@ximian.com>
100
101         * RC4.cs: Fixed RC4 for compatibility with .NET 2.0. The algorithm is 
102         OK but the check for IV, unused for stream ciphers, has changed.
103
104 2004-10-28  Sebastien Pouliot  <sebastien@ximian.com>
105
106         * KeyPairPersistence.cs: Added localization for exceptions messages.
107         Also added more details (type and path) when an exception is thrown.
108
109 2004-09-29  Sebastien Pouliot  <sebastien@ximian.com>
110
111         * RSAManaged.cs: In synch with corlib. KeySize is now always a 
112         multiple of 8 bits. Fix #66929.
113
114 2004-09-17  Sebastien Pouliot  <sebastien@ximian.com>
115
116         * CryptoConvert.cs: In synch with corlib version. Fixed all level 4 
117         compilation warnings.
118         * KeyPairPersistence.cs: In synch with corlib version. Fixed all level
119         4 compilation warnings.
120         * PKCS1.cs: In synch with corlib version. Fixed all level 4 
121         compilation warnings.
122         * SHA224Managed.cs: Fixed all level 4 compilation warnings.
123
124 2004-09-17  Sebastien Pouliot  <sebastien@ximian.com>
125
126         * SHA224.cs: New. Abstract class for all SHA224 implementations.
127         * SHA224Managed.cs: New. Managed implementation of SHA224 (a SHA256
128         derivate) as specified in RFC3874 and FIPS 180-2 Change Notice.
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         * ARC4Managed.cs: Added missing exception handling in TransformBlock 
140         and TransformFinalBlock.
141         * SymmetricTransform.cs: Fixed possible integer overflow. Added 
142         missing exception handling in TransformBlock and TransformFinalBlock.
143
144 2004-05-10  Sebastien Pouliot  <sebastien@ximian.com>
145
146         * PKCS8.cs: Fixed negative Version check.
147         * MD2Managed.cs: Added readonly to static array constants.
148         * MD4Managed.cs: Removed unrequired memory allocation in MD4Transform.
149
150 2004-05-01  Sebastien Pouliot  <sebastien@ximian.com>
151
152         * CryptoConvert.cs: Added support for truncated, but still valid, RSA
153         private key blob. Fix #57941 (couldn't sign with nunit key).
154         * RSAManaged.cs: Normalized the size of D when not present. This 
155         allows us to output a compatible base64 representation of 1024bits 0.
156
157 2004-04-28  Sebastien Pouliot  <sebastien@ximian.com>
158
159         * SymmetricTransform.cs: Fixed bug when offset > 0 in destination 
160         buffer.
161
162 2004-04-22  Sebastien Pouliot  <sebastien@ximian.com>
163
164         * CryptoConvert.cs: FxCop-ized. Sealed class. Use Buffer.BlockCopy.
165         * CryptoTools.cs: FxCop-ized. Sealed KeyBuilder class. Delay creation
166         of RNG object. Use Buffer.BlockCopy.
167         * DiffieHellman.cs: FxCop-ized. Removed public constructor.
168         * DiffieHellmanManaged.cs: FxCop-ized. Actualized with changes from
169         BigInteger.
170         * KeyPairPersistance.cs: FxCop-ized. Updated version for management
171         of keypairs.
172         * MD2Managed.cs: Use Buffer.BlockCopy instead of Array.Copy.
173         * PKCS1.cs: FxCop-ized. Sealed class. Use Buffer.BlockCopy instead of
174         Array.Copy. Also includes endian patches from Bernie Solomon.
175         * PKCS8.cs: FxCop-ized. Sealed class. 
176         * RSAManaged.cs: FxCop-ized. Actualized with changes from BigInteger.
177         * SymmetricTransform.cs: Use Buffer.BlockCopy instead of Array.Copy.
178
179 2004-04-20  Sebastien Pouliot  <sebastien@ximian.com>
180
181         * CryptoConvert.cs: Synched with corlib version to get endian fixes 
182         from Bernie Solomon.
183
184 2004-03-23  Sebastien Pouliot  <sebastien@ximian.com>
185
186         * CryptoConvert.cs: Added exception for null and bad parameters.
187         * RSAManaged.cs: CryptographicException thrown when trying to export
188         the private key when only the public key is present (CRT aware).
189
190 2004-03-22  Sebastien Pouliot  <sebastien@ximian.com>
191
192         * CryptoConvert.cs: Added new methods to convert [From|To]Hex. Added
193         new version of FromCapiPublicKeyBlob with an integer offset.
194
195 2004-03-10  Sebastien Pouliot  <sebastien@ximian.com>
196
197         * PKCS8.cs: Added EncodeRSA, EncodeDSA and completed GetBytes() so it
198         is now possible to encode PKCS8 files (this is required to encode 
199         PKCS12 files).
200
201 2004-02-15  Sebastien Pouliot  <sebastien@ximian.com>
202
203         * ARC4Managed.cs: Removed all % 256 (modulo) because typecasting to 
204         byte already ensure the result would be correct (as suggested by 
205         Technoboy). Now use KeyBuilder to create new keys.
206
207 2004-02-13  Sebastien Pouliot  <sebastien@ximian.com>
208
209         * DHKeyGeneration.cs: New. Enumuration of possible key generation for
210         Diffie-Hellman. Contributed by Pieter Philippaerts (mentalis.org).
211         * DHParameters.cs: New. Structure to hold the different elements of a
212         Diffie-Hellman key. Contributed by Pieter Philippaerts (mentalis.org).
213         * DiffieHellman.cs: New. Astract class as base for all Diffie-Hellman
214         implementations. Contributed by Pieter Philippaerts (mentalis.org).
215         * DiffieHellmanManaged.cs: New. Managed implementation of the Diffie-
216         Hellman key agreement algorithm. Contributed by Pieter Philippaerts.
217
218 2004-02-09  Sebastien Pouliot  <sebastien@ximian.com>
219
220         * PKCS1.cs: New. Copied from corlib. Required for RSAManaged.
221         * RSAManaged.cs: New. Copied from corlib. Required for TLS - some
222         parts (MD5SHA1) cannot work with the default RSACryptoServiceProvider.
223
224 2004-02-06  Sebastien Pouliot  <sebastien@ximian.com>
225
226         * CryptoTools.cs: New. Copied from corlib to offer the sames services
227         to symmetric algorithms in Mono.Security assembly.
228         * KeyPairPersistance.cs: Provides a similar to CryptoAPI persistence 
229         mechanism for keypairs (based on CspParameters).
230         * SymmetricTransform.cs: New. Copied from corlib to offer the sames 
231         services to symmetric algorithms in Mono.Security assembly.
232
233 2004-01-12  Sebastien Pouliot  <spouliot@videotron.ca>
234
235         * CryptoConvert.cs: RSA doesn't start with a Q - at least that what
236         a strongname told me. Sorry Ron :(
237
238 2003-11-27  Sebastien Pouliot  <spouliot@videotron.ca>
239
240         * MD4.cs: New. Asbtract class for all MD4 implementations. WARNING:
241         The MD4 algorithm is BROKEN (collisions) and SHOULDN'T be used in 
242         NEW designs. However some higher level algorithms (like NTLM) requires 
243         MD4 (and may even be secure using it). YOU'RE WARNED!
244         * MD4Managed.cs: New. Managed implementation of MD4 (RFC1320).
245         * PKCS8.cs: New. Added Private-Key Information Syntax Standard as a 
246         building block for PKCS12.
247
248 2003-10-30  Sebastien Pouliot  <spouliot@videotron.ca>
249
250         * CryptoConvert.cs: Fixed strongname generation for small exponents 
251         (like 17). Part of the fixed for bug #50341.
252
253 2003-06-19  Nick Drochak <ndrochak@gol.com>
254
255         * CryptoConvert.cs: Work around for mcs? bug 45127.
256
257 2003-03-07  Sebastien Pouliot  <spouliot@videotron.ca>
258
259         * ARC4Managed.cs: New. Implementation of the Alleged RC4(tm)
260         stream cipher in managed code (required for SSL/TLS).
261         * CryptoConvert.cs: New. Helper class to help convert between
262         Windows crypto structures and .NET crypto classes (required
263         for security tools).
264         * MD2.cs: New. Abstract class for all MD2 hash implementations.
265         * MD2Managed.cs: New. Managed implementation of the MD2 hash
266         algorithm (required for old, but still valid, X.509 certificates).
267         * RC4.cs: New. Abstract class for all RC4 stream cipher 
268         implementations.