Ñò ñ1Mc @s|dZddkZddkZddkZddkZddkZddkZeiZeiZei Z ei Z ei Z ei Z ei Z eiZeiZeiZeiZeiZeiZdefd„ƒYZeieƒddd„ƒYZd„Zd„Zd „Zd „Zd dd „ƒYZd efd„ƒYZeieƒddd„ƒYZd„Z d„Z!dS(sfM2Crypto wrapper for OpenSSL S/MIME API. Copyright (c) 1999-2003 Ng Pheng Siong. All rights reserved.iÿÿÿÿNt PKCS7_ErrorcBseZRS((t__name__t __module__(((s4/usr/lib/python2.6/vendor-packages/M2Crypto/SMIME.pyRstPKCS7cBs\eZeiZddd„Zd„Zd„Zdd„Z d„Z d„Z dd„Z RS( icCs?|dj o||_||_ntiƒ|_d|_dS(Ni(tNonetpkcs7t_pyfreetm2t pkcs7_new(tselfRR((s4/usr/lib/python2.6/vendor-packages/M2Crypto/SMIME.pyt__init__s    cCs+t|ddƒo|i|iƒndS(NRi(tgetattrt m2_pkcs7_freeR(R ((s4/usr/lib/python2.6/vendor-packages/M2Crypto/SMIME.pyt__del__'scCs|iS(N(R(R ((s4/usr/lib/python2.6/vendor-packages/M2Crypto/SMIME.pyt_ptr+scCs,|oti|iƒSti|iƒSdS(N(Rt pkcs7_type_snRtpkcs7_type_nid(R t text_name((s4/usr/lib/python2.6/vendor-packages/M2Crypto/SMIME.pyttype.scCsti|i|iƒƒS(N(Rtpkcs7_write_bioRR(R tbio((s4/usr/lib/python2.6/vendor-packages/M2Crypto/SMIME.pytwrite4scCsti|i|iƒƒS(N(Rtpkcs7_write_bio_derRR(R R((s4/usr/lib/python2.6/vendor-packages/M2Crypto/SMIME.pyt write_der7scCs%titi|i|i|ƒdƒS(Ni(tX509t X509_StackRtpkcs7_get0_signersRtstack(R tcertstflags((s4/usr/lib/python2.6/vendor-packages/M2Crypto/SMIME.pyt get0_signers:sN( RRRt pkcs7_freeR RR R RRRRR(((s4/usr/lib/python2.6/vendor-packages/M2Crypto/SMIME.pyRs      cCsŒti|dƒ}|djotitiƒƒ‚nzti|ƒ}Wdti|ƒX|djot tiƒƒ‚nt |dƒS(Ntri( Rt bio_new_fileRtBIOtBIOErrortErrt get_errortpkcs7_read_biotbio_freeRR(tp7fileRtp7_ptr((s4/usr/lib/python2.6/vendor-packages/M2Crypto/SMIME.pyt load_pkcs7?s  cCsEti|iƒƒ}|djottiƒƒ‚nt|dƒS(Ni(RR&RRRR$R%R(tp7_bioR)((s4/usr/lib/python2.6/vendor-packages/M2Crypto/SMIME.pytload_pkcs7_bioNs cCsÉti|dƒ}|djotitiƒƒ‚nzti|ƒ\}}Wdti|ƒX|djot tiƒƒ‚n|djot |dƒdfSt |dƒti|dƒfSdS(NR i( RR!RR"R#R$R%tsmime_read_pkcs7R't SMIME_ErrorR(R(RR)tbio_ptr((s4/usr/lib/python2.6/vendor-packages/M2Crypto/SMIME.pytsmime_load_pkcs7Us   cCs‚ti|iƒƒ\}}|djottiƒƒ‚n|djot|dƒdfSt|dƒti|dƒfSdS(Ni( RR-RRR.R$R%RR"(R+R)R/((s4/usr/lib/python2.6/vendor-packages/M2Crypto/SMIME.pytsmime_load_pkcs7_biogs   tCiphercBs eZdZd„Zd„ZRS(sW Object interface to EVP_CIPHER without all the frills of M2Crypto.EVP.Cipher. cCsBtt|dƒ}|djotd|f‚n|ƒ|_dS(Nsunknown cipher(R RRt ValueErrortcipher(R talgoR4((s4/usr/lib/python2.6/vendor-packages/M2Crypto/SMIME.pyR ws cCs|iS(N(R4(R ((s4/usr/lib/python2.6/vendor-packages/M2Crypto/SMIME.pyR}s(RRt__doc__R R(((s4/usr/lib/python2.6/vendor-packages/M2Crypto/SMIME.pyR2qs R.cBseZRS((RR(((s4/usr/lib/python2.6/vendor-packages/M2Crypto/SMIME.pyR.stSMIMEcBs­eZdeid„Zdeid„Zd„Zd„Zd„Z d„Z d„Z d„Z d„Z d d „Zd d „Zd d „Zdd d „Zdd d„ZRS(cCsB|djo |}nti||ƒ|_ti|ƒ|_dS(N(RtEVPtload_keytpkeyRt load_certtx509(R tkeyfiletcertfiletcallback((s4/usr/lib/python2.6/vendor-packages/M2Crypto/SMIME.pyR9†s  cCsB|djo |}nti||ƒ|_ti|ƒ|_dS(N(RR8t load_key_bioR:Rt load_cert_bioR<(R tkeybiotcertbioR?((s4/usr/lib/python2.6/vendor-packages/M2Crypto/SMIME.pyR@Œs  cCs't|tiƒpt‚||_dS(N(t isinstanceRRtAssertionErrort x509_stack(R R((s4/usr/lib/python2.6/vendor-packages/M2Crypto/SMIME.pytset_x509_stack’scCs't|tiƒpt‚||_dS(N(RDRt X509_StoreREt x509_store(R tstore((s4/usr/lib/python2.6/vendor-packages/M2Crypto/SMIME.pytset_x509_store–scCs$t|tƒpt‚||_dS(N(RDR2RER4(R R4((s4/usr/lib/python2.6/vendor-packages/M2Crypto/SMIME.pyt set_cipheršscCs|`|`dS(N(R:R<(R ((s4/usr/lib/python2.6/vendor-packages/M2Crypto/SMIME.pyt unset_keyžscCs |`dS(N(RF(R ((s4/usr/lib/python2.6/vendor-packages/M2Crypto/SMIME.pytunset_x509_stack¢scCs |`dS(N(RI(R ((s4/usr/lib/python2.6/vendor-packages/M2Crypto/SMIME.pytunset_x509_store¥scCs |`dS(N(R4(R ((s4/usr/lib/python2.6/vendor-packages/M2Crypto/SMIME.pyt unset_cipher¨sicCsšt|dƒp td‚nt|dƒp td‚nti|iiƒ|iƒ|iiƒ|ƒ}|djotti ƒƒ‚nt |dƒS(NR4sno cipher: use set_cipher()RFs(no recipient certs: use set_x509_stack()i( thasattrR.Rt pkcs7_encryptRFRR4RR$R%R(R tdata_bioRR((s4/usr/lib/python2.6/vendor-packages/M2Crypto/SMIME.pytencrypt«s  0 cCs‘t|dƒp td‚nt|dƒp td‚nti|iƒ|iiƒ|iiƒ|ƒ}|djotti ƒƒ‚n|S(NR:sno private key: use load_key()R<s,no certificate: load_key() used incorrectly?( RQR.Rt pkcs7_decryptRR:R<RR$R%(R RRtblob((s4/usr/lib/python2.6/vendor-packages/M2Crypto/SMIME.pytdecryptµs  0 cCsþt|dƒp td‚nt|dƒomti|iiƒ|iiƒ|iiƒ|iƒ|ƒ}|djott i ƒƒ‚nt |dƒSti |iiƒ|iiƒ|iƒ|ƒ}|djott i ƒƒ‚nt |dƒSdS(NR:sno private key: use load_key()RFi( RQR.Rt pkcs7_sign1R<RR:RFRR$R%Rt pkcs7_sign0(R RSRR((s4/usr/lib/python2.6/vendor-packages/M2Crypto/SMIME.pytsign¿s   cCsõt|dƒp td‚nt|dƒp td‚nt|tƒp td‚|iƒ}|djo.ti||i iƒ|i iƒ|ƒ}n4ti ||i iƒ|i iƒ|iƒ|ƒ}|djott i ƒƒ‚n|S(NRFs%no signer certs: use set_x509_stack()RIs(no x509 cert store: use set_x509_store()spkcs7 not an instance of PKCS7(RQR.RDRRERRRt pkcs7_verify0RFRIt pkcs7_verify1R$R%(R RRSRtp7RV((s4/usr/lib/python2.6/vendor-packages/M2Crypto/SMIME.pytverifyÏs    .3 cCspt|tƒpt‚|djo ti|iƒ|iƒ|ƒSti|iƒ|iƒ|iƒ|ƒSdS(N(RDRRERRtsmime_write_pkcs7Rtsmime_write_pkcs7_multi(R tout_bioRRSR((s4/usr/lib/python2.6/vendor-packages/M2Crypto/SMIME.pyRÞs  N(RRRtutiltpassphrase_callbackR9R@RGRKRLRMRNRORPRTRWRZR^R(((s4/usr/lib/python2.6/vendor-packages/M2Crypto/SMIME.pyR7…s        cCs[ti|ƒ}tiƒ}ti|iƒ|iƒƒo |iƒSttiƒƒ‚dS(N( R"t MemoryBufferRtsmime_crlf_copyRtreadR.R$R%(ttexttbio_intbio_out((s4/usr/lib/python2.6/vendor-packages/M2Crypto/SMIME.pyt text_crlfæs   cCsFtiƒ}ti|iƒ|iƒƒo|Sttiƒƒ‚dS(N(R"RdRReRR.R$R%(RhRi((s4/usr/lib/python2.6/vendor-packages/M2Crypto/SMIME.pyt text_crlf_bioïs (((("R6R"R8RR$RbRt PKCS7_TEXTt PKCS7_NOCERTSt PKCS7_NOSIGSt PKCS7_NOCHAINtPKCS7_NOINTERNtPKCS7_NOVERIFYtPKCS7_DETACHEDt PKCS7_BINARYt PKCS7_NOATTRt PKCS7_SIGNEDtPKCS7_ENVELOPEDtPKCS7_SIGNED_ENVELOPEDt PKCS7_DATAt ExceptionRt pkcs7_initRR*R,R0R1R2R.t smime_initR7RjRk(((s4/usr/lib/python2.6/vendor-packages/M2Crypto/SMIME.pyts8<               $     a