in src/main/java/com/amazonaws/encryptionsdk/jce/JceMasterKey.java [127:151]
public DataKey<JceMasterKey> encryptDataKey(
final CryptoAlgorithm algorithm,
final Map<String, String> encryptionContext,
final DataKey<?> dataKey) {
final SecretKey key = dataKey.getKey();
if (!key.getFormat().equals("RAW")) {
throw new IllegalArgumentException(
"Can only re-encrypt data keys which are in RAW format, not "
+ dataKey.getKey().getFormat());
}
if (!key.getAlgorithm().equalsIgnoreCase(algorithm.getDataKeyAlgo())) {
throw new IllegalArgumentException(
"Incorrect key algorithm. Expected "
+ key.getAlgorithm()
+ " but got "
+ algorithm.getKeyAlgo());
}
EncryptedDataKey encryptedDataKey =
jceKeyCipher_.encryptKey(key.getEncoded(), keyId_, providerName_, encryptionContext);
return new DataKey<>(
key,
encryptedDataKey.getEncryptedDataKey(),
encryptedDataKey.getProviderInformation(),
this);
}