diff --git a/SUPPORT_POLICY.rst b/SUPPORT_POLICY.rst new file mode 100644 index 000000000..42dd3c360 --- /dev/null +++ b/SUPPORT_POLICY.rst @@ -0,0 +1,33 @@ +Overview +======== +This page describes the support policy for the AWS Encryption SDK. We regularly provide the AWS Encryption SDK with updates that may contain support for new or updated APIs, new features, enhancements, bug fixes, security patches, or documentation updates. Updates may also address changes with dependencies, language runtimes, and operating systems. + +We recommend users to stay up-to-date with Encryption SDK releases to keep up with the latest features, security updates, and underlying dependencies. Continued use of an unsupported SDK version is not recommended and is done at the user’s discretion + + +Major Version Lifecycle +======================== +The AWS Encryption SDK follows the same major version lifecycle as the AWS SDK. For details on this lifecycle, see `AWS SDKs and Tools Maintenance Policy`_. + +Version Support Matrix +====================== +This table describes the current support status of each major version of the AWS Encryption SDK for Java. It also shows the next status each major version will transition to, and the date at which that transition will happen. + +.. list-table:: + :widths: 30 50 50 50 + :header-rows: 1 + + * - Major version + - Current status + - Next status + - Next status date + * - 1.x + - End of Support + - + - + * - 2.x + - Generally Available + - + - + +.. _AWS SDKs and Tools Maintenance Policy: https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html#version-life-cycle diff --git a/src/main/java/com/amazonaws/encryptionsdk/AwsCrypto.java b/src/main/java/com/amazonaws/encryptionsdk/AwsCrypto.java index 7ba6af698..72f5913e3 100644 --- a/src/main/java/com/amazonaws/encryptionsdk/AwsCrypto.java +++ b/src/main/java/com/amazonaws/encryptionsdk/AwsCrypto.java @@ -14,6 +14,7 @@ import java.nio.charset.StandardCharsets; import java.util.Collections; import java.util.Map; +import java.util.logging.Logger; /** * Provides the primary entry-point to the AWS Encryption SDK. All encryption and decryption @@ -65,6 +66,7 @@ */ @SuppressWarnings("WeakerAccess") // this is a public API public class AwsCrypto { + private static final Logger LOGGER = Logger.getLogger(AwsCrypto.class.getName()); private static final Map EMPTY_MAP = Collections.emptyMap(); // These are volatile because we allow unsynchronized writes via our setters, @@ -83,6 +85,13 @@ public class AwsCrypto { */ private final int maxEncryptedDataKeys_; + private static void warn_end_of_support() { + LOGGER.warning( + "This major version (1.x) of the AWS Encryption SDK for Java has reached End-of-Support.\n" + + "It will no longer receive security updates or bug fixes.\n" + + "Consider updating to the latest version of the AWS Encryption SDK."); + } + /** * @deprecated This constructor implicitly configures the Aws Crypto client with a commitment * policy that allows reading encrypted messages without commitment values. Use {@link @@ -91,11 +100,13 @@ public class AwsCrypto { */ @Deprecated public AwsCrypto() { + warn_end_of_support(); commitmentPolicy_ = CommitmentPolicy.ForbidEncryptAllowDecrypt; maxEncryptedDataKeys_ = CiphertextHeaders.NO_MAX_ENCRYPTED_DATA_KEYS; } private AwsCrypto(Builder builder) { + warn_end_of_support(); if (builder.commitmentPolicy_ == null) { throw new IllegalArgumentException("Must specify a commitment policy on the client."); }