-
Notifications
You must be signed in to change notification settings - Fork 122
Update docs in prep for 1.6.1 #133
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 11 commits
eb3083e
51586c9
de5976c
575228e
ab92b57
f8d07a0
14a68d3
e2a8e08
d82630a
239fa59
ff69afa
2dc1cc4
cf38324
e23ac0e
775bb03
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||
---|---|---|---|---|---|---|---|---|
|
@@ -9,26 +9,31 @@ For more details about the design and architecture of the SDK, see the [official | |||||||
### Required Prerequisites | ||||||||
To use this SDK you must have: | ||||||||
|
||||||||
* **A Java 8 development environment** | ||||||||
* **A Java 8 or newer development environment** | ||||||||
|
||||||||
If you do not have one, go to [Java SE Downloads](https://www.oracle.com/technetwork/java/javase/downloads/index.html) on the Oracle website, then download and install the Java SE Development Kit (JDK). Java 8 or higher is required. | ||||||||
If you do not have one, we recommend [Amazon Corretto](https://aws.amazon.com/corretto/). | ||||||||
|
||||||||
**Note:** If you use the Oracle JDK, you must also download and install the [Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files](http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html). | ||||||||
|
||||||||
* **Bouncy Castle** | ||||||||
* **Bouncy Castle** or **Bouncy Castle FIPS** | ||||||||
|
||||||||
Bouncy Castle provides a cryptography API for Java. If you do not have Bouncy Castle, go to https://bouncycastle.org/latest_releases.html, then download the provider file that corresponds to your JDK. Or, you can pick it up from Maven: | ||||||||
The AWS Encryption SDK for Java uses Bouncy Castle for serializing and deserializing cryptographic objects. | ||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||
It does not explicitly use Bouncy Castle (or any other [JCA Provider](https://docs.oracle.com/javase/8/docs/api/java/security/Provider.html)) for the underlying cryptography. | ||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "explicitly use?" Do we use anything implicitly? Or: It does not require Bouncy Castle (or ...). There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We do not specify the provider and thus receive the highest priority implementation from the JCA. We could explicitly request a provider (or explicitly use provider specific classes), in which case only that explicit provider could/would be used. We don't know (or care) which provider we are using any more. It might be Bouncy Castle (if our callers have configured that to be the default), it might by the SUN provider (from Java), it might be ACCP. |
||||||||
Instead, it uses the platform default, which may be configured or overridden as documented in the | ||||||||
SalusaSecondus marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||
[Java Cryptography Architecture (JCA) Reference Guide](https://docs.oracle.com/javase/9/security/java-cryptography-architecture-jca-reference-guide.htm#JSSEC-GUID-2BCFDD85-D533-4E6C-8CE9-29990DEB0190). | ||||||||
|
||||||||
```xml | ||||||||
<dependency> | ||||||||
<groupId>org.bouncycastle</groupId> | ||||||||
<artifactId>bcprov-ext-jdk15on</artifactId> | ||||||||
<version>1.61</version> | ||||||||
</dependency> | ||||||||
``` | ||||||||
If you do not have Bouncy Castle, go to https://bouncycastle.org/latest_releases.html, then download the provider file that corresponds to your JDK. | ||||||||
Or, you can pick it up from Maven (groupId: `org.bouncycastle`, artifactId: `bcprov-ext-jdk15on`). | ||||||||
|
||||||||
Beginning in version 1.6.1, | ||||||||
the AWS Encryption SDK also works with Bouncy Castle FIPS (groupId: `org.bouncycastle`, artifactId: `bc-fips`) | ||||||||
as an alternative to non-FIPS Bouncy Castle. | ||||||||
For help installing and configuring Bouncy Castle FIPS, see [BC FIPS documentation](https://www.bouncycastle.org/documentation.html), | ||||||||
including User Guides and Security Policy for proper installation and configuration. | ||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I moved the end of the sentence to the beginning, so we can remove the end ("for proper installation and configuration"). Otherwise, it's redundant. If you want the "proper" in there, put it in the opening clause. |
||||||||
|
||||||||
### Optional Prerequisites | ||||||||
|
||||||||
#### AWS Integration | ||||||||
You don't need an Amazon Web Services (AWS) account to use this SDK, but some of the [example code][examples] requires an AWS account, a customer master key (CMK) in AWS KMS, and the AWS SDK for Java. | ||||||||
|
||||||||
* **To create an AWS account**, go to [Sign In or Create an AWS Account](https://portal.aws.amazon.com/gp/aws/developer/registration/index.html) and then choose **I am a new user.** Follow the instructions to create an AWS account. | ||||||||
|
@@ -37,6 +42,10 @@ You don't need an Amazon Web Services (AWS) account to use this SDK, but some of | |||||||
|
||||||||
* **To download and install the AWS SDK for Java**, go to [Installing the AWS SDK for Java](https://docs.aws.amazon.com/AWSSdkDocsJava/latest/DeveloperGuide/java-dg-install-sdk.html) in the AWS SDK for Java documentation and then follow the instructions on that page. | ||||||||
|
||||||||
#### 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 with installation and using ACCP, see the [ACCP GitHub Respository](https://github.com/corretto/amazon-corretto-crypto-provider) . | ||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||
|
||||||||
### Download | ||||||||
|
||||||||
You can get the latest release from Maven: | ||||||||
|
@@ -49,25 +58,6 @@ You can get the latest release from Maven: | |||||||
</dependency> | ||||||||
``` | ||||||||
|
||||||||
Don't forget to enable the download of snapshot jars from Maven: | ||||||||
|
||||||||
```xml | ||||||||
<profiles> | ||||||||
<profile> | ||||||||
<id>allow-snapshots</id> | ||||||||
<activation><activeByDefault>true</activeByDefault></activation> | ||||||||
<repositories> | ||||||||
<repository> | ||||||||
<id>snapshots-repo</id> | ||||||||
<url>https://oss.sonatype.org/content/repositories/snapshots</url> | ||||||||
<releases><enabled>false</enabled></releases> | ||||||||
<snapshots><enabled>true</enabled></snapshots> | ||||||||
</repository> | ||||||||
</repositories> | ||||||||
</profile> | ||||||||
</profiles> | ||||||||
``` | ||||||||
|
||||||||
### Get Started | ||||||||
|
||||||||
The following code sample demonstrates how to get started: | ||||||||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The new methods don't use Base64 encoding and will require the developer to apply it themselves. Do you have better wording for that?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Replace your calls to these methods with calls to
AwsCrypto.encryptData()
andAwsCrypto.decryptData()
. Because these methods don't perform any Base64 encoding or decoding, they are fully compatible with other language implementations of the AWS Encryption SDK.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Replace your calls to these methods with calls to AwsCrypto.encryptData() and AwsCrypto.decryptData(). Unlike the deprecated methods, these methods don't perform any Base64 encoding or decoding, so they are fully compatible with other language implementations of the AWS Encryption SDK.
If you need Base64 encoding or decoding for your application, you can add it outside of the AWS Encryption SDK.