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