/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Parameters required for encryption or decryption of data using
* DUKPT.See Also:
AWS
* API Reference
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
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
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
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
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
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
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