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