1Mc@s|dZddlZddlZddlZddlZddlZddlZejZejZej Z ej Z ej Z ej Z ej Z ejZejZejZejZejZejZdefdYZejedddYZdZdZd Zd Zd dd YZd efdYZejedddYZdZ dZ!dS(sfM2Crypto wrapper for OpenSSL S/MIME API. Copyright (c) 1999-2003 Ng Pheng Siong. All rights reserved.iNt PKCS7_ErrorcBseZRS((t__name__t __module__(((s4/usr/lib64/python2.7/site-packages/M2Crypto/SMIME.pyRstPKCS7cBs\eZejZdddZdZdZddZ dZ dZ ddZ RS( icCs=|dk r!||_||_ntj|_d|_dS(Ni(tNonetpkcs7t_pyfreetm2t pkcs7_new(tselfRR((s4/usr/lib64/python2.7/site-packages/M2Crypto/SMIME.pyt__init__s    cCs)t|ddr%|j|jndS(NRi(tgetattrt m2_pkcs7_freeR(R ((s4/usr/lib64/python2.7/site-packages/M2Crypto/SMIME.pyt__del__'scCs|jS(N(R(R ((s4/usr/lib64/python2.7/site-packages/M2Crypto/SMIME.pyt_ptr+scCs*|rtj|jStj|jSdS(N(Rt pkcs7_type_snRtpkcs7_type_nid(R t text_name((s4/usr/lib64/python2.7/site-packages/M2Crypto/SMIME.pyttype.scCstj|j|jS(N(Rtpkcs7_write_bioRR(R tbio((s4/usr/lib64/python2.7/site-packages/M2Crypto/SMIME.pytwrite4scCstj|j|jS(N(Rtpkcs7_write_bio_derRR(R R((s4/usr/lib64/python2.7/site-packages/M2Crypto/SMIME.pyt write_der7scCs%tjtj|j|j|dS(Ni(tX509t X509_StackRtpkcs7_get0_signersRtstack(R tcertstflags((s4/usr/lib64/python2.7/site-packages/M2Crypto/SMIME.pyt get0_signers:sN( RRRt pkcs7_freeR RR R RRRRR(((s4/usr/lib64/python2.7/site-packages/M2Crypto/SMIME.pyRs      cCstj|d}|dkr6tjtjnztj|}Wdtj|X|dkr{t tjnt |dS(Ntri( Rt bio_new_fileRtBIOtBIOErrortErrt get_errortpkcs7_read_biotbio_freeRR(tp7fileRtp7_ptr((s4/usr/lib64/python2.7/site-packages/M2Crypto/SMIME.pyt load_pkcs7?s  cCsCtj|j}|dkr6ttjnt|dS(Ni(RR&RRRR$R%R(tp7_bioR)((s4/usr/lib64/python2.7/site-packages/M2Crypto/SMIME.pytload_pkcs7_bioNs cCstj|d}|dkr6tjtjnztj|\}}Wdtj|X|dkrt tjn|dkrt |ddfSt |dtj|dfSdS(NR i( RR!RR"R#R$R%tsmime_read_pkcs7R't SMIME_ErrorR(R(RR)tbio_ptr((s4/usr/lib64/python2.7/site-packages/M2Crypto/SMIME.pytsmime_load_pkcs7Us   cCs~tj|j\}}|dkr<ttjn|dkr[t|ddfSt|dtj|dfSdS(Ni( RR-RRR.R$R%RR"(R+R)R/((s4/usr/lib64/python2.7/site-packages/M2Crypto/SMIME.pytsmime_load_pkcs7_biogs   tCiphercBs eZdZdZdZRS(sW Object interface to EVP_CIPHER without all the frills of M2Crypto.EVP.Cipher. cCs@tt|d}|dkr0td|fn||_dS(Nsunknown cipher(R RRt ValueErrortcipher(R talgoR4((s4/usr/lib64/python2.7/site-packages/M2Crypto/SMIME.pyR ws cCs|jS(N(R4(R ((s4/usr/lib64/python2.7/site-packages/M2Crypto/SMIME.pyR}s(RRt__doc__R R(((s4/usr/lib64/python2.7/site-packages/M2Crypto/SMIME.pyR2qs R.cBseZRS((RR(((s4/usr/lib64/python2.7/site-packages/M2Crypto/SMIME.pyR.stSMIMEcBseZdejdZdejdZdZdZdZ dZ dZ dZ dZ d d Zd d Zd d Zdd d Zdd dZRS(cCs@|dkr|}ntj|||_tj||_dS(N(RtEVPtload_keytpkeyRt load_certtx509(R tkeyfiletcertfiletcallback((s4/usr/lib64/python2.7/site-packages/M2Crypto/SMIME.pyR9s  cCs@|dkr|}ntj|||_tj||_dS(N(RR8t load_key_bioR:Rt load_cert_bioR<(R tkeybiotcertbioR?((s4/usr/lib64/python2.7/site-packages/M2Crypto/SMIME.pyR@s  cCs%t|tjst||_dS(N(t isinstanceRRtAssertionErrort x509_stack(R R((s4/usr/lib64/python2.7/site-packages/M2Crypto/SMIME.pytset_x509_stackscCs%t|tjst||_dS(N(RDRt X509_StoreREt x509_store(R tstore((s4/usr/lib64/python2.7/site-packages/M2Crypto/SMIME.pytset_x509_storescCs"t|tst||_dS(N(RDR2RER4(R R4((s4/usr/lib64/python2.7/site-packages/M2Crypto/SMIME.pyt set_cipherscCs|`|`dS(N(R:R<(R ((s4/usr/lib64/python2.7/site-packages/M2Crypto/SMIME.pyt unset_keyscCs |`dS(N(RF(R ((s4/usr/lib64/python2.7/site-packages/M2Crypto/SMIME.pytunset_x509_stackscCs |`dS(N(RI(R ((s4/usr/lib64/python2.7/site-packages/M2Crypto/SMIME.pytunset_x509_storescCs |`dS(N(R4(R ((s4/usr/lib64/python2.7/site-packages/M2Crypto/SMIME.pyt unset_ciphersicCst|dstdnt|ds6tdntj|jj|j|jj|}|dkrttj nt |dS(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/lib64/python2.7/site-packages/M2Crypto/SMIME.pytencrypts  0 cCst|dstdnt|ds6tdntj|j|jj|jj|}|dkrttj 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/lib64/python2.7/site-packages/M2Crypto/SMIME.pytdecrypts  0 cCst|dstdnt|drtj|jj|jj|jj|j|}|dkrtt j nt |dStj |jj|jj|j|}|dkrtt j nt |dSdS(NR:sno private key: use load_key()RFi( RQR.Rt pkcs7_sign1R<RR:RFRR$R%Rt pkcs7_sign0(R RSRR((s4/usr/lib64/python2.7/site-packages/M2Crypto/SMIME.pytsigns    cCst|dstdnt|ds6tdnt|tsQtd|j}|dkrtj||j j|j j|}n3tj ||j j|j j|j|}|dkrtt 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/lib64/python2.7/site-packages/M2Crypto/SMIME.pytverifys    -3 cCslt|tst|dkr@tj|j|j|Stj|j|j|j|SdS(N(RDRRERRtsmime_write_pkcs7Rtsmime_write_pkcs7_multi(R tout_bioRRSR((s4/usr/lib64/python2.7/site-packages/M2Crypto/SMIME.pyRs N(RRRtutiltpassphrase_callbackR9R@RGRKRLRMRNRORPRTRWRZR^R(((s4/usr/lib64/python2.7/site-packages/M2Crypto/SMIME.pyR7s        cCsYtj|}tj}tj|j|jrC|jSttjdS(N( R"t MemoryBufferRtsmime_crlf_copyRtreadR.R$R%(ttexttbio_intbio_out((s4/usr/lib64/python2.7/site-packages/M2Crypto/SMIME.pyt text_crlfs   cCsDtj}tj|j|jr.|SttjdS(N(R"RdRReRR.R$R%(RhRi((s4/usr/lib64/python2.7/site-packages/M2Crypto/SMIME.pyt text_crlf_bios (((("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/lib64/python2.7/site-packages/M2Crypto/SMIME.pyts8<               $     a