2009-09-28 6 views
1

Je voudrais utiliser le cryptage de bouton dans django-paypal, mais il nécessite M2Crypto qui ne construira pas sur les serveurs de webfaction. Le support technique de Webfaction m'a dit que pycrypto est déjà installé sur le système, mais je suis trop bête pour traduire de M2Crypto en pycrypto.Django-paypal fonctionne avec pycrypto?

Quelqu'un peut-il me dire comment convertir ce qui suit pour travailler avec pycrypto (si possible)? Ceci est juste un petit coup d'oeil montrant le cryptage, je peux poster toute la fonction si nécessaire.

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

S'il vous plaît laissez-moi savoir ce que Linux distro webfaction est en cours d'exécution, les versions Python, OpenSSL et SWIG, la commande exacte que vous avez essayé lors de la compilation, et la sortie complète de la tentative de compilation incluant l'erreur. Ou si Webfaction utilise des serveurs Fedora Core, essayez le script fedora_setup.sh dans les sources M2Crypto. –

Répondre

2

J'ai été en mesure de le construire. Voici tout ce que vous devez faire pour y arriver:

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 est très incomplet. Il ne prend pas en charge les schémas de remplissage et les formats dont vous avez besoin. L'ajout de support pour ces formats n'est pas trivial et nécessitera beaucoup de temps.

+0

Y at-il quelque chose d'autre qui supporte ce qui est nécessaire? – chris

+1

M2Crypto est un wrapper pour openssl. Depuis openssl est largement utilisé, je suis un peu surpris que la construction de M2Crypto n'est pas possible sur vos serveurs. Je lui donnerais un autre essai. Il y a quelques wrappers python alternatifs pour openssl, mais malheureusement je n'ai aucune expérience avec eux. – abc

0

Vous pouvez configurer localement une machine virtuelle et dupliquer suffisamment l'environnement du serveur de webfaction pour la créer vous-même. Puis télécharger vers quelque part sur votre chemin python

Questions connexes