2006-11-24 Sebastien Pouliot <sebastien@ximian.com>
[mono.git] / mcs / class / System / System.Security.Cryptography.X509Certificates / ChangeLog
1 2006-11-24  Sebastien Pouliot  <sebastien@ximian.com>
2
3         * X509Certificate2.cs: Modified Verify to use CryptoConfig to create
4         the X509Chain used to verify the certificate. This makes it possible
5         to change the default chaining (certificate path creation and 
6         validation) algorithm.
7         * X509Chain.cs: Started implementation based on the options and error 
8         codes defined. Work in progress (incomplete and needs a lot more test
9         cases).
10         * X509ChainElementCollection.cs: Added internal methods to Add and
11         Clear the collection.
12         * X509ChainElement.cs: Implemented, MonoTODO removed.
13         * X509ChainPolicy.cs: Add missing checks on enum-based properties. 
14         Renamed fields to match guidelines.
15         * X509ChainStatus.cs: Provide a default StatusInformation value based 
16         on the Status.
17
18 2006-11-22  Sebastien Pouliot  <sebastien@ximian.com>
19
20         * X509Certificate2Collection.cs: Remove comment that proved to be 
21         false (unit tests prove otherwise).
22         * X509Store.cs: Integrate the new 2.0 stores with the existing stores
23         that Mono used since 1.0.
24
25 2006-11-17  Sebastien Pouliot  <sebastien@ximian.com>
26
27         * X509Certificate2Collection.cs: Implement Export (to DER encoded 
28         format), Find (for most X509FindType), Import (for single 
29         certificates), RemoveRange (but it's not transactional).
30         * X509Certificate2.cs: Fix Reset method to reset every field.
31         * X509ExtensionCollection.cs: Implement missing CopyTo. Fix exception
32         handling to match new unit tests.
33         * X509ExtensionEnumerator.cs: Fix recursion.
34         * X509SubjectKeyIdentifierExtension.cs: Add support for ctors
35         accepting a PublicKey instance.
36
37 2006-11-13  Sebastien Pouliot  <sebastien@ximian.com>
38
39         * X509Certificate2.cs: Throw a CryptographicException for (most) 
40         properties if the certificate is "empty". Implement GetNameInfo for
41         X509NameType.SimpleName, EmailName and DnsName. Add detection for 
42         X509ContentType.Pkcs7 in GetCertContentType.
43
44 2006-11-08  Sebastien Pouliot  <sebastien@ximian.com>
45
46         * X500DistinguishedName.cs: Fix most common cases. Some flags are 
47         still not supported.
48         * X509Certificate2.cs: Fix importing PKCS#12 certificates (with keys)
49         in some cases. Implement GetCertContentType for Cert, Pfx and Pkcs12.
50         Implement ToString methods.
51         * X509ExtensionCollection.cs: Add an internal ctor that can populate
52         the collection from extensions coming from an Mono.Security.X509.
53         X509Certificate. CryptoConfig is used to allow extensibility to the
54         X509Extension class.
55
56 2006-10-08  Sebastien Pouliot  <sebastien@ximian.com>
57
58         * X509Certificate2.cs: Ensure we can load certificates from read-only
59         files (fix bug #79616).
60
61 2006-10-05  Andrew Skiba  <andrews@mainsoft.com>
62
63         * X509CertificateCollection.cs: remove IEnumerable private imple-
64         mentation to match MSDN.
65         
66 2006-09-20  Atsushi Enomoto  <atsushi@ximian.com>
67
68         * X509Certificate2.cs : in .ctor(X509Certificate) call base copy .ctor()
69           as well. Fixed bug #79455.
70
71 2006-09-12  Sebastien Pouliot  <sebastien@ximian.com>
72
73         * PublicKey.cs: Never return the private key in the Key property, even
74         if it was available when creating the public key.
75
76 2006-09-11  Atsushi Enomoto  <atsushi@ximian.com>
77
78         * X509Certificate2.cs : implemented HasPrivateKey. Return null
79           when the corresponding RSA or DSA has no private key.
80
81 2006-09-05  Sebastien Pouliot  <sebastien@ximian.com>
82
83         * X509Certificate2.cs: Call import in ctor to be sure the private key
84         will be decoded. Last fix for #79269.
85
86 2006-08-02  Sebastien Pouliot  <sebastien@ximian.com>
87
88         * X509Certificate2.cs: A unrequired password can be supplied to the 
89         2.0 ctors. Fix bug #79028.
90
91 2006-08-02  Atsushi Enomoto  <atsushi@ximian.com>
92
93         * X509Certificate2.cs : .ctor(string, string) and .ctor(string,
94           SecureString) should call proper base constructor method for each.
95           Implemented IssuerName. Fixed bug #78986.
96
97 2006-03-11  Miguel de Icaza  <miguel@novell.com>
98
99         * X509Chain.cs: Flagged member as internal to avoid unused warning.
100
101         * X500DistinguishedName.cs: Comment out unused names and move
102         temporary unused variables inside the comments that were removed 
103
104 2005-11-24  Sebastien Pouliot  <sebastien@ximian.com>
105
106         * X500DistinguishedName.cs: Added validation (still missing parsing).
107         * X509Certificate2Enumerator.cs: Add missing IEnumerator.* methods.
108
109 2005-11-22  Sebastien Pouliot  <sebastien@ximian.com>
110
111         * PublicKey.cs: Completed implementation for both RSA and DSA public
112         keys.
113
114 2005-11-08  Sebastien Pouliot  <sebastien@ximian.com>
115
116         * OpenFlags.cs: Removed extra [Serializable] (not in 2.0).
117         * StoreLocation.cs: Removed extra [Serializable] (not in 2.0).
118         * StoreName.cs: Removed extra [Serializable] (not in 2.0).
119         * X500DistinguishedNameFlags.cs: Removed extra [Serializable] (!2.0).
120         * X509ChainStatusFlags.cs: Removed extra [Serializable] (not in 2.0).
121         * X509FindType.cs: Removed extra [Serializable] (not in 2.0).
122         * X509IncludeOption.cs: Removed extra [Serializable] (not in 2.0).
123         * X509RevocationFlag.cs: Removed extra [Serializable] (not in 2.0).
124         * X509RevocationMode.cs: Removed extra [Serializable] (not in 2.0).
125         * X509SubjectKeyIdentifierHashAlgorithm.cs: Removed extra 
126         [Serializable] (not in 2.0).
127         * X509VerificationFlags.cs: Removed extra [Serializable] (not in 2.0).
128
129 2005-09-27  Sebastien Pouliot  <sebastien@ximian.com>
130
131         * X509Certificate2Collection.cs: Class is not sealed. Removed Select 
132         methods (moved to a new class in System.Security.dll).
133         * X509Certificate2.cs: Removed Display methods (moved to a new class 
134         in System.Security.dll).
135         * X509SelectionFlag.cs: Removed. This enum is still in System.Security
136         * X509NameType.cs: Added new DnsFromAlternativeName value.
137
138 2005-09-26  Sebastien Pouliot  <sebastien@ximian.com>
139
140         * All classes, except X509CertificateCollection, moved from 
141         System.Security.dll assembly as part of 2.0 RC changes.
142
143 2005-04-27  Sebastien Pouliot  <sebastien@ximian.com>
144
145         * X509BasicConstraintsExtension.cs: Now throw ArgumentNullException in 
146         CopyFrom (fixed in beta2).
147         * X509CertificateEx.cs: Throw a CryptographicException in the RawData
148         property if no certificate is loaded in the instance.
149         * X509EnhancedKeyUsageExtension.cs: Now throw ArgumentNullException in 
150         CopyFrom (fixed in beta2).
151         * X509Extension.cs: Now throw ArgumentNullException in CopyFrom (fixed
152         in beta2).
153         * X509KeyUsageExtension.cs: Now throw ArgumentNullException in 
154         CopyFrom (fixed in beta2).
155         * X509Store.cs: Re-added certificate creation to get the exception.
156         * X509SubjectKeyIdentifierExtension.cs: Throw ArgumentNullException in
157         CopyFrom (fixed in beta2). Fix SubjectKeyIdentifier to return an empty
158         string (not null) after (unsucessful) decoding.
159
160 2005-04-26  Sebastien Pouliot  <sebastien@ximian.com>
161
162         * X509CertificateEx.cs: Used new features from Mono.Security.dll to 
163         load certificates and private keys from PKCS#12.
164
165 2005-04-24  Sebastien Pouliot  <sebastien@ximian.com>
166
167         * X509CertificateEx.cs: Added new constructors and Import methods that
168         accept SecureString for passwords. Added new property HasPrivateKey and
169         Verify method.
170         * X509CertificateExCollection.cs: Added new constructor that accept a
171         single X509Certificate2.
172         * X509EnhancedKeyUsageExtension.cs: Fixed compiler warnings.
173         * X509KeyUsageExtension.cs: Fixed new enum name for CrlSign. 
174         * X509KeyUsageFlags.cs: Fixed values and removed [Serializable].
175         * X509NameType.cs: Fixed values and removed [Serializable].
176         * X509Store.cs: Added new constructor that accept an IntPtr and the 
177         StoreHandle property. Fixed compiler warnings.
178
179 2005-04-23  Sebastien Pouliot  <sebastien@ximian.com>
180
181         * X509CertificateEx.cs, X509CertificateExCollection.cs, 
182         X509CertificateExEnumerator.cs, X509Chain.cs, X509ChainElement.cs,
183         X509ChainPolicy.cs, X509Store.cs: Changed all references of
184         X509CertificateEx to X509Certificate2 to match beta2.
185
186 2005-01-17  Sebastien Pouliot  <sebastien@ximian.com>
187
188         * X509BasicConstraintsExtension.cs: Completed implementation.
189         * X509Chain.cs: Updated to Dec CTP definitions.
190         * X509ChainPolicy.cs: Updated to Dec CTP definitions.
191         * X500DistinguishedNameFlags.cs: Added new ForceUTF8Encoding.
192         * X509EnhancedKeyUsageExtension.cs: New. Complete implementation.
193         * X509Extension.cs: Completed implementation.
194         * X509ExtensionCollection.cs: Updated to Dec CTP definitions.
195         * X509KeyUsageExtension.cs: Completed implementation.
196         * X509RevocationFlag.cs: Minus 1 on each member.
197         * X509SubjectKeyIdentifierExtension.cs: Completed implementation 
198         except for the new constructor accepting a public key.
199         * X509SubjectKeyIdentifierHashAlgorithm.cs: New enum.
200
201 2004-09-03  Tim Coleman <tim@timcoleman.com>
202         * X509KeyUsageExtension.cs: New stub class
203         * X509SubjectKeyIdentifierExtension.cs: New stub class
204         * PublicKey.cs X509BasicConstraintsExtension.cs X509CertificateEx.cs
205         * X509CertificateExCollection.cs X509Extension.cs
206         * X509ExtensionCollection.cs:
207                 Bring these more in line with 2.0
208
209 2004-07-08  Sebastien Pouliot  <sebastien@ximian.com>
210
211         * OpenFlags.cs: Fixed flags values. Added missing attributes.
212         * StoreLocation.cs: Fixed enum values. Added missing [Serializable].
213         * StoreName.cs: Fixed enum values. Added missing [Serializable].
214         * X500DistinguishedName.cs: New. X.501 DN.
215         * X500DistinguishedNameFlags.cs: New. X.501 DN flags.
216         * X509CertificateEx.cs: Updated to Fx 2.0 beta 1. Added MonoTODO.
217         * X509Chain.cs: Added missing Reset method.
218         * X509ChainStatusFlags.cs: Fixed flags values. Added missing attrs.
219         * X509Extension.cs: Fixed API.
220         * X509ExtensionCollection.cs: Fixed API and implemented.
221         * X509FindType.cs: Fixed enum values. Added missing [Serializable].
222         * X509IncludeOption.cs: Added missing [Serializable].
223         * X509KeyUsageFlags.cs: : Fixed flags values. Added missing attrs.
224         * X509NameType.cs: Fixed enum values. Added missing [Serializable].
225         * X509RevocationFlag.cs: Fixed enum values. Added missing [Serializable].
226         * X509RevocationMode.cs: Added missing [Serializable].
227         * X509SelectionFlag.cs: Added missing [Serializable].
228         * X509VerificationFlags.cs: Fixed flags values. Added missing attrs.
229
230 2004-07-07  Sebastien Pouliot  <sebastien@ximian.com>
231
232         * X509Store.cs: Removed old store code (as it has changed a lot in 
233         Mono.Security).
234
235 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
236
237         * X509CertificateCollection.cs: Fixed Contains which works by value
238         (i.e. not by object reference). Fixed Remove for null and unexisting
239         elements.
240
241 2003-12-07  Sebastien Pouliot  <spouliot@videotron.ca>
242
243         * PublicKey.cs: New (1.2). Class that encapsulate an ASN.1 encoded 
244         public key. 
245         * X509BasicConstraintsExtension.cs: New (1.2). X.509 certification 
246         extension for BasicConstraints.
247         * X509CertificateEx.cs: New (1.2). Augmented class to use X.509 
248         certificates.
249         * X509CertificateExCollection.cs: New (1.2). Collection class for 
250         X509CertificateEx.
251         * X509CertificateExEnumerator.cs: New (1.2). Enumerator class for 
252         X509CertificateEx.
253         * X509ChainElement.cs: New (1.2). Information (certificate, status, 
254         informations) for a member of a certificate chain.
255         * X509ChainElementCollection.cs: New (1.2). Collection class for 
256         X509ChainElement.
257         * X509ChainElementEnumerator.cs: New (1.2). Enumerator class for 
258         X509ChainElement.
259         * X509ChainStatus.cs: New (1.2). Chain status (many can apply to a 
260         single X509ChainElement).
261         * X509Extension.cs: New (1.2). Base class for all certificate 
262         extensions.
263         * X509ExtensionCollection.cs: New (1.2). Collection class for 
264         X509Extension.
265         * X509ExtensionEnumerator.cs: New (1.2). Enumerator class for 
266         X509Extension.
267
268 2003-11-08  Sebastien Pouliot  <spouliot@videotron.ca>
269
270         * OpenFlags.cs: New (1.2). Enumeration for certificate stores.
271         * StoreLocation.cs: New (1.2). Enumeration for certificate stores.
272         * StoreName.cs: New (1.2). Enumeration for certificate stores.
273         * X509Chain.cs: New (1.2). Class to build a certificate chain up to a 
274         trusted anchor.
275         * X509ChainElement.cs: New (1.2). Element from the chain (certificate,
276         status and information) - only stubbed for now.
277         * X509ChainElementCollection.cs: New (1.2). Collection class for 
278         X509ChainElement.
279         * X509ChainElementEnumerator.cs: New (1.2). Enumerator class for 
280         X509ChainElement.
281         * X509ChainPolicy.cs: New (1.2). Policy to build a certificate chain.
282         * X509ChainStatusFlags.cs: New (1.2). Enumeration for chain status.
283         * X509FindType.cs: New (1.2). Enumeration for how to find X.509 
284         certificates in stores.
285         * X509IncludeOption.cs: New (1.2). Enumeration for options about which
286         certificate(s) to store within a (pkcs7) structure.
287         * X509KeyUsageFlags.cs: New (1.2). Enumeration for specifying valid 
288         usage for a keypair.
289         * X509NameType.cs: New (1.2). Enumeration for different types of name
290         that can be present inside a certificate.
291         * X509RevocationFlag.cs: New (1.2). Enumeration for specifying which
292         certificates should be verified for revocation in a chain.
293         * X509RevocationMode.cs: New (1.2). Enumeration for specifying how the
294         revocation process should find it's informations.
295         * X509SelectionFlag.cs: New (1.2). Enumeration about how to select 
296         certificates (ui-related).
297         * X509Store.cs: New (1.2). X.509 certificate store access - not complete.
298         * X509VerificationFlags.cs: New (1.2). Enumeration for parameters 
299         affecting the verification of a certificate chain.
300
301 2003-03-01  Sebastien Pouliot  <spouliot@videotron.ca>
302
303         * X509CertificateCollection.cs: Fixed bugs in AddRange
304         (added the collection not the certificates in the collection).
305
306 2003-01-30  Sebastien Pouliot  <spouliot@videotron.ca>
307
308         * X509CertificateCollection.cs: Replaced the use of the private 
309         ArrayList by the protected InnerList (from CollectionBase) so
310         Count property now works.
311
312 2002-10-21  Miguel de Icaza  <miguel@ximian.com>
313
314         * X509CertificateCollection.cs (Add): New method.
315
316 2002-05-12  Lawrence Pit <loz@cable.a2000.nl>
317
318         * X509CertificateCollection.cs: implemented