Python M2Crypto load_pub_key из строки

Как я могу загрузить load_pub_key из строки.

pub_key1 = M2Crypto.RSA.load_pub_key('public.pem')
f = open('public.pem', 'rb')
bio = M2Crypto.BIO.MemoryBuffer(f.read())
pub_key2 = M2Crypto.RSA.load_pub_key_bio(bio)
print pub_key1 == pub_key2

false

1 ответ

Решение

Напечатать pub_key1 == pub_key2 -> false, но:

PUBKEY_TEMPLATE = "-----BEGIN PUBLIC KEY-----\n{}\n-----END PUBLIC KEY-----"
pub_key1 = M2Crypto.RSA.load_pub_key('public.pem')
bio = M2Crypto.BIO.MemoryBuffer(PUBKEY_TEMPLATE.format('<string with pub key>'.strip()))
pub_key2 = M2Crypto.RSA.load_pub_key_bio(bio)
CipherText1 = pub_key1.public_encrypt("This is a secret", M2Crypto.RSA.pkcs1_oaep_padding)
CipherText2 = pub_key2.public_encrypt("This is a secret", M2Crypto.RSA.pkcs1_oaep_padding)
RSA = M2Crypto.RSA.load_key('private.pem')
Text1 = RSA.private_decrypt(CipherText1, M2Crypto.RSA.pkcs1_oaep_padding)
Text2 = RSA.private_decrypt(CipherText2, M2Crypto.RSA.pkcs1_oaep_padding)
print Text1
print Text2


This is a secret
This is a secret
Другие вопросы по тегам