2010-03-16 Jb Evain * X509Chain.cs: use MOONLIGHT symbol to disambiguate MonoTouch and Moonlight code. 2010-03-11 Gonzalo Paniagua Javier * OSX509Certificates.cs: moved here from Mono.Security. 2009-07-10 Gonzalo Paniagua Javier * X509Chain.cs: revert my last change here since it caused 2 tests to fail. 2009-07-02 Gonzalo Paniagua Javier * X509Certificate2.cs: * X509Chain.cs: changes to make everything compile with latest changes and fixed typo in IsChainComplete(). 2008-06-26 Sebastien Pouliot * X509Certificate2.cs: Allow password-less ctor to (try to) open PKCS#12 files (with an empty password). [Fix bug #403610] 2008-06-03 Sebastien Pouliot * X509Certificate2.cs: Allow PrivateKey property to be set to null. [Fix bug #396620] 2008-05-18 Sebastien Pouliot * X509Chain.cs: Use String.IsNullOrEmpty inside 2.0 code. [Found using Gendarme] 2008-04-09 Gert Driesen * X500DistinguishedName.cs: Fixed line endings. * X509Chain.cs: Fixed line endings. 2008-01-13 Gert Driesen * X509Certificate2.cs: NotAfter and NotBefore must return local time. 2007-05-09 Sebastien Pouliot * X509Certificate2.cs: Leave a small stub (PrivateKey property) if SECURITY_DEP isn't defined. This will let Mono.Security.dll build correctly under 2.0 while enabling the use of X509Certificate2 to add support for X.509 client certificates in SSL/TLS. 2006-12-07 Sebastien Pouliot * X500DistinguishedName.cs: Add an internal method to compare (canonized) DN so the class can be used in X509Chain. * X509Certificate2.cs: Expose the internal certificate (from Mono. Security.dll) as X509Certificate2 isn't complete enough to implement chaining. * X509Chain.cs: A (working) *subset( of RFC3280 path building and validation. * X509ChainElementCollection.cs: Add help method Contains and change Add not to require a flag parameter. * X509ChainElement.cs: Keeps flags compressed (as flags!) and add a method to uncompress them when validation is complete. * X509Store.cs: Expose the internal store (from Mono.Security.dll) as internal. Map Trust and Root as the same store (for compatibility). 2006-11-24 Sebastien Pouliot * X509Certificate2.cs: Modified Verify to use CryptoConfig to create the X509Chain used to verify the certificate. This makes it possible to change the default chaining (certificate path creation and validation) algorithm. * X509Chain.cs: Started implementation based on the options and error codes defined. Work in progress (incomplete and needs a lot more test cases). * X509ChainElementCollection.cs: Added internal methods to Add and Clear the collection. * X509ChainElement.cs: Implemented, MonoTODO removed. * X509ChainPolicy.cs: Add missing checks on enum-based properties. Renamed fields to match guidelines. * X509ChainStatus.cs: Provide a default StatusInformation value based on the Status. 2006-11-22 Sebastien Pouliot * X509Certificate2Collection.cs: Remove comment that proved to be false (unit tests prove otherwise). * X509Store.cs: Integrate the new 2.0 stores with the existing stores that Mono used since 1.0. 2006-11-17 Sebastien Pouliot * X509Certificate2Collection.cs: Implement Export (to DER encoded format), Find (for most X509FindType), Import (for single certificates), RemoveRange (but it's not transactional). * X509Certificate2.cs: Fix Reset method to reset every field. * X509ExtensionCollection.cs: Implement missing CopyTo. Fix exception handling to match new unit tests. * X509ExtensionEnumerator.cs: Fix recursion. * X509SubjectKeyIdentifierExtension.cs: Add support for ctors accepting a PublicKey instance. 2006-11-13 Sebastien Pouliot * X509Certificate2.cs: Throw a CryptographicException for (most) properties if the certificate is "empty". Implement GetNameInfo for X509NameType.SimpleName, EmailName and DnsName. Add detection for X509ContentType.Pkcs7 in GetCertContentType. 2006-11-08 Sebastien Pouliot * X500DistinguishedName.cs: Fix most common cases. Some flags are still not supported. * X509Certificate2.cs: Fix importing PKCS#12 certificates (with keys) in some cases. Implement GetCertContentType for Cert, Pfx and Pkcs12. Implement ToString methods. * X509ExtensionCollection.cs: Add an internal ctor that can populate the collection from extensions coming from an Mono.Security.X509. X509Certificate. CryptoConfig is used to allow extensibility to the X509Extension class. 2006-10-08 Sebastien Pouliot * X509Certificate2.cs: Ensure we can load certificates from read-only files (fix bug #79616). 2006-10-05 Andrew Skiba * X509CertificateCollection.cs: remove IEnumerable private imple- mentation to match MSDN. 2006-09-20 Atsushi Enomoto * X509Certificate2.cs : in .ctor(X509Certificate) call base copy .ctor() as well. Fixed bug #79455. 2006-09-12 Sebastien Pouliot * PublicKey.cs: Never return the private key in the Key property, even if it was available when creating the public key. 2006-09-11 Atsushi Enomoto * X509Certificate2.cs : implemented HasPrivateKey. Return null when the corresponding RSA or DSA has no private key. 2006-09-05 Sebastien Pouliot * X509Certificate2.cs: Call import in ctor to be sure the private key will be decoded. Last fix for #79269. 2006-08-02 Sebastien Pouliot * X509Certificate2.cs: A unrequired password can be supplied to the 2.0 ctors. Fix bug #79028. 2006-08-02 Atsushi Enomoto * X509Certificate2.cs : .ctor(string, string) and .ctor(string, SecureString) should call proper base constructor method for each. Implemented IssuerName. Fixed bug #78986. 2006-03-11 Miguel de Icaza * X509Chain.cs: Flagged member as internal to avoid unused warning. * X500DistinguishedName.cs: Comment out unused names and move temporary unused variables inside the comments that were removed 2005-11-24 Sebastien Pouliot * X500DistinguishedName.cs: Added validation (still missing parsing). * X509Certificate2Enumerator.cs: Add missing IEnumerator.* methods. 2005-11-22 Sebastien Pouliot * PublicKey.cs: Completed implementation for both RSA and DSA public keys. 2005-11-08 Sebastien Pouliot * OpenFlags.cs: Removed extra [Serializable] (not in 2.0). * StoreLocation.cs: Removed extra [Serializable] (not in 2.0). * StoreName.cs: Removed extra [Serializable] (not in 2.0). * X500DistinguishedNameFlags.cs: Removed extra [Serializable] (!2.0). * X509ChainStatusFlags.cs: Removed extra [Serializable] (not in 2.0). * X509FindType.cs: Removed extra [Serializable] (not in 2.0). * X509IncludeOption.cs: Removed extra [Serializable] (not in 2.0). * X509RevocationFlag.cs: Removed extra [Serializable] (not in 2.0). * X509RevocationMode.cs: Removed extra [Serializable] (not in 2.0). * X509SubjectKeyIdentifierHashAlgorithm.cs: Removed extra [Serializable] (not in 2.0). * X509VerificationFlags.cs: Removed extra [Serializable] (not in 2.0). 2005-09-27 Sebastien Pouliot * X509Certificate2Collection.cs: Class is not sealed. Removed Select methods (moved to a new class in System.Security.dll). * X509Certificate2.cs: Removed Display methods (moved to a new class in System.Security.dll). * X509SelectionFlag.cs: Removed. This enum is still in System.Security * X509NameType.cs: Added new DnsFromAlternativeName value. 2005-09-26 Sebastien Pouliot * All classes, except X509CertificateCollection, moved from System.Security.dll assembly as part of 2.0 RC changes. 2005-04-27 Sebastien Pouliot * X509BasicConstraintsExtension.cs: Now throw ArgumentNullException in CopyFrom (fixed in beta2). * X509CertificateEx.cs: Throw a CryptographicException in the RawData property if no certificate is loaded in the instance. * X509EnhancedKeyUsageExtension.cs: Now throw ArgumentNullException in CopyFrom (fixed in beta2). * X509Extension.cs: Now throw ArgumentNullException in CopyFrom (fixed in beta2). * X509KeyUsageExtension.cs: Now throw ArgumentNullException in CopyFrom (fixed in beta2). * X509Store.cs: Re-added certificate creation to get the exception. * X509SubjectKeyIdentifierExtension.cs: Throw ArgumentNullException in CopyFrom (fixed in beta2). Fix SubjectKeyIdentifier to return an empty string (not null) after (unsucessful) decoding. 2005-04-26 Sebastien Pouliot * X509CertificateEx.cs: Used new features from Mono.Security.dll to load certificates and private keys from PKCS#12. 2005-04-24 Sebastien Pouliot * X509CertificateEx.cs: Added new constructors and Import methods that accept SecureString for passwords. Added new property HasPrivateKey and Verify method. * X509CertificateExCollection.cs: Added new constructor that accept a single X509Certificate2. * X509EnhancedKeyUsageExtension.cs: Fixed compiler warnings. * X509KeyUsageExtension.cs: Fixed new enum name for CrlSign. * X509KeyUsageFlags.cs: Fixed values and removed [Serializable]. * X509NameType.cs: Fixed values and removed [Serializable]. * X509Store.cs: Added new constructor that accept an IntPtr and the StoreHandle property. Fixed compiler warnings. 2005-04-23 Sebastien Pouliot * X509CertificateEx.cs, X509CertificateExCollection.cs, X509CertificateExEnumerator.cs, X509Chain.cs, X509ChainElement.cs, X509ChainPolicy.cs, X509Store.cs: Changed all references of X509CertificateEx to X509Certificate2 to match beta2. 2005-01-17 Sebastien Pouliot * X509BasicConstraintsExtension.cs: Completed implementation. * X509Chain.cs: Updated to Dec CTP definitions. * X509ChainPolicy.cs: Updated to Dec CTP definitions. * X500DistinguishedNameFlags.cs: Added new ForceUTF8Encoding. * X509EnhancedKeyUsageExtension.cs: New. Complete implementation. * X509Extension.cs: Completed implementation. * X509ExtensionCollection.cs: Updated to Dec CTP definitions. * X509KeyUsageExtension.cs: Completed implementation. * X509RevocationFlag.cs: Minus 1 on each member. * X509SubjectKeyIdentifierExtension.cs: Completed implementation except for the new constructor accepting a public key. * X509SubjectKeyIdentifierHashAlgorithm.cs: New enum. 2004-09-03 Tim Coleman * X509KeyUsageExtension.cs: New stub class * X509SubjectKeyIdentifierExtension.cs: New stub class * PublicKey.cs X509BasicConstraintsExtension.cs X509CertificateEx.cs * X509CertificateExCollection.cs X509Extension.cs * X509ExtensionCollection.cs: Bring these more in line with 2.0 2004-07-08 Sebastien Pouliot * OpenFlags.cs: Fixed flags values. Added missing attributes. * StoreLocation.cs: Fixed enum values. Added missing [Serializable]. * StoreName.cs: Fixed enum values. Added missing [Serializable]. * X500DistinguishedName.cs: New. X.501 DN. * X500DistinguishedNameFlags.cs: New. X.501 DN flags. * X509CertificateEx.cs: Updated to Fx 2.0 beta 1. Added MonoTODO. * X509Chain.cs: Added missing Reset method. * X509ChainStatusFlags.cs: Fixed flags values. Added missing attrs. * X509Extension.cs: Fixed API. * X509ExtensionCollection.cs: Fixed API and implemented. * X509FindType.cs: Fixed enum values. Added missing [Serializable]. * X509IncludeOption.cs: Added missing [Serializable]. * X509KeyUsageFlags.cs: : Fixed flags values. Added missing attrs. * X509NameType.cs: Fixed enum values. Added missing [Serializable]. * X509RevocationFlag.cs: Fixed enum values. Added missing [Serializable]. * X509RevocationMode.cs: Added missing [Serializable]. * X509SelectionFlag.cs: Added missing [Serializable]. * X509VerificationFlags.cs: Fixed flags values. Added missing attrs. 2004-07-07 Sebastien Pouliot * X509Store.cs: Removed old store code (as it has changed a lot in Mono.Security). 2004-06-05 Sebastien Pouliot * X509CertificateCollection.cs: Fixed Contains which works by value (i.e. not by object reference). Fixed Remove for null and unexisting elements. 2003-12-07 Sebastien Pouliot * PublicKey.cs: New (1.2). Class that encapsulate an ASN.1 encoded public key. * X509BasicConstraintsExtension.cs: New (1.2). X.509 certification extension for BasicConstraints. * X509CertificateEx.cs: New (1.2). Augmented class to use X.509 certificates. * X509CertificateExCollection.cs: New (1.2). Collection class for X509CertificateEx. * X509CertificateExEnumerator.cs: New (1.2). Enumerator class for X509CertificateEx. * X509ChainElement.cs: New (1.2). Information (certificate, status, informations) for a member of a certificate chain. * X509ChainElementCollection.cs: New (1.2). Collection class for X509ChainElement. * X509ChainElementEnumerator.cs: New (1.2). Enumerator class for X509ChainElement. * X509ChainStatus.cs: New (1.2). Chain status (many can apply to a single X509ChainElement). * X509Extension.cs: New (1.2). Base class for all certificate extensions. * X509ExtensionCollection.cs: New (1.2). Collection class for X509Extension. * X509ExtensionEnumerator.cs: New (1.2). Enumerator class for X509Extension. 2003-11-08 Sebastien Pouliot * OpenFlags.cs: New (1.2). Enumeration for certificate stores. * StoreLocation.cs: New (1.2). Enumeration for certificate stores. * StoreName.cs: New (1.2). Enumeration for certificate stores. * X509Chain.cs: New (1.2). Class to build a certificate chain up to a trusted anchor. * X509ChainElement.cs: New (1.2). Element from the chain (certificate, status and information) - only stubbed for now. * X509ChainElementCollection.cs: New (1.2). Collection class for X509ChainElement. * X509ChainElementEnumerator.cs: New (1.2). Enumerator class for X509ChainElement. * X509ChainPolicy.cs: New (1.2). Policy to build a certificate chain. * X509ChainStatusFlags.cs: New (1.2). Enumeration for chain status. * X509FindType.cs: New (1.2). Enumeration for how to find X.509 certificates in stores. * X509IncludeOption.cs: New (1.2). Enumeration for options about which certificate(s) to store within a (pkcs7) structure. * X509KeyUsageFlags.cs: New (1.2). Enumeration for specifying valid usage for a keypair. * X509NameType.cs: New (1.2). Enumeration for different types of name that can be present inside a certificate. * X509RevocationFlag.cs: New (1.2). Enumeration for specifying which certificates should be verified for revocation in a chain. * X509RevocationMode.cs: New (1.2). Enumeration for specifying how the revocation process should find it's informations. * X509SelectionFlag.cs: New (1.2). Enumeration about how to select certificates (ui-related). * X509Store.cs: New (1.2). X.509 certificate store access - not complete. * X509VerificationFlags.cs: New (1.2). Enumeration for parameters affecting the verification of a certificate chain. 2003-03-01 Sebastien Pouliot * X509CertificateCollection.cs: Fixed bugs in AddRange (added the collection not the certificates in the collection). 2003-01-30 Sebastien Pouliot * X509CertificateCollection.cs: Replaced the use of the private ArrayList by the protected InnerList (from CollectionBase) so Count property now works. 2002-10-21 Miguel de Icaza * X509CertificateCollection.cs (Add): New method. 2002-05-12 Lawrence Pit * X509CertificateCollection.cs: implemented