المشاركات

Program to implement Digital Signature with PKI

Bane Sons

 from cryptography.hazmat.primitives.asymmetric import rsa, padding

from cryptography.hazmat.primitives import hashes, serialization

from cryptography.exceptions import InvalidSignature


# Generate RSA key pair

priv = rsa.generate_private_key(

    public_exponent=65537,

    key_size=2048

)

pub = priv.public_key()


# Message

msg = b"Important message to be signed."


# Sign message

sig = priv.sign(

    msg,

    padding.PSS(

        mgf=padding.MGF1(hashes.SHA256()),

        salt_length=padding.PSS.MAX_LENGTH

    ),

    hashes.SHA256()

)

print("Signature created.")


# Verify signature

try:

    pub.verify(

        sig,

        msg,

        padding.PSS(

            mgf=padding.MGF1(hashes.SHA256()),

            salt_length=padding.PSS.MAX_LENGTH

        ),

        hashes.SHA256()

    )

    print("Signature verified.")

except InvalidSignature:

    print("Verification failed!")


# Export public key (PEM)

pem = pub.public_bytes(

    serialization.Encoding.PEM,

    serialization.PublicFormat.SubjectPublicKeyInfo

)

print("\nPublic Key:\n", pem.decode())

إرسال تعليق