2009-09-28 78 views
1

我想在django-paypal中使用按鈕加密,但它需要M2Crypto,它不會構建在Web服務器上。 Webfaction的技術支持人員告訴我,系統中已經安裝了pycrypto,但是我太笨了,無法從M2Crypto轉換到pycrypto。獲取django-paypal與pycrypto一起工作?

任何人都可以告訴我如何轉換以下使用pycrypto(如果可能)?這只是一個顯示他加密的小碎片,如果需要,我可以發佈整個功能。

s = SMIME.SMIME() 
    s.load_key_bio(BIO.openfile(CERT), BIO.openfile(PUB_CERT)) 
    p7 = s.sign(BIO.MemoryBuffer(plaintext), flags=SMIME.PKCS7_BINARY) 
    x509 = X509.load_cert_bio(BIO.openfile(settings.PAYPAL_CERT)) 
    sk = X509.X509_Stack() 
    sk.push(x509) 
    s.set_x509_stack(sk) 
    s.set_cipher(SMIME.Cipher('des_ede3_cbc')) 
    tmp = BIO.MemoryBuffer() 
    p7.write_der(tmp) 
    p7 = s.encrypt(tmp, flags=SMIME.PKCS7_BINARY) 
    out = BIO.MemoryBuffer() 
    p7.write(out) 
    return out.read() 
+0

請讓我知道什麼是Linux系統,webfaction運行,Python的,OpenSSL的,而SWIG版本,確切的命令,你試過編譯時,全輸出包括錯誤的編譯嘗試。或者如果Webfaction使用基於Fedora Core的服務器,請嘗試使用M2Crypto源中的fedora_setup.sh腳本。 – 2009-10-07 04:43:19

回答

2

我能夠建立它。這裏是所有你需要做的,做到這一點:

cat >> ~/.pydistutils.cfg << EOF 
[build_ext] 
include_dirs=/usr/include/openssl 
EOF 
easy_install-2.5 --install-dir=$HOME/lib/python2.5 --script-dir=$HOME/bin m2crypto 
1

pycrypto是非常不完整的。它不支持你需要的填充方案和格式。增加對這些格式的支持不是微不足道的,而且需要很多時間。

+0

還有其他的東西支持需要什麼嗎? – chris 2009-09-28 15:33:56

+1

M2Crypto是openssl的包裝。由於openssl被廣泛使用,所以我對你的服務器無法構建M2Crypto感到有些驚訝。我會再試一次。 openssl有幾種可選的python包裝,但不幸的是我沒有經驗。 – abc 2009-09-29 08:12:40

0

您可能能夠在本地設置虛擬機並且足夠複製網絡傳輸服務器環境以自行構建它。然後上傳到你的pythonpath上的某個地方

相關問題