úÎ2\,¾`      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ unknown experimental#Vincent Hanquez <vincent@snarc.org> Safe-Inferedunknown experimental#Vincent Hanquez <vincent@snarc.org> Safe-Infered     unknown experimental#Vincent Hanquez <vincent@snarc.org> Safe-Infered    None `abcdefghij `abcdefghij `abcdefghijunknown experimental#Vincent Hanquez <vincent@snarc.org> Safe-Inferedknown X509v3 extensions ?key usage flag that is found in the key usage extension field. #<try decoding a certificateExt tuple into a known extension.  !"# !"#"! # ! "# Safe-Infered&Certificate Version 'Certificate Serial number ( Certificate Signature algorithm )Certificate Issuer DN *Certificate Subject DN +Certificate Validity period ,Certificate Public key -Certificate Extensions 7unrecognized format 8 ECDSA format not done yet FIXME 9,DH format with (p,g,q,j,(seed,pgenCounter)) :DSA public key ;RSA public key SKparse 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:;<=>?@ABCDEFGHIJKLMNOPQRST2"$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRST2<>=ELKJIHGF?DCBA@6;:987/543210."$%&'()*+,-MPONQRST$ %&'()*+,-./5432106;:987<>=?DCBA@ELKJIHGFMNOPQRSTunknown experimental#Vincent Hanquez <vincent@snarc.org> Safe-InferedW)the certificate part of a X509 structure X?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. Y5a cache of the raw representation of the whole x509. Zthe signature algorithm used. [the signature. \,get signing data related to a X509 message, ? - which is either the cached data or the encoded certificate ]!decode an X509 from a bytestring # - the structure is the following:  - Certificate % - Certificate Signature Algorithm  - Certificate Signature ^+encode a X509 certificate to a bytestring UVWXYZ[\]^kD !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLUVWXYZ[\]^DUVWXYZ[<>=ELKJIHGF?DCBA@6;:987/543210.$%&'()*+,-"! #\]^UVWXYZ[\]^k  unix only experimental#Vincent Hanquez <vincent@snarc.org> Safe-Inferedlm_lm_lm_good experimental#Vincent Hanquez <vincent@snarc.org> Safe-Infered__n        !"#$%&'()*++,-./0123456789:;<=>?@ABCBDEFGHIJKLMNOPQRSTUVWXYZZ[\]^_`ab cdefghijklmno p qrcertificate-1.0.1Data.Certificate.KeyRSAData.Certificate.KeyDSAData.Certificate.PEMData.Certificate.X509.ExtData.Certificate.X509.CertData.Certificate.X509System.Certificate.X509Data.Certificate.X509.InternalSystem.Certificate.X509.Unix decodePrivate encodePrivatePrivateversionprivpubpqg parsePEMsfindPEM parsePEMCertparsePEMCertReqparsePEMKeyRSAparsePEMKeyDSA parsePEMKeyExtExtAuthorityKeyIdExtSubjectKeyId ExtKeyUsageExtBasicConstraintsExtKeyUsageFlagKeyUsage_decipherOnlyKeyUsage_encipherOnlyKeyUsage_cRLSignKeyUsage_keyCertSignKeyUsage_keyAgreementKeyUsage_dataEnciphermentKeyUsage_keyEnciphermentKeyUsage_nonRepudiationKeyUsage_digitalSignatureCertificateExt extDecode 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$fEqX509 getSystemPathreadAll