final Map<String, String> encryptionContext = ContentCryptoMaterial.mergeMaterialDescriptions(materials, req); GenerateDataKeyRequest keyGenReq = new GenerateDataKeyRequest() .withEncryptionContext(encryptionContext) .withKeyId(materials.getCustomerMasterKeyId()) .withKeySpec(contentCryptoScheme.getKeySpec()); keyGenReq .withGeneralProgressListener(req.getGeneralProgressListener()) .withRequestMetricCollector(req.getRequestMetricCollector())
@Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getKeyId() == null) ? 0 : getKeyId().hashCode()); hashCode = prime * hashCode + ((getEncryptionContext() == null) ? 0 : getEncryptionContext().hashCode()); hashCode = prime * hashCode + ((getNumberOfBytes() == null) ? 0 : getNumberOfBytes().hashCode()); hashCode = prime * hashCode + ((getKeySpec() == null) ? 0 : getKeySpec().hashCode()); hashCode = prime * hashCode + ((getGrantTokens() == null) ? 0 : getGrantTokens().hashCode()); return hashCode; }
/** * <p> * A list of grant tokens. * </p> * <p> * For more information, see <a * href="http://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token">Grant Tokens</a> in the * <i>AWS Key Management Service Developer Guide</i>. * </p> * * @param grantTokens * A list of grant tokens.</p> * <p> * For more information, see <a * href="http://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token">Grant Tokens</a> in * the <i>AWS Key Management Service Developer Guide</i>. * @return Returns a reference to this object so that method calls can be chained together. */ public GenerateDataKeyRequest withGrantTokens(java.util.Collection<String> grantTokens) { setGrantTokens(grantTokens); return this; }
@Override public DataKey<KmsMasterKey> generateDataKey(final CryptoAlgorithm algorithm, final Map<String, String> encryptionContext) { final GenerateDataKeyResult gdkResult = kms_.get().generateDataKey(updateUserAgent( new GenerateDataKeyRequest() .withKeyId(getKeyId()) .withNumberOfBytes(algorithm.getDataKeyLength()) .withEncryptionContext(encryptionContext) .withGrantTokens(grantTokens_) )); final byte[] rawKey = new byte[algorithm.getDataKeyLength()]; gdkResult.getPlaintext().get(rawKey); if (gdkResult.getPlaintext().remaining() > 0) { throw new IllegalStateException("Recieved an unexpected number of bytes from KMS"); } final byte[] encryptedKey = new byte[gdkResult.getCiphertextBlob().remaining()]; gdkResult.getCiphertextBlob().get(encryptedKey); final SecretKeySpec key = new SecretKeySpec(rawKey, algorithm.getDataKeyAlgo()); return new DataKey<>(key, encryptedKey, gdkResult.getKeyId().getBytes(StandardCharsets.UTF_8), this); }
final GenerateDataKeyRequest req = appendUserAgent(new GenerateDataKeyRequest()); req.setKeyId(keyId); req.setNumberOfBytes(256 / 8); req.setEncryptionContext(ec);
/** * <p> * The length of the data encryption key. Use <code>AES_128</code> to generate a 128-bit symmetric key, or * <code>AES_256</code> to generate a 256-bit symmetric key. * </p> * * @param keySpec * The length of the data encryption key. Use <code>AES_128</code> to generate a 128-bit symmetric key, or * <code>AES_256</code> to generate a 256-bit symmetric key. * @see DataKeySpec */ public void setKeySpec(DataKeySpec keySpec) { withKeySpec(keySpec); }
if (getGrantTokens() == null) { this.grantTokens = new java.util.ArrayList<String>(grantTokens.length);
final GenerateDataKeyRequest req = appendUserAgent(new GenerateDataKeyRequest()); req.setKeyId(keyId); req.setNumberOfBytes(256 / 8); req.setEncryptionContext(ec);
/** * <p> * The length of the data encryption key. Use <code>AES_128</code> to generate a 128-bit symmetric key, or * <code>AES_256</code> to generate a 256-bit symmetric key. * </p> * * @param keySpec * The length of the data encryption key. Use <code>AES_128</code> to generate a 128-bit symmetric key, or * <code>AES_256</code> to generate a 256-bit symmetric key. * @see DataKeySpec */ public void setKeySpec(DataKeySpec keySpec) { withKeySpec(keySpec); }
if (getGrantTokens() == null) { this.grantTokens = new java.util.ArrayList<String>(grantTokens.length);
return false; GenerateDataKeyRequest other = (GenerateDataKeyRequest) obj; if (other.getKeyId() == null ^ this.getKeyId() == null) return false; if (other.getKeyId() != null && other.getKeyId().equals(this.getKeyId()) == false) return false; if (other.getEncryptionContext() == null ^ this.getEncryptionContext() == null) return false; if (other.getEncryptionContext() != null && other.getEncryptionContext().equals(this.getEncryptionContext()) == false) return false; if (other.getNumberOfBytes() == null ^ this.getNumberOfBytes() == null) return false; if (other.getNumberOfBytes() != null && other.getNumberOfBytes().equals(this.getNumberOfBytes()) == false) return false; if (other.getKeySpec() == null ^ this.getKeySpec() == null) return false; if (other.getKeySpec() != null && other.getKeySpec().equals(this.getKeySpec()) == false) return false; if (other.getGrantTokens() == null ^ this.getGrantTokens() == null) return false; if (other.getGrantTokens() != null && other.getGrantTokens().equals(this.getGrantTokens()) == false) return false; return true;
final Map<String, String> encryptionContext = ContentCryptoMaterial.mergeMaterialDescriptions(materials, req); final GenerateDataKeyRequest keyGenReq = new GenerateDataKeyRequest() .withEncryptionContext(encryptionContext) .withKeyId(materials.getCustomerMasterKeyId()) .withKeySpec(contentCryptoScheme.getKeySpec()); keyGenReq .withGeneralProgressListener(req.getGeneralProgressListener()) .withRequestMetricCollector(req.getRequestMetricCollector()); final GenerateDataKeyResult keyGenRes = kms.generateDataKey(keyGenReq);
setGrantTokens(new com.amazonaws.internal.SdkInternalList<String>(grantTokens.length));
/** * <p> * The length of the data encryption key. Use <code>AES_128</code> to generate a 128-bit symmetric key, or * <code>AES_256</code> to generate a 256-bit symmetric key. * </p> * * @param keySpec * The length of the data encryption key. Use <code>AES_128</code> to generate a 128-bit symmetric key, or * <code>AES_256</code> to generate a 256-bit symmetric key. * @see DataKeySpec */ public void setKeySpec(DataKeySpec keySpec) { withKeySpec(keySpec); }
if (getGrantTokens() == null) { this.grantTokens = new java.util.ArrayList<String>(grantTokens.length);
/** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getKeyId() != null) sb.append("KeyId: ").append(getKeyId()).append(","); if (getEncryptionContext() != null) sb.append("EncryptionContext: ").append(getEncryptionContext()).append(","); if (getNumberOfBytes() != null) sb.append("NumberOfBytes: ").append(getNumberOfBytes()).append(","); if (getKeySpec() != null) sb.append("KeySpec: ").append(getKeySpec()).append(","); if (getGrantTokens() != null) sb.append("GrantTokens: ").append(getGrantTokens()); sb.append("}"); return sb.toString(); }
final Map<String, String> encryptionContext = ContentCryptoMaterial.mergeMaterialDescriptions(materials, req); final GenerateDataKeyRequest keyGenReq = new GenerateDataKeyRequest() .withEncryptionContext(encryptionContext) .withKeyId(materials.getCustomerMasterKeyId()) .withKeySpec(contentCryptoScheme.getKeySpec()); keyGenReq .withGeneralProgressListener(req.getGeneralProgressListener()) .withRequestMetricCollector(req.getRequestMetricCollector()); final GenerateDataKeyResult keyGenRes = kms.generateDataKey(keyGenReq);
/** * <p> * A list of grant tokens. * </p> * <p> * For more information, see <a href= * "http://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token" * >Grant Tokens</a> in the <i>AWS Key Management Service Developer * Guide</i>. * </p> * <p> * Returns a reference to this object so that method calls can be chained * together. * * @param grantTokens <p> * A list of grant tokens. * </p> * <p> * For more information, see <a href= * "http://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token" * >Grant Tokens</a> in the <i>AWS Key Management Service * Developer Guide</i>. * </p> * @return A reference to this updated object so that method calls can be * chained together. */ public GenerateDataKeyRequest withGrantTokens(java.util.Collection<String> grantTokens) { setGrantTokens(grantTokens); return this; }
/** * Marshall the given parameter object. */ public void marshall(GenerateDataKeyRequest generateDataKeyRequest, ProtocolMarshaller protocolMarshaller) { if (generateDataKeyRequest == null) { throw new SdkClientException("Invalid argument passed to marshall(...)"); } try { protocolMarshaller.marshall(generateDataKeyRequest.getKeyId(), KEYID_BINDING); protocolMarshaller.marshall(generateDataKeyRequest.getEncryptionContext(), ENCRYPTIONCONTEXT_BINDING); protocolMarshaller.marshall(generateDataKeyRequest.getNumberOfBytes(), NUMBEROFBYTES_BINDING); protocolMarshaller.marshall(generateDataKeyRequest.getKeySpec(), KEYSPEC_BINDING); protocolMarshaller.marshall(generateDataKeyRequest.getGrantTokens(), GRANTTOKENS_BINDING); } catch (Exception e) { throw new SdkClientException("Unable to marshall request to JSON: " + e.getMessage(), e); } }
final Map<String, String> encryptionContext = ContentCryptoMaterial.mergeMaterialDescriptions(materials, req); GenerateDataKeyRequest keyGenReq = new GenerateDataKeyRequest() .withEncryptionContext(encryptionContext) .withKeyId(materials.getCustomerMasterKeyId()) .withKeySpec(contentCryptoScheme.getKeySpec()); keyGenReq .withGeneralProgressListener(req.getGeneralProgressListener()) .withRequestMetricCollector(req.getRequestMetricCollector())