úÎ/“*Z      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYunknown experimental#Vincent Hanquez <vincent@snarc.org> Safe-Inferedunknown experimental#Vincent Hanquez <vincent@snarc.org> Safe-InferedNone Z[\]^_`abcd Z[\]^_`abcd Z[\]^_`abcdunknown experimental#Vincent Hanquez <vincent@snarc.org> Safe-Infered?key usage flag that is found in the key usage extension field.  efghi       efghi Safe-Infered Certificate Version !Certificate Serial number " Certificate Signature algorithm #Certificate Issuer DN $Certificate Subject DN %Certificate Validity period &Certificate Public key 'Certificate Extensions 1unrecognized format 2 ECDSA format not done yet FIXME 3,DH format with (p,g,q,j,(seed,pgenCounter)) 4DSA public key 5RSA public key MKparse header structure of a x509 certificate. the structure the following:  Version  Serial Number  Algorithm ID  Issuer  Validity  Not Before  Not After  Subject  Subject Public Key Info  Public Key Algorithm  Subject Public Key - Issuer Unique Identifier (Optional) (>= 2) - Subject Unique Identifier (Optional) (>= 2) ! Extensions (Optional) (>= v3) 1 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNK  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN1687?FEDCBA@9>=<;:054321)/.-,+*( !"#$%&'GJIHKLMN  !"#$%&'()/.-,+*0543216879>=<;:?FEDCBA@GHIJKLMNunknown experimental#Vincent Hanquez <vincent@snarc.org> Safe-InferedQ)the certificate part of a X509 structure R?a cache of the raw representation of the x509 part for signing I since encoding+decoding might not result in the same data being signed. S5a cache of the raw representation of the whole x509. Tthe signature algorithm used. Uthe signature. V,get signing data related to a X509 message, ? - which is either the cached data or the encoded certificate W!decode an X509 from a bytestring # - the structure is the following:  - Certificate % - Certificate Signature Algorithm  - Certificate Signature X+encode a X509 certificate to a bytestring OPQRSTUVWXjM  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFOPQRSTUVWX3OPQRSTU687?FEDCBA@9>=<;:054321)/.-,+*( !"#$%&'VWXOPQRSTUVWXj unix only experimental#Vincent Hanquez <vincent@snarc.org> Safe-InferedklYklYklYgood experimental#Vincent Hanquez <vincent@snarc.org> Safe-InferedYYm            !"#$%&'()*+,-./01234567879:;<=>?@ABCDEFGHIJKLMNOOPQRSTUVWXYZ[\]^_`abcdefghijklcertificate-1.2.0Data.Certificate.KeyRSAData.Certificate.KeyDSAData.Certificate.X509.ExtData.Certificate.X509.CertData.Certificate.X509System.Certificate.X509Data.Certificate.X509.InternalSystem.Certificate.X509.Unix decodePrivate encodePrivateExtAuthorityKeyIdExtSubjectAltNameExtSubjectKeyId ExtKeyUsageExtBasicConstraints ExtensionextOID extEncode extDecodeExtKeyUsageFlagKeyUsage_decipherOnlyKeyUsage_encipherOnlyKeyUsage_cRLSignKeyUsage_keyCertSignKeyUsage_keyAgreementKeyUsage_dataEnciphermentKeyUsage_keyEnciphermentKeyUsage_nonRepudiationKeyUsage_digitalSignature ExtensionRaw extensionGet Certificate certVersion certSerialcertSignatureAlg certIssuerDN certSubjectDN certValidity certPubKeycertExtensions ASN1StringASN1StringTypeT61IA5BMPUniv PrintableUTF8PubKey PubKeyUnknown PubKeyECDSAPubKeyDH PubKeyDSA PubKeyRSA SignatureALGSignatureALG_Unknown PubKeyALGPubKeyALG_Unknown PubKeyALG_DHPubKeyALG_ECDSA PubKeyALG_DSA PubKeyALG_RSAHashALG HashSHA512 HashSHA384 HashSHA256 HashSHA224HashSHA1HashMD5HashMD2 oidCommonName oidCountryoidOrganizationoidOrganizationUnitoidSigsigOIDparseCertificateencodeCertificateHeaderX509x509Certx509CachedSigningDatax509CachedDatax509SignatureALG x509SignaturegetSigningDatadecodeCertificateencodeCertificatefindCertificate ParseASN1OID runParseASN1getNextgetNextContaineronNextContainergetNextContainerMaybeonNextContainerMaybehasNext asn1ContainermakeASN1Sequence$fExtensionExtAuthorityKeyId$fExtensionExtSubjectAltName$fExtensionExtSubjectKeyId$fExtensionExtKeyUsage$fExtensionExtBasicConstraints$fEqX509 getSystemPathreadAll