2010-04-06 Jb Evain <jbevain@novell.com>
[mcs.git] / class / System / System.Security.Cryptography.X509Certificates / ChangeLog
blobf84b86149104f17fc17cd45875aeffcfb1c0b61b
1 2010-03-16  Jb Evain  <jbevain@novell.com>
3         * X509Chain.cs: use MOONLIGHT symbol to disambiguate MonoTouch
4         and Moonlight code.
6 2010-03-11 Gonzalo Paniagua Javier <gonzalo@novell.com>
8         * OSX509Certificates.cs: moved here from Mono.Security.
10 2009-07-10 Gonzalo Paniagua Javier <gonzalo@novell.com>
12         * X509Chain.cs: revert my last change here since it caused 2 tests to
13         fail.
15 2009-07-02 Gonzalo Paniagua Javier <gonzalo@novell.com>
17         * X509Certificate2.cs:
18         * X509Chain.cs: changes to make everything compile with latest changes
19         and fixed typo in IsChainComplete().
21 2008-06-26  Sebastien Pouliot  <sebastien@ximian.com>
23         * X509Certificate2.cs: Allow password-less ctor to (try to) open 
24         PKCS#12 files (with an empty password).
25         [Fix bug #403610]
27 2008-06-03  Sebastien Pouliot  <sebastien@ximian.com>
29         * X509Certificate2.cs: Allow PrivateKey property to be set to null.
30         [Fix bug #396620]
32 2008-05-18  Sebastien Pouliot  <sebastien@ximian.com>
34         * X509Chain.cs: Use String.IsNullOrEmpty inside 2.0 code.
35         [Found using Gendarme]
37 2008-04-09  Gert Driesen  <drieseng@users.sourceforge.net>
39         * X500DistinguishedName.cs: Fixed line endings.
40         * X509Chain.cs: Fixed line endings.
42 2008-01-13  Gert Driesen  <drieseng@users.sourceforge.net>
44         * X509Certificate2.cs: NotAfter and NotBefore must return local time.
46 2007-05-09  Sebastien Pouliot  <sebastien@ximian.com>
48         * X509Certificate2.cs: Leave a small stub (PrivateKey property) if
49         SECURITY_DEP isn't defined. This will let Mono.Security.dll build
50         correctly under 2.0 while enabling the use of X509Certificate2 to add
51         support for X.509 client certificates in SSL/TLS.
53 2006-12-07  Sebastien Pouliot  <sebastien@ximian.com>
55         * X500DistinguishedName.cs: Add an internal method to compare 
56         (canonized) DN so the class can be used in X509Chain.
57         * X509Certificate2.cs: Expose the internal certificate (from Mono.
58         Security.dll) as X509Certificate2 isn't complete enough to implement
59         chaining.
60         * X509Chain.cs: A (working) *subset( of RFC3280 path building and 
61         validation. 
62         * X509ChainElementCollection.cs: Add help method Contains and change
63         Add not to require a flag parameter.
64         * X509ChainElement.cs: Keeps flags compressed (as flags!) and add
65         a method to uncompress them when validation is complete.
66         * X509Store.cs: Expose the internal store (from Mono.Security.dll) as
67         internal. Map Trust and Root as the same store (for compatibility).
69 2006-11-24  Sebastien Pouliot  <sebastien@ximian.com>
71         * X509Certificate2.cs: Modified Verify to use CryptoConfig to create
72         the X509Chain used to verify the certificate. This makes it possible
73         to change the default chaining (certificate path creation and 
74         validation) algorithm.
75         * X509Chain.cs: Started implementation based on the options and error 
76         codes defined. Work in progress (incomplete and needs a lot more test
77         cases).
78         * X509ChainElementCollection.cs: Added internal methods to Add and
79         Clear the collection.
80         * X509ChainElement.cs: Implemented, MonoTODO removed.
81         * X509ChainPolicy.cs: Add missing checks on enum-based properties. 
82         Renamed fields to match guidelines.
83         * X509ChainStatus.cs: Provide a default StatusInformation value based 
84         on the Status.
86 2006-11-22  Sebastien Pouliot  <sebastien@ximian.com>
88         * X509Certificate2Collection.cs: Remove comment that proved to be 
89         false (unit tests prove otherwise).
90         * X509Store.cs: Integrate the new 2.0 stores with the existing stores
91         that Mono used since 1.0.
93 2006-11-17  Sebastien Pouliot  <sebastien@ximian.com>
95         * X509Certificate2Collection.cs: Implement Export (to DER encoded 
96         format), Find (for most X509FindType), Import (for single 
97         certificates), RemoveRange (but it's not transactional).
98         * X509Certificate2.cs: Fix Reset method to reset every field.
99         * X509ExtensionCollection.cs: Implement missing CopyTo. Fix exception
100         handling to match new unit tests.
101         * X509ExtensionEnumerator.cs: Fix recursion.
102         * X509SubjectKeyIdentifierExtension.cs: Add support for ctors
103         accepting a PublicKey instance.
105 2006-11-13  Sebastien Pouliot  <sebastien@ximian.com>
107         * X509Certificate2.cs: Throw a CryptographicException for (most) 
108         properties if the certificate is "empty". Implement GetNameInfo for
109         X509NameType.SimpleName, EmailName and DnsName. Add detection for 
110         X509ContentType.Pkcs7 in GetCertContentType.
112 2006-11-08  Sebastien Pouliot  <sebastien@ximian.com>
114         * X500DistinguishedName.cs: Fix most common cases. Some flags are 
115         still not supported.
116         * X509Certificate2.cs: Fix importing PKCS#12 certificates (with keys)
117         in some cases. Implement GetCertContentType for Cert, Pfx and Pkcs12.
118         Implement ToString methods.
119         * X509ExtensionCollection.cs: Add an internal ctor that can populate
120         the collection from extensions coming from an Mono.Security.X509.
121         X509Certificate. CryptoConfig is used to allow extensibility to the
122         X509Extension class.
124 2006-10-08  Sebastien Pouliot  <sebastien@ximian.com>
126         * X509Certificate2.cs: Ensure we can load certificates from read-only
127         files (fix bug #79616).
129 2006-10-05  Andrew Skiba  <andrews@mainsoft.com>
131         * X509CertificateCollection.cs: remove IEnumerable private imple-
132         mentation to match MSDN.
133         
134 2006-09-20  Atsushi Enomoto  <atsushi@ximian.com>
136         * X509Certificate2.cs : in .ctor(X509Certificate) call base copy .ctor()
137           as well. Fixed bug #79455.
139 2006-09-12  Sebastien Pouliot  <sebastien@ximian.com>
141         * PublicKey.cs: Never return the private key in the Key property, even
142         if it was available when creating the public key.
144 2006-09-11  Atsushi Enomoto  <atsushi@ximian.com>
146         * X509Certificate2.cs : implemented HasPrivateKey. Return null
147           when the corresponding RSA or DSA has no private key.
149 2006-09-05  Sebastien Pouliot  <sebastien@ximian.com>
151         * X509Certificate2.cs: Call import in ctor to be sure the private key
152         will be decoded. Last fix for #79269.
154 2006-08-02  Sebastien Pouliot  <sebastien@ximian.com>
156         * X509Certificate2.cs: A unrequired password can be supplied to the 
157         2.0 ctors. Fix bug #79028.
159 2006-08-02  Atsushi Enomoto  <atsushi@ximian.com>
161         * X509Certificate2.cs : .ctor(string, string) and .ctor(string,
162           SecureString) should call proper base constructor method for each.
163           Implemented IssuerName. Fixed bug #78986.
165 2006-03-11  Miguel de Icaza  <miguel@novell.com>
167         * X509Chain.cs: Flagged member as internal to avoid unused warning.
169         * X500DistinguishedName.cs: Comment out unused names and move
170         temporary unused variables inside the comments that were removed 
172 2005-11-24  Sebastien Pouliot  <sebastien@ximian.com>
174         * X500DistinguishedName.cs: Added validation (still missing parsing).
175         * X509Certificate2Enumerator.cs: Add missing IEnumerator.* methods.
177 2005-11-22  Sebastien Pouliot  <sebastien@ximian.com>
179         * PublicKey.cs: Completed implementation for both RSA and DSA public
180         keys.
182 2005-11-08  Sebastien Pouliot  <sebastien@ximian.com>
184         * OpenFlags.cs: Removed extra [Serializable] (not in 2.0).
185         * StoreLocation.cs: Removed extra [Serializable] (not in 2.0).
186         * StoreName.cs: Removed extra [Serializable] (not in 2.0).
187         * X500DistinguishedNameFlags.cs: Removed extra [Serializable] (!2.0).
188         * X509ChainStatusFlags.cs: Removed extra [Serializable] (not in 2.0).
189         * X509FindType.cs: Removed extra [Serializable] (not in 2.0).
190         * X509IncludeOption.cs: Removed extra [Serializable] (not in 2.0).
191         * X509RevocationFlag.cs: Removed extra [Serializable] (not in 2.0).
192         * X509RevocationMode.cs: Removed extra [Serializable] (not in 2.0).
193         * X509SubjectKeyIdentifierHashAlgorithm.cs: Removed extra 
194         [Serializable] (not in 2.0).
195         * X509VerificationFlags.cs: Removed extra [Serializable] (not in 2.0).
197 2005-09-27  Sebastien Pouliot  <sebastien@ximian.com>
199         * X509Certificate2Collection.cs: Class is not sealed. Removed Select 
200         methods (moved to a new class in System.Security.dll).
201         * X509Certificate2.cs: Removed Display methods (moved to a new class 
202         in System.Security.dll).
203         * X509SelectionFlag.cs: Removed. This enum is still in System.Security
204         * X509NameType.cs: Added new DnsFromAlternativeName value.
206 2005-09-26  Sebastien Pouliot  <sebastien@ximian.com>
208         * All classes, except X509CertificateCollection, moved from 
209         System.Security.dll assembly as part of 2.0 RC changes.
211 2005-04-27  Sebastien Pouliot  <sebastien@ximian.com>
213         * X509BasicConstraintsExtension.cs: Now throw ArgumentNullException in 
214         CopyFrom (fixed in beta2).
215         * X509CertificateEx.cs: Throw a CryptographicException in the RawData
216         property if no certificate is loaded in the instance.
217         * X509EnhancedKeyUsageExtension.cs: Now throw ArgumentNullException in 
218         CopyFrom (fixed in beta2).
219         * X509Extension.cs: Now throw ArgumentNullException in CopyFrom (fixed
220         in beta2).
221         * X509KeyUsageExtension.cs: Now throw ArgumentNullException in 
222         CopyFrom (fixed in beta2).
223         * X509Store.cs: Re-added certificate creation to get the exception.
224         * X509SubjectKeyIdentifierExtension.cs: Throw ArgumentNullException in
225         CopyFrom (fixed in beta2). Fix SubjectKeyIdentifier to return an empty
226         string (not null) after (unsucessful) decoding.
228 2005-04-26  Sebastien Pouliot  <sebastien@ximian.com>
230         * X509CertificateEx.cs: Used new features from Mono.Security.dll to 
231         load certificates and private keys from PKCS#12.
233 2005-04-24  Sebastien Pouliot  <sebastien@ximian.com>
235         * X509CertificateEx.cs: Added new constructors and Import methods that
236         accept SecureString for passwords. Added new property HasPrivateKey and
237         Verify method.
238         * X509CertificateExCollection.cs: Added new constructor that accept a
239         single X509Certificate2.
240         * X509EnhancedKeyUsageExtension.cs: Fixed compiler warnings.
241         * X509KeyUsageExtension.cs: Fixed new enum name for CrlSign. 
242         * X509KeyUsageFlags.cs: Fixed values and removed [Serializable].
243         * X509NameType.cs: Fixed values and removed [Serializable].
244         * X509Store.cs: Added new constructor that accept an IntPtr and the 
245         StoreHandle property. Fixed compiler warnings.
247 2005-04-23  Sebastien Pouliot  <sebastien@ximian.com>
249         * X509CertificateEx.cs, X509CertificateExCollection.cs, 
250         X509CertificateExEnumerator.cs, X509Chain.cs, X509ChainElement.cs,
251         X509ChainPolicy.cs, X509Store.cs: Changed all references of
252         X509CertificateEx to X509Certificate2 to match beta2.
254 2005-01-17  Sebastien Pouliot  <sebastien@ximian.com>
256         * X509BasicConstraintsExtension.cs: Completed implementation.
257         * X509Chain.cs: Updated to Dec CTP definitions.
258         * X509ChainPolicy.cs: Updated to Dec CTP definitions.
259         * X500DistinguishedNameFlags.cs: Added new ForceUTF8Encoding.
260         * X509EnhancedKeyUsageExtension.cs: New. Complete implementation.
261         * X509Extension.cs: Completed implementation.
262         * X509ExtensionCollection.cs: Updated to Dec CTP definitions.
263         * X509KeyUsageExtension.cs: Completed implementation.
264         * X509RevocationFlag.cs: Minus 1 on each member.
265         * X509SubjectKeyIdentifierExtension.cs: Completed implementation 
266         except for the new constructor accepting a public key.
267         * X509SubjectKeyIdentifierHashAlgorithm.cs: New enum.
269 2004-09-03  Tim Coleman <tim@timcoleman.com>
270         * X509KeyUsageExtension.cs: New stub class
271         * X509SubjectKeyIdentifierExtension.cs: New stub class
272         * PublicKey.cs X509BasicConstraintsExtension.cs X509CertificateEx.cs
273         * X509CertificateExCollection.cs X509Extension.cs
274         * X509ExtensionCollection.cs:
275                 Bring these more in line with 2.0
277 2004-07-08  Sebastien Pouliot  <sebastien@ximian.com>
279         * OpenFlags.cs: Fixed flags values. Added missing attributes.
280         * StoreLocation.cs: Fixed enum values. Added missing [Serializable].
281         * StoreName.cs: Fixed enum values. Added missing [Serializable].
282         * X500DistinguishedName.cs: New. X.501 DN.
283         * X500DistinguishedNameFlags.cs: New. X.501 DN flags.
284         * X509CertificateEx.cs: Updated to Fx 2.0 beta 1. Added MonoTODO.
285         * X509Chain.cs: Added missing Reset method.
286         * X509ChainStatusFlags.cs: Fixed flags values. Added missing attrs.
287         * X509Extension.cs: Fixed API.
288         * X509ExtensionCollection.cs: Fixed API and implemented.
289         * X509FindType.cs: Fixed enum values. Added missing [Serializable].
290         * X509IncludeOption.cs: Added missing [Serializable].
291         * X509KeyUsageFlags.cs: : Fixed flags values. Added missing attrs.
292         * X509NameType.cs: Fixed enum values. Added missing [Serializable].
293         * X509RevocationFlag.cs: Fixed enum values. Added missing [Serializable].
294         * X509RevocationMode.cs: Added missing [Serializable].
295         * X509SelectionFlag.cs: Added missing [Serializable].
296         * X509VerificationFlags.cs: Fixed flags values. Added missing attrs.
298 2004-07-07  Sebastien Pouliot  <sebastien@ximian.com>
300         * X509Store.cs: Removed old store code (as it has changed a lot in 
301         Mono.Security).
303 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
305         * X509CertificateCollection.cs: Fixed Contains which works by value
306         (i.e. not by object reference). Fixed Remove for null and unexisting
307         elements.
309 2003-12-07  Sebastien Pouliot  <spouliot@videotron.ca>
311         * PublicKey.cs: New (1.2). Class that encapsulate an ASN.1 encoded 
312         public key. 
313         * X509BasicConstraintsExtension.cs: New (1.2). X.509 certification 
314         extension for BasicConstraints.
315         * X509CertificateEx.cs: New (1.2). Augmented class to use X.509 
316         certificates.
317         * X509CertificateExCollection.cs: New (1.2). Collection class for 
318         X509CertificateEx.
319         * X509CertificateExEnumerator.cs: New (1.2). Enumerator class for 
320         X509CertificateEx.
321         * X509ChainElement.cs: New (1.2). Information (certificate, status, 
322         informations) for a member of a certificate chain.
323         * X509ChainElementCollection.cs: New (1.2). Collection class for 
324         X509ChainElement.
325         * X509ChainElementEnumerator.cs: New (1.2). Enumerator class for 
326         X509ChainElement.
327         * X509ChainStatus.cs: New (1.2). Chain status (many can apply to a 
328         single X509ChainElement).
329         * X509Extension.cs: New (1.2). Base class for all certificate 
330         extensions.
331         * X509ExtensionCollection.cs: New (1.2). Collection class for 
332         X509Extension.
333         * X509ExtensionEnumerator.cs: New (1.2). Enumerator class for 
334         X509Extension.
336 2003-11-08  Sebastien Pouliot  <spouliot@videotron.ca>
338         * OpenFlags.cs: New (1.2). Enumeration for certificate stores.
339         * StoreLocation.cs: New (1.2). Enumeration for certificate stores.
340         * StoreName.cs: New (1.2). Enumeration for certificate stores.
341         * X509Chain.cs: New (1.2). Class to build a certificate chain up to a 
342         trusted anchor.
343         * X509ChainElement.cs: New (1.2). Element from the chain (certificate,
344         status and information) - only stubbed for now.
345         * X509ChainElementCollection.cs: New (1.2). Collection class for 
346         X509ChainElement.
347         * X509ChainElementEnumerator.cs: New (1.2). Enumerator class for 
348         X509ChainElement.
349         * X509ChainPolicy.cs: New (1.2). Policy to build a certificate chain.
350         * X509ChainStatusFlags.cs: New (1.2). Enumeration for chain status.
351         * X509FindType.cs: New (1.2). Enumeration for how to find X.509 
352         certificates in stores.
353         * X509IncludeOption.cs: New (1.2). Enumeration for options about which
354         certificate(s) to store within a (pkcs7) structure.
355         * X509KeyUsageFlags.cs: New (1.2). Enumeration for specifying valid 
356         usage for a keypair.
357         * X509NameType.cs: New (1.2). Enumeration for different types of name
358         that can be present inside a certificate.
359         * X509RevocationFlag.cs: New (1.2). Enumeration for specifying which
360         certificates should be verified for revocation in a chain.
361         * X509RevocationMode.cs: New (1.2). Enumeration for specifying how the
362         revocation process should find it's informations.
363         * X509SelectionFlag.cs: New (1.2). Enumeration about how to select 
364         certificates (ui-related).
365         * X509Store.cs: New (1.2). X.509 certificate store access - not complete.
366         * X509VerificationFlags.cs: New (1.2). Enumeration for parameters 
367         affecting the verification of a certificate chain.
369 2003-03-01  Sebastien Pouliot  <spouliot@videotron.ca>
371         * X509CertificateCollection.cs: Fixed bugs in AddRange
372         (added the collection not the certificates in the collection).
374 2003-01-30  Sebastien Pouliot  <spouliot@videotron.ca>
376         * X509CertificateCollection.cs: Replaced the use of the private 
377         ArrayList by the protected InnerList (from CollectionBase) so
378         Count property now works.
380 2002-10-21  Miguel de Icaza  <miguel@ximian.com>
382         * X509CertificateCollection.cs (Add): New method.
384 2002-05-12  Lawrence Pit <loz@cable.a2000.nl>
386         * X509CertificateCollection.cs: implemented