/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Parameters requried to encrypt plaintext data using symmetric
* keys.See Also:
AWS
* API Reference
An input to cryptographic primitive used to provide the intial state. The
* InitializationVector
is typically required have a random or
* psuedo-random value, but sometimes it only needs to be unpredictable or unique.
* If a value is not provided, Amazon Web Services Payment Cryptography generates a
* random value.
An input to cryptographic primitive used to provide the intial state. The
* InitializationVector
is typically required have a random or
* psuedo-random value, but sometimes it only needs to be unpredictable or unique.
* If a value is not provided, Amazon Web Services Payment Cryptography generates a
* random value.
An input to cryptographic primitive used to provide the intial state. The
* InitializationVector
is typically required have a random or
* psuedo-random value, but sometimes it only needs to be unpredictable or unique.
* If a value is not provided, Amazon Web Services Payment Cryptography generates a
* random value.
An input to cryptographic primitive used to provide the intial state. The
* InitializationVector
is typically required have a random or
* psuedo-random value, but sometimes it only needs to be unpredictable or unique.
* If a value is not provided, Amazon Web Services Payment Cryptography generates a
* random value.
An input to cryptographic primitive used to provide the intial state. The
* InitializationVector
is typically required have a random or
* psuedo-random value, but sometimes it only needs to be unpredictable or unique.
* If a value is not provided, Amazon Web Services Payment Cryptography generates a
* random value.
An input to cryptographic primitive used to provide the intial state. The
* InitializationVector
is typically required have a random or
* psuedo-random value, but sometimes it only needs to be unpredictable or unique.
* If a value is not provided, Amazon Web Services Payment Cryptography generates a
* random value.
An input to cryptographic primitive used to provide the intial state. The
* InitializationVector
is typically required have a random or
* psuedo-random value, but sometimes it only needs to be unpredictable or unique.
* If a value is not provided, Amazon Web Services Payment Cryptography generates a
* random value.
An input to cryptographic primitive used to provide the intial state. The
* InitializationVector
is typically required have a random or
* psuedo-random value, but sometimes it only needs to be unpredictable or unique.
* If a value is not provided, Amazon Web Services Payment Cryptography generates a
* random value.
The block cipher mode of operation. Block ciphers are designed to encrypt a * block of data of fixed size (for example, 128 bits). The size of the input block * is usually same as the size of the encrypted output block, while the key length * can be different. A mode of operation describes how to repeatedly apply a * cipher's single-block operation to securely transform amounts of data larger * than a block.
*/ inline const EncryptionMode& GetMode() const{ return m_mode; } /** *The block cipher mode of operation. Block ciphers are designed to encrypt a * block of data of fixed size (for example, 128 bits). The size of the input block * is usually same as the size of the encrypted output block, while the key length * can be different. A mode of operation describes how to repeatedly apply a * cipher's single-block operation to securely transform amounts of data larger * than a block.
*/ inline bool ModeHasBeenSet() const { return m_modeHasBeenSet; } /** *The block cipher mode of operation. Block ciphers are designed to encrypt a * block of data of fixed size (for example, 128 bits). The size of the input block * is usually same as the size of the encrypted output block, while the key length * can be different. A mode of operation describes how to repeatedly apply a * cipher's single-block operation to securely transform amounts of data larger * than a block.
*/ inline void SetMode(const EncryptionMode& value) { m_modeHasBeenSet = true; m_mode = value; } /** *The block cipher mode of operation. Block ciphers are designed to encrypt a * block of data of fixed size (for example, 128 bits). The size of the input block * is usually same as the size of the encrypted output block, while the key length * can be different. A mode of operation describes how to repeatedly apply a * cipher's single-block operation to securely transform amounts of data larger * than a block.
*/ inline void SetMode(EncryptionMode&& value) { m_modeHasBeenSet = true; m_mode = std::move(value); } /** *The block cipher mode of operation. Block ciphers are designed to encrypt a * block of data of fixed size (for example, 128 bits). The size of the input block * is usually same as the size of the encrypted output block, while the key length * can be different. A mode of operation describes how to repeatedly apply a * cipher's single-block operation to securely transform amounts of data larger * than a block.
*/ inline SymmetricEncryptionAttributes& WithMode(const EncryptionMode& value) { SetMode(value); return *this;} /** *The block cipher mode of operation. Block ciphers are designed to encrypt a * block of data of fixed size (for example, 128 bits). The size of the input block * is usually same as the size of the encrypted output block, while the key length * can be different. A mode of operation describes how to repeatedly apply a * cipher's single-block operation to securely transform amounts of data larger * than a block.
*/ inline SymmetricEncryptionAttributes& WithMode(EncryptionMode&& value) { SetMode(std::move(value)); return *this;} /** *The padding to be included with the data.
*/ inline const PaddingType& GetPaddingType() const{ return m_paddingType; } /** *The padding to be included with the data.
*/ inline bool PaddingTypeHasBeenSet() const { return m_paddingTypeHasBeenSet; } /** *The padding to be included with the data.
*/ inline void SetPaddingType(const PaddingType& value) { m_paddingTypeHasBeenSet = true; m_paddingType = value; } /** *The padding to be included with the data.
*/ inline void SetPaddingType(PaddingType&& value) { m_paddingTypeHasBeenSet = true; m_paddingType = std::move(value); } /** *The padding to be included with the data.
*/ inline SymmetricEncryptionAttributes& WithPaddingType(const PaddingType& value) { SetPaddingType(value); return *this;} /** *The padding to be included with the data.
*/ inline SymmetricEncryptionAttributes& WithPaddingType(PaddingType&& value) { SetPaddingType(std::move(value)); return *this;} private: Aws::String m_initializationVector; bool m_initializationVectorHasBeenSet = false; EncryptionMode m_mode; bool m_modeHasBeenSet = false; PaddingType m_paddingType; bool m_paddingTypeHasBeenSet = false; }; } // namespace Model } // namespace PaymentCryptographyData } // namespace Aws