Usar Verify com o AWS SDK ou a CLI
Os exemplos de código a seguir mostram como usar o Verify.
- CLI
-
- AWS CLI
-
Para verificar uma assinatura digital
O comando
verifya seguir verifica uma assinatura criptográfica para uma mensagem curta codificada em base64. O ID da chave, a mensagem, o tipo de mensagem e o algoritmo de assinatura devem ser os mesmos usados para assinar a mensagem.Na AWS CLI v2, o valor do parâmetro
messagedeve ser codificado em base64. Também é possível salvar a mensagem em um arquivo e usar o prefixofileb://, que instrui a AWS CLI a ler dados binários do arquivo.A assinatura que especificada não pode ter codificação base64. Para obter ajuda na decodificação da assinatura retornada pelo comando
sign, consulte os exemplos do comandosign.A saída do comando inclui um campo booleano
SignatureValidque indica que a assinatura foi verificada. Se a validação da assinatura falhar, o comandoverifytambém falhará.Antes de executar esse comando, substitua o ID de chave de exemplo por um ID de chave válido da sua conta da AWS.
aws kms verify \ --key-id1234abcd-12ab-34cd-56ef-1234567890ab\ --messagefileb://EncodedMessage\ --message-typeRAW\ --signing-algorithmRSASSA_PKCS1_V1_5_SHA_256\ --signaturefileb://ExampleSignatureResultado:
{ "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "SignatureValid": true, "SigningAlgorithm": "RSASSA_PKCS1_V1_5_SHA_256" }Para obter mais informações sobre o uso de chaves assimétricas do KMS no AWS KMS, consulte Usar chaves assimétricas no Guia do desenvolvedor do AWS Key Management Service.
-
Para obter detalhes da API, consulte Verify
na Referência de comandos da AWS CLI.
-
- Python
-
- SDK para Python (Boto3).
-
nota
Há mais no GitHub. Encontre o exemplo completo e saiba como configurar e executar no AWSCode Examples Repository
. class KeyEncrypt: def __init__(self, kms_client): self.kms_client = kms_client @classmethod def from_client(cls) -> "KeyEncrypt": """ Creates a KeyEncrypt instance with a default KMS client. :return: An instance of KeyEncrypt initialized with the default KMS client. """ kms_client = boto3.client("kms") return cls(kms_client) def verify(self, key_id: str, message: str, signature: str) -> bool: """ Verifies a signature against a message. :param key_id: The ARN or ID of the key used to sign the message. :param message: The message to verify. :param signature: The signature to verify. :return: True when the signature matches the message, otherwise False. """ try: response = self.kms_client.verify( KeyId=key_id, Message=message.encode(), Signature=signature, SigningAlgorithm="RSASSA_PSS_SHA_256", ) valid = response["SignatureValid"] print(f"The signature is {'valid' if valid else 'invalid'}.") return valid except ClientError as err: if err.response["Error"]["Code"] == "SignatureDoesNotMatchException": print("The signature is not valid.") else: logger.error( "Couldn't verify your signature. Here's why: %s", err.response["Error"]["Message"], ) raise-
Para obter detalhes da API, consulte Verify na Referência da API do AWS SDK para Python (Boto3).
-
Para ver uma lista completa dos Guias do desenvolvedor e exemplos de código do SDK da AWS, consulte Using this service with an AWS SDK. Este tópico também inclui informações sobre como começar e detalhes sobre versões anteriores do SDK.