Представьте себе следующее сообщение:
"Это сообщение для подписанного"
У меня есть необходимость подписать этот образец сообщения, используя "pycryptodome" или "cryptography" в Python 3.6 со следующими стандартами:
- Формат: x.509;
- Кодировка: UTF-8;
- Кодировка: Base64;
- PKCS1 v1.5;
- Размер: 1024 бита;
- Формат сообщения: SHA-1;
У меня есть требуемый "privatekey.pem", но у меня нет знаю, как это сделать в pycryptodome или криптографии.
ОБНОВЛЕНО: я нашел этот пример кода, но все еще не знаю, является ли это правильным способом достижения того, что мне нужно, на основе стандартов, определенных в исходном сообщении. Пример кода (для pycryptodome):
from Crypto.PublicKey import RSA
from Crypto.Signature import PKCS1_v1_5
from Crypto.Hash import SHA1
import base64
from base64 import b64encode, b64decode
key = open('privatekey.pem', "r").read()
rsakey = RSA.importKey(key)
signer = PKCS1_v1_5.new(rsakey)
digest = SHA1.new()
data = 'This the message to be signed'
digest.update(b64decode(data))
sign = signer.sign(digest)
doc = base64.b64encode(sign)
print(doc)
Я вижу, что я получаю подпись в 172 символа га sh, но мне нужен профессиональный совет, чтобы узнать, соответствует ли это стандартам, которые я описал, и является ли это правильным способ сделать это.