ó ñ1Mc@s|dZddlZddlZddlZddlZddlZddlZejZejZej Z ej Z ej Z ej Z ej Z ejZejZejZejZejZejZdefd„ƒYZejeƒddd„ƒYZd„Zd„Zd „Zd „Zd dd „ƒYZd efd„ƒYZejeƒ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.7/vendor-packages/M2Crypto/SMIME.pyRstPKCS7cBs\eZejZddd„Zd„Zd„Zdd„Z d„Z d„Z dd„Z RS( icCs=|dk r!||_||_ntjƒ|_d|_dS(Ni(tNonetpkcs7t_pyfreetm2t pkcs7_new(tselfRR((s4/usr/lib/python2.7/vendor-packages/M2Crypto/SMIME.pyt__init__s    cCs)t|ddƒr%|j|jƒndS(NRi(tgetattrt m2_pkcs7_freeR(R ((s4/usr/lib/python2.7/vendor-packages/M2Crypto/SMIME.pyt__del__'scCs|jS(N(R(R ((s4/usr/lib/python2.7/vendor-packages/M2Crypto/SMIME.pyt_ptr+scCs*|rtj|jƒStj|jƒSdS(N(Rt pkcs7_type_snRtpkcs7_type_nid(R t text_name((s4/usr/lib/python2.7/vendor-packages/M2Crypto/SMIME.pyttype.scCstj|j|jƒƒS(N(Rtpkcs7_write_bioRR(R tbio((s4/usr/lib/python2.7/vendor-packages/M2Crypto/SMIME.pytwrite4scCstj|j|jƒƒS(N(Rtpkcs7_write_bio_derRR(R R((s4/usr/lib/python2.7/vendor-packages/M2Crypto/SMIME.pyt write_der7scCs%tjtj|j|j|ƒdƒS(Ni(tX509t X509_StackRtpkcs7_get0_signersRtstack(R tcertstflags((s4/usr/lib/python2.7/vendor-packages/M2Crypto/SMIME.pyt get0_signers:sN( RRRt pkcs7_freeR RR R RRRRR(((s4/usr/lib/python2.7/vendor-packages/M2Crypto/SMIME.pyRs      cCsˆtj|dƒ}|dkr6tjtjƒƒ‚nztj|ƒ}Wdtj|ƒX|dkr{t tjƒƒ‚nt |dƒS(Ntri( Rt bio_new_fileRtBIOtBIOErrortErrt get_errortpkcs7_read_biotbio_freeRR(tp7fileRtp7_ptr((s4/usr/lib/python2.7/vendor-packages/M2Crypto/SMIME.pyt load_pkcs7?s  cCsCtj|jƒƒ}|dkr6ttjƒƒ‚nt|dƒS(Ni(RR&RRRR$R%R(tp7_bioR)((s4/usr/lib/python2.7/vendor-packages/M2Crypto/SMIME.pytload_pkcs7_bioNs cCsÃtj|dƒ}|dkr6tjtjƒƒ‚nztj|ƒ\}}Wdtj|ƒX|dkrt tjƒƒ‚n|dkr t |dƒdfSt |dƒtj|dƒfSdS(NR i( RR!RR"R#R$R%tsmime_read_pkcs7R't SMIME_ErrorR(R(RR)tbio_ptr((s4/usr/lib/python2.7/vendor-packages/M2Crypto/SMIME.pytsmime_load_pkcs7Us   cCs~tj|jƒƒ\}}|dkr<ttjƒƒ‚n|dkr[t|dƒdfSt|dƒtj|dƒfSdS(Ni( RR-RRR.R$R%RR"(R+R)R/((s4/usr/lib/python2.7/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. cCs@tt|dƒ}|dkr0td|f‚n|ƒ|_dS(Nsunknown cipher(R RRt ValueErrortcipher(R talgoR4((s4/usr/lib/python2.7/vendor-packages/M2Crypto/SMIME.pyR ws cCs|jS(N(R4(R ((s4/usr/lib/python2.7/vendor-packages/M2Crypto/SMIME.pyR}s(RRt__doc__R R(((s4/usr/lib/python2.7/vendor-packages/M2Crypto/SMIME.pyR2qs R.cBseZRS((RR(((s4/usr/lib/python2.7/vendor-packages/M2Crypto/SMIME.pyR.stSMIMEcBs­eZdejd„Zdejd„Zd„Zd„Zd„Z d„Z d„Z d„Z d„Z d d „Zd d „Zd d „Zdd d „Zdd d„ZRS(cCs@|dkr|}ntj||ƒ|_tj|ƒ|_dS(N(RtEVPtload_keytpkeyRt load_certtx509(R tkeyfiletcertfiletcallback((s4/usr/lib/python2.7/vendor-packages/M2Crypto/SMIME.pyR9†s  cCs@|dkr|}ntj||ƒ|_tj|ƒ|_dS(N(RR8t load_key_bioR:Rt load_cert_bioR<(R tkeybiotcertbioR?((s4/usr/lib/python2.7/vendor-packages/M2Crypto/SMIME.pyR@Œs  cCs%t|tjƒst‚||_dS(N(t isinstanceRRtAssertionErrort x509_stack(R R((s4/usr/lib/python2.7/vendor-packages/M2Crypto/SMIME.pytset_x509_stack’scCs%t|tjƒst‚||_dS(N(RDRt X509_StoreREt x509_store(R tstore((s4/usr/lib/python2.7/vendor-packages/M2Crypto/SMIME.pytset_x509_store–scCs"t|tƒst‚||_dS(N(RDR2RER4(R R4((s4/usr/lib/python2.7/vendor-packages/M2Crypto/SMIME.pyt set_cipheršscCs|`|`dS(N(R:R<(R ((s4/usr/lib/python2.7/vendor-packages/M2Crypto/SMIME.pyt unset_keyžscCs |`dS(N(RF(R ((s4/usr/lib/python2.7/vendor-packages/M2Crypto/SMIME.pytunset_x509_stack¢scCs |`dS(N(RI(R ((s4/usr/lib/python2.7/vendor-packages/M2Crypto/SMIME.pytunset_x509_store¥scCs |`dS(N(R4(R ((s4/usr/lib/python2.7/vendor-packages/M2Crypto/SMIME.pyt unset_cipher¨sicCs”t|dƒstd‚nt|dƒs6td‚ntj|jjƒ|jƒ|jjƒ|ƒ}|dkr‡ttj ƒƒ‚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.7/vendor-packages/M2Crypto/SMIME.pytencrypt«s  0 cCs‹t|dƒstd‚nt|dƒs6td‚ntj|jƒ|jjƒ|jjƒ|ƒ}|dkr‡ttj ƒƒ‚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.7/vendor-packages/M2Crypto/SMIME.pytdecryptµs  0 cCsöt|dƒstd‚nt|dƒr”tj|jjƒ|jjƒ|jjƒ|jƒ|ƒ}|dkr‡tt j ƒƒ‚nt |dƒStj |jjƒ|jjƒ|jƒ|ƒ}|dkrått j ƒƒ‚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.7/vendor-packages/M2Crypto/SMIME.pytsign¿s    cCsît|dƒstd‚nt|dƒs6td‚nt|tƒsQtdƒ‚|jƒ}|dkr–tj||j jƒ|j jƒ|ƒ}n3tj ||j jƒ|j jƒ|jƒ|ƒ}|dkrêtt j ƒƒ‚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.7/vendor-packages/M2Crypto/SMIME.pytverifyÏs    -3 cCslt|tƒst‚|dkr@tj|jƒ|jƒ|ƒStj|jƒ|jƒ|jƒ|ƒSdS(N(RDRRERRtsmime_write_pkcs7Rtsmime_write_pkcs7_multi(R tout_bioRRSR((s4/usr/lib/python2.7/vendor-packages/M2Crypto/SMIME.pyRÞs N(RRRtutiltpassphrase_callbackR9R@RGRKRLRMRNRORPRTRWRZR^R(((s4/usr/lib/python2.7/vendor-packages/M2Crypto/SMIME.pyR7…s        cCsYtj|ƒ}tjƒ}tj|jƒ|jƒƒrC|jƒSttjƒƒ‚dS(N( R"t MemoryBufferRtsmime_crlf_copyRtreadR.R$R%(ttexttbio_intbio_out((s4/usr/lib/python2.7/vendor-packages/M2Crypto/SMIME.pyt text_crlfæs   cCsDtjƒ}tj|jƒ|jƒƒr.|Sttjƒƒ‚dS(N(R"RdRReRR.R$R%(RhRi((s4/usr/lib/python2.7/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.7/vendor-packages/M2Crypto/SMIME.pyts8<               $     a