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