Há mais exemplos do AWS SDK disponíveis no repositório do GitHub Documento de Exemplos do AWS SDK
Usar Verify com o AWS SDK ou a CLI
Os exemplos de código a seguir mostram como usar o Verify.
- CLI
-
- AWS CLI
-
Como 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://ExampleSignatureSaída:
{ "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.
-
Consulte detalhes da API em Verify
na Referência de comandos da AWS CLI.
-
- Python
-
- SDK para Python (Boto3).
-
nota
Há mais no GitHub. Encontre o exemplo completo e veja como configurar e executar no AWS Code 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-
Consulte detalhes da API em Verify na Referência da API do AWS SDK para Python (Boto3).
-