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