/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the payment-cryptography-data-2022-02-03.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.PaymentCryptographyData.Model
{
///
/// Container for the parameters to the TranslatePinData operation.
/// Translates encrypted PIN block from and to ISO 9564 formats 0,1,3,4. For more information,
/// see Translate
/// PIN data in the Amazon Web Services Payment Cryptography User Guide.
///
///
///
/// PIN block translation involves changing the encrytion of PIN block from one encryption
/// key to another encryption key and changing PIN block format from one to another without
/// PIN block data leaving Amazon Web Services Payment Cryptography. The encryption key
/// transformation can be from PEK (Pin Encryption Key) to BDK (Base Derivation Key) for
/// DUKPT or from BDK for DUKPT to PEK. Amazon Web Services Payment Cryptography supports
/// TDES
and AES
key derivation type for DUKPT tranlations.
/// You can use this operation for P2PE (Point to Point Encryption) use cases where the
/// encryption keys should change but the processing system either does not need to, or
/// is not permitted to, decrypt the data.
///
///
///
/// The allowed combinations of PIN block format translations are guided by PCI. It is
/// important to note that not all encrypted PIN block formats (example, format 1) require
/// PAN (Primary Account Number) as input. And as such, PIN block format that requires
/// PAN (example, formats 0,3,4) cannot be translated to a format (format 1) that does
/// not require a PAN for generation.
///
///
///
/// For information about valid keys for this operation, see Understanding
/// key attributes and Key
/// types for specific data operations in the Amazon Web Services Payment Cryptography
/// User Guide.
///
///
///
/// At this time, Amazon Web Services Payment Cryptography does not support translations
/// to PIN format 4.
///
///
///
/// Cross-account use: This operation can't be used across different Amazon Web
/// Services accounts.
///
///
///
/// Related operations:
///
///
///
public partial class TranslatePinDataRequest : AmazonPaymentCryptographyDataRequest
{
private string _encryptedPinBlock;
private DukptDerivationAttributes _incomingDukptAttributes;
private string _incomingKeyIdentifier;
private TranslationIsoFormats _incomingTranslationAttributes;
private DukptDerivationAttributes _outgoingDukptAttributes;
private string _outgoingKeyIdentifier;
private TranslationIsoFormats _outgoingTranslationAttributes;
///
/// Gets and sets the property EncryptedPinBlock.
///
/// The encrypted PIN block data that Amazon Web Services Payment Cryptography translates.
///
///
[AWSProperty(Required=true, Min=16, Max=32)]
public string EncryptedPinBlock
{
get { return this._encryptedPinBlock; }
set { this._encryptedPinBlock = value; }
}
// Check to see if EncryptedPinBlock property is set
internal bool IsSetEncryptedPinBlock()
{
return this._encryptedPinBlock != null;
}
///
/// Gets and sets the property IncomingDukptAttributes.
///
/// The attributes and values to use for incoming DUKPT encryption key for PIN block tranlation.
///
///
public DukptDerivationAttributes IncomingDukptAttributes
{
get { return this._incomingDukptAttributes; }
set { this._incomingDukptAttributes = value; }
}
// Check to see if IncomingDukptAttributes property is set
internal bool IsSetIncomingDukptAttributes()
{
return this._incomingDukptAttributes != null;
}
///
/// Gets and sets the property IncomingKeyIdentifier.
///
/// The keyARN
of the encryption key under which incoming PIN block data
/// is encrypted. This key type can be PEK or BDK.
///
///
[AWSProperty(Required=true, Min=7, Max=322)]
public string IncomingKeyIdentifier
{
get { return this._incomingKeyIdentifier; }
set { this._incomingKeyIdentifier = value; }
}
// Check to see if IncomingKeyIdentifier property is set
internal bool IsSetIncomingKeyIdentifier()
{
return this._incomingKeyIdentifier != null;
}
///
/// Gets and sets the property IncomingTranslationAttributes.
///
/// The format of the incoming PIN block data for tranlation within Amazon Web Services
/// Payment Cryptography.
///
///
[AWSProperty(Required=true)]
public TranslationIsoFormats IncomingTranslationAttributes
{
get { return this._incomingTranslationAttributes; }
set { this._incomingTranslationAttributes = value; }
}
// Check to see if IncomingTranslationAttributes property is set
internal bool IsSetIncomingTranslationAttributes()
{
return this._incomingTranslationAttributes != null;
}
///
/// Gets and sets the property OutgoingDukptAttributes.
///
/// The attributes and values to use for outgoing DUKPT encryption key after PIN block
/// translation.
///
///
public DukptDerivationAttributes OutgoingDukptAttributes
{
get { return this._outgoingDukptAttributes; }
set { this._outgoingDukptAttributes = value; }
}
// Check to see if OutgoingDukptAttributes property is set
internal bool IsSetOutgoingDukptAttributes()
{
return this._outgoingDukptAttributes != null;
}
///
/// Gets and sets the property OutgoingKeyIdentifier.
///
/// The keyARN
of the encryption key for encrypting outgoing PIN block data.
/// This key type can be PEK or BDK.
///
///
[AWSProperty(Required=true, Min=7, Max=322)]
public string OutgoingKeyIdentifier
{
get { return this._outgoingKeyIdentifier; }
set { this._outgoingKeyIdentifier = value; }
}
// Check to see if OutgoingKeyIdentifier property is set
internal bool IsSetOutgoingKeyIdentifier()
{
return this._outgoingKeyIdentifier != null;
}
///
/// Gets and sets the property OutgoingTranslationAttributes.
///
/// The format of the outgoing PIN block data after tranlation by Amazon Web Services
/// Payment Cryptography.
///
///
[AWSProperty(Required=true)]
public TranslationIsoFormats OutgoingTranslationAttributes
{
get { return this._outgoingTranslationAttributes; }
set { this._outgoingTranslationAttributes = value; }
}
// Check to see if OutgoingTranslationAttributes property is set
internal bool IsSetOutgoingTranslationAttributes()
{
return this._outgoingTranslationAttributes != null;
}
}
}