/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace PaymentCryptographyData { namespace Model { /** *

Parameters required for encryption or decryption of data using * DUKPT.

See Also:

AWS * API Reference

*/ class DukptDerivationAttributes { public: AWS_PAYMENTCRYPTOGRAPHYDATA_API DukptDerivationAttributes(); AWS_PAYMENTCRYPTOGRAPHYDATA_API DukptDerivationAttributes(Aws::Utils::Json::JsonView jsonValue); AWS_PAYMENTCRYPTOGRAPHYDATA_API DukptDerivationAttributes& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_PAYMENTCRYPTOGRAPHYDATA_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The key type derived using DUKPT from a Base Derivation Key (BDK) and Key * Serial Number (KSN). This must be less than or equal to the strength of the BDK. * For example, you can't use AES_128 as a derivation type for a BDK * of AES_128 or TDES_2KEY

*/ inline const DukptDerivationType& GetDukptKeyDerivationType() const{ return m_dukptKeyDerivationType; } /** *

The key type derived using DUKPT from a Base Derivation Key (BDK) and Key * Serial Number (KSN). This must be less than or equal to the strength of the BDK. * For example, you can't use AES_128 as a derivation type for a BDK * of AES_128 or TDES_2KEY

*/ inline bool DukptKeyDerivationTypeHasBeenSet() const { return m_dukptKeyDerivationTypeHasBeenSet; } /** *

The key type derived using DUKPT from a Base Derivation Key (BDK) and Key * Serial Number (KSN). This must be less than or equal to the strength of the BDK. * For example, you can't use AES_128 as a derivation type for a BDK * of AES_128 or TDES_2KEY

*/ inline void SetDukptKeyDerivationType(const DukptDerivationType& value) { m_dukptKeyDerivationTypeHasBeenSet = true; m_dukptKeyDerivationType = value; } /** *

The key type derived using DUKPT from a Base Derivation Key (BDK) and Key * Serial Number (KSN). This must be less than or equal to the strength of the BDK. * For example, you can't use AES_128 as a derivation type for a BDK * of AES_128 or TDES_2KEY

*/ inline void SetDukptKeyDerivationType(DukptDerivationType&& value) { m_dukptKeyDerivationTypeHasBeenSet = true; m_dukptKeyDerivationType = std::move(value); } /** *

The key type derived using DUKPT from a Base Derivation Key (BDK) and Key * Serial Number (KSN). This must be less than or equal to the strength of the BDK. * For example, you can't use AES_128 as a derivation type for a BDK * of AES_128 or TDES_2KEY

*/ inline DukptDerivationAttributes& WithDukptKeyDerivationType(const DukptDerivationType& value) { SetDukptKeyDerivationType(value); return *this;} /** *

The key type derived using DUKPT from a Base Derivation Key (BDK) and Key * Serial Number (KSN). This must be less than or equal to the strength of the BDK. * For example, you can't use AES_128 as a derivation type for a BDK * of AES_128 or TDES_2KEY

*/ inline DukptDerivationAttributes& WithDukptKeyDerivationType(DukptDerivationType&& value) { SetDukptKeyDerivationType(std::move(value)); return *this;} /** *

The type of use of DUKPT, which can be for incoming data decryption, outgoing * data encryption, or both.

*/ inline const DukptKeyVariant& GetDukptKeyVariant() const{ return m_dukptKeyVariant; } /** *

The type of use of DUKPT, which can be for incoming data decryption, outgoing * data encryption, or both.

*/ inline bool DukptKeyVariantHasBeenSet() const { return m_dukptKeyVariantHasBeenSet; } /** *

The type of use of DUKPT, which can be for incoming data decryption, outgoing * data encryption, or both.

*/ inline void SetDukptKeyVariant(const DukptKeyVariant& value) { m_dukptKeyVariantHasBeenSet = true; m_dukptKeyVariant = value; } /** *

The type of use of DUKPT, which can be for incoming data decryption, outgoing * data encryption, or both.

*/ inline void SetDukptKeyVariant(DukptKeyVariant&& value) { m_dukptKeyVariantHasBeenSet = true; m_dukptKeyVariant = std::move(value); } /** *

The type of use of DUKPT, which can be for incoming data decryption, outgoing * data encryption, or both.

*/ inline DukptDerivationAttributes& WithDukptKeyVariant(const DukptKeyVariant& value) { SetDukptKeyVariant(value); return *this;} /** *

The type of use of DUKPT, which can be for incoming data decryption, outgoing * data encryption, or both.

*/ inline DukptDerivationAttributes& WithDukptKeyVariant(DukptKeyVariant&& value) { SetDukptKeyVariant(std::move(value)); return *this;} /** *

The unique identifier known as Key Serial Number (KSN) that comes from an * encrypting device using DUKPT encryption method. The KSN is derived from the * encrypting device unique identifier and an internal transaction counter.

*/ inline const Aws::String& GetKeySerialNumber() const{ return m_keySerialNumber; } /** *

The unique identifier known as Key Serial Number (KSN) that comes from an * encrypting device using DUKPT encryption method. The KSN is derived from the * encrypting device unique identifier and an internal transaction counter.

*/ inline bool KeySerialNumberHasBeenSet() const { return m_keySerialNumberHasBeenSet; } /** *

The unique identifier known as Key Serial Number (KSN) that comes from an * encrypting device using DUKPT encryption method. The KSN is derived from the * encrypting device unique identifier and an internal transaction counter.

*/ inline void SetKeySerialNumber(const Aws::String& value) { m_keySerialNumberHasBeenSet = true; m_keySerialNumber = value; } /** *

The unique identifier known as Key Serial Number (KSN) that comes from an * encrypting device using DUKPT encryption method. The KSN is derived from the * encrypting device unique identifier and an internal transaction counter.

*/ inline void SetKeySerialNumber(Aws::String&& value) { m_keySerialNumberHasBeenSet = true; m_keySerialNumber = std::move(value); } /** *

The unique identifier known as Key Serial Number (KSN) that comes from an * encrypting device using DUKPT encryption method. The KSN is derived from the * encrypting device unique identifier and an internal transaction counter.

*/ inline void SetKeySerialNumber(const char* value) { m_keySerialNumberHasBeenSet = true; m_keySerialNumber.assign(value); } /** *

The unique identifier known as Key Serial Number (KSN) that comes from an * encrypting device using DUKPT encryption method. The KSN is derived from the * encrypting device unique identifier and an internal transaction counter.

*/ inline DukptDerivationAttributes& WithKeySerialNumber(const Aws::String& value) { SetKeySerialNumber(value); return *this;} /** *

The unique identifier known as Key Serial Number (KSN) that comes from an * encrypting device using DUKPT encryption method. The KSN is derived from the * encrypting device unique identifier and an internal transaction counter.

*/ inline DukptDerivationAttributes& WithKeySerialNumber(Aws::String&& value) { SetKeySerialNumber(std::move(value)); return *this;} /** *

The unique identifier known as Key Serial Number (KSN) that comes from an * encrypting device using DUKPT encryption method. The KSN is derived from the * encrypting device unique identifier and an internal transaction counter.

*/ inline DukptDerivationAttributes& WithKeySerialNumber(const char* value) { SetKeySerialNumber(value); return *this;} private: DukptDerivationType m_dukptKeyDerivationType; bool m_dukptKeyDerivationTypeHasBeenSet = false; DukptKeyVariant m_dukptKeyVariant; bool m_dukptKeyVariantHasBeenSet = false; Aws::String m_keySerialNumber; bool m_keySerialNumberHasBeenSet = false; }; } // namespace Model } // namespace PaymentCryptographyData } // namespace Aws