Skip to content

Commit 8392dfd

Browse files
Enable snapshot testing
1 parent cddd12a commit 8392dfd

File tree

2 files changed

+383
-17
lines changed

2 files changed

+383
-17
lines changed

tests/integration/test_kms.py

Lines changed: 31 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,14 @@ def test_generate_data_key_without_plaintext(self, kms_client, kms_key):
387387
assert result.get("KeyId")
388388

389389
@pytest.mark.aws_validated
390+
@pytest.mark.skip_snapshot_verify(
391+
paths=[
392+
"$..Signature",
393+
"$..KeyId",
394+
"$..Error.Message",
395+
"$..message",
396+
]
397+
)
390398
@pytest.mark.parametrize(
391399
"key_spec,sign_algo",
392400
[
@@ -396,12 +404,11 @@ def test_generate_data_key_without_plaintext(self, kms_client, kms_key):
396404
("RSA_4096", "RSASSA_PKCS1_V1_5_SHA_256"),
397405
("RSA_4096", "RSASSA_PKCS1_V1_5_SHA_512"),
398406
("ECC_NIST_P256", "ECDSA_SHA_256"),
399-
("ECC_NIST_P256", "ECDSA_SHA_384"),
407+
("ECC_NIST_P384", "ECDSA_SHA_384"),
400408
("ECC_SECG_P256K1", "ECDSA_SHA_256"),
401-
("ECC_SECG_P256K1", "ECDSA_SHA_512"),
402409
],
403410
)
404-
def test_sign_verify(self, kms_client, kms_create_key, key_spec, sign_algo):
411+
def test_sign_verify(self, kms_client, kms_create_key, snapshot, key_spec, sign_algo):
405412
hash_algo = get_hash_algorithm(sign_algo)
406413
hasher = getattr(hashlib, hash_algo.replace("_", "").lower())
407414

@@ -416,38 +423,49 @@ def test_sign_verify(self, kms_client, kms_create_key, key_spec, sign_algo):
416423
bad_message = b"bad message 321"
417424

418425
# Ensure raw messages can be signed and verified
419-
signature = kms_client.sign(MessageType="RAW", Message=plaintext, **kwargs)["Signature"]
420-
assert kms_client.verify(
421-
MessageType="RAW", Signature=signature, Message=plaintext, **kwargs
422-
)["SignatureValid"]
426+
signature = kms_client.sign(MessageType="RAW", Message=plaintext, **kwargs)
427+
snapshot.match("signature", signature)
428+
verification = kms_client.verify(
429+
MessageType="RAW", Signature=signature["Signature"], Message=plaintext, **kwargs
430+
)
431+
snapshot.match("verification", verification)
432+
assert verification["SignatureValid"]
423433

424434
# Ensure pre-hashed messages can be signed and verified
425-
signature = kms_client.sign(MessageType="DIGEST", Message=digest, **kwargs)["Signature"]
426-
assert kms_client.verify(
427-
MessageType="DIGEST", Signature=signature, Message=digest, **kwargs
428-
)["SignatureValid"]
435+
signature = kms_client.sign(MessageType="DIGEST", Message=digest, **kwargs)
436+
verification = kms_client.verify(
437+
MessageType="DIGEST", Signature=signature["Signature"], Message=digest, **kwargs
438+
)
439+
assert verification["SignatureValid"]
429440

430441
# Ensure bad digest raises during signing
431442
with pytest.raises(ClientError) as exc:
432443
kms_client.sign(MessageType="DIGEST", Message=plaintext, **kwargs)
433444
assert exc.match("ValidationException")
445+
snapshot.match("bad-digest", exc.value.response)
434446

435447
# Ensure bad signature raises during verify
436448
with pytest.raises(ClientError) as exc:
437449
kms_client.verify(
438450
MessageType="RAW", Signature=bad_signature, Message=plaintext, **kwargs
439451
)
440452
assert exc.match("KMSInvalidSignatureException")
453+
snapshot.match("bad-signature", exc.value.response)
441454

442455
# Ensure bad message raises during verify
443456
with pytest.raises(ClientError) as exc:
444-
kms_client.verify(MessageType="RAW", Signature=signature, Message=bad_message, **kwargs)
457+
kms_client.verify(
458+
MessageType="RAW", Signature=signature["Signature"], Message=bad_message, **kwargs
459+
)
445460
assert exc.match("KMSInvalidSignatureException")
446461

447462
# Ensure bad digest raises during verify
448463
with pytest.raises(ClientError) as exc:
449464
kms_client.verify(
450-
MessageType="DIGEST", Signature=signature, Message=bad_message, **kwargs
465+
MessageType="DIGEST",
466+
Signature=signature["Signature"],
467+
Message=bad_message,
468+
**kwargs,
451469
)
452470
assert exc.match("ValidationException")
453471

@@ -476,10 +494,6 @@ def test_invalid_key_usage(self, kms_client, kms_create_key):
476494
[
477495
("SYMMETRIC_DEFAULT", "SYMMETRIC_DEFAULT"),
478496
("RSA_2048", "RSAES_OAEP_SHA_256"),
479-
("ECC_NIST_P256", "RSAES_OAEP_SHA_1"),
480-
("ECC_SECG_P256K1", "RSAES_OAEP_SHA_256"),
481-
# ("HMAC_256", "SYMMETRIC_DEFAULT"), # currently not supported in LocalStack
482-
# ("SM2", "SM2PKE"), # currently not supported in LocalStack
483497
],
484498
)
485499
def test_encrypt_decrypt(self, kms_client, kms_create_key, key_spec, algo):

0 commit comments

Comments
 (0)