2009-09-28 3 views
1

django-paypal에서 버튼 암호화를 사용하고 싶습니다만, WebFaction 서버에서는 빌드하지 않는 M2Crypto가 필요합니다. 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

나 리눅스가 webfaction는, 파이썬, OpenSSL을하고, SWIG 버전을 실행하는 배포판 무엇인지 알려 주시기 바랍니다, 정확한 명령은 컴파일 할 때 시도하고, 전체 출력 오류를 포함한 컴파일 시도 또는 Webfaction이 Fedora Core 기반 서버를 사용하는 경우 M2Crypto 소스에서 fedora_setup.sh 스크립트를 사용해보십시오. –

답변

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

+1

M2Crypto는 openssl의 래퍼입니다. openssl이 널리 사용되기 때문에 서버에 M2Crypto를 구축 할 수 없다는 사실에 조금 놀랐습니다. 나는 그것을 또 한번 시도해 볼 것이다. openssl을위한 몇 가지 대안 파이썬 래퍼가 있지만, 불행히도 나는 그들과 아무 경험이 없습니다. – abc

0

로컬로 가상 시스템을 설정하고 웹 방화벽 서버 환경을 충분히 복제하여 직접 구축 할 수 있습니다. 그런 다음 pythonpath 어딘가에 업로드하십시오.