Skip to content

Commit 3d98f47

Browse files
authored
fix: correct KMS keyring parameter name from child_key_ids to key_ids (#240)
* fix: correct KMS keyring parameter name from child_key_ids to additional_key_ids * feat: rename kms keyring parameter from additional_key_ids to key_ids
1 parent 5abbf9c commit 3d98f47

File tree

5 files changed

+17
-17
lines changed

5 files changed

+17
-17
lines changed

examples/src/keyring/aws_kms/multiple_regions.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -46,16 +46,16 @@ def run(aws_kms_generator_cmk, aws_kms_additional_cmks, source_plaintext):
4646
}
4747

4848
# Create the keyring that will encrypt your data keys under all requested CMKs.
49-
many_cmks_keyring = KmsKeyring(generator_key_id=aws_kms_generator_cmk, child_key_ids=aws_kms_additional_cmks)
49+
many_cmks_keyring = KmsKeyring(generator_key_id=aws_kms_generator_cmk, key_ids=aws_kms_additional_cmks)
5050

5151
# Create keyrings that each only use one of the CMKs.
5252
# We will use these later to demonstrate that any of the CMKs can be used to decrypt the message.
5353
#
54-
# We provide these in "child_key_ids" rather than "generator_key_id"
54+
# We provide these in "key_ids" rather than "generator_key_id"
5555
# so that these keyrings cannot be used to generate a new data key.
5656
# We will only be using them on decrypt.
57-
single_cmk_keyring_that_generated = KmsKeyring(child_key_ids=[aws_kms_generator_cmk])
58-
single_cmk_keyring_that_encrypted = KmsKeyring(child_key_ids=[aws_kms_additional_cmks[0]])
57+
single_cmk_keyring_that_generated = KmsKeyring(key_ids=[aws_kms_generator_cmk])
58+
single_cmk_keyring_that_encrypted = KmsKeyring(key_ids=[aws_kms_additional_cmks[0]])
5959

6060
# Encrypt your plaintext data using the keyring that uses all requests CMKs.
6161
ciphertext, encrypt_header = aws_encryption_sdk.encrypt(

src/aws_encryption_sdk/keyrings/aws_kms/__init__.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,10 @@ class KmsKeyring(Keyring):
4848
Set ``generator_key_id`` to require that the keyring use that CMK to generate the data key.
4949
If you do not set ``generator_key_id``, the keyring will not generate a data key.
5050
51-
Set ``child_key_ids`` to specify additional CMKs that the keyring will use to encrypt the data key.
51+
Set ``key_ids`` to specify additional CMKs that the keyring will use to encrypt the data key.
5252
5353
The keyring will attempt to use any CMKs
54-
identified by CMK ARN in either ``generator_key_id`` or ``child_key_ids`` on decrypt.
54+
identified by CMK ARN in either ``generator_key_id`` or ``key_ids`` on decrypt.
5555
5656
You can identify CMKs by any `valid key ID`_ for the keyring to use on encrypt,
5757
but for the keyring to attempt to use them on decrypt
@@ -82,14 +82,14 @@ class KmsKeyring(Keyring):
8282
:param ClientSupplier client_supplier: Client supplier that provides AWS KMS clients (optional)
8383
:param bool is_discovery: Should this be a discovery keyring (optional)
8484
:param str generator_key_id: Key ID of AWS KMS CMK to use when generating data keys (optional)
85-
:param List[str] child_key_ids: Key IDs that will be used to encrypt and decrypt data keys (optional)
85+
:param List[str] key_ids: Key IDs that will be used to encrypt and decrypt data keys (optional)
8686
:param List[str] grant_tokens: AWS KMS grant tokens to include in requests (optional)
8787
"""
8888

8989
_client_supplier = attr.ib(default=attr.Factory(DefaultClientSupplier), validator=is_callable())
9090
_is_discovery = attr.ib(default=False, validator=instance_of(bool))
9191
_generator_key_id = attr.ib(default=None, validator=optional(instance_of(six.string_types)))
92-
_child_key_ids = attr.ib(
92+
_key_ids = attr.ib(
9393
default=attr.Factory(tuple),
9494
validator=(deep_iterable(member_validator=instance_of(six.string_types)), value_is_not_a_string),
9595
)
@@ -100,7 +100,7 @@ class KmsKeyring(Keyring):
100100

101101
def __attrs_post_init__(self):
102102
"""Configure internal keyring."""
103-
key_ids_provided = self._generator_key_id is not None or self._child_key_ids
103+
key_ids_provided = self._generator_key_id is not None or self._key_ids
104104
both = key_ids_provided and self._is_discovery
105105
neither = not key_ids_provided and not self._is_discovery
106106

@@ -127,7 +127,7 @@ def __attrs_post_init__(self):
127127
_AwsKmsSingleCmkKeyring(
128128
key_id=key_id, client_supplier=self._client_supplier, grant_tokens=self._grant_tokens
129129
)
130-
for key_id in self._child_key_ids
130+
for key_id in self._key_ids
131131
]
132132

133133
self._inner_keyring = MultiKeyring(generator=generator_keyring, children=child_keyrings)

test/functional/keyrings/aws_kms/test_aws_kms.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ def test_aws_kms_single_cmk_keyring_on_decrypt_single_cmk(fake_generator):
164164
def test_aws_kms_single_cmk_keyring_on_decrypt_multiple_cmk(fake_generator_and_child):
165165
generator, child = fake_generator_and_child
166166

167-
encrypting_keyring = KmsKeyring(generator_key_id=generator, child_key_ids=(child,))
167+
encrypting_keyring = KmsKeyring(generator_key_id=generator, key_ids=(child,))
168168
decrypting_keyring = _AwsKmsSingleCmkKeyring(key_id=child, client_supplier=DefaultClientSupplier())
169169

170170
initial_encryption_materials = EncryptionMaterials(algorithm=ALGORITHM, encryption_context={})

test/integration/integration_test_utils.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ def build_aws_kms_keyring(generate=True, cache=True):
9292
if generate:
9393
kwargs = dict(generator_key_id=cmk_arn)
9494
else:
95-
kwargs = dict(child_key_ids=[cmk_arn])
95+
kwargs = dict(key_ids=[cmk_arn])
9696

9797
keyring = KmsKeyring(**kwargs)
9898

test/unit/keyrings/test_aws_kms.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@
2020
(
2121
pytest.param(dict(client_supplier=None), id="client_supplier is invalid"),
2222
pytest.param(dict(generator_key_id=5), id="generator_id is invalid"),
23-
pytest.param(dict(child_key_ids=("foo", 5)), id="child_key_ids contains invalid values"),
24-
pytest.param(dict(child_key_ids="some stuff"), id="child_key_ids is a string"),
23+
pytest.param(dict(key_ids=("foo", 5)), id="key_ids contains invalid values"),
24+
pytest.param(dict(key_ids="some stuff"), id="key_ids is a string"),
2525
pytest.param(dict(grant_tokens=("foo", 5)), id="grant_tokens contains invalid values"),
2626
pytest.param(dict(grant_tokens="some stuff"), id="grant_tokens is a string"),
2727
pytest.param(dict(generator_key_id="foo", is_discovery=True), id="generator and discovery"),
28-
pytest.param(dict(child_key_ids=("foo",), is_discovery=True), id="child_key_ids and discovery"),
28+
pytest.param(dict(key_ids=("foo",), is_discovery=True), id="key_ids and discovery"),
2929
pytest.param(dict(), id="nothing"),
3030
),
3131
)
@@ -43,7 +43,7 @@ def test_kms_keyring_builds_correct_inner_keyring_multikeyring():
4343

4444
test = KmsKeyring(
4545
generator_key_id=generator_id,
46-
child_key_ids=(child_id_1, child_id_2),
46+
key_ids=(child_id_1, child_id_2),
4747
grant_tokens=grants,
4848
client_supplier=supplier,
4949
)
@@ -74,7 +74,7 @@ def test_kms_keyring_builds_correct_inner_keyring_multikeyring():
7474

7575

7676
def test_kms_keyring_builds_correct_inner_keyring_multikeyring_no_generator():
77-
test = KmsKeyring(child_key_ids=("bar", "baz"))
77+
test = KmsKeyring(key_ids=("bar", "baz"))
7878

7979
# We specified child IDs, so the inner keyring MUST be a multikeyring
8080
assert isinstance(test._inner_keyring, MultiKeyring)

0 commit comments

Comments
 (0)