itellsx / go-asn1-x509-reader

go/golang asn1 x509 cert parser

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

go-asn1-x509-reader

Go/Golang x509 and ASN1 reader, does not using the official encoding/asn1 package

Sample output of X509 parser (main1.go):

cert.version: [3]
cert.serialNumber: [0793ec89595dba606d1fd9f7be389802]
cert.signatureType: [sha256WithRSAEncryption]
issuer.countryName: [US]
issuer.organizationName: [DigiCert Inc]
issuer.organizationalUnitName: [www.digicert.com]
issuer.commonName: [DigiCert SHA2 Extended Validation Server CA]
validity.issuance: [2016-04-13 00:00:00 GMT]
validity.expiry: [2018-07-12 12:00:00 GMT]
subject.organizationName: [DigiCert, Inc.]
subject.commonName: [www.digicert.com]
subject.serialNumber: [5299537-0142]
subject.street: [Suite 500]
subject.street: [2600 West Executive Parkway]
subject.stateOrProvinceName: [Utah]
subject.localityName: [Lehi]
subject.countryName: [US]
subject.businessCategory: [Private Organization]
subject.jurCountryName: [US]
subject.jurStateOrProvinceName: [Utah]
subject.postalCode: [84043]
keyInfo.keyType: [rsaEncryption]
keyInfo.subjectKeyIdentifier: [b636e3ff6544f61cc8dcb7628182c354d6f7e11b]
keyInfo.type: [rsa]
keyInfo.keysize: [4096]
keyInfo.exponent: [010001]
extensionInfo.subjectAltName: [www.digicert.com;digicert.com;content.digicert.com;www.origin.digicert.com;login.digicert.com;api.digicert.com;ws.digicert.com]
extensionInfo.keyUsage: [digitalSignature;keyEncipherment]
extensionInfo.crlDistributionPoints: [http://crl3.digicert.com/sha2-ev-server-g1.crl;http://crl4.digicert.com/sha2-ev-server-g1.crl]
extensionInfo.authorityInfoAccess: [ocsp:http://ocsp.digicert.com;caIssuers:http://cacerts.digicert.com/DigiCertSHA2ExtendedValidationServerCA.crt]
extensionInfo.basicConstraints: [CA:FALSE]
extensionInfo.certificateTransparencyPreCert: []
extensionInfo.authorityKeyIdentifier: [3dd350a5d6a0adeef34a600a65d321d4f8f8d60f]
extensionInfo.subjectKeyIdentifier: [b636e3ff6544f61cc8dcb7628182c354d6f7e11b]
extensionInfo.extendedKeyUsage: [serverAuth;clientAuth]
extensionInfo.certificatePolicies: [Policy:2.16.840.1.114412.2.1;CPS:https://www.digicert.com/CPS;Policy:2.23.140.1.1]
extensionInfo.critical: keyUsage,basicConstraints

Sample output of ASN1 parser (main2.go):

[tag:0x30:{len:2293,class:0,constructed:1,number:16,name:SEQUENCE}]
 [tag:0x30:{len:2013,class:0,constructed:1,number:16,name:SEQUENCE}]
  [tag:0xa0:{len:3,class:2,constructed:1,number:0,name:CONTEXT_SPECIFIC}]
   [tag:0x02:{len:1,class:0,constructed:0,number:2,name:INTEGER}]
   ~[02]
  [tag:0x02:{len:16,class:0,constructed:0,number:2,name:INTEGER}]
  ~[0793ec89595dba606d1fd9f7be389802]
  [tag:0x30:{len:13,class:0,constructed:1,number:16,name:SEQUENCE}]
   [tag:0x06:{len:9,class:0,constructed:0,number:6,name:OID}]
   ~[1.2.840.113549.1.1.11]
   [tag:0x05:{len:0,class:0,constructed:0,number:5,name:NULL}]
   ~[]
  [tag:0x30:{len:117,class:0,constructed:1,number:16,name:SEQUENCE}]
   [tag:0x31:{len:11,class:0,constructed:1,number:17,name:SET}]
    [tag:0x30:{len:9,class:0,constructed:1,number:16,name:SEQUENCE}]
     [tag:0x06:{len:3,class:0,constructed:0,number:6,name:OID}]
     ~[2.5.4.6]
     [tag:0x13:{len:2,class:0,constructed:0,number:19,name:PrintableString}]
     ~[US]
   [tag:0x31:{len:21,class:0,constructed:1,number:17,name:SET}]
    [tag:0x30:{len:19,class:0,constructed:1,number:16,name:SEQUENCE}]
     [tag:0x06:{len:3,class:0,constructed:0,number:6,name:OID}]
     ~[2.5.4.10]
     [tag:0x13:{len:12,class:0,constructed:0,number:19,name:PrintableString}]
     ~[DigiCert Inc]
   [tag:0x31:{len:25,class:0,constructed:1,number:17,name:SET}]
    [tag:0x30:{len:23,class:0,constructed:1,number:16,name:SEQUENCE}]
     [tag:0x06:{len:3,class:0,constructed:0,number:6,name:OID}]
     ~[2.5.4.11]
     [tag:0x13:{len:16,class:0,constructed:0,number:19,name:PrintableString}]
     ~[www.digicert.com]
   [tag:0x31:{len:52,class:0,constructed:1,number:17,name:SET}]
    [tag:0x30:{len:50,class:0,constructed:1,number:16,name:SEQUENCE}]
     [tag:0x06:{len:3,class:0,constructed:0,number:6,name:OID}]
     ~[2.5.4.3]
     [tag:0x13:{len:43,class:0,constructed:0,number:19,name:PrintableString}]
     ~[DigiCert SHA2 Extended Validation Server CA]
  [tag:0x30:{len:30,class:0,constructed:1,number:16,name:SEQUENCE}]
   [tag:0x17:{len:13,class:0,constructed:0,number:23,name:UTCTime}]
   ~[2016-04-13 00:00:00 GMT]
   [tag:0x17:{len:13,class:0,constructed:0,number:23,name:UTCTime}]
   ~[2018-07-12 12:00:00 GMT]
  [tag:0x30:{len:267,class:0,constructed:1,number:16,name:SEQUENCE}]
   [tag:0x31:{len:29,class:0,constructed:1,number:17,name:SET}]
    [tag:0x30:{len:27,class:0,constructed:1,number:16,name:SEQUENCE}]
     [tag:0x06:{len:3,class:0,constructed:0,number:6,name:OID}]
     ~[2.5.4.15]
     [tag:0x0c:{len:20,class:0,constructed:0,number:12,name:UTF8String}]
     ~[Private Organization]
   [tag:0x31:{len:19,class:0,constructed:1,number:17,name:SET}]
    [tag:0x30:{len:17,class:0,constructed:1,number:16,name:SEQUENCE}]
     [tag:0x06:{len:11,class:0,constructed:0,number:6,name:OID}]
     ~[1.3.6.1.4.1.311.60.2.1.3]
     [tag:0x13:{len:2,class:0,constructed:0,number:19,name:PrintableString}]
     ~[US]
   [tag:0x31:{len:21,class:0,constructed:1,number:17,name:SET}]
    [tag:0x30:{len:19,class:0,constructed:1,number:16,name:SEQUENCE}]
     [tag:0x06:{len:11,class:0,constructed:0,number:6,name:OID}]
     ~[1.3.6.1.4.1.311.60.2.1.2]
     [tag:0x13:{len:4,class:0,constructed:0,number:19,name:PrintableString}]
     ~[Utah]
   [tag:0x31:{len:21,class:0,constructed:1,number:17,name:SET}]
    [tag:0x30:{len:19,class:0,constructed:1,number:16,name:SEQUENCE}]
     [tag:0x06:{len:3,class:0,constructed:0,number:6,name:OID}]
     ~[2.5.4.5]
     [tag:0x13:{len:12,class:0,constructed:0,number:19,name:PrintableString}]
     ~[5299537-0142]
   [tag:0x31:{len:18,class:0,constructed:1,number:17,name:SET}]
    [tag:0x30:{len:16,class:0,constructed:1,number:16,name:SEQUENCE}]
     [tag:0x06:{len:3,class:0,constructed:0,number:6,name:OID}]
     ~[2.5.4.9]
     [tag:0x13:{len:9,class:0,constructed:0,number:19,name:PrintableString}]
     ~[Suite 500]
   [tag:0x31:{len:36,class:0,constructed:1,number:17,name:SET}]
    [tag:0x30:{len:34,class:0,constructed:1,number:16,name:SEQUENCE}]
     [tag:0x06:{len:3,class:0,constructed:0,number:6,name:OID}]
     ~[2.5.4.9]
     [tag:0x13:{len:27,class:0,constructed:0,number:19,name:PrintableString}]
     ~[2600 West Executive Parkway]
   [tag:0x31:{len:14,class:0,constructed:1,number:17,name:SET}]
    [tag:0x30:{len:12,class:0,constructed:1,number:16,name:SEQUENCE}]
     [tag:0x06:{len:3,class:0,constructed:0,number:6,name:OID}]
     ~[2.5.4.17]
     [tag:0x13:{len:5,class:0,constructed:0,number:19,name:PrintableString}]
     ~[84043]
   [tag:0x31:{len:11,class:0,constructed:1,number:17,name:SET}]
    [tag:0x30:{len:9,class:0,constructed:1,number:16,name:SEQUENCE}]
     [tag:0x06:{len:3,class:0,constructed:0,number:6,name:OID}]
     ~[2.5.4.6]
     [tag:0x13:{len:2,class:0,constructed:0,number:19,name:PrintableString}]
     ~[US]
   [tag:0x31:{len:13,class:0,constructed:1,number:17,name:SET}]
    [tag:0x30:{len:11,class:0,constructed:1,number:16,name:SEQUENCE}]
     [tag:0x06:{len:3,class:0,constructed:0,number:6,name:OID}]
     ~[2.5.4.8]
     [tag:0x13:{len:4,class:0,constructed:0,number:19,name:PrintableString}]
     ~[Utah]
   [tag:0x31:{len:13,class:0,constructed:1,number:17,name:SET}]
    [tag:0x30:{len:11,class:0,constructed:1,number:16,name:SEQUENCE}]
     [tag:0x06:{len:3,class:0,constructed:0,number:6,name:OID}]
     ~[2.5.4.7]
     [tag:0x13:{len:4,class:0,constructed:0,number:19,name:PrintableString}]
     ~[Lehi]
   [tag:0x31:{len:23,class:0,constructed:1,number:17,name:SET}]
    [tag:0x30:{len:21,class:0,constructed:1,number:16,name:SEQUENCE}]
     [tag:0x06:{len:3,class:0,constructed:0,number:6,name:OID}]
     ~[2.5.4.10]
     [tag:0x13:{len:14,class:0,constructed:0,number:19,name:PrintableString}]
     ~[DigiCert, Inc.]
   [tag:0x31:{len:25,class:0,constructed:1,number:17,name:SET}]
    [tag:0x30:{len:23,class:0,constructed:1,number:16,name:SEQUENCE}]
     [tag:0x06:{len:3,class:0,constructed:0,number:6,name:OID}]
     ~[2.5.4.3]
     [tag:0x13:{len:16,class:0,constructed:0,number:19,name:PrintableString}]
     ~[www.digicert.com]
  [tag:0x30:{len:546,class:0,constructed:1,number:16,name:SEQUENCE}]
   [tag:0x30:{len:13,class:0,constructed:1,number:16,name:SEQUENCE}]
    [tag:0x06:{len:9,class:0,constructed:0,number:6,name:OID}]
    ~[1.2.840.113549.1.1.1]
    [tag:0x05:{len:0,class:0,constructed:0,number:5,name:NULL}]
    ~[]
   [tag:0x03:{len:527,class:0,constructed:0,number:3,name:BIT_STRING}]
   ~[003082020a0282020100b908398804728bc96af5eeb3f29fd18814b369e1a0064d00f7916340be42642f168398fe008640e371f815d75854da38f38976840dbf42ba89fe33222674314c8aca4f60c256e42d89e530514759970be26dcce6361134c5048eafdc28d2bbfbe6f5a1cb4b7ba94965a79d9a2077520c7ec145241c0694d64db0c92c251391f3f7717ac630c116bb803ea535f619481dc7ce579b73d170409407d7ff373086cb6b37a8f9c4b504b1769c4e46781f4ba390130c2e70359b54878999f9e5d31eef95a58617f929ad8c03ff9a7075af0dcdfbb39b7bd855705cba2099c47990920c6c6ef5168df21a8fb240b2e70e14cb5e8a5e6dc87a980fd216fb81cb69c2093cc8997fa41c75a49b37ffdbf5605e7038d456846ef973a143ef0f7ccd175dd41174b2dc887b32270d32268c4742d548cc15e8dbfd0812c1fd520aa77c1d383b169142b0627b88a6ee4bcaba4fcd48e7a6e33efdf24bba3ab1881d9f5c690ce88fafc742500005f3e841fe540f59db7e414f5cc0c1fa81da9c2fa1665ebdf7d9d51ca386489f46c8a89251459ad3285832cffd785cb6b038991976a1f05306214556c4622954c884588c757e9af2251315d5c3ccf8a531b725e93e508c7d4daf6128462c19c1b95f7d3eed5c1f699e5c9f563a95bdf1ee7a49452117b8f7d28eca22f0ecb401cb6b374b8e54b01ca99d892691ffb5b9d37cdbc07d1dd80c3bb5030203010001]
  [tag:0xa3:{len:999,class:2,constructed:1,number:3,name:CONTEXT_SPECIFIC}]
   [tag:0x30:{len:995,class:0,constructed:1,number:16,name:SEQUENCE}]
    [tag:0x30:{len:31,class:0,constructed:1,number:16,name:SEQUENCE}]
     [tag:0x06:{len:3,class:0,constructed:0,number:6,name:OID}]
     ~[2.5.29.35]
     [tag:0x04:{len:24,class:0,constructed:0,number:4,name:OCTET_STRING}]
     ~[301680143dd350a5d6a0adeef34a600a65d321d4f8f8d60f]
    [tag:0x30:{len:29,class:0,constructed:1,number:16,name:SEQUENCE}]
     [tag:0x06:{len:3,class:0,constructed:0,number:6,name:OID}]
     ~[2.5.29.14]
     [tag:0x04:{len:22,class:0,constructed:0,number:4,name:OCTET_STRING}]
     ~[0414b636e3ff6544f61cc8dcb7628182c354d6f7e11b]
    [tag:0x30:{len:145,class:0,constructed:1,number:16,name:SEQUENCE}]
     [tag:0x06:{len:3,class:0,constructed:0,number:6,name:OID}]
     ~[2.5.29.17]
     [tag:0x04:{len:137,class:0,constructed:0,number:4,name:OCTET_STRING}]
     ~[30818682107777772e64696769636572742e636f6d820c64696769636572742e636f6d8214636f6e74656e742e64696769636572742e636f6d82177777772e6f726967696e2e64696769636572742e636f6d82126c6f67696e2e64696769636572742e636f6d82106170692e64696769636572742e636f6d820f77732e64696769636572742e636f6d]
    [tag:0x30:{len:14,class:0,constructed:1,number:16,name:SEQUENCE}]
     [tag:0x06:{len:3,class:0,constructed:0,number:6,name:OID}]
     ~[2.5.29.15]
     [tag:0x01:{len:1,class:0,constructed:0,number:1,name:BOOLEAN}]
     ~[ff]
     [tag:0x04:{len:4,class:0,constructed:0,number:4,name:OCTET_STRING}]
     ~[030205a0]
    [tag:0x30:{len:29,class:0,constructed:1,number:16,name:SEQUENCE}]
     [tag:0x06:{len:3,class:0,constructed:0,number:6,name:OID}]
     ~[2.5.29.37]
     [tag:0x04:{len:22,class:0,constructed:0,number:4,name:OCTET_STRING}]
     ~[301406082b0601050507030106082b06010505070302]
    [tag:0x30:{len:117,class:0,constructed:1,number:16,name:SEQUENCE}]
     [tag:0x06:{len:3,class:0,constructed:0,number:6,name:OID}]
     ~[2.5.29.31]
     [tag:0x04:{len:110,class:0,constructed:0,number:4,name:OCTET_STRING}]
     ~[306c3034a032a030862e687474703a2f2f63726c332e64696769636572742e636f6d2f736861322d65762d7365727665722d67312e63726c3034a032a030862e687474703a2f2f63726c342e64696769636572742e636f6d2f736861322d65762d7365727665722d67312e63726c]
    [tag:0x30:{len:75,class:0,constructed:1,number:16,name:SEQUENCE}]
     [tag:0x06:{len:3,class:0,constructed:0,number:6,name:OID}]
     ~[2.5.29.32]
     [tag:0x04:{len:68,class:0,constructed:0,number:4,name:OCTET_STRING}]
     ~[3042303706096086480186fd6c0201302a302806082b06010505070201161c68747470733a2f2f7777772e64696769636572742e636f6d2f4350533007060567810c0101]
    [tag:0x30:{len:136,class:0,constructed:1,number:16,name:SEQUENCE}]
     [tag:0x06:{len:8,class:0,constructed:0,number:6,name:OID}]
     ~[1.3.6.1.5.5.7.1.1]
     [tag:0x04:{len:124,class:0,constructed:0,number:4,name:OCTET_STRING}]
     ~[307a302406082b060105050730018618687474703a2f2f6f6373702e64696769636572742e636f6d305206082b060105050730028646687474703a2f2f636163657274732e64696769636572742e636f6d2f446967694365727453484132457874656e64656456616c69646174696f6e53657276657243412e637274]
    [tag:0x30:{len:12,class:0,constructed:1,number:16,name:SEQUENCE}]
     [tag:0x06:{len:3,class:0,constructed:0,number:6,name:OID}]
     ~[2.5.29.19]
     [tag:0x01:{len:1,class:0,constructed:0,number:1,name:BOOLEAN}]
     ~[ff]
     [tag:0x04:{len:2,class:0,constructed:0,number:4,name:OCTET_STRING}]
     ~[3000]
    [tag:0x30:{len:383,class:0,constructed:1,number:16,name:SEQUENCE}]
     [tag:0x06:{len:10,class:0,constructed:0,number:6,name:OID}]
     ~[1.3.6.1.4.1.11129.2.4.2]
     [tag:0x04:{len:367,class:0,constructed:0,number:4,name:OCTET_STRING}]
     ~[0482016b0169007600a4b90990b418581487bb13a2cc67700a3c359804f91bdfb8e377cd0ec80ddc100000015411e0c0b80000040300473045022100cae040f71fca46c1819ee264e0e2e38e783de17a600ab8c12ad291641cc6bd610220424cebf54101da4e38c16b4a46591c07d7e7e71bb18ef353f6cecaf6a335309700760068f698f81f6482be3a8ceeb9281d4cfc71515d6793d444d10a67acbb4f4ffbc40000015411e0bfbd0000040300473045022045baf05b02469ff0dff1b50372d029ebec8b0cdf31783b816fe09addefacd6b80221008f06c53ceb26c89d04ea026c2ef510a957bcad54cb477a8b9ef38e6137e24e6c0077005614069a2fd7c2ecd3f5e1bd44b23ec74676b9bc99115cc0ef949855d689d0dd0000015411e0c12d0000040300483046022100a9533792bb1df3ce9e5f85a1cda2fae9a7fecffc49295f71f5913b44a7ea010e022100d3d9cdc8c9ca9715be7cc6ad8838293f04e7604772bf0a6f140f14f3874f15fa]
 [tag:0x30:{len:13,class:0,constructed:1,number:16,name:SEQUENCE}]
  [tag:0x06:{len:9,class:0,constructed:0,number:6,name:OID}]
  ~[1.2.840.113549.1.1.11]
  [tag:0x05:{len:0,class:0,constructed:0,number:5,name:NULL}]
  ~[]
 [tag:0x03:{len:257,class:0,constructed:0,number:3,name:BIT_STRING}]
 ~[00924652bf185ec264c0af7f739d994d0c628b03ddf72a8e6aabb2a6f045779530a1b66a3b4f305f57b55ec3d2475153473d0b1002d6c1c9bebdaa7ad040d1a20d52200fa9e5eed95988a66258947c62e062291c6ea1dd7847b927ae91454868d5f7086a0ddc41b927488985a98e2f1780cb1ead09570c0b1ef73631ebb2726edb5832b612b5f1724e287554cebabcfec50c495b2d06e10de1dc19432d4311eab139d0671d28e2459b8bdd0c410c97bc599be75567919019f2b1394505f741343c86c8be70901922f0216761b595b509fcf17b464661a3dc3184dde5fae52e98f5914e7e1efb3cb23c272c7e7b63ae9ef13f5bc55591d1c8c124ee86fcb65a7561]

About

go/golang asn1 x509 cert parser

License:MIT License


Languages

Language:Go 100.0%