This is very simple. Using System.Security.Cryptography.X509Certificates we can get all details of X509Certificate2 like certificate serial number, issued to - form, valid to - form, friendly name, intended purpose, certificate format and has private key or not.
I am giving a simple C# code snippet will describe more how to get these details including intended purpose.
Get x059 certificate extensions in C#
I am giving a simple C# code snippet will describe more how to get these details including intended purpose.
byte[] value = .....; X509Certificate2 x509 = new X509Certificate2(value); var serialnumber = x509.SerialNumber; var issuedto = Regex.Match(x509.Subject, "CN=.+?,").Value.Replace("CN=", "").Trim(','); var issuedby = Regex.Match(x509.Issuer, "O=.+?,").Value.Replace("O=", "").Trim(','); var validto = x509.NotAfter.ToString("f"); var validfrom = x509.NotBefore.ToString("f"); var intendedpurposes.Text = ""; foreach (var ext in x509.Extensions) { var eku = ext as X509EnhancedKeyUsageExtension; if (eku != null) { foreach (var oid in eku.EnhancedKeyUsages) { lbl_intendedpurposes += oid.FriendlyName + ", "; } } } intendedpurposes = intendedpurposes.Trim(new char[]{',',' '});
var friendlyname.Text = x509.FriendlyName == "" ? "" : x509.FriendlyName; var certtype.Text = x509.GetFormat(); var haskey.Text = x509.HasPrivateKey.ToString();
These are the intended purpose of certificate:-
- Ensures the identity of a remote computer
- Proves your identity to a remote computer
- Ensures software came from software publisher
- Protects software from alteration after publication
- Protects e-mail messages
- Allows data to be signed with the current time
- Allows data on disk to be encrypted
- Allows secure communication on the Internet
- Permits all key usage policies
- OCSP Signing
Get x059 certificate extensions in C#