Files
self/python-scripts/script.py
0xturboblitz 754465fc21 python script 🐍
2023-07-22 16:49:45 +02:00

37 lines
2.6 KiB
Python

from Cryptodome.PublicKey import RSA
from Cryptodome.Signature import pkcs1_15
from Cryptodome.Hash import SHA256
from Cryptodome.Util.asn1 import DerSequence
from Cryptodome.PublicKey import RSA
from Cryptodome.Util.number import long_to_bytes
from binascii import unhexlify
# Assuming your eContent, publicKey and encryptedDigest are byte strings
sodFile_eContent = unhexlify('3166301506092a864886f70d01090331080606678108010101301c06092a864886f70d010905310f170d3139313231363137323233385a302f06092a864886f70d01090431220420b0603bd5835259f8697d25b19ea2892b0d2773063be5516e314bffb89b497456')
sodFile_encryptedDigest = unhexlify('5a78c5d241463136f26255cb75fe2de2dbaeda10ef7c7eea2f6b635940e079b04d6bfec592ef1293366076382e2a9543bd84a973c66e6c0715e468738c5d802c98cd81aa3d338a4e338e93e219412835456c4a0208587c360a5b8d4c2d09d069671e4175104c69c8ad2dadc6dea40729463dd8543392420406c08a020dadcb14ec78fad95ccef0cbe06a5416c45a9abc31c38d88190cb650a6536f0357bb6a04c59817a889d2eee4128b7757b2f7b52e572b030ef7b362dbad20de3a2a2c488134042fb8b18a254d2332cde4996e768da37863419a2760b9f394de395425db5b8276a24b60f02a0b595bf81a28dc3bd7584863641a75504b0df267467de87516')
publicKey = """
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3xG6BteTegWeyOeRarD7CwlKm57PmOl+2mg0ojB18gMAcqPHaI+FBEr2rLX1wr7fbCZFTZkjK5i7RW5fjOMhSIiLyKEU3rH6oDkzb2eDN9Fit0I2jLOJj71Soyws6SRP0dAtn6vNkmVIQYy8CgX6zVrE/nozAenKU9HZ48xElnVVMb0oFf1Q217r34dTQ51LWZsM+dWO7/Q88rP8JtXGZtIWMhI/ycPmzUmApnXtVNlQmwD+ld6/MPsV73tFirZKLJ5ib8BQRR79n7Yf9sqepGb1ryG2uhlmy9yaoDjy6rZ9XtS2iGzQj2r8Uh7WPa6MwNWWg5bCFu9lsO0nGaeEZNzeZ+mpoQIDAQAB
-----END PUBLIC KEY-----
"""
modulus = int('df11ba06d7937a059e8ce7916ab0fb0b094a9b9ecf98e97eda6834a23075f2030072a3c7868f85045af2acb5f5c2bedf6c25614d99232b98bb456e5f8ce32148882f2281537ac7aa80e4cdb79e0cdf4627cd08da32ce263ef54a26c2ca3493f1d02d9fabcd89952058cb0085fa356b13f9e2cc1e9ca4f47678dc49129d55531bd2817dd436d5aef778d4d439d2d659b0cf9d58eeff43ce2cff26d5c66d23164123fc9c3e6cd4902e9d7b54d9509b03f95debfc3fb15ef7b458ac64a2c6e26bf010451eff67ed87f6ca7a946dd7ac86dea2566cbdc9aa0e3cbaad9f5ed4b6886cd08f6baf1487b58f6ba33075968396c216ef65b0eb49c6978464dcde99f9a9a1', 16)
public_exponent = int('10001', 16)
# Parsing the public key
# public_key = RSA.importKey(publicKey)
public_key = RSA.construct((modulus, public_exponent))
# print("public_key: ", public_key.export_key()),
# SHA-256 hash of the eContent
hash_obj = SHA256.new(sodFile_eContent)
# print("hash_obj: ", hash_obj.hexdigest())
# Signature verification
try:
valid = pkcs1_15.new(public_key).verify(hash_obj, sodFile_encryptedDigest)
print("The signature is valid.")
except (ValueError, TypeError):
print("The signature is not valid.")