Skip to content

Instantly share code, notes, and snippets.

@MateusAndreatta
Created August 17, 2022 00:18
Show Gist options
  • Save MateusAndreatta/89bb537b411a3b5ee52e333c4a5a79f3 to your computer and use it in GitHub Desktop.
Save MateusAndreatta/89bb537b411a3b5ee52e333c4a5a79f3 to your computer and use it in GitHub Desktop.
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.asymmetric import rsa, padding
# Usando o pacote cryptografhy crie 3 funções;
# • Que cria uma chave publica e privada usando o RSA
# • Uma função que assina uma mensagem usando a chave privada
# • Outra função que verifica se a mensagem foi assinada de forma correta
def gerarChaves():
return rsa.generate_private_key(
public_exponent=65537,
key_size=2048,
)
def escreverMensagem(msg, chavePrivada):
return chavePrivada.sign(
str.encode(msg),
padding.PSS(
mgf=padding.MGF1(hashes.SHA256()),
salt_length=padding.PSS.MAX_LENGTH
),
hashes.SHA256()
)
def verificarMensagem(assinatura, msg,chavePublica):
return chavePublica.verify(
assinatura,
str.encode(msg),
padding.PSS(
mgf=padding.MGF1(hashes.SHA256()),
salt_length=padding.PSS.MAX_LENGTH
),
hashes.SHA256()
)
mensagem = "Mensagem da aula do Mark de teste"
chavePrivada = gerarChaves()
chavePublica = chavePrivada.public_key()
assinatura = escreverMensagem(mensagem, chavePrivada)
verificarMensagem(assinatura, mensagem, chavePublica)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment