Skip to content

Commit e71d2fd

Browse files
m
1 parent 2e04dab commit e71d2fd

1 file changed

Lines changed: 28 additions & 0 deletions

File tree

src/test/java/software/amazon/encryption/s3/S3EncryptionClientTest.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
import software.amazon.encryption.s3.algorithms.AlgorithmSuite;
4343
import software.amazon.encryption.s3.internal.InstructionFileConfig;
4444
import software.amazon.encryption.s3.internal.MetadataKeyConstants;
45+
import software.amazon.encryption.s3.materials.AesKeyring;
4546
import software.amazon.encryption.s3.materials.CryptographicMaterialsManager;
4647
import software.amazon.encryption.s3.materials.DefaultCryptoMaterialsManager;
4748
import software.amazon.encryption.s3.materials.KmsKeyring;
@@ -52,6 +53,7 @@
5253

5354
import javax.crypto.KeyGenerator;
5455
import javax.crypto.SecretKey;
56+
import javax.crypto.spec.SecretKeySpec;
5557
import java.security.KeyPair;
5658
import java.security.KeyPairGenerator;
5759
import java.security.NoSuchAlgorithmException;
@@ -964,6 +966,32 @@ public void s3EncryptionClientTopLevelCredentialsWrongRegion() {
964966
}
965967
}
966968

969+
@RetryingTest(3)
970+
public void crossRegionRoundTrip() {
971+
final String objectKey = appendTestSuffix("cross-region-test");
972+
SecretKeySpec aesKey = new SecretKeySpec(new byte[32], "AES");
973+
AesKeyring keyRing = AesKeyring.builder().wrappingKey(aesKey).build();
974+
975+
S3Client s3 = S3EncryptionClient.builderV4()
976+
.region(Region.EU_CENTRAL_1)
977+
.crossRegionAccessEnabled(true)
978+
.keyring(keyRing)
979+
.build();
980+
981+
try {
982+
PutObjectRequest request = PutObjectRequest.builder().bucket(BUCKET).key(objectKey).build();
983+
s3.putObject(request, RequestBody.fromBytes("test".getBytes()));
984+
ResponseBytes<GetObjectResponse> response = s3.getObjectAsBytes(builder -> builder
985+
.bucket(BUCKET)
986+
.key(objectKey)
987+
.build());
988+
assertEquals("test", response.asUtf8String());
989+
} finally {
990+
deleteObject(BUCKET, objectKey, s3);
991+
s3.close();
992+
}
993+
}
994+
967995
@RetryingTest(3)
968996
public void s3EncryptionClientTopLevelCredentialsNullCreds() {
969997
final String objectKey = appendTestSuffix("wrapped-s3-client-with-null-credentials");

0 commit comments

Comments
 (0)