seebees/aws-cryptographic-material-providers-library-java

AWS Cryptographic Material Providers Library for Java

★ 0Forks 0GitHub ↗Compare

README

AWS Cryptographic Material Providers Library for Java

Note: The AWS Cryptographic Material Providers Library is released as a developer preview and is subject to change. The current release is not intended to be used in production environments.

The AWS Cryptographic Material Providers Library abstracts lower level cryptographic materials management of encryption and decryption materials. It uses cryptographic best practices to protect the data keys that protect your data. The data key is protected with a key encryption key called a wrapping key or master key. The encryption method returns the data key and one or more encrypted data keys. Supported libraries use this information to perform envelope encryption. The data key is used to protect your data, and the encrypted data keys are stored alongside your data so you don't need to keep track of the data keys separately. You can use AWS KMS keys in AWS Key Management Service(AWS KMS) as wrapping keys. The AWS Cryptographic Material Providers Library also provides APIs to define and use wrapping keys from other key providers.

The AWS Cryptographic Material Providers Library for Java provides methods for encrypting and decrypting cryptographic materials used in higher level client side encryption libraries.

Security issue notifications

Security

If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security via our vulnerability reporting page. Please do not create a public GitHub issue.

Getting Started

Required Prerequisites

To use the AWS Cryptographic Material Providers Library for Java you must have:

Optional Prerequisites

AWS Integration

You don't need an Amazon Web Services (AWS) account to use the AWS Cryptographic Material Providers Library, but some APIs require an AWS account, an AWS KMS key, an AWS DynamoDB Table, and the AWS SDK for Java V2. Note that the KmsAsyncClient and DynamoDBAsyncClient are not supported, only the synchronous clients.

Amazon Corretto Crypto Provider

Many users find that the Amazon Corretto Crypto Provider (ACCP) significantly improves the performance of the AWS Encryption SDK. For help installing and using ACCP, see the amazon-corretto-crypto-provider repository.

Download the AWS Cryptographic Material Providers Library for Java

You can get the latest release from Maven or Gradle:

Maven:

<dependency>
  <groupId>software.amazon.cryptography</groupId>
  <artifactId>aws-cryptographic-material-providers</artifactId>
  <version>1.0.0-preview-4</version>
</dependency>

Gradle:

dependencies {
    implementation("software.amazon.cryptography:aws-cryptographic-material-providers:1.0.0-preview-4")
}

Public API

Our versioning policy applies to all public and protected classes/methods/fields in the software.amazon.cryptography.materialproviders package unless otherwise documented.

The software.amazon.cryptography.materialproviders.internaldafny package is not included in this public API.

FAQ

See the Frequently Asked Questions page in the official documentation.

Contributors

josecorellalavaleriseebeestexastonyajewellamzfarleyb-amazonRustanLeinorobin-awsmschlaipferMatthewBenningtonalex-chewsmswzaciocamazon-autolucasmcdonald3ShubhamChaturvedi7

Issues