1* [      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ unknown experimental#Vincent Hanquez <vincent@snarc.org>[unknown experimental#Vincent Hanquez <vincent@snarc.org>  \     unknown experimental#Vincent Hanquez <vincent@snarc.org> ]^_`     abcdefghijklm adefghijklm adefghijklmunknown experimental#Vincent Hanquez <vincent@snarc.org>known X509v3 extensions ?key usage flag that is found in the key usage extension field.  !"nopqrst#<try decoding a certificateExt tuple into a known extension.  !"#"! # !  !"#O$%&Certificate Version 'Certificate Serial number ( Certificate Signature algorithm )Certificate Issuer DN *Certificate Subject DN +Certificate Validity period ,Certificate Public key -Certificate Extensions ./012345uvwxyz{|}~67unrecognized format 8 ECDSA format not done yet FIXME 9,DH format with (p,g,q,j,(seed,pgenCounter)) :DSA public key ;RSA public key <=>?@ABCDEFGHIJKLMNOP,parse a RSA pubkeys from ASN1 encoded bits. = - return PubKeyRSA (len-modulus, modulus, e) if successful QRSKparse 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) T2"$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRST2<>=ELKJIHGF?DCBA@6;:987/543210."$%&'()*+,-MPONQRST1$ %&'()*+,-%&'()*+,-./5432100123456;:987789:;<>==>?DCBA@@ABCDELKJIHGFFGHIJKLMNOPQRSTunknown experimental#Vincent Hanquez <vincent@snarc.org>UVW,get signing data related to a X509 message, ? - which is either the cached data or the encoded certificate X!decode an X509 from a bytestring # - the structure is the following:  - Certificate % - Certificate Signature Algorithm  - Certificate Signature Y+encode a X509 certificate to a bytestring ? !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLUVWXY?UV<>=ELKJIHGF?DCBA@6;:987/543210.$%&'()*+,-"! #WXYUVVWXY  unix only experimental#Vincent Hanquez <vincent@snarc.org> ZZZgood experimental#Vincent Hanquez <vincent@snarc.org>ZZ        !"#$%&'()*++,-./0123456789:;<=>?@ABCBDEFGHIJKLMNOPQRSTUVWXYZZ[\] ^__`abcdefghijklmnopqrstuvwxyz{|}~    certificate-1.0.0Data.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 oidCountryoidOrganizationoidOrganizationUnitoidSigsigOIDparseCertificateencodeCertificateHeaderX509getSigningDatadecodeCertificateencodeCertificatefindCertificate parsePrivatePEM takeTillEndfindSectionNameparsePEMSections ParseASN1PrunPOID runParseASN1getNextgetNextContaineronNextContainergetNextContainerMaybeonNextContainerMaybehasNext asn1ContainermakeASN1SequenceoidSubjectKeyId oidKeyUsageoidBasicConstraintsoidDistributionPoints oidPoliciesoidPoliciesMappingoidAuthorityKeyId CertKeyUsageCertKeyUsageDecipherOnlyCertKeyUsageEncipherOnlyCertKeyUsageCRLSignCertKeyUsageKeyCertSignCertKeyUsageKeyAgreementCertKeyUsageDataEnciphermentCertKeyUsageKeyEnciphermentCertKeyUsageNonRepudiationCertKeyUsageDigitalSignatureTime parse_RSA parse_ECDSAparseCertHeaderVersionparseCertHeaderSerial sig_tablepk_table oidPubKey pubkeyalgOID pubkeyToAlgparseCertHeaderAlgorithmID asn1StringencodeAsn1StringparseCertHeaderDNparseCertHeaderValidityparseCertHeaderSubjectPKparseCertExtensionsencodeDNencodePK encodeExtsReadErr CertError ExceptiondefaultSystemPathenvPathOverride getSystemPathreadCertificatereadAll