7#include <aws/s3-encryption/s3Encryption_EXPORTS.h>
8#include <aws/s3-encryption/materials/KMSEncryptionMaterials.h>
9#include <aws/s3-encryption/materials/SimpleEncryptionMaterials.h>
12 namespace S3Encryption
102 return m_storageMethod;
118 return m_algorithmSuite;
126 return m_commitmentPolicy;
134 m_storageMethod = storageMethod;
142 m_cryptoMode = cryptoMode;
146 inline void SetSecurityProfile(
SecurityProfile profile) { m_securityProfile = profile; }
147 inline void SetUnAuthenticatedRangeGet(RangeGetMode mode) { m_unAuthenticatedRangeGet = mode; }
148 inline RangeGetMode GetUnAuthenticatedRangeGet()
const {
return m_unAuthenticatedRangeGet; }
149 inline SecurityProfile GetSecurityProfile()
const {
return m_securityProfile; }
150 inline void SetCommitmentPolicy(CommitmentPolicy commitmentPolicy) { m_commitmentPolicy = commitmentPolicy; }
151 inline void SetEncryptionAlgorithm(AlgorithmSuite algorithmSuite) { m_algorithmSuite = algorithmSuite; }
168 CryptoConfigurationV2(
const std::shared_ptr<Aws::S3Encryption::Materials::KMSWithContextEncryptionMaterials>& materials);
169 CryptoConfigurationV2(
const std::shared_ptr<Aws::S3Encryption::Materials::SimpleEncryptionMaterialsWithGCMAAD>& materials);
178 std::shared_ptr<Aws::Utils::Crypto::EncryptionMaterials>
GetEncryptionMaterials()
const {
return m_encryptionMaterials; }
183 std::shared_ptr<Aws::Utils::Crypto::EncryptionMaterials> m_encryptionMaterials;
192 CryptoConfigurationV3(
const std::shared_ptr<Aws::S3Encryption::Materials::KMSWithContextEncryptionMaterials>& materials);
193 CryptoConfigurationV3(
const std::shared_ptr<Aws::S3Encryption::Materials::SimpleEncryptionMaterialsWithGCMAAD>& materials);
195 inline void AllowLegacy(
bool allow =
true) { m_securityProfile = (allow ? SecurityProfile::V2_AND_LEGACY : SecurityProfile::V2); }
200 inline bool GetAllowLegacy()
const {
return m_securityProfile == SecurityProfile::V2_AND_LEGACY; }
205 std::shared_ptr<Aws::Utils::Crypto::EncryptionMaterials>
GetEncryptionMaterials()
const {
return m_encryptionMaterials; }
233 std::shared_ptr<Aws::Utils::Crypto::EncryptionMaterials> m_encryptionMaterials;
CryptoConfiguration(StorageMethod storageMethod)
AlgorithmSuite GetEncryptionAlgorithm() const
void SetCryptoMode(CryptoMode cryptoMode)
CommitmentPolicy GetCommitmentPolicy() const
CryptoMode GetCryptoMode() const
StorageMethod GetStorageMethod() const
CryptoConfiguration(CryptoMode cryptoMode)
CryptoConfiguration(StorageMethod storageMode, CryptoMode cryptoMode)
void SetStorageMethod(StorageMethod storageMethod)
std::shared_ptr< Aws::Utils::Crypto::EncryptionMaterials > GetEncryptionMaterials() const
void SetStorageMethod(StorageMethod storageMethod)
StorageMethod GetStorageMethod() const
CryptoConfigurationV2(const std::shared_ptr< Aws::S3Encryption::Materials::SimpleEncryptionMaterialsWithGCMAAD > &materials)
RangeGetMode GetUnAuthenticatedRangeGet() const
void SetSecurityProfile(SecurityProfile profile)
void SetUnAuthenticatedRangeGet(RangeGetMode mode)
CryptoConfigurationV2(const std::shared_ptr< Aws::S3Encryption::Materials::KMSWithContextEncryptionMaterials > &materials)
SecurityProfile GetSecurityProfile() const
SecurityProfile GetSecurityProfile() const
StorageMethod GetStorageMethod() const
bool GetAllowLegacy() const
void SetUnAuthenticatedRangeGet(RangeGetMode mode)
std::shared_ptr< Aws::Utils::Crypto::EncryptionMaterials > GetEncryptionMaterials() const
RangeGetMode GetUnAuthenticatedRangeGet() const
void SetCommitmentPolicy(CommitmentPolicy commitmentPolicy)
void AllowLegacy(bool allow=true)
void SetStorageMethod(StorageMethod storageMethod)
CryptoConfigurationV3(const std::shared_ptr< Aws::S3Encryption::Materials::SimpleEncryptionMaterialsWithGCMAAD > &materials)
CryptoConfigurationV3(const std::shared_ptr< Aws::S3Encryption::Materials::KMSWithContextEncryptionMaterials > &materials)
CommitmentPolicy GetCommitmentPolicy() const
@ REQUIRE_ENCRYPT_ALLOW_DECRYPT
@ FORBID_ENCRYPT_ALLOW_DECRYPT
@ REQUIRE_ENCRYPT_REQUIRE_DECRYPT
@ AUTHENTICATED_ENCRYPTION
@ STRICT_AUTHENTICATED_ENCRYPTION
@ AES_GCM_WITH_COMMITMENT