Skip to content

Commit 6ccc012

Browse files
committed
PR feedback
1 parent 1ccffc9 commit 6ccc012

File tree

2 files changed

+34
-24
lines changed

2 files changed

+34
-24
lines changed

changes/2020-07-14_multi-keyring-require-generation/change.md

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77

88
This serves as a reference of all features that this change affects.
99

10-
| Feature |
11-
| ------------------------------------------------------------------------------------------------- |
12-
| [Multi-Keyring](../../framework/multi-keyring.md) |
13-
| [Multi keyring generator](https://github.com/awslabs/aws-encryption-sdk-specification/issues/114) |
10+
| Feature |
11+
| ----------------------------------------------------------------------------------------------------------------------------------------------------- |
12+
| [Multi-Keyring](https://github.com/awslabs/aws-encryption-sdk-specification/blob/31b0534c4259aad365f048b73231545583389c67/framework/multi-keyring.md) |
13+
| [Multi-Keyring Generator](https://github.com/awslabs/aws-encryption-sdk-specification/issues/114) |
1414

1515
## Affected Specifications
1616

@@ -47,8 +47,13 @@ it MUST generate the data key.
4747

4848
## Out of Scope
4949

50-
Detecting at keyring configuration time that encryption will always fail
51-
because keyrings are not capable of meeting these requirements
50+
If a multi-keyring is configured with another multi-keyring as its generator,
51+
and this second multi-keyring has no generator,
52+
the outer multi-keyring cannot ever successfully complete an OnEncrypt operation.
53+
This is one of several examples of keyring configurations
54+
that cannot satisfy the requirements of an operation.
55+
Detecting at keyring configuration time that encryption/decryption will always fail
56+
because keyrings are not capable of meeting their requirements
5257
is [tracked separately](https://github.com/awslabs/aws-encryption-sdk-specification/issues/144).
5358

5459
## Motivation
@@ -96,13 +101,14 @@ The description of OnEncrypt for the multi-keyring
96101
will be changed to read as follows:
97102

98103
If this keyring has a generator keyring,
99-
this keyring MUST first generate a plaintext data key using the generator keyring.
100-
If the input encryption materials already include a plaintext data key,
101-
OnEncrypt MUST fail.
102-
Otherwise,
103-
this keyring MUST first call that generator keyring's OnEncrypt
104-
using the input encryption materials as input.
105-
If the generator keyring fails OnEncrypt,
106-
this OnEncrypt MUST also fail.
107-
If the generator keyring returns encryption materials missing a plaintext data key,
108-
OnEncrypt MUST fail.
104+
this keyring MUST first generate a plaintext data key using the generator keyring:
105+
106+
- If the input encryption materials already include a plaintext data key,
107+
OnEncrypt MUST fail.
108+
- Otherwise,
109+
this keyring MUST first call that generator keyring's OnEncrypt
110+
using the input encryption materials as input.
111+
If the generator keyring fails OnEncrypt,
112+
this OnEncrypt MUST also fail.
113+
If the generator keyring returns encryption materials missing a plaintext data key,
114+
OnEncrypt MUST fail.

framework/multi-keyring.md

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -61,14 +61,18 @@ If this keyring does not have a [generator keyring](#generator-keyring), this li
6161

6262
### OnEncrypt
6363

64-
If this keyring has a [generator keyring](#generator-keyring),
65-
this keyring MUST first generate a plaintext data key using the generator keyring.
66-
If the input encryption materials already include a plaintext data key, OnEncrypt MUST fail.
67-
Otherwise, this keyring MUST first call that generator keyring's [OnEncrypt](keyring-interface.md#onencrypt)
68-
using the input [encryption materials](structures.md#encryption-materials) as input.
69-
If the [generator keyring](#generator-keyring) fails [OnEncrypt](keyring-interface.md#onencrypt), this OnEncrypt MUST also fail.
70-
If the [generator keyring](#generator-keyring) returns [encryption materials](structures.md#encryption-materials) missing a plaintext data key,
71-
OnEncrypt MUST fail.
64+
If this keyring has a generator keyring,
65+
this keyring MUST first generate a plaintext data key using the generator keyring:
66+
67+
- If the input encryption materials already include a plaintext data key,
68+
OnEncrypt MUST fail.
69+
- Otherwise,
70+
this keyring MUST first call that generator keyring's OnEncrypt
71+
using the input encryption materials as input.
72+
If the generator keyring fails OnEncrypt,
73+
this OnEncrypt MUST also fail.
74+
If the generator keyring returns encryption materials missing a plaintext data key,
75+
OnEncrypt MUST fail.
7276

7377
If this keyring does not have a [generator keyring](#generator-keyring),
7478
and the input [encryption materials](structures.md#encryption-materials)

0 commit comments

Comments
 (0)