Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 9, 2015 19:18:01

savao
Зарегистрирован: 2013-07-13
Сообщения: 37
Репутация: +  0  -
Профиль   Отправить e-mail  

Посоветуйте хорошую библиотеку по криптографии, кроме PyCrypto, Python-RSA, M2Crypto

Вопрос возник в связи с тем что ни одна из этих библиотек не подходят. А может я их не правильно готовлю.

Есть необходимость реализовать клиентскую часть гибридного алгоритма шифрования в котором используется паддинг PKCS1, библиотека PyCrypto реализует этот алгоритм не так как он реализован на целевом сервере и зашифрованное сообщение сервер не может расшифровать, говорит:

RSA_decrypt error: RSA_verify <error:04065072:rsa routines:RSA_EAY_PRIVATE_DECRYPT:padding check failed>

Нашёл в инете что есть у этого модуля такая беда и вроде как можно использовать Python-RSA, он этой болячкой не страдает. Зато не хочет читать публичный ключ сервера.

Та же беда и с M2Crypto.

Офлайн

#2 Окт. 10, 2015 03:14:28

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9873
Репутация: +  853  -
Профиль   Отправить e-mail  

Посоветуйте хорошую библиотеку по криптографии, кроме PyCrypto, Python-RSA, M2Crypto

Приведи пример, как генерируешь ключ в питоне.



Офлайн

#3 Окт. 10, 2015 07:06:44

savao
Зарегистрирован: 2013-07-13
Сообщения: 37
Репутация: +  0  -
Профиль   Отправить e-mail  

Посоветуйте хорошую библиотеку по криптографии, кроме PyCrypto, 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())
Где модель Connection содержит такую инфу:
serv_key - публичный ключ сервера
RSA_private_key - приватный ключ клиента

Офлайн

#4 Окт. 10, 2015 11:42:57

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9873
Репутация: +  853  -
Профиль   Отправить e-mail  

Посоветуйте хорошую библиотеку по криптографии, кроме PyCrypto, Python-RSA, M2Crypto

Попробуй для начала не шифровать, а просто подписать незашифрованное.
И посмотри, проверяет ли сервер подпись.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version