Utilisation Verify avec un AWS SDK ou une CLI - AWS Exemples de code SDK

D'autres exemples de AWS SDK sont disponibles dans le référentiel AWS Doc SDK Examples GitHub .

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation Verify avec un AWS SDK ou une CLI

Les exemples de code suivants illustrent comment utiliser Verify.

CLI
AWS CLI

Pour vérifier une signature numérique

L'verifyexemple suivant vérifie la signature cryptographique d'un court message codé en Base64. L'identifiant de clé, le message, le type de message et l'algorithme de signature doivent être identiques à ceux utilisés pour signer le message. La signature que vous spécifiez ne peut pas être codée en base64. Pour obtenir de l'aide pour décoder la signature renvoyée par la sign commande, consultez les exemples de sign commandes.

La sortie de la commande inclut un SignatureValid champ booléen qui indique que la signature a été vérifiée. Si la validation de signature échoue, la verify commande échoue également.

Avant d'exécuter cette commande, remplacez l'exemple d'ID de clé par un ID de clé valide provenant de votre AWS compte.

aws kms verify \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --message fileb://EncodedMessage \ --message-type RAW \ --signing-algorithm RSASSA_PKCS1_V1_5_SHA_256 \ --signature fileb://ExampleSignature

Sortie :

{ "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "SignatureValid": true, "SigningAlgorithm": "RSASSA_PKCS1_V1_5_SHA_256" }

Pour plus d'informations sur l'utilisation de clés KMS asymétriques dans AWS KMS, consultez la section Utilisation de clés asymétriques dans le Guide du développeur du service de gestion des AWS clés.

  • Pour plus de détails sur l'API, voir Vérifier dans AWS CLI la référence des commandes.

Python
SDK pour Python (Boto3)
Note

Il y en a plus à ce sujet GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS.

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