úÎ0%*‡]      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\ unknown experimental#Vincent Hanquez <vincent@snarc.org> Safe-Inferedunknown experimental#Vincent Hanquez <vincent@snarc.org> Safe-InferedNone ]^_`abcdefg ]^_`abcdefg ]^_`abcdefgunknown experimental#Vincent Hanquez <vincent@snarc.org> Safe-Infered?key usage flag that is found in the key usage extension field.  hijkl       hijkl 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 OPQRSTUVWXmM  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFOPQRSTUVWX3OPQRSTU687?FEDCBA@9>=<;:054321)/.-,+*( !"#$%&'VWXOPQRSTUVWXm unix only experimental#Vincent Hanquez <vincent@snarc.org> Safe-InferedYZ[YZ[YZ[YZ[ good experimental#Vincent Hanquez <vincent@snarc.org> Safe-Infered[[ Safe-Infered\\\\n         !!"#$%&'()*+,-./01234567898:;<=>?@ABCDEFGHIJKLMNOPPQRSTUVWXYZ[[\]^_`abcdefghijklmcertificate-1.2.2Data.Certificate.KeyRSAData.Certificate.KeyDSAData.Certificate.X509.ExtData.Certificate.X509.CertData.Certificate.X509System.Certificate.X509.UnixSystem.Certificate.X509.MacOSData.Certificate.X509.InternalSystem.Certificate.X509 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 x509SignaturegetSigningDatadecodeCertificateencodeCertificate getSystemPathreadAllfindCertificate ParseASN1OID runParseASN1getNextgetNextContaineronNextContainergetNextContainerMaybeonNextContainerMaybehasNext asn1ContainermakeASN1Sequence$fExtensionExtAuthorityKeyId$fExtensionExtSubjectAltName$fExtensionExtSubjectKeyId$fExtensionExtKeyUsage$fExtensionExtBasicConstraints$fEqX509