|
7 | 7 |
|
8 | 8 | This serves as a reference of all features that this change affects. |
9 | 9 |
|
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) | |
14 | 14 |
|
15 | 15 | ## Affected Specifications |
16 | 16 |
|
@@ -47,8 +47,13 @@ it MUST generate the data key. |
47 | 47 |
|
48 | 48 | ## Out of Scope |
49 | 49 |
|
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 |
52 | 57 | is [tracked separately](https://github.com/awslabs/aws-encryption-sdk-specification/issues/144). |
53 | 58 |
|
54 | 59 | ## Motivation |
@@ -96,13 +101,14 @@ The description of OnEncrypt for the multi-keyring |
96 | 101 | will be changed to read as follows: |
97 | 102 |
|
98 | 103 | 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. |
0 commit comments