Skip to content

Commit 006cdc4

Browse files
authored
feat: AWS SDK v2 support
1 parent 0ab1db0 commit 006cdc4

39 files changed

+6102
-105
lines changed

pom.xml

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,19 @@
3838
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
3939
</properties>
4040

41+
<dependencyManagement>
42+
<dependencies>
43+
<dependency>
44+
<groupId>software.amazon.awssdk</groupId>
45+
<artifactId>bom</artifactId>
46+
<version>2.17.136</version>
47+
<optional>true</optional>
48+
<type>pom</type>
49+
<scope>import</scope>
50+
</dependency>
51+
</dependencies>
52+
</dependencyManagement>
53+
4154
<dependencies>
4255
<dependency>
4356
<groupId>com.amazonaws</groupId>
@@ -46,6 +59,13 @@
4659
<optional>true</optional>
4760
</dependency>
4861

62+
<dependency>
63+
<groupId>software.amazon.awssdk</groupId>
64+
<artifactId>kms</artifactId>
65+
<version>2.17.136</version>
66+
<optional>true</optional>
67+
</dependency>
68+
4969
<dependency>
5070
<groupId>org.bouncycastle</groupId>
5171
<artifactId>bcprov-ext-jdk15on</artifactId>
@@ -79,7 +99,6 @@
7999
<scope>test</scope>
80100
</dependency>
81101

82-
83102
<dependency>
84103
<groupId>com.google.code.findbugs</groupId>
85104
<artifactId>jsr305</artifactId>

src/examples/java/com/amazonaws/crypto/examples/BasicEncryptionExample.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010

1111
import com.amazonaws.encryptionsdk.AwsCrypto;
1212
import com.amazonaws.encryptionsdk.CryptoResult;
13-
import com.amazonaws.encryptionsdk.kms.KmsMasterKey;
14-
import com.amazonaws.encryptionsdk.kms.KmsMasterKeyProvider;
13+
import com.amazonaws.encryptionsdk.kmssdkv2.KmsMasterKey;
14+
import com.amazonaws.encryptionsdk.kmssdkv2.KmsMasterKeyProvider;
1515
import com.amazonaws.encryptionsdk.CommitmentPolicy;
1616

1717
/**

src/examples/java/com/amazonaws/crypto/examples/BasicMultiRegionKeyEncryptionExample.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
import com.amazonaws.encryptionsdk.AwsCrypto;
77
import com.amazonaws.encryptionsdk.CommitmentPolicy;
88
import com.amazonaws.encryptionsdk.CryptoResult;
9-
import com.amazonaws.encryptionsdk.kms.AwsKmsMrkAwareMasterKey;
10-
import com.amazonaws.encryptionsdk.kms.AwsKmsMrkAwareMasterKeyProvider;
9+
import com.amazonaws.encryptionsdk.kmssdkv2.AwsKmsMrkAwareMasterKey;
10+
import com.amazonaws.encryptionsdk.kmssdkv2.AwsKmsMrkAwareMasterKeyProvider;
1111

1212
import java.nio.charset.StandardCharsets;
1313
import java.util.Arrays;

src/examples/java/com/amazonaws/crypto/examples/DiscoveryDecryptionExample.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010

1111
import com.amazonaws.encryptionsdk.AwsCrypto;
1212
import com.amazonaws.encryptionsdk.CryptoResult;
13-
import com.amazonaws.encryptionsdk.kms.KmsMasterKey;
14-
import com.amazonaws.encryptionsdk.kms.KmsMasterKeyProvider;
13+
import com.amazonaws.encryptionsdk.kmssdkv2.KmsMasterKey;
14+
import com.amazonaws.encryptionsdk.kmssdkv2.KmsMasterKeyProvider;
1515
import com.amazonaws.encryptionsdk.CommitmentPolicy;
1616
import com.amazonaws.encryptionsdk.kms.DiscoveryFilter;
1717

src/examples/java/com/amazonaws/crypto/examples/DiscoveryMultiRegionDecryptionExample.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,14 @@
77
import com.amazonaws.encryptionsdk.CommitmentPolicy;
88
import com.amazonaws.encryptionsdk.CryptoResult;
99
import com.amazonaws.encryptionsdk.kms.DiscoveryFilter;
10-
import com.amazonaws.encryptionsdk.kms.AwsKmsMrkAwareMasterKey;
11-
import com.amazonaws.encryptionsdk.kms.AwsKmsMrkAwareMasterKeyProvider;
10+
import com.amazonaws.encryptionsdk.kmssdkv2.AwsKmsMrkAwareMasterKey;
11+
import com.amazonaws.encryptionsdk.kmssdkv2.AwsKmsMrkAwareMasterKeyProvider;
1212

1313
import java.nio.charset.StandardCharsets;
1414
import java.util.Arrays;
1515
import java.util.Collections;
1616
import java.util.Map;
17+
import software.amazon.awssdk.regions.Region;
1718

1819
/**
1920
* <p>
@@ -39,7 +40,7 @@ public static void main(final String[] args) {
3940
final String keyName = args[0];
4041
final String partition = args[1];
4142
final String accountId = args[2];
42-
final String discoveryMrkRegion = args[3];
43+
final Region discoveryMrkRegion = Region.of(args[3]);
4344

4445
encryptAndDecrypt(keyName, partition, accountId, discoveryMrkRegion);
4546
}
@@ -48,7 +49,7 @@ static void encryptAndDecrypt(
4849
final String keyName,
4950
final String partition,
5051
final String accountId,
51-
final String discoveryMrkRegion
52+
final Region discoveryMrkRegion
5253
) {
5354
// 1. Instantiate the SDK
5455
// This builds the AwsCrypto client with
@@ -113,7 +114,7 @@ static void encryptAndDecrypt(
113114
// it is limited to the Region configured for the AWS SDK.
114115
final AwsKmsMrkAwareMasterKeyProvider decryptingKeyProvider = AwsKmsMrkAwareMasterKeyProvider
115116
.builder()
116-
.withDiscoveryMrkRegion(discoveryMrkRegion)
117+
.discoveryMrkRegion(discoveryMrkRegion)
117118
.buildDiscovery(discoveryFilter);
118119

119120
// 7. Decrypt the data

src/examples/java/com/amazonaws/crypto/examples/EscrowedEncryptExample.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
import com.amazonaws.encryptionsdk.CryptoOutputStream;
1818
import com.amazonaws.encryptionsdk.MasterKeyProvider;
1919
import com.amazonaws.encryptionsdk.jce.JceMasterKey;
20-
import com.amazonaws.encryptionsdk.kms.KmsMasterKeyProvider;
20+
import com.amazonaws.encryptionsdk.kmssdkv2.KmsMasterKeyProvider;
2121
import com.amazonaws.encryptionsdk.multi.MultipleProviderFactory;
2222
import com.amazonaws.encryptionsdk.CommitmentPolicy;
2323
import com.amazonaws.util.IOUtils;

src/examples/java/com/amazonaws/crypto/examples/MultipleCmkEncryptExample.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010

1111
import com.amazonaws.encryptionsdk.AwsCrypto;
1212
import com.amazonaws.encryptionsdk.CryptoResult;
13-
import com.amazonaws.encryptionsdk.kms.KmsMasterKey;
14-
import com.amazonaws.encryptionsdk.kms.KmsMasterKeyProvider;
13+
import com.amazonaws.encryptionsdk.kmssdkv2.KmsMasterKey;
14+
import com.amazonaws.encryptionsdk.kmssdkv2.KmsMasterKeyProvider;
1515
import com.amazonaws.encryptionsdk.CommitmentPolicy;
1616

1717
/**

src/examples/java/com/amazonaws/crypto/examples/RestrictRegionExample.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@
1111
import com.amazonaws.encryptionsdk.AwsCrypto;
1212
import com.amazonaws.encryptionsdk.CryptoResult;
1313
import com.amazonaws.encryptionsdk.exception.AwsCryptoException;
14-
import com.amazonaws.encryptionsdk.kms.KmsMasterKey;
15-
import com.amazonaws.encryptionsdk.kms.KmsMasterKeyProvider;
14+
import com.amazonaws.encryptionsdk.kmssdkv2.KmsMasterKey;
15+
import com.amazonaws.encryptionsdk.kmssdkv2.KmsMasterKeyProvider;
1616
import com.amazonaws.encryptionsdk.CommitmentPolicy;
1717
import com.amazonaws.encryptionsdk.kms.DiscoveryFilter;
18-
import com.amazonaws.services.kms.AWSKMSClientBuilder;
19-
import com.amazonaws.services.kms.AWSKMS;
18+
import software.amazon.awssdk.regions.Region;
19+
import software.amazon.awssdk.services.kms.KmsClient;
2020

2121
/**
2222
* <p>
@@ -43,12 +43,12 @@ public static void main(final String[] args) {
4343
final String keyName = args[0];
4444
final String partition = args[1];
4545
final String accountId = args[2];
46-
final String region = args[3];
46+
final Region region = Region.of(args[3]);
4747

4848
encryptAndDecrypt(keyName, partition, accountId, region);
4949
}
5050

51-
static void encryptAndDecrypt(final String keyName, final String partition, final String accountId, final String region) {
51+
static void encryptAndDecrypt(final String keyName, final String partition, final String accountId, final Region region) {
5252
// Instantiate the SDK.
5353
// This builds the AwsCrypto client with the RequireEncryptRequireDecrypt commitment policy,
5454
// which enforces that this client only encrypts using committing algorithm suites and enforces
@@ -60,7 +60,7 @@ static void encryptAndDecrypt(final String keyName, final String partition, fina
6060
.build();
6161

6262
// 2. Instantiate the AWS KMS client for the desired region
63-
final AWSKMS kmsClient = AWSKMSClientBuilder.standard().withRegion(region).build();
63+
final KmsClient kmsClient = KmsClient.builder().region(region).build();
6464

6565
// 3. Instantiate an AWS KMS master key provider for encryption.
6666
//
@@ -101,14 +101,14 @@ static void encryptAndDecrypt(final String keyName, final String partition, fina
101101
// This example also configures the AWS KMS master key provider with a Discovery Filter to limit
102102
// the attempted AWS KMS CMKs to a particular partition and account.
103103
final KmsMasterKeyProvider decryptingKeyProvider = KmsMasterKeyProvider.builder()
104-
.withCustomClientFactory(cmkRegion -> {
104+
.customRegionalClientSupplier(cmkRegion -> {
105105
if(cmkRegion.equals(region)) {
106106
// return the previously built AWS KMS client so that we do
107107
// not create a new client on every decrypt call.
108108
return kmsClient;
109109
}
110110

111-
throw new AwsCryptoException("Only " + region + " is supported");
111+
throw new AwsCryptoException("Only " + region.id() + " is supported");
112112
})
113113
.buildDiscovery(discoveryFilter);
114114

src/examples/java/com/amazonaws/crypto/examples/SetCommitmentPolicyExample.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
import com.amazonaws.encryptionsdk.AwsCrypto;
1212
import com.amazonaws.encryptionsdk.CommitmentPolicy;
1313
import com.amazonaws.encryptionsdk.CryptoResult;
14-
import com.amazonaws.encryptionsdk.kms.KmsMasterKey;
15-
import com.amazonaws.encryptionsdk.kms.KmsMasterKeyProvider;
14+
import com.amazonaws.encryptionsdk.kmssdkv2.KmsMasterKey;
15+
import com.amazonaws.encryptionsdk.kmssdkv2.KmsMasterKeyProvider;
1616

1717
/**
1818
* <p>

src/examples/java/com/amazonaws/crypto/examples/SetEncryptionAlgorithmExample.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
import com.amazonaws.encryptionsdk.AwsCrypto;
1212
import com.amazonaws.encryptionsdk.CryptoAlgorithm;
1313
import com.amazonaws.encryptionsdk.CryptoResult;
14-
import com.amazonaws.encryptionsdk.kms.KmsMasterKey;
15-
import com.amazonaws.encryptionsdk.kms.KmsMasterKeyProvider;
14+
import com.amazonaws.encryptionsdk.kmssdkv2.KmsMasterKey;
15+
import com.amazonaws.encryptionsdk.kmssdkv2.KmsMasterKeyProvider;
1616

1717
/**
1818
* <p>

0 commit comments

Comments
 (0)