AWS SDK for C++

AWS SDK for C++ Version 1.11.717

Loading...
Searching...
No Matches
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
Aws::S3Encryption Namespace Reference

Namespaces

namespace  Handlers
 
namespace  Materials
 
namespace  Modules
 

Classes

 
 
 
 
 
 
 
 

Typedefs

 
 

Enumerations

 
 
enum class  SecurityProfile { V2 , V2_AND_LEGACY }
 
 
enum class  RangeGetMode { DISABLED , ALL }
 
 

Functions

AWS_S3ENCRYPTION_API bool derive_encryption_key (const Aws::Utils::CryptoBuffer &data_key, const Aws::Utils::CryptoBuffer &message_id, Aws::Utils::CryptoBuffer &output)
 
AWS_S3ENCRYPTION_API bool derive_commitment_key (const Aws::Utils::CryptoBuffer &data_key, const Aws::Utils::CryptoBuffer &message_id, Aws::Utils::CryptoBuffer &output)
 
AWS_S3ENCRYPTION_API bool constant_time_equal (const Aws::Utils::CryptoBuffer &x, const Aws::Utils::CryptoBuffer &y)
 
template<typename ERROR_TYPE >
 

Variables

static const char *const MetadataHandler_Tag = "MetadataHandler"
 
static const char *const DEPRECATED_CONTENT_KEY_HEADER = "x-amz-key"
 
static const char *const CONTENT_KEY_HEADER = "x-amz-key-v2"
 
static const char *const IV_HEADER = "x-amz-iv"
 
static const char *const MATERIALS_DESCRIPTION_HEADER = "x-amz-matdesc"
 
static const char *const CONTENT_CRYPTO_SCHEME_HEADER = "x-amz-cek-alg"
 
static const char *const CRYPTO_TAG_LENGTH_HEADER = "x-amz-tag-len"
 
static const char *const KEY_WRAP_ALGORITHM = "x-amz-wrap-alg"
 
static const char *const INSTRUCTION_FILE_HEADER = "x-amz-crypto-instr-file"
 
static const char *const CONTENT_CIPHER_V3 = "x-amz-c"
 
static const char *const ENCRYPTED_DATA_KEY_V3 = "x-amz-3"
 
static const char *const MAT_DESC_V3 = "x-amz-m"
 
static const char *const ENCRYPTION_CONTEXT_V3 = "x-amz-t"
 
static const char *const ENCRYPTED_DATA_KEY_ALGORITHM_V3 = "x-amz-w"
 
static const char *const KEY_COMMITMENT_V3 = "x-amz-d"
 
static const char *const MESSAGE_ID_V3 = "x-amz-i"
 
static const size_t AES_GCM_IV_BYTES = 12
 
static const size_t AES_GCM_KEY_BYTES = 32
 
static const size_t AES_GCM_TAG_BYTES = 16
 
static const size_t AES_KEY_WRAP_ENCRYPTED_CEK_BYTES = 40
 
constexpr size_t MESSAGE_ID_BYTES = 28
 
constexpr size_t COMMITMENT_KEY_BYTES = 28
 
constexpr size_t ENCRYPTION_KEY_BYTES = 32
 
const char * ENCRYPTION_KEY_INFO
 
const char * COMMITMENT_KEY_INFO
 
 
 

Typedef Documentation

◆ S3EncryptionGetObjectOutcome

Definition at line 43 of file S3EncryptionClient.h.

◆ S3EncryptionPutObjectOutcome

Definition at line 42 of file S3EncryptionClient.h.

Enumeration Type Documentation

◆ AlgorithmSuite

Enumerator
AES_GCM 
AES_GCM_WITH_COMMITMENT 

Definition at line 65 of file CryptoConfiguration.h.

◆ CommitmentPolicy

Enumerator
FORBID_ENCRYPT_ALLOW_DECRYPT 
REQUIRE_ENCRYPT_ALLOW_DECRYPT 
REQUIRE_ENCRYPT_REQUIRE_DECRYPT 

Definition at line 50 of file CryptoConfiguration.h.

◆ CryptoMode

strong
Enumerator
ENCRYPTION_ONLY 
AUTHENTICATED_ENCRYPTION 
STRICT_AUTHENTICATED_ENCRYPTION 

Definition at line 22 of file CryptoConfiguration.h.

◆ RangeGetMode

Enumerator
DISABLED 
ALL 

Definition at line 59 of file CryptoConfiguration.h.

◆ SecurityProfile

Enumerator
V2 
V2_AND_LEGACY 

Definition at line 44 of file CryptoConfiguration.h.

◆ StorageMethod

Enumerator
METADATA 
INSTRUCTION_FILE 

Definition at line 16 of file CryptoConfiguration.h.

Function Documentation

◆ BuildS3EncryptionError()

template<typename ERROR_TYPE >
Aws::Client::AWSError< S3EncryptionErrors > Aws::S3Encryption::BuildS3EncryptionError ( const Aws::Client::AWSError< ERROR_TYPE > &  error)

Definition at line 34 of file S3EncryptionClient.h.

◆ constant_time_equal()

AWS_S3ENCRYPTION_API bool Aws::S3Encryption::constant_time_equal ( const Aws::Utils::CryptoBuffer x,
const Aws::Utils::CryptoBuffer y 
)

◆ derive_commitment_key()

AWS_S3ENCRYPTION_API bool Aws::S3Encryption::derive_commitment_key ( const Aws::Utils::CryptoBuffer data_key,
const Aws::Utils::CryptoBuffer message_id,
Aws::Utils::CryptoBuffer output 
)

Derive an encryption key from a given data key and message ID using HKDF-SHA512.

Parameters
data_keyInput data key (symmetric key material).
message_idUnique per-message identifier.
outputOutput buffer to receive the derived key. Must be pre-sized appropriately.
Returns
true on success, false on failure.

◆ derive_encryption_key()

AWS_S3ENCRYPTION_API bool Aws::S3Encryption::derive_encryption_key ( const Aws::Utils::CryptoBuffer data_key,
const Aws::Utils::CryptoBuffer message_id,
Aws::Utils::CryptoBuffer output 
)

Derive an encryption key from a given data key and message ID using HKDF-SHA512.

Parameters
data_keyInput data key (symmetric key material).
message_idUnique per-message identifier.
outputOutput buffer to receive the derived key. Must be pre-sized appropriately.
Returns
true on success, false on failure.

Variable Documentation

◆ AES_GCM_IV_BYTES

const size_t Aws::S3Encryption::AES_GCM_IV_BYTES = 12
static

Definition at line 72 of file DataHandler.h.

◆ AES_GCM_KEY_BYTES

const size_t Aws::S3Encryption::AES_GCM_KEY_BYTES = 32
static

Definition at line 73 of file DataHandler.h.

◆ AES_GCM_TAG_BYTES

const size_t Aws::S3Encryption::AES_GCM_TAG_BYTES = 16
static

Definition at line 74 of file DataHandler.h.

◆ AES_KEY_WRAP_ENCRYPTED_CEK_BYTES

const size_t Aws::S3Encryption::AES_KEY_WRAP_ENCRYPTED_CEK_BYTES = 40
static

Definition at line 75 of file DataHandler.h.

◆ COMMITMENT_KEY_BYTES

constexpr size_t Aws::S3Encryption::COMMITMENT_KEY_BYTES = 28
constexpr

Definition at line 16 of file HKDF.h.

◆ COMMITMENT_KEY_INFO

const char* Aws::S3Encryption::COMMITMENT_KEY_INFO
extern

◆ COMMITMENT_KEY_INFO_LEN

const size_t Aws::S3Encryption::COMMITMENT_KEY_INFO_LEN
extern

◆ CONTENT_CIPHER_V3

const char* const Aws::S3Encryption::CONTENT_CIPHER_V3 = "x-amz-c"
static

Definition at line 64 of file DataHandler.h.

◆ CONTENT_CRYPTO_SCHEME_HEADER

const char* const Aws::S3Encryption::CONTENT_CRYPTO_SCHEME_HEADER = "x-amz-cek-alg"
static

Definition at line 22 of file DataHandler.h.

◆ CONTENT_KEY_HEADER

const char* const Aws::S3Encryption::CONTENT_KEY_HEADER = "x-amz-key-v2"
static

Definition at line 19 of file DataHandler.h.

◆ CRYPTO_TAG_LENGTH_HEADER

const char* const Aws::S3Encryption::CRYPTO_TAG_LENGTH_HEADER = "x-amz-tag-len"
static

Definition at line 23 of file DataHandler.h.

◆ DEPRECATED_CONTENT_KEY_HEADER

const char* const Aws::S3Encryption::DEPRECATED_CONTENT_KEY_HEADER = "x-amz-key"
static

Definition at line 18 of file DataHandler.h.

◆ ENCRYPTED_DATA_KEY_ALGORITHM_V3

const char* const Aws::S3Encryption::ENCRYPTED_DATA_KEY_ALGORITHM_V3 = "x-amz-w"
static

Definition at line 68 of file DataHandler.h.

◆ ENCRYPTED_DATA_KEY_V3

const char* const Aws::S3Encryption::ENCRYPTED_DATA_KEY_V3 = "x-amz-3"
static

Definition at line 65 of file DataHandler.h.

◆ ENCRYPTION_CONTEXT_V3

const char* const Aws::S3Encryption::ENCRYPTION_CONTEXT_V3 = "x-amz-t"
static

Definition at line 67 of file DataHandler.h.

◆ ENCRYPTION_KEY_BYTES

constexpr size_t Aws::S3Encryption::ENCRYPTION_KEY_BYTES = 32
constexpr

Definition at line 17 of file HKDF.h.

◆ ENCRYPTION_KEY_INFO

const char* Aws::S3Encryption::ENCRYPTION_KEY_INFO
extern

◆ ENCRYPTION_KEY_INFO_LEN

const size_t Aws::S3Encryption::ENCRYPTION_KEY_INFO_LEN
extern

◆ INSTRUCTION_FILE_HEADER

const char* const Aws::S3Encryption::INSTRUCTION_FILE_HEADER = "x-amz-crypto-instr-file"
static

Definition at line 25 of file DataHandler.h.

◆ IV_HEADER

const char* const Aws::S3Encryption::IV_HEADER = "x-amz-iv"
static

Definition at line 20 of file DataHandler.h.

◆ KEY_COMMITMENT_V3

const char* const Aws::S3Encryption::KEY_COMMITMENT_V3 = "x-amz-d"
static

Definition at line 69 of file DataHandler.h.

◆ KEY_WRAP_ALGORITHM

const char* const Aws::S3Encryption::KEY_WRAP_ALGORITHM = "x-amz-wrap-alg"
static

Definition at line 24 of file DataHandler.h.

◆ MAT_DESC_V3

const char* const Aws::S3Encryption::MAT_DESC_V3 = "x-amz-m"
static

Definition at line 66 of file DataHandler.h.

◆ MATERIALS_DESCRIPTION_HEADER

const char* const Aws::S3Encryption::MATERIALS_DESCRIPTION_HEADER = "x-amz-matdesc"
static

Definition at line 21 of file DataHandler.h.

◆ MESSAGE_ID_BYTES

constexpr size_t Aws::S3Encryption::MESSAGE_ID_BYTES = 28
constexpr

Definition at line 15 of file HKDF.h.

◆ MESSAGE_ID_V3

const char* const Aws::S3Encryption::MESSAGE_ID_V3 = "x-amz-i"
static

Definition at line 70 of file DataHandler.h.

◆ MetadataHandler_Tag

const char* const Aws::S3Encryption::MetadataHandler_Tag = "MetadataHandler"
static

Definition at line 17 of file DataHandler.h.