X509Certificate2 Class
Represents an X.509 certificate.
System.Security.Cryptography.X509Certificates::X509Certificate
System.Security.Cryptography.X509Certificates::X509Certificate2
Assembly: System (in System.dll)
The X509Certificate2 type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | X509Certificate2() | Initializes a new instance of the X509Certificate2 class. |
![]() | X509Certificate2(array<Byte>) | Initializes a new instance of the X509Certificate2 class using information from a byte array. |
![]() | X509Certificate2(IntPtr) | Initializes a new instance of the X509Certificate2 class using an unmanaged handle. |
![]() | X509Certificate2(String) | Initializes a new instance of the X509Certificate2 class using a certificate file name. |
![]() | X509Certificate2(X509Certificate) | Initializes a new instance of the X509Certificate2 class using an X509Certificate object. |
![]() | X509Certificate2(array<Byte>, SecureString) | Initializes a new instance of the X509Certificate2 class using a byte array and a password. |
![]() | X509Certificate2(array<Byte>, String) | Initializes a new instance of the X509Certificate2 class using a byte array and a password. |
![]() | X509Certificate2(SerializationInfo, StreamingContext) | Initializes a new instance of the X509Certificate2 class using the specified serialization and stream context information. |
![]() | X509Certificate2(String, SecureString) | Initializes a new instance of the X509Certificate2 class using a certificate file name and a password. |
![]() | X509Certificate2(String, String) | Initializes a new instance of the X509Certificate2 class using a certificate file name and a password used to access the certificate. |
![]() | X509Certificate2(array<Byte>, SecureString, X509KeyStorageFlags) | Initializes a new instance of the X509Certificate2 class using a byte array, a password, and a key storage flag. |
![]() | X509Certificate2(array<Byte>, String, X509KeyStorageFlags) | Initializes a new instance of the X509Certificate2 class using a byte array, a password, and a key storage flag. |
![]() | X509Certificate2(String, SecureString, X509KeyStorageFlags) | Initializes a new instance of the X509Certificate2 class using a certificate file name, a password, and a key storage flag. |
![]() | X509Certificate2(String, String, X509KeyStorageFlags) | Initializes a new instance of the X509Certificate2 class using a certificate file name, a password used to access the certificate, and a key storage flag. |
| Name | Description | |
|---|---|---|
![]() | Archived | Gets or sets a value indicating that an X.509 certificate is archived. |
![]() | Extensions | Gets a collection of X509Extension objects. |
![]() | FriendlyName | Gets or sets the associated alias for a certificate. |
![]() | Handle | Gets a handle to a Microsoft Cryptographic API certificate context described by an unmanaged PCCERT_CONTEXT structure. (Inherited from X509Certificate.) |
![]() | HasPrivateKey | Gets a value that indicates whether an X509Certificate2 object contains a private key. |
![]() | Issuer | Gets the name of the certificate authority that issued the X.509v3 certificate. (Inherited from X509Certificate.) |
![]() | IssuerName | Gets the distinguished name of the certificate issuer. |
![]() | NotAfter | Gets the date in local time after which a certificate is no longer valid. |
![]() | NotBefore | Gets the date in local time on which a certificate becomes valid. |
![]() | PrivateKey | Gets or sets the AsymmetricAlgorithm object that represents the private key associated with a certificate. |
![]() | PublicKey | Gets a PublicKey object associated with a certificate. |
![]() | RawData | Gets the raw data of a certificate. |
![]() | SerialNumber | Gets the serial number of a certificate. |
![]() | SignatureAlgorithm | Gets the algorithm used to create the signature of a certificate. |
![]() | Subject | Gets the subject distinguished name from the certificate. (Inherited from X509Certificate.) |
![]() | SubjectName | Gets the subject distinguished name from a certificate. |
![]() | Thumbprint | Gets the thumbprint of a certificate. |
![]() | Version | Gets the X.509 format version of a certificate. |
| Name | Description | |
|---|---|---|
![]() | Equals(Object) | Compares two X509Certificate objects for equality. (Inherited from X509Certificate.) |
![]() | Equals(X509Certificate) | Compares two X509Certificate objects for equality. (Inherited from X509Certificate.) |
![]() | Export(X509ContentType) | Exports the current X509Certificate object to a byte array in a format described by one of the X509ContentType values. (Inherited from X509Certificate.) |
![]() | Export(X509ContentType, SecureString) | Exports the current X509Certificate object to a byte array using the specified format and a password. (Inherited from X509Certificate.) |
![]() | Export(X509ContentType, String) | Exports the current X509Certificate object to a byte array in a format described by one of the X509ContentType values, and using the specified password. (Inherited from X509Certificate.) |
![]() | Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) |
![]() ![]() | GetCertContentType(array<Byte>) | Indicates the type of certificate contained in a byte array. |
![]() ![]() | GetCertContentType(String) | Indicates the type of certificate contained in a file. |
![]() | GetCertHash | Returns the hash value for the X.509v3 certificate as an array of bytes. (Inherited from X509Certificate.) |
![]() | GetCertHashString | Returns the SHA1 hash value for the X.509v3 certificate as a hexadecimal string. (Inherited from X509Certificate.) |
![]() | GetEffectiveDateString | Returns the effective date of this X.509v3 certificate. (Inherited from X509Certificate.) |
![]() | GetExpirationDateString | Returns the expiration date of this X.509v3 certificate. (Inherited from X509Certificate.) |
![]() | GetFormat | Returns the name of the format of this X.509v3 certificate. (Inherited from X509Certificate.) |
![]() | GetHashCode | Returns the hash code for the X.509v3 certificate as an integer. (Inherited from X509Certificate.) |
![]() | GetIssuerName | Obsolete. Returns the name of the certification authority that issued the X.509v3 certificate. (Inherited from X509Certificate.) |
![]() | GetKeyAlgorithm | Returns the key algorithm information for this X.509v3 certificate. (Inherited from X509Certificate.) |
![]() | GetKeyAlgorithmParameters | Returns the key algorithm parameters for the X.509v3 certificate. (Inherited from X509Certificate.) |
![]() | GetKeyAlgorithmParametersString | Returns the key algorithm parameters for the X.509v3 certificate. (Inherited from X509Certificate.) |
![]() | GetName | Obsolete. Returns the name of the principal to which the certificate was issued. (Inherited from X509Certificate.) |
![]() | GetNameInfo | Gets the subject and issuer names from a certificate. |
![]() | GetPublicKey | Returns the public key for the X.509v3 certificate. (Inherited from X509Certificate.) |
![]() | GetPublicKeyString | Returns the public key for the X.509v3 certificate. (Inherited from X509Certificate.) |
![]() | GetRawCertData | Returns the raw data for the entire X.509v3 certificate. (Inherited from X509Certificate.) |
![]() | GetRawCertDataString | Returns the raw data for the entire X.509v3 certificate. (Inherited from X509Certificate.) |
![]() | GetSerialNumber | Returns the serial number of the X.509v3 certificate. (Inherited from X509Certificate.) |
![]() | GetSerialNumberString | Returns the serial number of the X.509v3 certificate. (Inherited from X509Certificate.) |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | Import(array<Byte>) | Populates an X509Certificate2 object with data from a byte array. (Overrides X509Certificate::Import(array<Byte>).) |
![]() | Import(String) | Populates an X509Certificate2 object with information from a certificate file. (Overrides X509Certificate::Import(String).) |
![]() | Import(array<Byte>, SecureString, X509KeyStorageFlags) | Populates an X509Certificate2 object using data from a byte array, a password, and a key storage flag. (Overrides X509Certificate::Import(array<Byte>, SecureString, X509KeyStorageFlags).) |
![]() | Import(array<Byte>, String, X509KeyStorageFlags) | Populates an X509Certificate2 object using data from a byte array, a password, and flags for determining how to import the private key. (Overrides X509Certificate::Import(array<Byte>, String, X509KeyStorageFlags).) |
![]() | Import(String, SecureString, X509KeyStorageFlags) | Populates an X509Certificate2 object with information from a certificate file, a password, and a key storage flag. (Overrides X509Certificate::Import(String, SecureString, X509KeyStorageFlags).) |
![]() | Import(String, String, X509KeyStorageFlags) | Populates an X509Certificate2 object with information from a certificate file, a password, and a X509KeyStorageFlags value. (Overrides X509Certificate::Import(String, String, X509KeyStorageFlags).) |
![]() | MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
![]() | Reset | Resets the state of an X509Certificate2 object. (Overrides X509Certificate::Reset().) |
![]() | ToString() | Displays an X.509 certificate in text format. (Overrides X509Certificate::ToString().) |
![]() | ToString(Boolean) | Displays an X.509 certificate in text format. (Overrides X509Certificate::ToString(Boolean).) |
![]() | Verify | Performs a X.509 chain validation using basic validation policy. |
| Name | Description | |
|---|---|---|
![]() ![]() | IDeserializationCallback::OnDeserialization | Implements the ISerializable interface and is called back by the deserialization event when deserialization is complete. (Inherited from X509Certificate.) |
![]() ![]() | ISerializable::GetObjectData | Gets serialization information with all the data needed to recreate an instance of the current X509Certificate object. (Inherited from X509Certificate.) |
The X.509 structure originated in the International Organization for Standardization (ISO) working groups. This structure can be used to represent various types of information including identity, entitlement, and holder attributes (permissions, age, sex, location, affiliation, and so forth). Although the ISO specifications are most informative on the structure itself, the X509Certificate2 class is designed to model the usage scenarios defined in specifications issued by the Internet Engineering Task Force (IETF) Public Key Infrastructure, X.509 (PKIX) working group. The most informative of these specifications is RFC 3280, "Certificate and Certificate Revocation List (CRL) Profile."
| Topic | Location |
|---|---|
| How to: Encrypt XML Elements with X.509 Certificates | .NET Framework: Security |
| How to: Decrypt XML Elements with X.509 Certificates | .NET Framework: Security |
| How to: Encrypt XML Elements with X.509 Certificates | .NET Framework: Security |
| How to: Decrypt XML Elements with X.509 Certificates | .NET Framework: Security |
The following example demonstrates how to use an X509Certificate2 object to encrypt and decrypt a file.
The following example creates a command-line executable that takes a certificate file as an argument and prints various certificate properties to the console.
#using <System.dll> using namespace System; using namespace System::Security::Cryptography; using namespace System::Security::Permissions; using namespace System::IO; using namespace System::Security::Cryptography::X509Certificates; //Reads a file. array<Byte>^ ReadFile( String^ fileName ) { FileStream^ f = gcnew FileStream( fileName,FileMode::Open,FileAccess::Read ); int size = (int)f->Length; array<Byte>^data = gcnew array<Byte>(size); size = f->Read( data, 0, size ); f->Close(); return data; } [SecurityPermissionAttribute(SecurityAction::LinkDemand, Unrestricted = true)] int main() { array<String^>^args = Environment::GetCommandLineArgs(); //Test for correct number of arguments. if ( args->Length < 2 ) { Console::WriteLine( "Usage: CertInfo <filename>" ); return -1; } try { System::Security::Cryptography::X509Certificates::X509Certificate2 ^ x509 = gcnew System::Security::Cryptography::X509Certificates::X509Certificate2; //Create X509Certificate2 object from .cer file. array<Byte>^rawData = ReadFile( args[ 1 ] ); x509->Import(rawData); //Print to console information contained in the certificate. Console::WriteLine( "{0}Subject: {1}{0}", Environment::NewLine, x509->Subject ); Console::WriteLine( "{0}Issuer: {1}{0}", Environment::NewLine, x509->Issuer ); Console::WriteLine( "{0}Version: {1}{0}", Environment::NewLine, x509->Version ); Console::WriteLine( "{0}Valid Date: {1}{0}", Environment::NewLine, x509->NotBefore ); Console::WriteLine( "{0}Expiry Date: {1}{0}", Environment::NewLine, x509->NotAfter ); Console::WriteLine( "{0}Thumbprint: {1}{0}", Environment::NewLine, x509->Thumbprint ); Console::WriteLine( "{0}Serial Number: {1}{0}", Environment::NewLine, x509->SerialNumber ); Console::WriteLine( "{0}Friendly Name: {1}{0}", Environment::NewLine, x509->PublicKey->Oid->FriendlyName ); Console::WriteLine( "{0}Public Key Format: {1}{0}", Environment::NewLine, x509->PublicKey->EncodedKeyValue->Format(true) ); Console::WriteLine( "{0}Raw Data Length: {1}{0}", Environment::NewLine, x509->RawData->Length ); Console::WriteLine( "{0}Certificate to string: {1}{0}", Environment::NewLine, x509->ToString( true ) ); Console::WriteLine( "{0}Certificate to XML String: {1}{0}", Environment::NewLine, x509->PublicKey->Key->ToXmlString( false ) ); //Add the certificate to a X509Store. X509Store ^ store = gcnew X509Store; store->Open( OpenFlags::MaxAllowed ); store->Add( x509 ); store->Close(); } catch ( DirectoryNotFoundException^ ) { Console::WriteLine( "Error: The directory specified could not be found." ); } catch ( IOException^ ) { Console::WriteLine( "Error: A file in the directory could not be accessed." ); } catch ( NullReferenceException^ ) { Console::WriteLine( "File must be a .cer file. Program does not have access to that type of file." ); } }
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
