mnemo_cards/mnemo_cards_backend/rustore_jwt.py

41 lines
2.6 KiB
Python
Raw Normal View History

2025-11-16 11:25:27 +00:00
import base64
import json
import sys
from datetime import datetime
from Crypto.Signature import pkcs1_15
from Crypto.Hash import SHA512
from Crypto.PublicKey import RSA
secret_private = "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC1jbbJoGtk6AKjY+Cy15/2gIdq9zOU51BuNZVrTRnribWWph1cNV+BdhkYlikW9tlO+0PFm4BfJzbIu+F9HsuydyxKIf5dlc6YTbVPrnaMgL5N1N64lkE7VOpVxmgjvR8aeetNw99qRRzB60OExrYomhg4R6Gv9c2kCuV04HISvIXSRTwkTYrz9MvTOGUfRry85L6Uz3H5aebiXGVrE/+v/6J2WyCiMU/2XRDlUeGLXtp9jQKH24CVgyk8vLKTL8oC8DKj3RNN3ArTlCYMx/D9wfxDrZpy1boP8XqXIj7Wh1Cov5Ui7EHWUz68PZAP4ihwEgKZ4Xx4/DliEGV0JhJvAgMBAAECggEAE3hfikoA78ZjRLXZCspNu7gsTaVgdm9EKeg8iPsGH5jEzPjYRzjrcCKD2Ht/a+4Mf12PoWk8ICLqy3uSrWzDDaBIM1Rn8g4Mejrt3zNnlUktSi2HtntZWDfoFaDR2ZtWSEGboYWzDQjdElLdCn1BBc5Yxe2wrQKLC4pQ8fLWvk7Oapzvt19JKhrwD7lHXB3qS8pgGBU5sp7wLM8wj1JNuv4d+QstQSRHEfLLJnCsXNsVPbZaDW3ln6lPzxInJ95OFCYzrhOuawD/lvOQQMWLo/VkxRZdO80txyx77EICqhgHHsRY94x4ou8rO+h6VG0+FaixZ8OM6+kULpsQ7imWQQKBgQDGy5anZBLqKMzcA4nf8d5ursnVwemlkkEnwSzE0d6YkP5HwFeK5TzECZAbTa4xXlmxSf8hb+25MsXrG2+L9hxBRbzXGdqOWDxEyWdSNqHHl29KUgMxldTnwkd8BtDm82MyxIULhg6aSGh/G5QiNG92XzF+y4BPjcJKMXuCv2k4IQKBgQDpzACPOjy4nN6Y19QLyTs+2kxBjFISGY2KC3bMbBWQ/FwG7hCpk9ybuYt9XEActlWkbmTQT1sY9IKq/Ms0vszfnjfFZsAZs8dVLP2pwS0ai2z6lIlo8Tc0qNw1GZDYZkQ8JJ8T1V4m0TL+2D5C1PGXHaItzfsEggJu1LkuRwi4jwKBgQCitfY8UgutPvHWTssl0ik2PLgUzp+3lkrgCBvliMWB6INIJSVCGTkwV4ds4Zrm64vMMX2yV5Oi1uzp703QqAMeZb8X7CBYC95gityXjQHDhK5hjVjx1+ooO3sZB9cqgSG7ZuBiuznui7+D8gXALVzh7S5s0pHWC3hwE6o9LQApIQKBgQDTcKHY5qxfsc9Gn3qwJg+kqjxo04StxdpRzEhmXCGs++4mfksncggD9ewHNdTtoqEVkpkuI3aZvRgnl3QXga87VZXOuzxkgkh16biHO6OU7B9lB8y10eFBiK2OgE6UxvhTBDOx9jeuF2htPhggzQCo0C4KCs1HqGSW41+OUMO8VQKBgBH52u/F2XAQ89p5HKal8UHZaIq9A7GX411y1b5iNyWFKS+U0os3kb5+v1pgkrfEe2VauepLcpIbs2Qm1rPbqjBcpWepFkSn3mSWEZ9s0UkdvKImcjtPeC+K6pAc/BtY4w7NiSQNw+6Bre4YlVT19zldGZBJ8nh6EEkjGrJ5eaQ5"
key_id = "2351020647"
# secret_private = sys.argv[1]
# key_id = sys.argv[2]
def generate():
key = RSA.import_key(base64.b64decode(secret_private))
# формируем строку для подписи
sdt = datetime.now().isoformat()+"+03:00"
to_sign = key_id + sdt
# print("Get hash from: " + to_sign)
# формируем хеш
hash = SHA512.new(to_sign.encode())
# формируем подпись
binary_signature = pkcs1_15.new(key).sign(hash)
signature = base64.b64encode(binary_signature).decode('utf-8')
# print("SIGN: " + signature)
# формируем результат в формате JSON
result = {
"keyId": key_id,
"timestamp": sdt,
"signature": signature
}
return json.dumps(result)
if __name__ == "__main__":
print(generate())
pass