1 2010-07-16 Sebastien Pouliot <sebastien@ximian.com>
5 Increment ibStart in HashCore
7 2008-08-07 Sebastien Pouliot <sebastien@ximian.com>
9 * CryptoTools.cs: Make this usable with Silverlight 2.0 (NET_2_1)
10 * SymmetricTransform.cs: Make this (more) usable with SL2 limited
13 2008-04-21 Sebastien Pouliot <sebastien@ximian.com>
15 * CryptoConvert.cs: Fix HMAC to respect start index inside an array.
16 Patch by Kazuki Oikawa.
18 2008-03-13 Sebastien Pouliot <sebastien@ximian.com>
20 * CryptoConvert.cs: Re-order exception handling to report the most
21 precise error to caller. Apply RSA extra check to DSA.
22 * RSAManaged.cs: Test imported parameters to ensure the public and
23 private parts of the keypair match together.
25 2008-03-04 Sebastien Pouliot <sebastien@ximian.com>
27 * SymmetricTransform.cs: Sync with corlib. Fix ANSIX923 padding check
30 2008-02-03 Sebastien Pouliot <sebastien@ximian.com>
32 * RSAManaged.cs: Replace "" (found by Gendarme) with more useful text.
34 2008-01-10 Sebastien Pouliot <sebastien@ximian.com>
36 * PKCS1.cs: Add a new method that optionally checks for badly
37 padding, technically invalid, PKCS#1 block. This is required to
38 support timestamping verification for Authenticode (since the
39 main timestamping service does this). Fix for #350958
41 2007-11-18 Sebastien Pouliot <sebastien@ximian.com>
43 * RSAManaged.cs: Fix the rare case where the inverse of q modulo p
44 can result in bigint one byte shorter than expected, which could
45 mess up the export/import of the key.
47 2007-05-08 Randolph Chung <tausq@debian.org>
49 * CryptoConvert.cs: Add DSA blob conversion functions.
51 2007-03-05 Sebastien Pouliot <sebastien@ximian.com>
53 * SymmetricTransform.cs: Fix KeepLastBlock to be true for decryption
54 with no padding or zero padding. Part of the fix for #81008.
56 2007-01-08 Sebastien Pouliot <sebastien@ximian.com>
58 * SymmetricTransform.cs: Fix #80439 again. This time we have tests for
59 all ciphers, modes and padding.
61 2007-01-04 Sebastien Pouliot <sebastien@ximian.com>
63 * SymmetricTransform.cs: Fix previous fix (for #80439) as we were now
66 2007-01-03 Sebastien Pouliot <sebastien@ximian.com>
68 * SymmetricTransform.cs: Reduce inputCount if larger than the output
69 data can hold. Fix bug #80439.
71 2006-12-11 Sebastien Pouliot <sebastien@ximian.com>
73 * PKCS8.cs: Normalize the private key X integer, not it's ASN.1
74 container, to 20 bytes.
76 2006-10-04 Sebastien Pouliot <sebastien@ximian.com>
78 * PKCS1.cs: Remove compatibility block where all padding wasn't
79 verified (can't find the original test case for it). Note: the
80 existing implementation wasn't affected by CVE-2006-4339, aka RSA
81 PKCS#1 1.5 signature forgery (but we're stronger without it).
83 2006-09-27 Sebastien Pouliot <sebastien@ximian.com>
85 * RSAManaged.cs: Ensure that the results of Encrypt and Decrypt will
86 always be the same length as the key. If smaller then we left pad the
87 result with 0x00 (same integer, correct length for everyone). Fix bug
88 #79502 where an LDAP/SSL server didn't like the missing byte.
90 2006-09-05 Sebastien Pouliot <sebastien@ximian.com>
92 * RSAManaged.cs: Backport NRE fix from mscorlib.dll.
94 2006-06-15 Sebastien Pouliot <sebastien@ximian.com>
96 * CryptoTools.cs: Fix offset in block processor. This fix the HMAC
97 algorithms when large buffer where used (with multiple calls to
100 2006-02-28 Sebastien Pouliot <sebastien@ximian.com>
102 * CryptoConvert.cs: Make sure we can import a keypair into our RSA
103 instance (even if the key store isn't available). See bug #77559.
104 * PKCS8.cs: Make sure we can import a keypair into our RSA instance
105 (even if the key store isn't available). See bug #77559.
107 2005-11-23 Sebastien Pouliot <sebastien@ximian.com>
109 * SymmetricTransform.cs: Synched with corlib version (IV behaviour for
110 NET_2_0). Virtualized some methods (like Dispose). Fix bug #76801.
112 2005-05-09 Sebastien Pouliot <sebastien@ximian.com>
114 * KeyPairPersistence.cs: Use PlatformID.Unix under NET_2_0.
115 * PKCS8.cs: In sync with corlib;
117 2005-04-18 Sebastien Pouliot <sebastien@ximian.com>
119 * Null.cs: New "null" symmetric encryption for debugging. This class
120 isn't (and shouldn't be) built by default.
121 * SymmetricTransform.cs: Fixed a division by zero if someone changes
122 the feedback value to 0.
123 * SHA224Managed.cs: Fixed warning about unused private constant.
125 2005-03-30 Sebastien Pouliot <sebastien@ximian.com>
127 * SymmetricTransform.cs: Fixed a padding bug affecting that can occurs
128 when no padding is used.
130 2005-03-07 Sebastien Pouliot <sebastien@ximian.com>
132 * MD2Managed.cs: Removed memory allocation from the transform method.
133 * MD4Managed.cs: Moved memoty allocation to constructor (from init).
134 * SHA224Managed.cs: Fixed bug #73404 which gaves bad results when the
135 digested data is longer than 2^32 bits.
137 2005-01-11 Sebastien Pouliot <sebastien@ximian.com>
139 * SymmetricTransform.cs: Added support for ANSI X9.23 padding and
140 ISO 10126 padding modes (applies to all symmetric block ciphers).
142 2004-12-22 Sebastien Pouliot <sebastien@ximian.com>
144 * KeyPairPersistence.cs: Commented imperative asserts until it is
145 supported by the runtime.
147 2004-12-06 Sebastien Pouliot <sebastien@ximian.com>
149 * RSAManaged.cs: Implement key blinding for RSA decryption with, or
152 2004-11-23 Sebastien Pouliot <sebastien@ximian.com>
154 * PKCS1.cs: Fix PKCS#1 v1.5 decryption when the ciphertext isn't
155 exactly the same of the public key (which happens sometimes on Fx 1.1
156 probably because it doesn't do the last I2OSP operation to left pad
157 the resulting big integer with zeros).
159 2004-11-10 Sebastien Pouliot <sebastien@ximian.com>
161 * RC4.cs: Fixed RC4 for compatibility with .NET 2.0. The algorithm is
162 OK but the check for IV, unused for stream ciphers, has changed.
164 2004-10-28 Sebastien Pouliot <sebastien@ximian.com>
166 * KeyPairPersistence.cs: Added localization for exceptions messages.
167 Also added more details (type and path) when an exception is thrown.
169 2004-09-29 Sebastien Pouliot <sebastien@ximian.com>
171 * RSAManaged.cs: In synch with corlib. KeySize is now always a
172 multiple of 8 bits. Fix #66929.
174 2004-09-17 Sebastien Pouliot <sebastien@ximian.com>
176 * CryptoConvert.cs: In synch with corlib version. Fixed all level 4
177 compilation warnings.
178 * KeyPairPersistence.cs: In synch with corlib version. Fixed all level
179 4 compilation warnings.
180 * PKCS1.cs: In synch with corlib version. Fixed all level 4
181 compilation warnings.
182 * SHA224Managed.cs: Fixed all level 4 compilation warnings.
184 2004-09-17 Sebastien Pouliot <sebastien@ximian.com>
186 * SHA224.cs: New. Abstract class for all SHA224 implementations.
187 * SHA224Managed.cs: New. Managed implementation of SHA224 (a SHA256
188 derivate) as specified in RFC3874 and FIPS 180-2 Change Notice.
190 2004-06-23 Sebastien Pouliot <sebastien@ximian.com>
192 * SymmetricTransform.cs: Reduce by one the number of block when
193 decrypting. This operation was in CryptoStream before but is only
194 required for decryption (which CryptoStream can't know).
197 2004-05-27 Sebastien Pouliot <sebastien@ximian.com>
199 * ARC4Managed.cs: Added missing exception handling in TransformBlock
200 and TransformFinalBlock.
201 * SymmetricTransform.cs: Fixed possible integer overflow. Added
202 missing exception handling in TransformBlock and TransformFinalBlock.
204 2004-05-10 Sebastien Pouliot <sebastien@ximian.com>
206 * PKCS8.cs: Fixed negative Version check.
207 * MD2Managed.cs: Added readonly to static array constants.
208 * MD4Managed.cs: Removed unrequired memory allocation in MD4Transform.
210 2004-05-01 Sebastien Pouliot <sebastien@ximian.com>
212 * CryptoConvert.cs: Added support for truncated, but still valid, RSA
213 private key blob. Fix #57941 (couldn't sign with nunit key).
214 * RSAManaged.cs: Normalized the size of D when not present. This
215 allows us to output a compatible base64 representation of 1024bits 0.
217 2004-04-28 Sebastien Pouliot <sebastien@ximian.com>
219 * SymmetricTransform.cs: Fixed bug when offset > 0 in destination
222 2004-04-22 Sebastien Pouliot <sebastien@ximian.com>
224 * CryptoConvert.cs: FxCop-ized. Sealed class. Use Buffer.BlockCopy.
225 * CryptoTools.cs: FxCop-ized. Sealed KeyBuilder class. Delay creation
226 of RNG object. Use Buffer.BlockCopy.
227 * DiffieHellman.cs: FxCop-ized. Removed public constructor.
228 * DiffieHellmanManaged.cs: FxCop-ized. Actualized with changes from
230 * KeyPairPersistance.cs: FxCop-ized. Updated version for management
232 * MD2Managed.cs: Use Buffer.BlockCopy instead of Array.Copy.
233 * PKCS1.cs: FxCop-ized. Sealed class. Use Buffer.BlockCopy instead of
234 Array.Copy. Also includes endian patches from Bernie Solomon.
235 * PKCS8.cs: FxCop-ized. Sealed class.
236 * RSAManaged.cs: FxCop-ized. Actualized with changes from BigInteger.
237 * SymmetricTransform.cs: Use Buffer.BlockCopy instead of Array.Copy.
239 2004-04-20 Sebastien Pouliot <sebastien@ximian.com>
241 * CryptoConvert.cs: Synched with corlib version to get endian fixes
244 2004-03-23 Sebastien Pouliot <sebastien@ximian.com>
246 * CryptoConvert.cs: Added exception for null and bad parameters.
247 * RSAManaged.cs: CryptographicException thrown when trying to export
248 the private key when only the public key is present (CRT aware).
250 2004-03-22 Sebastien Pouliot <sebastien@ximian.com>
252 * CryptoConvert.cs: Added new methods to convert [From|To]Hex. Added
253 new version of FromCapiPublicKeyBlob with an integer offset.
255 2004-03-10 Sebastien Pouliot <sebastien@ximian.com>
257 * PKCS8.cs: Added EncodeRSA, EncodeDSA and completed GetBytes() so it
258 is now possible to encode PKCS8 files (this is required to encode
261 2004-02-15 Sebastien Pouliot <sebastien@ximian.com>
263 * ARC4Managed.cs: Removed all % 256 (modulo) because typecasting to
264 byte already ensure the result would be correct (as suggested by
265 Technoboy). Now use KeyBuilder to create new keys.
267 2004-02-13 Sebastien Pouliot <sebastien@ximian.com>
269 * DHKeyGeneration.cs: New. Enumuration of possible key generation for
270 Diffie-Hellman. Contributed by Pieter Philippaerts (mentalis.org).
271 * DHParameters.cs: New. Structure to hold the different elements of a
272 Diffie-Hellman key. Contributed by Pieter Philippaerts (mentalis.org).
273 * DiffieHellman.cs: New. Astract class as base for all Diffie-Hellman
274 implementations. Contributed by Pieter Philippaerts (mentalis.org).
275 * DiffieHellmanManaged.cs: New. Managed implementation of the Diffie-
276 Hellman key agreement algorithm. Contributed by Pieter Philippaerts.
278 2004-02-09 Sebastien Pouliot <sebastien@ximian.com>
280 * PKCS1.cs: New. Copied from corlib. Required for RSAManaged.
281 * RSAManaged.cs: New. Copied from corlib. Required for TLS - some
282 parts (MD5SHA1) cannot work with the default RSACryptoServiceProvider.
284 2004-02-06 Sebastien Pouliot <sebastien@ximian.com>
286 * CryptoTools.cs: New. Copied from corlib to offer the sames services
287 to symmetric algorithms in Mono.Security assembly.
288 * KeyPairPersistance.cs: Provides a similar to CryptoAPI persistence
289 mechanism for keypairs (based on CspParameters).
290 * SymmetricTransform.cs: New. Copied from corlib to offer the sames
291 services to symmetric algorithms in Mono.Security assembly.
293 2004-01-12 Sebastien Pouliot <spouliot@videotron.ca>
295 * CryptoConvert.cs: RSA doesn't start with a Q - at least that what
296 a strongname told me. Sorry Ron :(
298 2003-11-27 Sebastien Pouliot <spouliot@videotron.ca>
300 * MD4.cs: New. Asbtract class for all MD4 implementations. WARNING:
301 The MD4 algorithm is BROKEN (collisions) and SHOULDN'T be used in
302 NEW designs. However some higher level algorithms (like NTLM) requires
303 MD4 (and may even be secure using it). YOU'RE WARNED!
304 * MD4Managed.cs: New. Managed implementation of MD4 (RFC1320).
305 * PKCS8.cs: New. Added Private-Key Information Syntax Standard as a
306 building block for PKCS12.
308 2003-10-30 Sebastien Pouliot <spouliot@videotron.ca>
310 * CryptoConvert.cs: Fixed strongname generation for small exponents
311 (like 17). Part of the fixed for bug #50341.
313 2003-06-19 Nick Drochak <ndrochak@gol.com>
315 * CryptoConvert.cs: Work around for mcs? bug 45127.
317 2003-03-07 Sebastien Pouliot <spouliot@videotron.ca>
319 * ARC4Managed.cs: New. Implementation of the Alleged RC4(tm)
320 stream cipher in managed code (required for SSL/TLS).
321 * CryptoConvert.cs: New. Helper class to help convert between
322 Windows crypto structures and .NET crypto classes (required
324 * MD2.cs: New. Abstract class for all MD2 hash implementations.
325 * MD2Managed.cs: New. Managed implementation of the MD2 hash
326 algorithm (required for old, but still valid, X.509 certificates).
327 * RC4.cs: New. Abstract class for all RC4 stream cipher