Search code examples
.netcryptographycertificateasn.1der

Export a certificate in asn.1 notation from X509Certificate2


I'm currently learning working with certificates and now I'm curious, if it is possible to get the ASN.1 notation of a loaded certificate from a X509Certificate2-instance.

I have found the Export-Method and it works fine, however I have not seen a possibilty to change the encoding of the output format - it's only in the DER-format.

Is there a possibility to export/convert a loaded certificate as an ASCII ASN.1 certificate, something like in the example below:

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 1 (0x1)
        Signature Algorithm: md5WithRSAEncryption
        Issuer: C=XY....
 ...

Or is there a converter to convert DER to plain text?


Solution

  • I wrote a Gtk# tool (in C#) to do this a few years ago. The full source code is available from https://github.com/mono/mono-tools/tree/master/asn1view

    You likely need only common/PrettyPrinter.cs and common/ASN1Decoder.cs unless you want pretty names for OIDs.

    EDIT: The above is a bit lower-level than X.509 certificates - but it will work for X.509 CRL and other structures you know (or not) that can be embedded into the certificates/crl.