You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,7 +14,7 @@ The AmazonS3EncryptionClientV2 supports the following encryption methods for enc
14
14
* RSA-OAEP-SHA1
15
15
* AES-GCM
16
16
17
-
Object content is encrypted using AES-GCM with generated DEKs which are stored in the S3 object metadata or in a separate instruction file (as configured).
17
+
Object content is encrypted using committing AES-GCM (default) with generated DEKs which are stored in the S3 object metadata or in a separate instruction file (as configured).
This page describes the support policy for the Amazon S3 Encryption Client for .NET. We regularly provide the Amazon S3 Encryption Client for .NET 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.
4
+
5
+
We recommend users to stay up-to-date with Amazon S3 Encryption Client for .NET 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.
6
+
7
+
8
+
Major Version Lifecycle
9
+
========================
10
+
The Amazon S3 Encryption Client for .NET follows the same major version lifecycle as the AWS SDK. For details on this lifecycle, see `AWS SDKs and Tools Maintenance Policy`_.
11
+
12
+
Version Support Matrix
13
+
======================
14
+
This table describes the current support status of each major version of the Amazon S3 Encryption Client for .NET. It also shows the next status each major version will transition to, and the date at which that transition will happen.
15
+
16
+
.. list-table::
17
+
:widths: 30 50 50 50
18
+
:header-rows: 1
19
+
20
+
* - Major version
21
+
- Current status
22
+
- Next status
23
+
- Next status date
24
+
* - 4.x
25
+
- General Availability
26
+
-
27
+
-
28
+
* - 3.x
29
+
- General Availability
30
+
- Maintenance
31
+
-
32
+
* - 2.x
33
+
- General Availability
34
+
- Maintenance
35
+
- March 1, 2026
36
+
37
+
.. _AWS SDKs and Tools Maintenance Policy: https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html#version-life-cycle
Copy file name to clipboardExpand all lines: docs/index.md
+48-27Lines changed: 48 additions & 27 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,29 +7,32 @@ _layout: landing
7
7
## Overview
8
8
9
9
These are the API docs for the Amazon S3 Encryption client for .NET. There exist two (2) clients in this product:
10
-
* AmazonS3EncryptionClient
11
10
* AmazonS3EncryptionClientV2
11
+
* AmazonS3EncryptionClientV4
12
12
13
-
The AmazonS3EncryptionClient has an identical API to the obsolete client that is in the AWS SDK for .NET. The main difference is
14
-
that this client can also decrypt AmazonS3EncryptionClientV2 encrypted objects.
13
+
The AmazonS3EncryptionClientV2 has an identical API to the AmazonS3EncryptionClientV4 that is in the AWS SDK for .NET. The main difference is
14
+
that AmazonS3EncryptionClientV2 can only decrypt message with content encryption AesGcmWithCommitment, while AmazonS3EncryptionClientV4 can encrypt or decrypt
15
+
message with content encryption AesGcmWithCommitment. It is recommended to use AesGcmWithCommitment instead of AesGcm without key commitment because key commitment
16
+
prevents attackers from crafting ciphertexts that decrypt to different plaintexts under different keys, protecting against key substitution attacks when on instruction file mode.
15
17
16
-
## How to use the AmazonS3EncryptionClientV2 client
18
+
## How to use the AmazonS3EncryptionClientV4 client
17
19
18
-
The AmazonS3EncryptionClientV2 supports the following encryption methods for encrypting DEKs (Data encryption keys):
20
+
The AmazonS3EncryptionClientV4 supports the following encryption methods for encrypting DEKs (Data encryption keys):
19
21
20
22
* AWS supplied KEK (key encryption key):
21
23
* AWS KMS + Context
22
24
* User supplied KEK:
23
25
* RSA-OAEP-SHA1
24
26
* AES-GCM
25
27
26
-
Object content is encrypted using AES-GCM with generated DEKs which are stored in the S3 object metadata or in a separate instruction file (as configured).
28
+
Object content is encrypted using committing AES-GCM (default) with generated DEKs which are stored in the S3 object metadata or in a separate instruction file (as configured).
29
+
27
30
28
31
### Data Key Encryption
29
32
30
33
#### AWS KMS + Context
31
34
32
-
To use "AWS KMS + Context", you must supply an EncryptionMaterialsV2 instance with the following information:
35
+
To use "AWS KMS + Context", you must supply an EncryptionMaterialsV4 instance with the following information:
33
36
34
37
* A KMS key id
35
38
* This id will be used in decryption as well. If the id specified is not the key used to encrypt the object, decryption will fail.
@@ -40,39 +43,57 @@ To use "AWS KMS + Context", you must supply an EncryptionMaterialsV2 instance wi
### CommitmentPolicy and ContentEncryptionAlgorithm
80
+
81
+
Starting with Amazon S3 Encryption Client for .NET V4, you can encrypt objects with AES-GCM with key commitment (default for V4), which protects your data against key substitution attacks. To help you migrate from AES-GCM to AES-GCM with key commitment, this version includes three commitment policies.
82
+
83
+
For more information, see [S3 Encryption Client Migration (V2 to V4)](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/s3-encryption-migration-v2-v4.html).
84
+
85
+
* ForbidEncryptAllowDecrypt:
86
+
* With ForbidEncryptAllowDecrypt CommitmentPolicy, the client continues to encrypt objects without key commitment and can decrypt both non-key-committing objects and key-committing objects encrypted with AES GCM with commitment.
87
+
* Because this policy encrypts with AES-GCM without key commitment, it does not enforce commitment and may allow keys in Instruction Files to be tampered with which does not protect against key substitution attacks.
88
+
89
+
* RequireEncryptAllowDecrypt
90
+
* With RequireEncryptAllowDecrypt CommitmentPolicy, the client starts encrypting objects with key commitment (AES-GCM with key commitment) and can still decrypt objects encrypted without key commitment.
91
+
* This policy protects newly encrypted objects against key substitution attacks while maintaining backward compatibility for decryption.
92
+
93
+
* RequireEncryptRequireDecrypt (default for V4)
94
+
* With RequireEncryptRequireDecrypt CommitmentPolicy, the client will no longer decrypt objects encrypted without key commitment (AES-GCM without key commitment) and cannot decrypt objects encrypted without key commitment.
95
+
* This policy fully enforces key commitment and protects against key substitution attacks.
96
+
76
97
### Storage Mode
77
98
78
99
You can specify a storage mode for the encrypted data key and associated metadata needed for decryption of an object:
@@ -82,32 +103,32 @@ You can specify a storage mode for the encrypted data key and associated metadat
82
103
* InstructionFile
83
104
* Stores the data in a separate S3 object
84
105
85
-
This can be set on the AmazonS3CryptoConfigurationV2 instance:
106
+
This can be set on the AmazonS3CryptoConfigurationV4 instance:
The AmazonS3EncryptionClientV2 extends the base AmazonS3Client. You can use multipart upload using the same APIs: <https://docs.aws.amazon.com/AmazonS3/latest/dev/LLuploadFileDotNet.html>
130
+
The AmazonS3EncryptionClientV4 extends the base AmazonS3Client. You can use multipart upload using the same APIs: <https://docs.aws.amazon.com/AmazonS3/latest/dev/LLuploadFileDotNet.html>
110
131
111
132
### Transfer Utility Integration
112
133
113
-
The AmazonS3EncryptionClientV2 extends the base AmazonS3Client. You can use the TransferUtility just as you would using the base AmazonS3Client: <https://docs.aws.amazon.com/AmazonS3/latest/dev/HLuploadFileDotNet.html>
134
+
The AmazonS3EncryptionClientV4 extends the base AmazonS3Client. You can use the TransferUtility just as you would using the base AmazonS3Client: <https://docs.aws.amazon.com/AmazonS3/latest/dev/HLuploadFileDotNet.html>
0 commit comments