1

我想在 django-paypal 中使用按钮加密,但它需要 M2Crypto,它不会建立在 webfaction 服务器上。Webfaction 的技术支持告诉我 pycrypto 已经安装在系统上,但我太笨了,无法从 M2Crypto 转换为 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()
4

3 回答 3

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
于 2009-11-12T17:24:22.147 回答
1

pycrypto 非常不完整。它不支持您需要的填充方案和格式。添加对这些格式的支持并非易事,并且需要大量时间。

于 2009-09-28T10:52:09.923 回答
0

您可以在本地设置一个虚拟机并复制足够多的 webfaction 服务器环境来自己构建它。然后上传到你的pythonpath上的某个地方

于 2009-10-02T13:18:50.900 回答