@aws-sdk/client-payment-cryptography-data 3.670.0 → 3.676.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -0
- package/dist-cjs/index.js +179 -5
- package/dist-es/PaymentCryptographyData.js +2 -0
- package/dist-es/commands/GenerateMacEmvPinChangeCommand.js +23 -0
- package/dist-es/commands/index.js +1 -0
- package/dist-es/models/models_0.js +92 -4
- package/dist-es/protocols/Aws_restJson1.js +41 -0
- package/dist-types/PaymentCryptographyData.d.ts +7 -0
- package/dist-types/PaymentCryptographyDataClient.d.ts +3 -2
- package/dist-types/commands/DecryptDataCommand.d.ts +10 -9
- package/dist-types/commands/EncryptDataCommand.d.ts +11 -9
- package/dist-types/commands/GenerateMacCommand.d.ts +9 -9
- package/dist-types/commands/GenerateMacEmvPinChangeCommand.d.ts +173 -0
- package/dist-types/commands/GeneratePinDataCommand.d.ts +1 -1
- package/dist-types/commands/ReEncryptDataCommand.d.ts +11 -10
- package/dist-types/commands/TranslatePinDataCommand.d.ts +5 -4
- package/dist-types/commands/VerifyAuthRequestCryptogramCommand.d.ts +1 -1
- package/dist-types/commands/VerifyMacCommand.d.ts +9 -9
- package/dist-types/commands/VerifyPinDataCommand.d.ts +2 -2
- package/dist-types/commands/index.d.ts +1 -0
- package/dist-types/models/models_0.d.ts +475 -13
- package/dist-types/protocols/Aws_restJson1.d.ts +9 -0
- package/dist-types/runtimeConfig.browser.d.ts +1 -1
- package/dist-types/runtimeConfig.native.d.ts +1 -1
- package/dist-types/ts3.4/PaymentCryptographyData.d.ts +17 -0
- package/dist-types/ts3.4/PaymentCryptographyDataClient.d.ts +6 -0
- package/dist-types/ts3.4/commands/GenerateMacEmvPinChangeCommand.d.ts +51 -0
- package/dist-types/ts3.4/commands/index.d.ts +1 -0
- package/dist-types/ts3.4/models/models_0.d.ts +185 -6
- package/dist-types/ts3.4/protocols/Aws_restJson1.d.ts +12 -0
- package/dist-types/ts3.4/runtimeConfig.browser.d.ts +3 -1
- package/dist-types/ts3.4/runtimeConfig.native.d.ts +3 -1
- package/package.json +5 -5
|
@@ -28,7 +28,8 @@ declare const DecryptDataCommand_base: {
|
|
|
28
28
|
};
|
|
29
29
|
/**
|
|
30
30
|
* <p>Decrypts ciphertext data to plaintext using a symmetric (TDES, AES), asymmetric (RSA), or derived (DUKPT or EMV) encryption key scheme. For more information, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/decrypt-data.html">Decrypt data</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>.</p>
|
|
31
|
-
* <p>You can use an
|
|
31
|
+
* <p>You can use an decryption key generated within Amazon Web Services Payment Cryptography, or you can import your own decryption key by calling <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ImportKey.html">ImportKey</a>. For this operation, the key must have <code>KeyModesOfUse</code> set to <code>Decrypt</code>. In asymmetric decryption, Amazon Web Services Payment Cryptography decrypts the ciphertext using the private component of the asymmetric encryption key pair. For data encryption outside of Amazon Web Services Payment Cryptography, you can export the public component of the asymmetric key pair by calling <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_GetPublicKeyCertificate.html">GetPublicCertificate</a>.</p>
|
|
32
|
+
* <p>This operation also supports dynamic keys, allowing you to pass a dynamic decryption key as a TR-31 WrappedKeyBlock. This can be used when key material is frequently rotated, such as during every card transaction, and there is need to avoid importing short-lived keys into Amazon Web Services Payment Cryptography. To decrypt using dynamic keys, the <code>keyARN</code> is the Key Encryption Key (KEK) of the TR-31 wrapped decryption key material. The incoming wrapped key shall have a key purpose of D0 with a mode of use of B or D. For more information, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/use-cases-acquirers-dynamickeys.html">Using Dynamic Keys</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>.</p>
|
|
32
33
|
* <p>For symmetric and DUKPT decryption, Amazon Web Services Payment Cryptography supports <code>TDES</code> and <code>AES</code> algorithms. For EMV decryption, Amazon Web Services Payment Cryptography supports <code>TDES</code> algorithms. For asymmetric decryption, Amazon Web Services Payment Cryptography supports <code>RSA</code>. </p>
|
|
33
34
|
* <p>When you use TDES or TDES DUKPT, the ciphertext data length must be a multiple of 8 bytes. For AES or AES DUKPT, the ciphertext data length must be a multiple of 16 bytes. For RSA, it sould be equal to the key size unless padding is enabled.</p>
|
|
34
35
|
* <p>For information about valid keys for this operation, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/keys-validattributes.html">Understanding key attributes</a> and <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html">Key types for specific data operations</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>. </p>
|
|
@@ -65,26 +66,26 @@ declare const DecryptDataCommand_base: {
|
|
|
65
66
|
* CipherText: "STRING_VALUE", // required
|
|
66
67
|
* DecryptionAttributes: { // EncryptionDecryptionAttributes Union: only one key present
|
|
67
68
|
* Symmetric: { // SymmetricEncryptionAttributes
|
|
68
|
-
* Mode: "
|
|
69
|
+
* Mode: "ECB" || "CBC" || "CFB" || "CFB1" || "CFB8" || "CFB64" || "CFB128" || "OFB", // required
|
|
69
70
|
* InitializationVector: "STRING_VALUE",
|
|
70
|
-
* PaddingType: "
|
|
71
|
+
* PaddingType: "PKCS1" || "OAEP_SHA1" || "OAEP_SHA256" || "OAEP_SHA512",
|
|
71
72
|
* },
|
|
72
73
|
* Asymmetric: { // AsymmetricEncryptionAttributes
|
|
73
|
-
* PaddingType: "
|
|
74
|
+
* PaddingType: "PKCS1" || "OAEP_SHA1" || "OAEP_SHA256" || "OAEP_SHA512",
|
|
74
75
|
* },
|
|
75
76
|
* Dukpt: { // DukptEncryptionAttributes
|
|
76
77
|
* KeySerialNumber: "STRING_VALUE", // required
|
|
77
|
-
* Mode: "
|
|
78
|
-
* DukptKeyDerivationType: "
|
|
79
|
-
* DukptKeyVariant: "
|
|
78
|
+
* Mode: "ECB" || "CBC",
|
|
79
|
+
* DukptKeyDerivationType: "TDES_2KEY" || "TDES_3KEY" || "AES_128" || "AES_192" || "AES_256",
|
|
80
|
+
* DukptKeyVariant: "BIDIRECTIONAL" || "REQUEST" || "RESPONSE",
|
|
80
81
|
* InitializationVector: "STRING_VALUE",
|
|
81
82
|
* },
|
|
82
83
|
* Emv: { // EmvEncryptionAttributes
|
|
83
|
-
* MajorKeyDerivationMode: "
|
|
84
|
+
* MajorKeyDerivationMode: "EMV_OPTION_A" || "EMV_OPTION_B", // required
|
|
84
85
|
* PrimaryAccountNumber: "STRING_VALUE", // required
|
|
85
86
|
* PanSequenceNumber: "STRING_VALUE", // required
|
|
86
87
|
* SessionDerivationData: "STRING_VALUE", // required
|
|
87
|
-
* Mode: "
|
|
88
|
+
* Mode: "ECB" || "CBC",
|
|
88
89
|
* InitializationVector: "STRING_VALUE",
|
|
89
90
|
* },
|
|
90
91
|
* },
|
|
@@ -28,7 +28,9 @@ declare const EncryptDataCommand_base: {
|
|
|
28
28
|
};
|
|
29
29
|
/**
|
|
30
30
|
* <p>Encrypts plaintext data to ciphertext using a symmetric (TDES, AES), asymmetric (RSA), or derived (DUKPT or EMV) encryption key scheme. For more information, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/encrypt-data.html">Encrypt data</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>.</p>
|
|
31
|
-
* <p>You can generate an encryption key within Amazon Web Services Payment Cryptography by calling <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_CreateKey.html">CreateKey</a>. You can import your own encryption key by calling <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ImportKey.html">ImportKey</a
|
|
31
|
+
* <p>You can generate an encryption key within Amazon Web Services Payment Cryptography by calling <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_CreateKey.html">CreateKey</a>. You can import your own encryption key by calling <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ImportKey.html">ImportKey</a>.</p>
|
|
32
|
+
* <p>For this operation, the key must have <code>KeyModesOfUse</code> set to <code>Encrypt</code>. In asymmetric encryption, plaintext is encrypted using public component. You can import the public component of an asymmetric key pair created outside Amazon Web Services Payment Cryptography by calling <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ImportKey.html">ImportKey</a>. </p>
|
|
33
|
+
* <p>This operation also supports dynamic keys, allowing you to pass a dynamic encryption key as a TR-31 WrappedKeyBlock. This can be used when key material is frequently rotated, such as during every card transaction, and there is need to avoid importing short-lived keys into Amazon Web Services Payment Cryptography. To encrypt using dynamic keys, the <code>keyARN</code> is the Key Encryption Key (KEK) of the TR-31 wrapped encryption key material. The incoming wrapped key shall have a key purpose of D0 with a mode of use of B or D. For more information, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/use-cases-acquirers-dynamickeys.html">Using Dynamic Keys</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>.</p>
|
|
32
34
|
* <p>For symmetric and DUKPT encryption, Amazon Web Services Payment Cryptography supports <code>TDES</code> and <code>AES</code> algorithms. For EMV encryption, Amazon Web Services Payment Cryptography supports <code>TDES</code> algorithms.For asymmetric encryption, Amazon Web Services Payment Cryptography supports <code>RSA</code>. </p>
|
|
33
35
|
* <p>When you use TDES or TDES DUKPT, the plaintext data length must be a multiple of 8 bytes. For AES or AES DUKPT, the plaintext data length must be a multiple of 16 bytes. For RSA, it sould be equal to the key size unless padding is enabled.</p>
|
|
34
36
|
* <p>To encrypt using DUKPT, you must already have a BDK (Base Derivation Key) key in your account with <code>KeyModesOfUse</code> set to <code>DeriveKey</code>, or you can generate a new DUKPT key by calling <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_CreateKey.html">CreateKey</a>. To encrypt using EMV, you must already have an IMK (Issuer Master Key) key in your account with <code>KeyModesOfUse</code> set to <code>DeriveKey</code>.</p>
|
|
@@ -71,26 +73,26 @@ declare const EncryptDataCommand_base: {
|
|
|
71
73
|
* PlainText: "STRING_VALUE", // required
|
|
72
74
|
* EncryptionAttributes: { // EncryptionDecryptionAttributes Union: only one key present
|
|
73
75
|
* Symmetric: { // SymmetricEncryptionAttributes
|
|
74
|
-
* Mode: "
|
|
76
|
+
* Mode: "ECB" || "CBC" || "CFB" || "CFB1" || "CFB8" || "CFB64" || "CFB128" || "OFB", // required
|
|
75
77
|
* InitializationVector: "STRING_VALUE",
|
|
76
|
-
* PaddingType: "
|
|
78
|
+
* PaddingType: "PKCS1" || "OAEP_SHA1" || "OAEP_SHA256" || "OAEP_SHA512",
|
|
77
79
|
* },
|
|
78
80
|
* Asymmetric: { // AsymmetricEncryptionAttributes
|
|
79
|
-
* PaddingType: "
|
|
81
|
+
* PaddingType: "PKCS1" || "OAEP_SHA1" || "OAEP_SHA256" || "OAEP_SHA512",
|
|
80
82
|
* },
|
|
81
83
|
* Dukpt: { // DukptEncryptionAttributes
|
|
82
84
|
* KeySerialNumber: "STRING_VALUE", // required
|
|
83
|
-
* Mode: "
|
|
84
|
-
* DukptKeyDerivationType: "
|
|
85
|
-
* DukptKeyVariant: "
|
|
85
|
+
* Mode: "ECB" || "CBC",
|
|
86
|
+
* DukptKeyDerivationType: "TDES_2KEY" || "TDES_3KEY" || "AES_128" || "AES_192" || "AES_256",
|
|
87
|
+
* DukptKeyVariant: "BIDIRECTIONAL" || "REQUEST" || "RESPONSE",
|
|
86
88
|
* InitializationVector: "STRING_VALUE",
|
|
87
89
|
* },
|
|
88
90
|
* Emv: { // EmvEncryptionAttributes
|
|
89
|
-
* MajorKeyDerivationMode: "
|
|
91
|
+
* MajorKeyDerivationMode: "EMV_OPTION_A" || "EMV_OPTION_B", // required
|
|
90
92
|
* PrimaryAccountNumber: "STRING_VALUE", // required
|
|
91
93
|
* PanSequenceNumber: "STRING_VALUE", // required
|
|
92
94
|
* SessionDerivationData: "STRING_VALUE", // required
|
|
93
|
-
* Mode: "
|
|
95
|
+
* Mode: "ECB" || "CBC",
|
|
94
96
|
* InitializationVector: "STRING_VALUE",
|
|
95
97
|
* },
|
|
96
98
|
* },
|
|
@@ -53,12 +53,12 @@ declare const GenerateMacCommand_base: {
|
|
|
53
53
|
* KeyIdentifier: "STRING_VALUE", // required
|
|
54
54
|
* MessageData: "STRING_VALUE", // required
|
|
55
55
|
* GenerationAttributes: { // MacAttributes Union: only one key present
|
|
56
|
-
* Algorithm: "
|
|
56
|
+
* Algorithm: "ISO9797_ALGORITHM1" || "ISO9797_ALGORITHM3" || "CMAC" || "HMAC_SHA224" || "HMAC_SHA256" || "HMAC_SHA384" || "HMAC_SHA512",
|
|
57
57
|
* EmvMac: { // MacAlgorithmEmv
|
|
58
|
-
* MajorKeyDerivationMode: "
|
|
58
|
+
* MajorKeyDerivationMode: "EMV_OPTION_A" || "EMV_OPTION_B", // required
|
|
59
59
|
* PrimaryAccountNumber: "STRING_VALUE", // required
|
|
60
60
|
* PanSequenceNumber: "STRING_VALUE", // required
|
|
61
|
-
* SessionKeyDerivationMode: "
|
|
61
|
+
* SessionKeyDerivationMode: "EMV_COMMON_SESSION_KEY" || "EMV2000" || "AMEX" || "MASTERCARD_SESSION_KEY" || "VISA", // required
|
|
62
62
|
* SessionKeyDerivationValue: { // SessionKeyDerivationValue Union: only one key present
|
|
63
63
|
* ApplicationCryptogram: "STRING_VALUE",
|
|
64
64
|
* ApplicationTransactionCounter: "STRING_VALUE",
|
|
@@ -66,18 +66,18 @@ declare const GenerateMacCommand_base: {
|
|
|
66
66
|
* },
|
|
67
67
|
* DukptIso9797Algorithm1: { // MacAlgorithmDukpt
|
|
68
68
|
* KeySerialNumber: "STRING_VALUE", // required
|
|
69
|
-
* DukptKeyVariant: "
|
|
70
|
-
* DukptDerivationType: "
|
|
69
|
+
* DukptKeyVariant: "BIDIRECTIONAL" || "REQUEST" || "RESPONSE", // required
|
|
70
|
+
* DukptDerivationType: "TDES_2KEY" || "TDES_3KEY" || "AES_128" || "AES_192" || "AES_256",
|
|
71
71
|
* },
|
|
72
72
|
* DukptIso9797Algorithm3: {
|
|
73
73
|
* KeySerialNumber: "STRING_VALUE", // required
|
|
74
|
-
* DukptKeyVariant: "
|
|
75
|
-
* DukptDerivationType: "
|
|
74
|
+
* DukptKeyVariant: "BIDIRECTIONAL" || "REQUEST" || "RESPONSE", // required
|
|
75
|
+
* DukptDerivationType: "TDES_2KEY" || "TDES_3KEY" || "AES_128" || "AES_192" || "AES_256",
|
|
76
76
|
* },
|
|
77
77
|
* DukptCmac: {
|
|
78
78
|
* KeySerialNumber: "STRING_VALUE", // required
|
|
79
|
-
* DukptKeyVariant: "
|
|
80
|
-
* DukptDerivationType: "
|
|
79
|
+
* DukptKeyVariant: "BIDIRECTIONAL" || "REQUEST" || "RESPONSE", // required
|
|
80
|
+
* DukptDerivationType: "TDES_2KEY" || "TDES_3KEY" || "AES_128" || "AES_192" || "AES_256",
|
|
81
81
|
* },
|
|
82
82
|
* },
|
|
83
83
|
* MacLength: Number("int"),
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { Command as $Command } from "@smithy/smithy-client";
|
|
2
|
+
import { MetadataBearer as __MetadataBearer } from "@smithy/types";
|
|
3
|
+
import { GenerateMacEmvPinChangeInput, GenerateMacEmvPinChangeOutput } from "../models/models_0";
|
|
4
|
+
import { PaymentCryptographyDataClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../PaymentCryptographyDataClient";
|
|
5
|
+
/**
|
|
6
|
+
* @public
|
|
7
|
+
*/
|
|
8
|
+
export type { __MetadataBearer };
|
|
9
|
+
export { $Command };
|
|
10
|
+
/**
|
|
11
|
+
* @public
|
|
12
|
+
*
|
|
13
|
+
* The input for {@link GenerateMacEmvPinChangeCommand}.
|
|
14
|
+
*/
|
|
15
|
+
export interface GenerateMacEmvPinChangeCommandInput extends GenerateMacEmvPinChangeInput {
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* @public
|
|
19
|
+
*
|
|
20
|
+
* The output of {@link GenerateMacEmvPinChangeCommand}.
|
|
21
|
+
*/
|
|
22
|
+
export interface GenerateMacEmvPinChangeCommandOutput extends GenerateMacEmvPinChangeOutput, __MetadataBearer {
|
|
23
|
+
}
|
|
24
|
+
declare const GenerateMacEmvPinChangeCommand_base: {
|
|
25
|
+
new (input: GenerateMacEmvPinChangeCommandInput): import("@smithy/smithy-client").CommandImpl<GenerateMacEmvPinChangeCommandInput, GenerateMacEmvPinChangeCommandOutput, PaymentCryptographyDataClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes>;
|
|
26
|
+
new (__0_0: GenerateMacEmvPinChangeCommandInput): import("@smithy/smithy-client").CommandImpl<GenerateMacEmvPinChangeCommandInput, GenerateMacEmvPinChangeCommandOutput, PaymentCryptographyDataClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes>;
|
|
27
|
+
getEndpointParameterInstructions(): import("@smithy/middleware-endpoint").EndpointParameterInstructions;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* <p>Generates an issuer script mac for EMV payment cards that use offline PINs as the cardholder verification method (CVM).</p>
|
|
31
|
+
* <p>This operation generates an authenticated issuer script response by appending the incoming message data (APDU command) with the target encrypted PIN block in ISO2 format. The command structure and method to send the issuer script update to the card is not defined by this operation and is typically determined by the applicable payment card scheme.</p>
|
|
32
|
+
* <p>The primary inputs to this operation include the incoming new encrypted pinblock, PIN encryption key (PEK), issuer master key (IMK), primary account number (PAN), and the payment card derivation method.</p>
|
|
33
|
+
* <p>The operation uses two issuer master keys - secure messaging for confidentiality (IMK-SMC) and secure messaging for integrity (IMK-SMI). The SMC key is used to internally derive a key to secure the pin, while SMI key is used to internally derive a key to authenticate the script reponse as per the <a href="https://www.emvco.com/specifications/">EMV 4.4 - Book 2 - Security and Key Management</a> specification. </p>
|
|
34
|
+
* <p>This operation supports Amex, EMV2000, EMVCommon, Mastercard and Visa derivation methods, each requiring specific input parameters. Users must follow the specific derivation method and input parameters defined by the respective payment card scheme.</p>
|
|
35
|
+
* <note>
|
|
36
|
+
* <p>Use <a>GenerateMac</a> operation when sending a script update to an EMV card that does not involve PIN change. When assigning IAM permissions, it is important to understand that <a>EncryptData</a> using EMV keys and <a>GenerateMac</a> perform similar functions to this command.</p>
|
|
37
|
+
* </note>
|
|
38
|
+
* <p>
|
|
39
|
+
* <b>Cross-account use</b>: This operation can't be used across different Amazon Web Services accounts.</p>
|
|
40
|
+
* <p>
|
|
41
|
+
* <b>Related operations:</b>
|
|
42
|
+
* </p>
|
|
43
|
+
* <ul>
|
|
44
|
+
* <li>
|
|
45
|
+
* <p>
|
|
46
|
+
* <a>EncryptData</a>
|
|
47
|
+
* </p>
|
|
48
|
+
* </li>
|
|
49
|
+
* <li>
|
|
50
|
+
* <p>
|
|
51
|
+
* <a>GenerateMac</a>
|
|
52
|
+
* </p>
|
|
53
|
+
* </li>
|
|
54
|
+
* </ul>
|
|
55
|
+
* @example
|
|
56
|
+
* Use a bare-bones client and the command you need to make an API call.
|
|
57
|
+
* ```javascript
|
|
58
|
+
* import { PaymentCryptographyDataClient, GenerateMacEmvPinChangeCommand } from "@aws-sdk/client-payment-cryptography-data"; // ES Modules import
|
|
59
|
+
* // const { PaymentCryptographyDataClient, GenerateMacEmvPinChangeCommand } = require("@aws-sdk/client-payment-cryptography-data"); // CommonJS import
|
|
60
|
+
* const client = new PaymentCryptographyDataClient(config);
|
|
61
|
+
* const input = { // GenerateMacEmvPinChangeInput
|
|
62
|
+
* NewPinPekIdentifier: "STRING_VALUE", // required
|
|
63
|
+
* NewEncryptedPinBlock: "STRING_VALUE", // required
|
|
64
|
+
* PinBlockFormat: "ISO_FORMAT_0" || "ISO_FORMAT_1" || "ISO_FORMAT_3", // required
|
|
65
|
+
* SecureMessagingIntegrityKeyIdentifier: "STRING_VALUE", // required
|
|
66
|
+
* SecureMessagingConfidentialityKeyIdentifier: "STRING_VALUE", // required
|
|
67
|
+
* MessageData: "STRING_VALUE", // required
|
|
68
|
+
* DerivationMethodAttributes: { // DerivationMethodAttributes Union: only one key present
|
|
69
|
+
* EmvCommon: { // EmvCommonAttributes
|
|
70
|
+
* MajorKeyDerivationMode: "EMV_OPTION_A" || "EMV_OPTION_B", // required
|
|
71
|
+
* PrimaryAccountNumber: "STRING_VALUE", // required
|
|
72
|
+
* PanSequenceNumber: "STRING_VALUE", // required
|
|
73
|
+
* ApplicationCryptogram: "STRING_VALUE", // required
|
|
74
|
+
* Mode: "ECB" || "CBC", // required
|
|
75
|
+
* PinBlockPaddingType: "NO_PADDING" || "ISO_IEC_7816_4", // required
|
|
76
|
+
* PinBlockLengthPosition: "NONE" || "FRONT_OF_PIN_BLOCK", // required
|
|
77
|
+
* },
|
|
78
|
+
* Amex: { // AmexAttributes
|
|
79
|
+
* MajorKeyDerivationMode: "EMV_OPTION_A" || "EMV_OPTION_B", // required
|
|
80
|
+
* PrimaryAccountNumber: "STRING_VALUE", // required
|
|
81
|
+
* PanSequenceNumber: "STRING_VALUE", // required
|
|
82
|
+
* ApplicationTransactionCounter: "STRING_VALUE", // required
|
|
83
|
+
* AuthorizationRequestKeyIdentifier: "STRING_VALUE", // required
|
|
84
|
+
* CurrentPinAttributes: { // CurrentPinAttributes
|
|
85
|
+
* CurrentPinPekIdentifier: "STRING_VALUE", // required
|
|
86
|
+
* CurrentEncryptedPinBlock: "STRING_VALUE", // required
|
|
87
|
+
* },
|
|
88
|
+
* },
|
|
89
|
+
* Visa: { // VisaAttributes
|
|
90
|
+
* MajorKeyDerivationMode: "EMV_OPTION_A" || "EMV_OPTION_B", // required
|
|
91
|
+
* PrimaryAccountNumber: "STRING_VALUE", // required
|
|
92
|
+
* PanSequenceNumber: "STRING_VALUE", // required
|
|
93
|
+
* ApplicationTransactionCounter: "STRING_VALUE", // required
|
|
94
|
+
* AuthorizationRequestKeyIdentifier: "STRING_VALUE", // required
|
|
95
|
+
* CurrentPinAttributes: {
|
|
96
|
+
* CurrentPinPekIdentifier: "STRING_VALUE", // required
|
|
97
|
+
* CurrentEncryptedPinBlock: "STRING_VALUE", // required
|
|
98
|
+
* },
|
|
99
|
+
* },
|
|
100
|
+
* Emv2000: { // Emv2000Attributes
|
|
101
|
+
* MajorKeyDerivationMode: "EMV_OPTION_A" || "EMV_OPTION_B", // required
|
|
102
|
+
* PrimaryAccountNumber: "STRING_VALUE", // required
|
|
103
|
+
* PanSequenceNumber: "STRING_VALUE", // required
|
|
104
|
+
* ApplicationTransactionCounter: "STRING_VALUE", // required
|
|
105
|
+
* },
|
|
106
|
+
* Mastercard: { // MasterCardAttributes
|
|
107
|
+
* MajorKeyDerivationMode: "EMV_OPTION_A" || "EMV_OPTION_B", // required
|
|
108
|
+
* PrimaryAccountNumber: "STRING_VALUE", // required
|
|
109
|
+
* PanSequenceNumber: "STRING_VALUE", // required
|
|
110
|
+
* ApplicationCryptogram: "STRING_VALUE", // required
|
|
111
|
+
* },
|
|
112
|
+
* },
|
|
113
|
+
* };
|
|
114
|
+
* const command = new GenerateMacEmvPinChangeCommand(input);
|
|
115
|
+
* const response = await client.send(command);
|
|
116
|
+
* // { // GenerateMacEmvPinChangeOutput
|
|
117
|
+
* // NewPinPekArn: "STRING_VALUE", // required
|
|
118
|
+
* // SecureMessagingIntegrityKeyArn: "STRING_VALUE", // required
|
|
119
|
+
* // SecureMessagingConfidentialityKeyArn: "STRING_VALUE", // required
|
|
120
|
+
* // Mac: "STRING_VALUE", // required
|
|
121
|
+
* // EncryptedPinBlock: "STRING_VALUE", // required
|
|
122
|
+
* // NewPinPekKeyCheckValue: "STRING_VALUE", // required
|
|
123
|
+
* // SecureMessagingIntegrityKeyCheckValue: "STRING_VALUE", // required
|
|
124
|
+
* // SecureMessagingConfidentialityKeyCheckValue: "STRING_VALUE", // required
|
|
125
|
+
* // VisaAmexDerivationOutputs: { // VisaAmexDerivationOutputs
|
|
126
|
+
* // AuthorizationRequestKeyArn: "STRING_VALUE", // required
|
|
127
|
+
* // AuthorizationRequestKeyCheckValue: "STRING_VALUE", // required
|
|
128
|
+
* // CurrentPinPekArn: "STRING_VALUE",
|
|
129
|
+
* // CurrentPinPekKeyCheckValue: "STRING_VALUE",
|
|
130
|
+
* // },
|
|
131
|
+
* // };
|
|
132
|
+
*
|
|
133
|
+
* ```
|
|
134
|
+
*
|
|
135
|
+
* @param GenerateMacEmvPinChangeCommandInput - {@link GenerateMacEmvPinChangeCommandInput}
|
|
136
|
+
* @returns {@link GenerateMacEmvPinChangeCommandOutput}
|
|
137
|
+
* @see {@link GenerateMacEmvPinChangeCommandInput} for command's `input` shape.
|
|
138
|
+
* @see {@link GenerateMacEmvPinChangeCommandOutput} for command's `response` shape.
|
|
139
|
+
* @see {@link PaymentCryptographyDataClientResolvedConfig | config} for PaymentCryptographyDataClient's `config` shape.
|
|
140
|
+
*
|
|
141
|
+
* @throws {@link AccessDeniedException} (client fault)
|
|
142
|
+
* <p>You do not have sufficient access to perform this action.</p>
|
|
143
|
+
*
|
|
144
|
+
* @throws {@link InternalServerException} (server fault)
|
|
145
|
+
* <p>The request processing has failed because of an unknown error, exception, or failure.</p>
|
|
146
|
+
*
|
|
147
|
+
* @throws {@link ResourceNotFoundException} (client fault)
|
|
148
|
+
* <p>The request was denied due to an invalid resource error.</p>
|
|
149
|
+
*
|
|
150
|
+
* @throws {@link ThrottlingException} (client fault)
|
|
151
|
+
* <p>The request was denied due to request throttling.</p>
|
|
152
|
+
*
|
|
153
|
+
* @throws {@link ValidationException} (client fault)
|
|
154
|
+
* <p>The request was denied due to an invalid request error.</p>
|
|
155
|
+
*
|
|
156
|
+
* @throws {@link PaymentCryptographyDataServiceException}
|
|
157
|
+
* <p>Base exception class for all service exceptions from PaymentCryptographyData service.</p>
|
|
158
|
+
*
|
|
159
|
+
* @public
|
|
160
|
+
*/
|
|
161
|
+
export declare class GenerateMacEmvPinChangeCommand extends GenerateMacEmvPinChangeCommand_base {
|
|
162
|
+
/** @internal type navigation helper, not in runtime. */
|
|
163
|
+
protected static __types: {
|
|
164
|
+
api: {
|
|
165
|
+
input: GenerateMacEmvPinChangeInput;
|
|
166
|
+
output: GenerateMacEmvPinChangeOutput;
|
|
167
|
+
};
|
|
168
|
+
sdk: {
|
|
169
|
+
input: GenerateMacEmvPinChangeCommandInput;
|
|
170
|
+
output: GenerateMacEmvPinChangeCommandOutput;
|
|
171
|
+
};
|
|
172
|
+
};
|
|
173
|
+
}
|
|
@@ -94,7 +94,7 @@ declare const GeneratePinDataCommand_base: {
|
|
|
94
94
|
* },
|
|
95
95
|
* PinDataLength: Number("int"),
|
|
96
96
|
* PrimaryAccountNumber: "STRING_VALUE", // required
|
|
97
|
-
* PinBlockFormat: "
|
|
97
|
+
* PinBlockFormat: "ISO_FORMAT_0" || "ISO_FORMAT_3", // required
|
|
98
98
|
* };
|
|
99
99
|
* const command = new GeneratePinDataCommand(input);
|
|
100
100
|
* const response = await client.send(command);
|
|
@@ -29,6 +29,7 @@ declare const ReEncryptDataCommand_base: {
|
|
|
29
29
|
/**
|
|
30
30
|
* <p>Re-encrypt ciphertext using DUKPT or Symmetric data encryption keys. </p>
|
|
31
31
|
* <p>You can either generate an encryption key within Amazon Web Services Payment Cryptography by calling <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_CreateKey.html">CreateKey</a> or import your own encryption key by calling <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ImportKey.html">ImportKey</a>. The <code>KeyArn</code> for use with this operation must be in a compatible key state with <code>KeyModesOfUse</code> set to <code>Encrypt</code>. </p>
|
|
32
|
+
* <p>This operation also supports dynamic keys, allowing you to pass a dynamic encryption key as a TR-31 WrappedKeyBlock. This can be used when key material is frequently rotated, such as during every card transaction, and there is need to avoid importing short-lived keys into Amazon Web Services Payment Cryptography. To re-encrypt using dynamic keys, the <code>keyARN</code> is the Key Encryption Key (KEK) of the TR-31 wrapped encryption key material. The incoming wrapped key shall have a key purpose of D0 with a mode of use of B or D. For more information, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/use-cases-acquirers-dynamickeys.html">Using Dynamic Keys</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>.</p>
|
|
32
33
|
* <p>For symmetric and DUKPT encryption, Amazon Web Services Payment Cryptography supports <code>TDES</code> and <code>AES</code> algorithms. To encrypt using DUKPT, a DUKPT key must already exist within your account with <code>KeyModesOfUse</code> set to <code>DeriveKey</code> or a new DUKPT can be generated by calling <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_CreateKey.html">CreateKey</a>.</p>
|
|
33
34
|
* <p>For information about valid keys for this operation, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/keys-validattributes.html">Understanding key attributes</a> and <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html">Key types for specific data operations</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>. </p>
|
|
34
35
|
* <p>
|
|
@@ -70,29 +71,29 @@ declare const ReEncryptDataCommand_base: {
|
|
|
70
71
|
* CipherText: "STRING_VALUE", // required
|
|
71
72
|
* IncomingEncryptionAttributes: { // ReEncryptionAttributes Union: only one key present
|
|
72
73
|
* Symmetric: { // SymmetricEncryptionAttributes
|
|
73
|
-
* Mode: "
|
|
74
|
+
* Mode: "ECB" || "CBC" || "CFB" || "CFB1" || "CFB8" || "CFB64" || "CFB128" || "OFB", // required
|
|
74
75
|
* InitializationVector: "STRING_VALUE",
|
|
75
|
-
* PaddingType: "
|
|
76
|
+
* PaddingType: "PKCS1" || "OAEP_SHA1" || "OAEP_SHA256" || "OAEP_SHA512",
|
|
76
77
|
* },
|
|
77
78
|
* Dukpt: { // DukptEncryptionAttributes
|
|
78
79
|
* KeySerialNumber: "STRING_VALUE", // required
|
|
79
|
-
* Mode: "
|
|
80
|
-
* DukptKeyDerivationType: "
|
|
81
|
-
* DukptKeyVariant: "
|
|
80
|
+
* Mode: "ECB" || "CBC",
|
|
81
|
+
* DukptKeyDerivationType: "TDES_2KEY" || "TDES_3KEY" || "AES_128" || "AES_192" || "AES_256",
|
|
82
|
+
* DukptKeyVariant: "BIDIRECTIONAL" || "REQUEST" || "RESPONSE",
|
|
82
83
|
* InitializationVector: "STRING_VALUE",
|
|
83
84
|
* },
|
|
84
85
|
* },
|
|
85
86
|
* OutgoingEncryptionAttributes: {// Union: only one key present
|
|
86
87
|
* Symmetric: {
|
|
87
|
-
* Mode: "
|
|
88
|
+
* Mode: "ECB" || "CBC" || "CFB" || "CFB1" || "CFB8" || "CFB64" || "CFB128" || "OFB", // required
|
|
88
89
|
* InitializationVector: "STRING_VALUE",
|
|
89
|
-
* PaddingType: "
|
|
90
|
+
* PaddingType: "PKCS1" || "OAEP_SHA1" || "OAEP_SHA256" || "OAEP_SHA512",
|
|
90
91
|
* },
|
|
91
92
|
* Dukpt: {
|
|
92
93
|
* KeySerialNumber: "STRING_VALUE", // required
|
|
93
|
-
* Mode: "
|
|
94
|
-
* DukptKeyDerivationType: "
|
|
95
|
-
* DukptKeyVariant: "
|
|
94
|
+
* Mode: "ECB" || "CBC",
|
|
95
|
+
* DukptKeyDerivationType: "TDES_2KEY" || "TDES_3KEY" || "AES_128" || "AES_192" || "AES_256",
|
|
96
|
+
* DukptKeyVariant: "BIDIRECTIONAL" || "REQUEST" || "RESPONSE",
|
|
96
97
|
* InitializationVector: "STRING_VALUE",
|
|
97
98
|
* },
|
|
98
99
|
* },
|
|
@@ -29,6 +29,7 @@ declare const TranslatePinDataCommand_base: {
|
|
|
29
29
|
/**
|
|
30
30
|
* <p>Translates encrypted PIN block from and to ISO 9564 formats 0,1,3,4. For more information, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/translate-pin-data.html">Translate PIN data</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>.</p>
|
|
31
31
|
* <p>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 <code>TDES</code> and <code>AES</code> key derivation type for DUKPT translations. </p>
|
|
32
|
+
* <p>This operation also supports dynamic keys, allowing you to pass a dynamic PEK as a TR-31 WrappedKeyBlock. This can be used when key material is frequently rotated, such as during every card transaction, and there is need to avoid importing short-lived keys into Amazon Web Services Payment Cryptography. To translate PIN block using dynamic keys, the <code>keyARN</code> is the Key Encryption Key (KEK) of the TR-31 wrapped PEK. The incoming wrapped key shall have a key purpose of P0 with a mode of use of B or D. For more information, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/use-cases-acquirers-dynamickeys.html">Using Dynamic Keys</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>.</p>
|
|
32
33
|
* <p>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. </p>
|
|
33
34
|
* <p>For information about valid keys for this operation, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/keys-validattributes.html">Understanding key attributes</a> and <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html">Key types for specific data operations</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>.</p>
|
|
34
35
|
* <note>
|
|
@@ -85,13 +86,13 @@ declare const TranslatePinDataCommand_base: {
|
|
|
85
86
|
* EncryptedPinBlock: "STRING_VALUE", // required
|
|
86
87
|
* IncomingDukptAttributes: { // DukptDerivationAttributes
|
|
87
88
|
* KeySerialNumber: "STRING_VALUE", // required
|
|
88
|
-
* DukptKeyDerivationType: "
|
|
89
|
-
* DukptKeyVariant: "
|
|
89
|
+
* DukptKeyDerivationType: "TDES_2KEY" || "TDES_3KEY" || "AES_128" || "AES_192" || "AES_256",
|
|
90
|
+
* DukptKeyVariant: "BIDIRECTIONAL" || "REQUEST" || "RESPONSE",
|
|
90
91
|
* },
|
|
91
92
|
* OutgoingDukptAttributes: {
|
|
92
93
|
* KeySerialNumber: "STRING_VALUE", // required
|
|
93
|
-
* DukptKeyDerivationType: "
|
|
94
|
-
* DukptKeyVariant: "
|
|
94
|
+
* DukptKeyDerivationType: "TDES_2KEY" || "TDES_3KEY" || "AES_128" || "AES_192" || "AES_256",
|
|
95
|
+
* DukptKeyVariant: "BIDIRECTIONAL" || "REQUEST" || "RESPONSE",
|
|
95
96
|
* },
|
|
96
97
|
* IncomingWrappedKey: { // WrappedKey
|
|
97
98
|
* WrappedKeyMaterial: { // WrappedKeyMaterial Union: only one key present
|
|
@@ -57,7 +57,7 @@ declare const VerifyAuthRequestCryptogramCommand_base: {
|
|
|
57
57
|
* KeyIdentifier: "STRING_VALUE", // required
|
|
58
58
|
* TransactionData: "STRING_VALUE", // required
|
|
59
59
|
* AuthRequestCryptogram: "STRING_VALUE", // required
|
|
60
|
-
* MajorKeyDerivationMode: "
|
|
60
|
+
* MajorKeyDerivationMode: "EMV_OPTION_A" || "EMV_OPTION_B", // required
|
|
61
61
|
* SessionKeyDerivationAttributes: { // SessionKeyDerivation Union: only one key present
|
|
62
62
|
* EmvCommon: { // SessionKeyEmvCommon
|
|
63
63
|
* PrimaryAccountNumber: "STRING_VALUE", // required
|
|
@@ -53,12 +53,12 @@ declare const VerifyMacCommand_base: {
|
|
|
53
53
|
* MessageData: "STRING_VALUE", // required
|
|
54
54
|
* Mac: "STRING_VALUE", // required
|
|
55
55
|
* VerificationAttributes: { // MacAttributes Union: only one key present
|
|
56
|
-
* Algorithm: "
|
|
56
|
+
* Algorithm: "ISO9797_ALGORITHM1" || "ISO9797_ALGORITHM3" || "CMAC" || "HMAC_SHA224" || "HMAC_SHA256" || "HMAC_SHA384" || "HMAC_SHA512",
|
|
57
57
|
* EmvMac: { // MacAlgorithmEmv
|
|
58
|
-
* MajorKeyDerivationMode: "
|
|
58
|
+
* MajorKeyDerivationMode: "EMV_OPTION_A" || "EMV_OPTION_B", // required
|
|
59
59
|
* PrimaryAccountNumber: "STRING_VALUE", // required
|
|
60
60
|
* PanSequenceNumber: "STRING_VALUE", // required
|
|
61
|
-
* SessionKeyDerivationMode: "
|
|
61
|
+
* SessionKeyDerivationMode: "EMV_COMMON_SESSION_KEY" || "EMV2000" || "AMEX" || "MASTERCARD_SESSION_KEY" || "VISA", // required
|
|
62
62
|
* SessionKeyDerivationValue: { // SessionKeyDerivationValue Union: only one key present
|
|
63
63
|
* ApplicationCryptogram: "STRING_VALUE",
|
|
64
64
|
* ApplicationTransactionCounter: "STRING_VALUE",
|
|
@@ -66,18 +66,18 @@ declare const VerifyMacCommand_base: {
|
|
|
66
66
|
* },
|
|
67
67
|
* DukptIso9797Algorithm1: { // MacAlgorithmDukpt
|
|
68
68
|
* KeySerialNumber: "STRING_VALUE", // required
|
|
69
|
-
* DukptKeyVariant: "
|
|
70
|
-
* DukptDerivationType: "
|
|
69
|
+
* DukptKeyVariant: "BIDIRECTIONAL" || "REQUEST" || "RESPONSE", // required
|
|
70
|
+
* DukptDerivationType: "TDES_2KEY" || "TDES_3KEY" || "AES_128" || "AES_192" || "AES_256",
|
|
71
71
|
* },
|
|
72
72
|
* DukptIso9797Algorithm3: {
|
|
73
73
|
* KeySerialNumber: "STRING_VALUE", // required
|
|
74
|
-
* DukptKeyVariant: "
|
|
75
|
-
* DukptDerivationType: "
|
|
74
|
+
* DukptKeyVariant: "BIDIRECTIONAL" || "REQUEST" || "RESPONSE", // required
|
|
75
|
+
* DukptDerivationType: "TDES_2KEY" || "TDES_3KEY" || "AES_128" || "AES_192" || "AES_256",
|
|
76
76
|
* },
|
|
77
77
|
* DukptCmac: {
|
|
78
78
|
* KeySerialNumber: "STRING_VALUE", // required
|
|
79
|
-
* DukptKeyVariant: "
|
|
80
|
-
* DukptDerivationType: "
|
|
79
|
+
* DukptKeyVariant: "BIDIRECTIONAL" || "REQUEST" || "RESPONSE", // required
|
|
80
|
+
* DukptDerivationType: "TDES_2KEY" || "TDES_3KEY" || "AES_128" || "AES_192" || "AES_256",
|
|
81
81
|
* },
|
|
82
82
|
* },
|
|
83
83
|
* MacLength: Number("int"),
|
|
@@ -70,11 +70,11 @@ declare const VerifyPinDataCommand_base: {
|
|
|
70
70
|
* },
|
|
71
71
|
* EncryptedPinBlock: "STRING_VALUE", // required
|
|
72
72
|
* PrimaryAccountNumber: "STRING_VALUE", // required
|
|
73
|
-
* PinBlockFormat: "
|
|
73
|
+
* PinBlockFormat: "ISO_FORMAT_0" || "ISO_FORMAT_3", // required
|
|
74
74
|
* PinDataLength: Number("int"),
|
|
75
75
|
* DukptAttributes: { // DukptAttributes
|
|
76
76
|
* KeySerialNumber: "STRING_VALUE", // required
|
|
77
|
-
* DukptDerivationType: "
|
|
77
|
+
* DukptDerivationType: "TDES_2KEY" || "TDES_3KEY" || "AES_128" || "AES_192" || "AES_256", // required
|
|
78
78
|
* },
|
|
79
79
|
* };
|
|
80
80
|
* const command = new VerifyPinDataCommand(input);
|
|
@@ -2,6 +2,7 @@ export * from "./DecryptDataCommand";
|
|
|
2
2
|
export * from "./EncryptDataCommand";
|
|
3
3
|
export * from "./GenerateCardValidationDataCommand";
|
|
4
4
|
export * from "./GenerateMacCommand";
|
|
5
|
+
export * from "./GenerateMacEmvPinChangeCommand";
|
|
5
6
|
export * from "./GeneratePinDataCommand";
|
|
6
7
|
export * from "./ReEncryptDataCommand";
|
|
7
8
|
export * from "./TranslatePinDataCommand";
|