Skip to content

Instantly share code, notes, and snippets.

@hericah
Forked from cevaris/generate_key.sh
Created September 28, 2021 01:41
Show Gist options
  • Save hericah/5ec1f4d7eed1917c1b65ae4d83100b5d to your computer and use it in GitHub Desktop.
Save hericah/5ec1f4d7eed1917c1b65ae4d83100b5d to your computer and use it in GitHub Desktop.
Sign and Verify using Python pycrypto
#!/usr/bin/env bash
# Generate RSA private key
openssl genrsa -out private_key.pem 1024
#!/usr/bin/env python
from base64 import (
b64encode,
b64decode,
)
from Crypto.Hash import SHA256
from Crypto.Signature import PKCS1_v1_5
from Crypto.PublicKey import RSA
message = "I want this stream signed"
digest = SHA256.new()
digest.update(message)
# Read shared key from file
private_key = False
with open ("private_key.pem", "r") as myfile:
private_key = RSA.importKey(myfile.read())
# Load private key and sign message
signer = PKCS1_v1_5.new(private_key)
sig = signer.sign(digest)
# Load public key and verify message
verifier = PKCS1_v1_5.new(private_key.publickey())
verified = verifier.verify(digest, sig)
assert verified, 'Signature verification failed'
print 'Successfully verified message'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment