27
27
}
28
28
29
29
30
+ def _generate_mkp ():
31
+ """Isolated inside a function to avoid calling get_cmk_arn during test discovery."""
32
+ return setup_kms_master_key_provider ().master_key (get_cmk_arn ())
33
+
34
+
30
35
@pytest .mark .parametrize (
31
- "kwargs " ,
36
+ "parameter_name, value_partial " ,
32
37
(
33
- pytest .param (dict (key_provider = setup_kms_master_key_provider ()), id = "AWS KMS master key provider" ),
34
- pytest .param (
35
- dict (key_provider = setup_kms_master_key_provider ().master_key (get_cmk_arn ())), id = "AWS KMS master key"
36
- ),
37
- pytest .param (dict (keyring = build_aws_kms_keyring ()), id = "AWS KMS keyring" ),
38
+ pytest .param ("key_provider" , setup_kms_master_key_provider , id = "AWS KMS master key provider" ),
39
+ pytest .param ("key_provider" , _generate_mkp , id = "AWS KMS master key" ),
40
+ pytest .param ("keyring" , build_aws_kms_keyring , id = "AWS KMS keyring" ),
38
41
),
39
42
)
40
- def test_encrypt_verify_user_agent_in_logs (caplog , kwargs ):
43
+ def test_encrypt_verify_user_agent_in_logs (caplog , parameter_name , value_partial ):
41
44
caplog .set_level (level = logging .DEBUG )
42
45
43
- aws_encryption_sdk .encrypt (source = VALUES ["plaintext_128" ], ** kwargs )
46
+ aws_encryption_sdk .encrypt (source = VALUES ["plaintext_128" ], ** { parameter_name : value_partial ()} )
44
47
45
48
assert USER_AGENT_SUFFIX in caplog .text
46
49
47
50
48
51
@pytest .mark .parametrize ("frame_size" , (pytest .param (0 , id = "unframed" ), pytest .param (1024 , id = "1024 byte frame" )))
49
52
@pytest .mark .parametrize ("algorithm_suite" , Algorithm )
50
53
@pytest .mark .parametrize (
51
- "encrypt_key_provider_kwargs " ,
54
+ "encrypt_key_provider_param, encrypt_key_provider_partial " ,
52
55
(
53
- pytest .param (dict ( key_provider = setup_kms_master_key_provider ()) , id = "encrypt with MKP" ),
54
- pytest .param (dict ( keyring = build_aws_kms_keyring ()) , id = "encrypt with keyring" ),
56
+ pytest .param (" key_provider" , setup_kms_master_key_provider , id = "encrypt with MKP" ),
57
+ pytest .param (" keyring" , build_aws_kms_keyring , id = "encrypt with keyring" ),
55
58
),
56
59
)
57
60
@pytest .mark .parametrize (
58
- "decrypt_key_provider_kwargs " ,
61
+ "decrypt_key_provider_param, decrypt_key_provider_partial " ,
59
62
(
60
- pytest .param (dict ( key_provider = setup_kms_master_key_provider ()) , id = "decrypt with MKP" ),
61
- pytest .param (dict ( keyring = build_aws_kms_keyring ()) , id = "decrypt with keyring" ),
63
+ pytest .param (" key_provider" , setup_kms_master_key_provider , id = "decrypt with MKP" ),
64
+ pytest .param (" keyring" , build_aws_kms_keyring , id = "decrypt with keyring" ),
62
65
),
63
66
)
64
67
@pytest .mark .parametrize (
@@ -76,16 +79,25 @@ def test_encrypt_verify_user_agent_in_logs(caplog, kwargs):
76
79
),
77
80
)
78
81
def test_encrypt_decrypt_cycle_aws_kms (
79
- frame_size , algorithm_suite , encrypt_key_provider_kwargs , decrypt_key_provider_kwargs , encryption_context , plaintext
82
+ frame_size ,
83
+ algorithm_suite ,
84
+ encrypt_key_provider_param ,
85
+ encrypt_key_provider_partial ,
86
+ decrypt_key_provider_param ,
87
+ decrypt_key_provider_partial ,
88
+ encryption_context ,
89
+ plaintext ,
80
90
):
81
91
ciphertext , _ = aws_encryption_sdk .encrypt (
82
92
source = plaintext ,
83
93
encryption_context = encryption_context ,
84
94
frame_length = frame_size ,
85
95
algorithm = algorithm_suite ,
86
- ** encrypt_key_provider_kwargs
96
+ ** {encrypt_key_provider_param : encrypt_key_provider_partial ()}
97
+ )
98
+ decrypted , _ = aws_encryption_sdk .decrypt (
99
+ source = ciphertext , ** {decrypt_key_provider_param : decrypt_key_provider_partial ()}
87
100
)
88
- decrypted , _ = aws_encryption_sdk .decrypt (source = ciphertext , ** decrypt_key_provider_kwargs )
89
101
assert decrypted == plaintext
90
102
91
103
0 commit comments