Форум сайта python.su
Вопрос возник в связи с тем что ни одна из этих библиотек не подходят. А может я их не правильно готовлю.
Есть необходимость реализовать клиентскую часть гибридного алгоритма шифрования в котором используется паддинг PKCS1, библиотека PyCrypto реализует этот алгоритм не так как он реализован на целевом сервере и зашифрованное сообщение сервер не может расшифровать, говорит:
RSA_decrypt error: RSA_verify <error:04065072:rsa routines:RSA_EAY_PRIVATE_DECRYPT:padding check failed>
Нашёл в инете что есть у этого модуля такая беда и вроде как можно использовать Python-RSA, он этой болячкой не страдает. Зато не хочет читать публичный ключ сервера.
Та же беда и с M2Crypto.
Офлайн
Приведи пример, как генерируешь ключ в питоне.
Офлайн
from Crypto.PublicKey import RSA
from Crypto import Random
from Crypto.Cipher import PKCS1_v1_5
from Crypto.Signature import PKCS1_v1_5 as pkcs
from Crypto.Hash import SHA
con = Connection.objects.get(id=1)
key = Random.new().read(8)
spk = RSA.importKey(con.serv_key)
cipherrsa = PKCS1_v1_5.new(spk)
ckey = cipherrsa.encrypt(key)
dig = SHA.new(ckey)
pk = RSA.importKey(con.RSA_private_key)
signature = pkcs.new(pk)
sig = signature.sign(dig.digest())
Офлайн
Попробуй для начала не шифровать, а просто подписать незашифрованное.
И посмотри, проверяет ли сервер подпись.
Офлайн