Há mais exemplos de AWS SDK disponíveis no repositório AWS Doc SDK Examples
As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Use Verify com um AWS SDK ou 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
messageparâmetro deve ser codificado em Base64. Ou você pode salvar a mensagem em um arquivo e usar ofileb://prefixo, que AWS instrui a 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 AWS conta.
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 KMS assimétricas no AWS KMS, consulte Usando 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
Tem mais sobre GitHub. Encontre o exemplo completo e saiba 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-
Para obter detalhes da API, consulte Verify na Referência da API do AWS SDK para Python (Boto3).
-