Articles of m2crypto

M2Crypto RSA.sign vs OpenSSL rsautl -sign

M2Crypto y OpenSSL CLI no parecen crear la misma firma digital. Aquí está el código que uso en Python: import M2Crypto rsa = M2Crypto.RSA.load_key(“privkey.pem”) open(“sig_m2crypto”, “w”).write(rsa.sign(“md5-digest”, “md5”)) Aquí está la línea de comandos con OpenSSL: echo “md5-digest” | openssl rsautl -sign -inkey privkey.pem > sig_openssl Con la misma entrada, el resultado de sig_m2crypto y sig_openssl […]

¿Cómo puedo crear una clave pública RSA en formato PEM a partir de un módulo RSA?

Tengo el módulo de una clave pública RSA. Quiero usar esta clave pública con la biblioteca de Python “M2Crypto”, pero requiere una clave pública en formato PEM. Por lo tanto, tengo que convertir el módulo RSA en un archivo PEM. El módulo se puede encontrar aquí. ¿Algunas ideas?

Cómo usar el archivo .pem con Python M2Crypto

Para generar un par de claves RSA utilicé openssl: openssl genrsa -out my_key.private.pem 1024 openssl rsa -in my_key.private.pem -pubout -out my_key.public.pem Ahora quiero usar este archivo my_key.public.pem en una función de otro archivo .py: import M2Crypto from M2Crypto import RSA,SSL def encrypt(): pk = open( ‘my_key.public.pem’, ‘rb’ ).read() rsa = M2Crypto.RSA.load_pub_key(pk) print rsa; ¿Lo estoy […]

M2Crypto: verificación de firmas DSA

Tengo problemas para verificar las firmas DSA con Python / M2Crypto. Las firmas se generan en Java, utilizando la clase estándar java.security.Signature, con el proveedor de cifrado de Sun y la designación de algoritmo SHA1withDSA. Aquí hay algunos resultados de shell: >>> pk >>> sig = ‘302c02141c4bbb218215ebfec57288059ce814dc430d849502144dd0c581bf2213aff79d17eb37c939e120a97bd2’.decode(‘hex’) >>> data =’0501…9794′.decode(‘hex’) >>> pk.verify_asn1(sig, data) ———————————————————— Traceback […]

“Algoritmo” de la firma M2crypto

Estos dos códigos proporcionan la misma firma, que se espera: código1: from M2Crypto import RSA, EVP import base64, hashlib text = “some text” pkey = EVP.load_key(“mykey.pem”) #”mykey.pem” was generated as: openssl genrsa -des3 -out mykey.pem 2048 pkey.sign_init() pkey.sign_update(text) signature = pkey.sign_final() print base64.b64encode(signature) código2: pkey = RSA.load_key(“mykey.pem”) signature = pkey.sign(hashlib.sha1(text).digest()) print base64.b64encode(signature) Sin embargo, si […]

Verificar firma con pyopenssl

Creo que desde esta pregunta , pyOpenSSL ha comenzado a respaldar la verificación de firmas (a partir de pyOpenSSL 0.11 . Estoy trabajando en un proyecto que fue iniciado por otra persona utilizando M2Crypto . M2Crypto es realmente doloroso de incluir en plataformas como Heroku, ya que requiere el uso de SWIG . En consecuencia, […]

problemas al instalar M2Crypto en Mint: seguimiento

Hice una pregunta aquí con respecto a la instalación de la biblioteca de python M2Crypto en Mint. Esa pregunta fue respondida exitosamente y pude construir e instalar M2Crypto. Sin embargo, no puedo usarlo dentro de Python. cuando bash importar el módulo, aparece el siguiente error: >>> import M2Crypto Traceback (most recent call last): File “”, […]

Parámetros de M2Crypto Diffie-Hellman como .pem

¿Cuál es el equivalente M2Crypto de este comando openssl cli? openssl dhparam -out dh.pem 2048 Mi bash Mirando a través de los casos de prueba, puedo generar parámetros diffie-hellman como tales: >>> import M2Crypto.DH >>> params = M2Crypto.DH.gen_params(2048, 2, lambda: None) Sin embargo, no puedo generar una representación .pem de estos parámetros. No parece haber […]

Simulación del algoritmo de signo M2Crypto de Python en Haskell

Estoy tratando de producir una firma RSA en Haskell que coincida con la misma firma del M2Crypto de Python. Creo que mi problema es el hecho de que Codec.Crypto.RSA está usando el algoritmo PKCS1 v1.5 y M2Crypto está usando algo diferente. De hecho, cuando uso PKCS1 v1.5 en Python, obtengo los mismos resultados que Haskell. […]

Validando la firma SAML en Python

Necesito implementar la autenticación en Python de un tercero utilizando SAML2. Busqué en pysaml2 y me pareció bastante confuso, y decidí darle una oportunidad al M2Crypto después de que Ennael encontré esta pregunta . El token SAML que recibo se puede encontrar aquí . Ya extraje toda la información que necesito de la etiqueta de […]