@@ -95,7 +95,7 @@ void setup() {
95
95
List <AwsKmsCmkId > keyIds = new ArrayList <>();
96
96
keyIds .add (AwsKmsCmkId .fromString (KEY_ID_1 ));
97
97
keyIds .add (AwsKmsCmkId .fromString (KEY_ID_2 ));
98
- keyring = new AwsKmsKeyring (dataKeyEncryptionDao , keyIds , AwsKmsCmkId .fromString (GENERATOR_KEY_ID ));
98
+ keyring = new AwsKmsKeyring (dataKeyEncryptionDao , keyIds , AwsKmsCmkId .fromString (GENERATOR_KEY_ID ), false );
99
99
}
100
100
101
101
@ Test
@@ -106,23 +106,44 @@ void testMalformedArns() {
106
106
.build ();
107
107
108
108
List <EncryptedDataKey > encryptedDataKeys = new ArrayList <>();
109
- encryptedDataKeys .add (new KeyBlob (AWS_KMS_PROVIDER_ID , "badArn" .getBytes (PROVIDER_ENCODING ), new byte []{}));
109
+ encryptedDataKeys .add (new KeyBlob (AWS_KMS_PROVIDER_ID , "arn: badArn" .getBytes (PROVIDER_ENCODING ), new byte []{}));
110
110
encryptedDataKeys .add (ENCRYPTED_KEY_1 );
111
111
112
112
decryptionMaterials = keyring .onDecrypt (decryptionMaterials , encryptedDataKeys );
113
113
assertEquals (PLAINTEXT_DATA_KEY , decryptionMaterials .getCleartextDataKey ());
114
114
115
+ decryptionMaterials = DecryptionMaterials .newBuilder ()
116
+ .setAlgorithm (ALGORITHM_SUITE )
117
+ .setEncryptionContext (ENCRYPTION_CONTEXT )
118
+ .build ();
119
+
115
120
// Malformed Arn for a non KMS provider shouldn't fail
116
121
encryptedDataKeys .clear ();
117
- encryptedDataKeys .add (new KeyBlob ("OtherProviderId" , "badArn" .getBytes (PROVIDER_ENCODING ), new byte []{}));
118
- keyring .onDecrypt (decryptionMaterials , encryptedDataKeys );
122
+ encryptedDataKeys .add (new KeyBlob ("OtherProviderId" , "arn: badArn" .getBytes (PROVIDER_ENCODING ), new byte []{}));
123
+ assertFalse ( keyring .onDecrypt (decryptionMaterials , encryptedDataKeys ). hasCleartextDataKey () );
119
124
}
120
125
121
126
@ Test
122
127
void testGeneratorKeyInKeyIds () {
123
128
assertThrows (IllegalArgumentException .class , () -> new AwsKmsKeyring (dataKeyEncryptionDao ,
124
129
Collections .singletonList (AwsKmsCmkId .fromString (GENERATOR_KEY_ID )),
125
- AwsKmsCmkId .fromString (GENERATOR_KEY_ID )));
130
+ AwsKmsCmkId .fromString (GENERATOR_KEY_ID ), false ));
131
+ }
132
+
133
+ @ Test
134
+ void testNotDiscoveryNoKeysIds () {
135
+ assertThrows (IllegalArgumentException .class , () -> new AwsKmsKeyring (dataKeyEncryptionDao ,
136
+ null ,null , false ));
137
+ }
138
+
139
+ @ Test
140
+ void testDiscoveryWithKeyId () {
141
+ assertThrows (IllegalArgumentException .class , () -> new AwsKmsKeyring (dataKeyEncryptionDao ,
142
+ null ,
143
+ AwsKmsCmkId .fromString (GENERATOR_KEY_ID ), true ));
144
+ assertThrows (IllegalArgumentException .class , () -> new AwsKmsKeyring (dataKeyEncryptionDao ,
145
+ Collections .singletonList (AwsKmsCmkId .fromString (GENERATOR_KEY_ID )),
146
+ null , true ));
126
147
}
127
148
128
149
@ Test
@@ -207,7 +228,7 @@ void testEncryptNullGenerator() {
207
228
.build ();
208
229
209
230
Keyring keyring = new AwsKmsKeyring (dataKeyEncryptionDao ,
210
- Collections .singletonList (AwsKmsCmkId .fromString (KEY_ID_1 )), null );
231
+ Collections .singletonList (AwsKmsCmkId .fromString (KEY_ID_1 )), null , false );
211
232
212
233
encryptionMaterials = keyring .onEncrypt (encryptionMaterials );
213
234
@@ -222,7 +243,7 @@ void testEncryptNullGenerator() {
222
243
223
244
@ Test
224
245
void testDiscoveryEncrypt () {
225
- keyring = new AwsKmsKeyring (dataKeyEncryptionDao , null , null );
246
+ keyring = new AwsKmsKeyring (dataKeyEncryptionDao , null , null , true );
226
247
227
248
EncryptionMaterials encryptionMaterials = EncryptionMaterials .newBuilder ()
228
249
.setAlgorithm (ALGORITHM_SUITE )
@@ -237,7 +258,7 @@ void testDiscoveryEncrypt() {
237
258
@ Test
238
259
void testEncryptNoGeneratorOrCleartextDataKey () {
239
260
keyring = new AwsKmsKeyring (dataKeyEncryptionDao ,
240
- Collections .singletonList (AwsKmsCmkId .fromString (KEY_ID_1 )), null );
261
+ Collections .singletonList (AwsKmsCmkId .fromString (KEY_ID_1 )), null , false );
241
262
242
263
EncryptionMaterials encryptionMaterials = EncryptionMaterials .newBuilder ().setAlgorithm (ALGORITHM_SUITE ).build ();
243
264
assertThrows (AwsCryptoException .class , () -> keyring .onEncrypt (encryptionMaterials ));
@@ -297,7 +318,7 @@ void testDecryptFirstKeyWrongProvider() {
297
318
298
319
@ Test
299
320
void testDiscoveryDecrypt () {
300
- keyring = new AwsKmsKeyring (dataKeyEncryptionDao , null , null );
321
+ keyring = new AwsKmsKeyring (dataKeyEncryptionDao , null , null , true );
301
322
302
323
DecryptionMaterials decryptionMaterials = DecryptionMaterials .newBuilder ()
303
324
.setAlgorithm (ALGORITHM_SUITE )
0 commit comments