in src/main/java/com/amazonaws/encryptionsdk/jce/KeyStoreProvider.java [177:202]
public DataKey<JceMasterKey> decryptDataKey(
final CryptoAlgorithm algorithm,
final Collection<? extends EncryptedDataKey> encryptedDataKeys,
final Map<String, String> encryptionContext)
throws UnsupportedProviderException, AwsCryptoException {
final List<Exception> exceptions = new ArrayList<>();
for (final EncryptedDataKey edk : encryptedDataKeys) {
try {
if (canProvide(edk.getProviderId())) {
final String alias = new String(edk.getProviderInformation(), StandardCharsets.UTF_8);
if (keystore_.isKeyEntry(alias)) {
final DataKey<JceMasterKey> result =
getMasterKey(alias)
.decryptDataKey(algorithm, Collections.singletonList(edk), encryptionContext);
if (result != null) {
return result;
}
}
}
} catch (final Exception ex) {
exceptions.add(ex);
}
}
throw buildCannotDecryptDksException(exceptions);
}