public DataKey encryptDataKey()

in src/main/java/com/amazonaws/encryptionsdk/kms/KmsMasterKey.java [128:153]


  public DataKey<KmsMasterKey> 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("Only RAW encoded keys are supported");
    }
    try {
      final EncryptResult encryptResult =
          kms_.get()
              .encrypt(
                  updateUserAgent(
                      new EncryptRequest()
                          .withKeyId(id_)
                          .withPlaintext(ByteBuffer.wrap(key.getEncoded()))
                          .withEncryptionContext(encryptionContext)
                          .withGrantTokens(grantTokens_)));
      final byte[] edk = new byte[encryptResult.getCiphertextBlob().remaining()];
      encryptResult.getCiphertextBlob().get(edk);
      return new DataKey<>(
          dataKey.getKey(), edk, encryptResult.getKeyId().getBytes(StandardCharsets.UTF_8), this);
    } catch (final AmazonServiceException asex) {
      throw new AwsCryptoException(asex);
    }
  }