/* * 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 VerifyAuthRequestCryptogram operation. /// Verifies Authorization Request Cryptogram (ARQC) for a EMV chip payment card authorization. /// For more information, see Verify /// auth request cryptogram in the Amazon Web Services Payment Cryptography User /// Guide. /// /// /// /// ARQC generation is done outside of Amazon Web Services Payment Cryptography and is /// typically generated on a point of sale terminal for an EMV chip card to obtain payment /// authorization during transaction time. For ARQC verification, you must first import /// the ARQC generated outside of Amazon Web Services Payment Cryptography by calling /// ImportKey. /// This operation uses the imported ARQC and an major encryption key (DUKPT) created /// by calling CreateKey /// to either provide a boolean ARQC verification result or provide an APRC (Authorization /// Response Cryptogram) response using Method 1 or Method 2. The ARPC_METHOD_1 /// uses AuthResponseCode to generate ARPC and ARPC_METHOD_2 /// uses CardStatusUpdate to generate ARPC. /// /// /// /// 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. /// /// /// /// Cross-account use: This operation can't be used across different Amazon Web /// Services accounts. /// /// /// /// Related operations: /// /// /// public partial class VerifyAuthRequestCryptogramRequest : AmazonPaymentCryptographyDataRequest { private string _authRequestCryptogram; private CryptogramAuthResponse _authResponseAttributes; private string _keyIdentifier; private MajorKeyDerivationMode _majorKeyDerivationMode; private SessionKeyDerivation _sessionKeyDerivationAttributes; private string _transactionData; /// /// Gets and sets the property AuthRequestCryptogram. /// /// The auth request cryptogram imported into Amazon Web Services Payment Cryptography /// for ARQC verification using a major encryption key and transaction data. /// /// [AWSProperty(Required=true, Min=16, Max=16)] public string AuthRequestCryptogram { get { return this._authRequestCryptogram; } set { this._authRequestCryptogram = value; } } // Check to see if AuthRequestCryptogram property is set internal bool IsSetAuthRequestCryptogram() { return this._authRequestCryptogram != null; } /// /// Gets and sets the property AuthResponseAttributes. /// /// The attributes and values for auth request cryptogram verification. These parameters /// are required in case using ARPC Method 1 or Method 2 for ARQC verification. /// /// public CryptogramAuthResponse AuthResponseAttributes { get { return this._authResponseAttributes; } set { this._authResponseAttributes = value; } } // Check to see if AuthResponseAttributes property is set internal bool IsSetAuthResponseAttributes() { return this._authResponseAttributes != null; } /// /// Gets and sets the property KeyIdentifier. /// /// The keyARN of the major encryption key that Amazon Web Services Payment /// Cryptography uses for ARQC verification. /// /// [AWSProperty(Required=true, Min=7, Max=322)] public string KeyIdentifier { get { return this._keyIdentifier; } set { this._keyIdentifier = value; } } // Check to see if KeyIdentifier property is set internal bool IsSetKeyIdentifier() { return this._keyIdentifier != null; } /// /// Gets and sets the property MajorKeyDerivationMode. /// /// The method to use when deriving the major encryption key for ARQC verification within /// Amazon Web Services Payment Cryptography. The same key derivation mode was used for /// ARQC generation outside of Amazon Web Services Payment Cryptography. /// /// [AWSProperty(Required=true)] public MajorKeyDerivationMode MajorKeyDerivationMode { get { return this._majorKeyDerivationMode; } set { this._majorKeyDerivationMode = value; } } // Check to see if MajorKeyDerivationMode property is set internal bool IsSetMajorKeyDerivationMode() { return this._majorKeyDerivationMode != null; } /// /// Gets and sets the property SessionKeyDerivationAttributes. /// /// The attributes and values to use for deriving a session key for ARQC verification /// within Amazon Web Services Payment Cryptography. The same attributes were used for /// ARQC generation outside of Amazon Web Services Payment Cryptography. /// /// [AWSProperty(Required=true)] public SessionKeyDerivation SessionKeyDerivationAttributes { get { return this._sessionKeyDerivationAttributes; } set { this._sessionKeyDerivationAttributes = value; } } // Check to see if SessionKeyDerivationAttributes property is set internal bool IsSetSessionKeyDerivationAttributes() { return this._sessionKeyDerivationAttributes != null; } /// /// Gets and sets the property TransactionData. /// /// The transaction data that Amazon Web Services Payment Cryptography uses for ARQC verification. /// The same transaction is used for ARQC generation outside of Amazon Web Services Payment /// Cryptography. /// /// [AWSProperty(Required=true, Min=2, Max=1024)] public string TransactionData { get { return this._transactionData; } set { this._transactionData = value; } } // Check to see if TransactionData property is set internal bool IsSetTransactionData() { return this._transactionData != null; } } }