Skip to content

Commit 6396c6c

Browse files
Add factory methods to Keyring builders
1 parent e04c285 commit 6396c6c

File tree

4 files changed

+51
-11
lines changed

4 files changed

+51
-11
lines changed

src/main/java/com/amazonaws/encryptionsdk/keyrings/AwsKmsKeyringBuilder.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,17 @@ public class AwsKmsKeyringBuilder {
2525
private List<AwsKmsCmkId> keyIds;
2626
private AwsKmsCmkId generatorKeyId;
2727

28-
AwsKmsKeyringBuilder() {
29-
// Use StandardKeyrings.awsKms() to instantiate
28+
private AwsKmsKeyringBuilder() {
29+
// Use AwsKmsKeyringBuilder.standard() or StandardKeyrings.awsKms() to instantiate
30+
}
31+
32+
/**
33+
* Constructs a new instance of {@code AwsKmsKeyringBuilder}
34+
*
35+
* @return The {@code AwsKmsKeyringBuilder}
36+
*/
37+
public static AwsKmsKeyringBuilder standard() {
38+
return new AwsKmsKeyringBuilder();
3039
}
3140

3241
/**

src/main/java/com/amazonaws/encryptionsdk/keyrings/RawAesKeyringBuilder.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,17 @@ public class RawAesKeyringBuilder {
2020
private String keyName;
2121
private SecretKey wrappingKey;
2222

23-
RawAesKeyringBuilder() {
24-
// Use StandardKeyrings.rawAes() to instantiate
23+
private RawAesKeyringBuilder() {
24+
// Use RawAesKeyringBuilder.standard() or StandardKeyrings.rawAes() to instantiate
25+
}
26+
27+
/**
28+
* Constructs a new instance of {@code RawAesKeyringBuilder}
29+
*
30+
* @return The {@code RawAesKeyringBuilder}
31+
*/
32+
public static RawAesKeyringBuilder standard() {
33+
return new RawAesKeyringBuilder();
2534
}
2635

2736
/**

src/main/java/com/amazonaws/encryptionsdk/keyrings/RawRsaKeyringBuilder.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,17 @@ public class RawRsaKeyringBuilder {
2323
private PrivateKey privateKey;
2424
private String wrappingAlgorithm;
2525

26-
RawRsaKeyringBuilder() {
27-
// Use StandardKeyrings.rawRsa() to instantiate
26+
private RawRsaKeyringBuilder() {
27+
// Use RawRsaKeyringBuilder.standard() or StandardKeyrings.rawRsa() to instantiate
28+
}
29+
30+
/**
31+
* Constructs a new instance of {@code RawRsaKeyringBuilder}
32+
*
33+
* @return The {@code RawRsaKeyringBuilder}
34+
*/
35+
public static RawRsaKeyringBuilder standard() {
36+
return new RawRsaKeyringBuilder();
2837
}
2938

3039
/**

src/main/java/com/amazonaws/encryptionsdk/keyrings/StandardKeyrings.java

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
package com.amazonaws.encryptionsdk.keyrings;
1515

16+
import com.amazonaws.encryptionsdk.kms.AwsKmsClientSupplier;
1617
import com.amazonaws.encryptionsdk.kms.AwsKmsCmkId;
1718

1819
import java.util.Arrays;
@@ -33,7 +34,7 @@ private StandardKeyrings() {
3334
* @return The {@link RawAesKeyringBuilder}
3435
*/
3536
public static RawAesKeyringBuilder rawAes() {
36-
return new RawAesKeyringBuilder();
37+
return RawAesKeyringBuilder.standard();
3738
}
3839

3940
/**
@@ -44,7 +45,7 @@ public static RawAesKeyringBuilder rawAes() {
4445
* @return The {@link RawRsaKeyringBuilder}
4546
*/
4647
public static RawRsaKeyringBuilder rawRsa() {
47-
return new RawRsaKeyringBuilder();
48+
return RawRsaKeyringBuilder.standard();
4849
}
4950

5051
/**
@@ -58,7 +59,7 @@ public static RawRsaKeyringBuilder rawRsa() {
5859
* @return The {@code Keyring}
5960
*/
6061
public static Keyring awsKms(AwsKmsCmkId generatorKeyId) {
61-
return new AwsKmsKeyringBuilder()
62+
return AwsKmsKeyringBuilder.standard()
6263
.generatorKeyId(generatorKeyId)
6364
.build();
6465
}
@@ -71,17 +72,29 @@ public static Keyring awsKms(AwsKmsCmkId generatorKeyId) {
7172
* @return The {@link AwsKmsKeyringBuilder}
7273
*/
7374
public static AwsKmsKeyringBuilder awsKms() {
74-
return new AwsKmsKeyringBuilder();
75+
return AwsKmsKeyringBuilder.standard();
7576
}
7677

7778
/**
7879
* Constructs a {@code Keyring} which interacts with AWS Key Management Service (KMS) to attempt to
7980
* decrypt all data keys provided to it. AWS KMS Discovery keyrings do not perform encryption.
81+
* <p></p>
82+
* To create an AWS KMS Regional Discovery Keyring, use {@link #awsKms()} and the
83+
* {@link AwsKmsClientSupplier#builder()} to specify which regions to include/exclude.
84+
* <p></p>
85+
* For example, to include only CMKs in the us-east-1 region:
86+
* <pre>
87+
* StandardKeyrings.awsKms()
88+
* .awsKmsClientSupplier(
89+
* AwsKmsClientSupplier.builder()
90+
* .allowedRegions(Collections.singleton("us-east-1")).build())
91+
* .build();
92+
* </pre>
8093
*
8194
* @return The {@code Keyring}
8295
*/
8396
public static Keyring awsKmsDiscovery() {
84-
return new AwsKmsKeyringBuilder().build();
97+
return AwsKmsKeyringBuilder.standard().build();
8598
}
8699

87100
/**

0 commit comments

Comments
 (0)