def sign_dict(dict_, private_key):
"""Serializes a dict to JSON and sign it using RSA."""
try:
with open(private_key) as fp:
key = RSA.importKey(fp.read())
except (FileNotFoundError, ValueError, IndexError, TypeError):
raise ValueError('Invalid private key file.')
signer = PKCS1_v1_5.new(key)
# encodes message
message = SHA256.new(json.dumps(dict_, sort_keys=True).encode())
# sign
signature = signer.sign(message)
return base64.b64encode(signature).decode()
评论列表
文章目录