úÎ!>@      !"#$%&'()*+,-./0123456789:;<=>?unknown experimental#Vincent Hanquez <vincent@snarc.org> @      unknown experimental#Vincent Hanquez <vincent@snarc.org> ABCDEunknown experimental#Vincent Hanquez <vincent@snarc.org>_FGHCertificate Version Certificate Serial number  Certificate Signature algorithm Certificate Issuer DN Certificate Subject DN Certificate Validity period Certificate Public key Certificate Extensions .Certificate Signature Algorithm and Signature any others fields not parsed !"#$%&IJKLMNOPQRSTUVWXYZ'()*unrecognized format + ECDSA format not done yet FIXME ,DSA format with (pub, p, q, g) -*RSA format with (len modulus, modulus, e) ./0123456789[:;<=\,parse a RSA pubkeys from ASN1 encoded bits. = - return PubKeyRSA (len-modulus, modulus, e) if successful ]^_`abcdefghijklmnopqrst:parse header structure of a x509 certificate. it contains G - the version, the serial number, the issuer DN, the validity period, ( - the subject DN, and the public keys uUparse root structure of a x509 certificate. this has to be a sequence of 3 objects :  - * the header  - * the signature algorithm  - * the signature >-decode a X509 certificate from a bytestring vwx?+encode a X509 certificate to a bytestring , !"#$%&'()*+,-./0123456789:;<=>?,3987654.210/)-,+*'(!&%$#" :;<=>?,  !&%$#""#$%&'(()-,+**+,-.210//0123987654456789:;<=>?y      !"#$%&'())*+,-./0123456789:;<=>?@ABCDEFGHIJJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxycertificate-0.4.0Data.Certificate.KeyData.Certificate.PEMData.Certificate.X509 PrivateKeyprivKey_versionprivKey_lenmodulusprivKey_modulusprivKey_public_exponantprivKey_private_exponant privKey_p1 privKey_p2 privKey_exp1 privKey_exp2 privKey_coefdecodePrivateKeyencodePrivateKey parsePEMs parsePEMCertparsePEMCertReqparsePEMKeyRSAparsePEMKeyDSA parsePEMKey Certificate certVersion certSerialcertSignatureAlg certIssuerDN certSubjectDN certValidity certPubKeycertExtensions certSignature certOthers ASN1StringASN1StringTypeIA5BMPUniv PrintableUTF8PubKey PubKeyDesc PubKeyUnknown PubKeyECDSA PubKeyDSA PubKeyRSA PubKeyALGPubKeyALG_UnknownPubKeyALG_ECDSA PubKeyALG_DSA PubKeyALG_RSA SignatureALGSignatureALG_UnknownSignatureALG_ecdsaWithSHA384SignatureALG_dsaWithSHA1"SignatureALG_sha1WithRSAEncryption!SignatureALG_md2WithRSAEncryption!SignatureALG_md5WithRSAEncryption oidCommonName oidCountryoidOrganizationoidOrganizationUnitdecodeCertificateencodeCertificateparsePrivateKeyPEM takeTillEndfindSectionNameparsePEMSectionsfindPEM ParseCertPrunPCertificateExtscertExtKeyUsagecertExtBasicConstraintscertExtSubjectKeyIdentifiercertExtPolicies certExtOthers CertKeyUsageCertKeyUsageDecipherOnlyCertKeyUsageEncipherOnlyCertKeyUsageCRLSignCertKeyUsageKeyCertSignCertKeyUsageKeyAgreementCertKeyUsageDataEnciphermentCertKeyUsageKeyEnciphermentCertKeyUsageNonRepudiationCertKeyUsageDigitalSignatureTimeOID parse_RSA parse_ECDSA runParseCertgetNext getRemaininghasNextlookNextparseCertHeaderVersionparseCertHeaderSerial sig_tablepk_tableoidSig oidPubKeysigOID pubkeyalgOIDparseCertHeaderAlgorithmID asn1StringencodeAsn1StringparseCertHeaderDNparseCertHeaderValidity matchPubKeyparseCertHeaderSubjectPKparseCertExtensionHelperparseCertExtensionsparseCertificateprocessCertificateencodeDNencodePKencodeCertificateHeader