@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.
Files changed (33) hide show
  1. package/README.md +8 -0
  2. package/dist-cjs/index.js +179 -5
  3. package/dist-es/PaymentCryptographyData.js +2 -0
  4. package/dist-es/commands/GenerateMacEmvPinChangeCommand.js +23 -0
  5. package/dist-es/commands/index.js +1 -0
  6. package/dist-es/models/models_0.js +92 -4
  7. package/dist-es/protocols/Aws_restJson1.js +41 -0
  8. package/dist-types/PaymentCryptographyData.d.ts +7 -0
  9. package/dist-types/PaymentCryptographyDataClient.d.ts +3 -2
  10. package/dist-types/commands/DecryptDataCommand.d.ts +10 -9
  11. package/dist-types/commands/EncryptDataCommand.d.ts +11 -9
  12. package/dist-types/commands/GenerateMacCommand.d.ts +9 -9
  13. package/dist-types/commands/GenerateMacEmvPinChangeCommand.d.ts +173 -0
  14. package/dist-types/commands/GeneratePinDataCommand.d.ts +1 -1
  15. package/dist-types/commands/ReEncryptDataCommand.d.ts +11 -10
  16. package/dist-types/commands/TranslatePinDataCommand.d.ts +5 -4
  17. package/dist-types/commands/VerifyAuthRequestCryptogramCommand.d.ts +1 -1
  18. package/dist-types/commands/VerifyMacCommand.d.ts +9 -9
  19. package/dist-types/commands/VerifyPinDataCommand.d.ts +2 -2
  20. package/dist-types/commands/index.d.ts +1 -0
  21. package/dist-types/models/models_0.d.ts +475 -13
  22. package/dist-types/protocols/Aws_restJson1.d.ts +9 -0
  23. package/dist-types/runtimeConfig.browser.d.ts +1 -1
  24. package/dist-types/runtimeConfig.native.d.ts +1 -1
  25. package/dist-types/ts3.4/PaymentCryptographyData.d.ts +17 -0
  26. package/dist-types/ts3.4/PaymentCryptographyDataClient.d.ts +6 -0
  27. package/dist-types/ts3.4/commands/GenerateMacEmvPinChangeCommand.d.ts +51 -0
  28. package/dist-types/ts3.4/commands/index.d.ts +1 -0
  29. package/dist-types/ts3.4/models/models_0.d.ts +185 -6
  30. package/dist-types/ts3.4/protocols/Aws_restJson1.d.ts +12 -0
  31. package/dist-types/ts3.4/runtimeConfig.browser.d.ts +3 -1
  32. package/dist-types/ts3.4/runtimeConfig.native.d.ts +3 -1
  33. 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 encryption key generated within Amazon Web Services Payment Cryptography, or 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>. 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>
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: "STRING_VALUE", // required
69
+ * Mode: "ECB" || "CBC" || "CFB" || "CFB1" || "CFB8" || "CFB64" || "CFB128" || "OFB", // required
69
70
  * InitializationVector: "STRING_VALUE",
70
- * PaddingType: "STRING_VALUE",
71
+ * PaddingType: "PKCS1" || "OAEP_SHA1" || "OAEP_SHA256" || "OAEP_SHA512",
71
72
  * },
72
73
  * Asymmetric: { // AsymmetricEncryptionAttributes
73
- * PaddingType: "STRING_VALUE",
74
+ * PaddingType: "PKCS1" || "OAEP_SHA1" || "OAEP_SHA256" || "OAEP_SHA512",
74
75
  * },
75
76
  * Dukpt: { // DukptEncryptionAttributes
76
77
  * KeySerialNumber: "STRING_VALUE", // required
77
- * Mode: "STRING_VALUE",
78
- * DukptKeyDerivationType: "STRING_VALUE",
79
- * DukptKeyVariant: "STRING_VALUE",
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: "STRING_VALUE", // required
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: "STRING_VALUE",
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>. 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>
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: "STRING_VALUE", // required
76
+ * Mode: "ECB" || "CBC" || "CFB" || "CFB1" || "CFB8" || "CFB64" || "CFB128" || "OFB", // required
75
77
  * InitializationVector: "STRING_VALUE",
76
- * PaddingType: "STRING_VALUE",
78
+ * PaddingType: "PKCS1" || "OAEP_SHA1" || "OAEP_SHA256" || "OAEP_SHA512",
77
79
  * },
78
80
  * Asymmetric: { // AsymmetricEncryptionAttributes
79
- * PaddingType: "STRING_VALUE",
81
+ * PaddingType: "PKCS1" || "OAEP_SHA1" || "OAEP_SHA256" || "OAEP_SHA512",
80
82
  * },
81
83
  * Dukpt: { // DukptEncryptionAttributes
82
84
  * KeySerialNumber: "STRING_VALUE", // required
83
- * Mode: "STRING_VALUE",
84
- * DukptKeyDerivationType: "STRING_VALUE",
85
- * DukptKeyVariant: "STRING_VALUE",
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: "STRING_VALUE", // required
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: "STRING_VALUE",
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: "STRING_VALUE",
56
+ * Algorithm: "ISO9797_ALGORITHM1" || "ISO9797_ALGORITHM3" || "CMAC" || "HMAC_SHA224" || "HMAC_SHA256" || "HMAC_SHA384" || "HMAC_SHA512",
57
57
  * EmvMac: { // MacAlgorithmEmv
58
- * MajorKeyDerivationMode: "STRING_VALUE", // required
58
+ * MajorKeyDerivationMode: "EMV_OPTION_A" || "EMV_OPTION_B", // required
59
59
  * PrimaryAccountNumber: "STRING_VALUE", // required
60
60
  * PanSequenceNumber: "STRING_VALUE", // required
61
- * SessionKeyDerivationMode: "STRING_VALUE", // required
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: "STRING_VALUE", // required
70
- * DukptDerivationType: "STRING_VALUE",
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: "STRING_VALUE", // required
75
- * DukptDerivationType: "STRING_VALUE",
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: "STRING_VALUE", // required
80
- * DukptDerivationType: "STRING_VALUE",
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: "STRING_VALUE", // required
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: "STRING_VALUE", // required
74
+ * Mode: "ECB" || "CBC" || "CFB" || "CFB1" || "CFB8" || "CFB64" || "CFB128" || "OFB", // required
74
75
  * InitializationVector: "STRING_VALUE",
75
- * PaddingType: "STRING_VALUE",
76
+ * PaddingType: "PKCS1" || "OAEP_SHA1" || "OAEP_SHA256" || "OAEP_SHA512",
76
77
  * },
77
78
  * Dukpt: { // DukptEncryptionAttributes
78
79
  * KeySerialNumber: "STRING_VALUE", // required
79
- * Mode: "STRING_VALUE",
80
- * DukptKeyDerivationType: "STRING_VALUE",
81
- * DukptKeyVariant: "STRING_VALUE",
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: "STRING_VALUE", // required
88
+ * Mode: "ECB" || "CBC" || "CFB" || "CFB1" || "CFB8" || "CFB64" || "CFB128" || "OFB", // required
88
89
  * InitializationVector: "STRING_VALUE",
89
- * PaddingType: "STRING_VALUE",
90
+ * PaddingType: "PKCS1" || "OAEP_SHA1" || "OAEP_SHA256" || "OAEP_SHA512",
90
91
  * },
91
92
  * Dukpt: {
92
93
  * KeySerialNumber: "STRING_VALUE", // required
93
- * Mode: "STRING_VALUE",
94
- * DukptKeyDerivationType: "STRING_VALUE",
95
- * DukptKeyVariant: "STRING_VALUE",
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: "STRING_VALUE",
89
- * DukptKeyVariant: "STRING_VALUE",
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: "STRING_VALUE",
94
- * DukptKeyVariant: "STRING_VALUE",
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: "STRING_VALUE", // required
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: "STRING_VALUE",
56
+ * Algorithm: "ISO9797_ALGORITHM1" || "ISO9797_ALGORITHM3" || "CMAC" || "HMAC_SHA224" || "HMAC_SHA256" || "HMAC_SHA384" || "HMAC_SHA512",
57
57
  * EmvMac: { // MacAlgorithmEmv
58
- * MajorKeyDerivationMode: "STRING_VALUE", // required
58
+ * MajorKeyDerivationMode: "EMV_OPTION_A" || "EMV_OPTION_B", // required
59
59
  * PrimaryAccountNumber: "STRING_VALUE", // required
60
60
  * PanSequenceNumber: "STRING_VALUE", // required
61
- * SessionKeyDerivationMode: "STRING_VALUE", // required
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: "STRING_VALUE", // required
70
- * DukptDerivationType: "STRING_VALUE",
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: "STRING_VALUE", // required
75
- * DukptDerivationType: "STRING_VALUE",
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: "STRING_VALUE", // required
80
- * DukptDerivationType: "STRING_VALUE",
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: "STRING_VALUE", // required
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: "STRING_VALUE", // required
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";