digital_ttd / ttd_digital.py
nikoirsyad44's picture
Upload ttd_digital.py
9a09377
import streamlit as st
import hashlib
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.asymmetric import (
padding, rsa, utils
)
private_key = rsa.generate_private_key(
public_exponent=65537,
key_size=2048,
)
st.write("""
## Tanda Tangan Digital RSA
""")
input = st.text_input('Masukkan Teks', 'Niko Irsyad')
prehashed_msg = hashlib.sha256(input.encode()).digest()
signature = private_key.sign(
prehashed_msg,
padding.PSS(
mgf=padding.MGF1(hashes.SHA256()),
salt_length=padding.PSS.MAX_LENGTH
),
utils.Prehashed(hashes.SHA256())
)
st.write("Tanda tangan digital :", signature)
public_key = private_key.public_key()
try :
public_key.verify(
signature,
prehashed_msg,
padding.PSS(
mgf=padding.MGF1(hashes.SHA256()),
salt_length=padding.PSS.MAX_LENGTH
),
utils.Prehashed(hashes.SHA256())
)
st.write('Tanda tangan VALID')
except InvalidSignature:
st.write('Tanda tangan INVALID')