@aws-sdk/client-payment-cryptography-data 3.349.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 (107) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +294 -0
  3. package/dist-cjs/PaymentCryptographyData.js +33 -0
  4. package/dist-cjs/PaymentCryptographyDataClient.js +41 -0
  5. package/dist-cjs/commands/DecryptDataCommand.js +47 -0
  6. package/dist-cjs/commands/EncryptDataCommand.js +47 -0
  7. package/dist-cjs/commands/GenerateCardValidationDataCommand.js +47 -0
  8. package/dist-cjs/commands/GenerateMacCommand.js +47 -0
  9. package/dist-cjs/commands/GeneratePinDataCommand.js +47 -0
  10. package/dist-cjs/commands/ReEncryptDataCommand.js +47 -0
  11. package/dist-cjs/commands/TranslatePinDataCommand.js +47 -0
  12. package/dist-cjs/commands/VerifyAuthRequestCryptogramCommand.js +47 -0
  13. package/dist-cjs/commands/VerifyCardValidationDataCommand.js +47 -0
  14. package/dist-cjs/commands/VerifyMacCommand.js +47 -0
  15. package/dist-cjs/commands/VerifyPinDataCommand.js +47 -0
  16. package/dist-cjs/commands/index.js +14 -0
  17. package/dist-cjs/endpoint/EndpointParameters.js +12 -0
  18. package/dist-cjs/endpoint/endpointResolver.js +12 -0
  19. package/dist-cjs/endpoint/ruleset.js +7 -0
  20. package/dist-cjs/index.js +10 -0
  21. package/dist-cjs/models/PaymentCryptographyDataServiceException.js +12 -0
  22. package/dist-cjs/models/index.js +4 -0
  23. package/dist-cjs/models/models_0.js +526 -0
  24. package/dist-cjs/protocols/Aws_restJson1.js +963 -0
  25. package/dist-cjs/runtimeConfig.browser.js +39 -0
  26. package/dist-cjs/runtimeConfig.js +48 -0
  27. package/dist-cjs/runtimeConfig.native.js +15 -0
  28. package/dist-cjs/runtimeConfig.shared.js +21 -0
  29. package/dist-es/PaymentCryptographyData.js +29 -0
  30. package/dist-es/PaymentCryptographyDataClient.js +37 -0
  31. package/dist-es/commands/DecryptDataCommand.js +43 -0
  32. package/dist-es/commands/EncryptDataCommand.js +43 -0
  33. package/dist-es/commands/GenerateCardValidationDataCommand.js +43 -0
  34. package/dist-es/commands/GenerateMacCommand.js +43 -0
  35. package/dist-es/commands/GeneratePinDataCommand.js +43 -0
  36. package/dist-es/commands/ReEncryptDataCommand.js +43 -0
  37. package/dist-es/commands/TranslatePinDataCommand.js +43 -0
  38. package/dist-es/commands/VerifyAuthRequestCryptogramCommand.js +43 -0
  39. package/dist-es/commands/VerifyCardValidationDataCommand.js +43 -0
  40. package/dist-es/commands/VerifyMacCommand.js +43 -0
  41. package/dist-es/commands/VerifyPinDataCommand.js +43 -0
  42. package/dist-es/commands/index.js +11 -0
  43. package/dist-es/endpoint/EndpointParameters.js +8 -0
  44. package/dist-es/endpoint/endpointResolver.js +8 -0
  45. package/dist-es/endpoint/ruleset.js +4 -0
  46. package/dist-es/index.js +5 -0
  47. package/dist-es/models/PaymentCryptographyDataServiceException.js +8 -0
  48. package/dist-es/models/index.js +1 -0
  49. package/dist-es/models/models_0.js +488 -0
  50. package/dist-es/protocols/Aws_restJson1.js +938 -0
  51. package/dist-es/runtimeConfig.browser.js +34 -0
  52. package/dist-es/runtimeConfig.js +43 -0
  53. package/dist-es/runtimeConfig.native.js +11 -0
  54. package/dist-es/runtimeConfig.shared.js +17 -0
  55. package/dist-types/PaymentCryptographyData.d.ts +88 -0
  56. package/dist-types/PaymentCryptographyDataClient.d.ts +174 -0
  57. package/dist-types/commands/DecryptDataCommand.d.ts +133 -0
  58. package/dist-types/commands/EncryptDataCommand.d.ts +138 -0
  59. package/dist-types/commands/GenerateCardValidationDataCommand.d.ts +144 -0
  60. package/dist-types/commands/GenerateMacCommand.d.ts +134 -0
  61. package/dist-types/commands/GeneratePinDataCommand.d.ts +155 -0
  62. package/dist-types/commands/ReEncryptDataCommand.d.ts +150 -0
  63. package/dist-types/commands/TranslatePinDataCommand.d.ts +147 -0
  64. package/dist-types/commands/VerifyAuthRequestCryptogramCommand.d.ts +150 -0
  65. package/dist-types/commands/VerifyCardValidationDataCommand.d.ts +156 -0
  66. package/dist-types/commands/VerifyMacCommand.d.ts +137 -0
  67. package/dist-types/commands/VerifyPinDataCommand.d.ts +134 -0
  68. package/dist-types/commands/index.d.ts +11 -0
  69. package/dist-types/endpoint/EndpointParameters.d.ts +20 -0
  70. package/dist-types/endpoint/endpointResolver.d.ts +5 -0
  71. package/dist-types/endpoint/ruleset.d.ts +2 -0
  72. package/dist-types/index.d.ts +11 -0
  73. package/dist-types/models/PaymentCryptographyDataServiceException.d.ts +13 -0
  74. package/dist-types/models/index.d.ts +1 -0
  75. package/dist-types/models/models_0.d.ts +2191 -0
  76. package/dist-types/protocols/Aws_restJson1.d.ts +101 -0
  77. package/dist-types/runtimeConfig.browser.d.ts +42 -0
  78. package/dist-types/runtimeConfig.d.ts +42 -0
  79. package/dist-types/runtimeConfig.native.d.ts +41 -0
  80. package/dist-types/runtimeConfig.shared.d.ts +18 -0
  81. package/dist-types/ts3.4/PaymentCryptographyData.d.ts +194 -0
  82. package/dist-types/ts3.4/PaymentCryptographyDataClient.d.ts +181 -0
  83. package/dist-types/ts3.4/commands/DecryptDataCommand.d.ts +35 -0
  84. package/dist-types/ts3.4/commands/EncryptDataCommand.d.ts +35 -0
  85. package/dist-types/ts3.4/commands/GenerateCardValidationDataCommand.d.ts +42 -0
  86. package/dist-types/ts3.4/commands/GenerateMacCommand.d.ts +35 -0
  87. package/dist-types/ts3.4/commands/GeneratePinDataCommand.d.ts +38 -0
  88. package/dist-types/ts3.4/commands/ReEncryptDataCommand.d.ts +35 -0
  89. package/dist-types/ts3.4/commands/TranslatePinDataCommand.d.ts +38 -0
  90. package/dist-types/ts3.4/commands/VerifyAuthRequestCryptogramCommand.d.ts +42 -0
  91. package/dist-types/ts3.4/commands/VerifyCardValidationDataCommand.d.ts +42 -0
  92. package/dist-types/ts3.4/commands/VerifyMacCommand.d.ts +35 -0
  93. package/dist-types/ts3.4/commands/VerifyPinDataCommand.d.ts +35 -0
  94. package/dist-types/ts3.4/commands/index.d.ts +11 -0
  95. package/dist-types/ts3.4/endpoint/EndpointParameters.d.ts +32 -0
  96. package/dist-types/ts3.4/endpoint/endpointResolver.d.ts +8 -0
  97. package/dist-types/ts3.4/endpoint/ruleset.d.ts +2 -0
  98. package/dist-types/ts3.4/index.d.ts +5 -0
  99. package/dist-types/ts3.4/models/PaymentCryptographyDataServiceException.d.ts +8 -0
  100. package/dist-types/ts3.4/models/index.d.ts +1 -0
  101. package/dist-types/ts3.4/models/models_0.d.ts +1168 -0
  102. package/dist-types/ts3.4/protocols/Aws_restJson1.d.ts +137 -0
  103. package/dist-types/ts3.4/runtimeConfig.browser.d.ts +96 -0
  104. package/dist-types/ts3.4/runtimeConfig.d.ts +93 -0
  105. package/dist-types/ts3.4/runtimeConfig.native.d.ts +87 -0
  106. package/dist-types/ts3.4/runtimeConfig.shared.d.ts +20 -0
  107. package/package.json +99 -0
@@ -0,0 +1,2191 @@
1
+ import { ExceptionOptionType as __ExceptionOptionType } from "@aws-sdk/smithy-client";
2
+ import { PaymentCryptographyDataServiceException as __BaseException } from "./PaymentCryptographyDataServiceException";
3
+ /**
4
+ * @public
5
+ * <p>You do not have sufficient access to perform this action.</p>
6
+ */
7
+ export declare class AccessDeniedException extends __BaseException {
8
+ readonly name: "AccessDeniedException";
9
+ readonly $fault: "client";
10
+ Message?: string;
11
+ /**
12
+ * @internal
13
+ */
14
+ constructor(opts: __ExceptionOptionType<AccessDeniedException, __BaseException>);
15
+ }
16
+ /**
17
+ * @public
18
+ * <p>Card data parameters that are required to generate a Card Security Code (CSC2) for an AMEX payment card.</p>
19
+ */
20
+ export interface AmexCardSecurityCodeVersion1 {
21
+ /**
22
+ * <p>The expiry date of a payment card.</p>
23
+ */
24
+ CardExpiryDate: string | undefined;
25
+ }
26
+ /**
27
+ * @public
28
+ * <p>Card data parameters that are required to generate a Card Security Code (CSC2) for an AMEX payment card.</p>
29
+ */
30
+ export interface AmexCardSecurityCodeVersion2 {
31
+ /**
32
+ * <p>The expiry date of a payment card.</p>
33
+ */
34
+ CardExpiryDate: string | undefined;
35
+ /**
36
+ * <p>The service code of the AMEX payment card. This is different from the Card Security Code (CSC).</p>
37
+ */
38
+ ServiceCode: string | undefined;
39
+ }
40
+ /**
41
+ * @public
42
+ * @enum
43
+ */
44
+ export declare const PaddingType: {
45
+ readonly OAEP_SHA1: "OAEP_SHA1";
46
+ readonly OAEP_SHA256: "OAEP_SHA256";
47
+ readonly OAEP_SHA512: "OAEP_SHA512";
48
+ readonly PKCS1: "PKCS1";
49
+ };
50
+ /**
51
+ * @public
52
+ */
53
+ export type PaddingType = (typeof PaddingType)[keyof typeof PaddingType];
54
+ /**
55
+ * @public
56
+ * <p>Parameters for plaintext encryption using asymmetric keys.</p>
57
+ */
58
+ export interface AsymmetricEncryptionAttributes {
59
+ /**
60
+ * <p>The padding to be included with the data.</p>
61
+ */
62
+ PaddingType?: PaddingType | string;
63
+ }
64
+ /**
65
+ * @public
66
+ * <p>Card data parameters that are required to generate a cardholder verification value for the payment card.</p>
67
+ */
68
+ export interface CardHolderVerificationValue {
69
+ /**
70
+ * <p>A random number generated by the issuer.</p>
71
+ */
72
+ UnpredictableNumber: string | undefined;
73
+ /**
74
+ * <p>A number that identifies and differentiates payment cards with the same Primary Account Number (PAN).</p>
75
+ */
76
+ PanSequenceNumber: string | undefined;
77
+ /**
78
+ * <p>The transaction counter value that comes from a point of sale terminal.</p>
79
+ */
80
+ ApplicationTransactionCounter: string | undefined;
81
+ }
82
+ /**
83
+ * @public
84
+ * <p>Card data parameters that are required to verify CVV (Card Verification Value) for the payment card.</p>
85
+ */
86
+ export interface CardVerificationValue1 {
87
+ /**
88
+ * <p>The expiry date of a payment card.</p>
89
+ */
90
+ CardExpiryDate: string | undefined;
91
+ /**
92
+ * <p>The service code of the payment card. This is different from Card Security Code (CSC).</p>
93
+ */
94
+ ServiceCode: string | undefined;
95
+ }
96
+ /**
97
+ * @public
98
+ * <p>Card data parameters that are required to verify Card Verification Value (CVV2) for the payment card.</p>
99
+ */
100
+ export interface CardVerificationValue2 {
101
+ /**
102
+ * <p>The expiry date of a payment card.</p>
103
+ */
104
+ CardExpiryDate: string | undefined;
105
+ }
106
+ /**
107
+ * @public
108
+ * <p>Parameters that are required to generate or verify Dynamic Card Verification Value (dCVV).</p>
109
+ */
110
+ export interface DynamicCardVerificationCode {
111
+ /**
112
+ * <p>A random number generated by the issuer.</p>
113
+ */
114
+ UnpredictableNumber: string | undefined;
115
+ /**
116
+ * <p>A number that identifies and differentiates payment cards with the same Primary Account Number (PAN).</p>
117
+ */
118
+ PanSequenceNumber: string | undefined;
119
+ /**
120
+ * <p>The transaction counter value that comes from the terminal.</p>
121
+ */
122
+ ApplicationTransactionCounter: string | undefined;
123
+ /**
124
+ * <p>The data on the two tracks of magnetic cards used for financial transactions. This includes the cardholder name, PAN, expiration date, bank ID (BIN) and several other numbers the issuing bank uses to validate the data received.</p>
125
+ */
126
+ TrackData: string | undefined;
127
+ }
128
+ /**
129
+ * @public
130
+ * <p>Parameters that are required to generate or verify Dynamic Card Verification Value (dCVV).</p>
131
+ */
132
+ export interface DynamicCardVerificationValue {
133
+ /**
134
+ * <p>A number that identifies and differentiates payment cards with the same Primary Account Number (PAN).</p>
135
+ */
136
+ PanSequenceNumber: string | undefined;
137
+ /**
138
+ * <p>The expiry date of a payment card.</p>
139
+ */
140
+ CardExpiryDate: string | undefined;
141
+ /**
142
+ * <p>The service code of the payment card. This is different from Card Security Code (CSC).</p>
143
+ */
144
+ ServiceCode: string | undefined;
145
+ /**
146
+ * <p>The transaction counter value that comes from the terminal.</p>
147
+ */
148
+ ApplicationTransactionCounter: string | undefined;
149
+ }
150
+ /**
151
+ * @public
152
+ * <p>Card data parameters that are required to generate Card Verification Values (CVV/CVV2), Dynamic Card Verification Values (dCVV/dCVV2), or Card Security Codes (CSC).</p>
153
+ */
154
+ export type CardGenerationAttributes = CardGenerationAttributes.AmexCardSecurityCodeVersion1Member | CardGenerationAttributes.AmexCardSecurityCodeVersion2Member | CardGenerationAttributes.CardHolderVerificationValueMember | CardGenerationAttributes.CardVerificationValue1Member | CardGenerationAttributes.CardVerificationValue2Member | CardGenerationAttributes.DynamicCardVerificationCodeMember | CardGenerationAttributes.DynamicCardVerificationValueMember | CardGenerationAttributes.$UnknownMember;
155
+ /**
156
+ * @public
157
+ */
158
+ export declare namespace CardGenerationAttributes {
159
+ /**
160
+ * <p>Card data parameters that are required to generate a Card Security Code (CSC2) for an AMEX payment card.</p>
161
+ */
162
+ interface AmexCardSecurityCodeVersion1Member {
163
+ AmexCardSecurityCodeVersion1: AmexCardSecurityCodeVersion1;
164
+ AmexCardSecurityCodeVersion2?: never;
165
+ CardVerificationValue1?: never;
166
+ CardVerificationValue2?: never;
167
+ CardHolderVerificationValue?: never;
168
+ DynamicCardVerificationCode?: never;
169
+ DynamicCardVerificationValue?: never;
170
+ $unknown?: never;
171
+ }
172
+ /**
173
+ * <p>Card data parameters that are required to generate a Card Security Code (CSC2) for an AMEX payment card.</p>
174
+ */
175
+ interface AmexCardSecurityCodeVersion2Member {
176
+ AmexCardSecurityCodeVersion1?: never;
177
+ AmexCardSecurityCodeVersion2: AmexCardSecurityCodeVersion2;
178
+ CardVerificationValue1?: never;
179
+ CardVerificationValue2?: never;
180
+ CardHolderVerificationValue?: never;
181
+ DynamicCardVerificationCode?: never;
182
+ DynamicCardVerificationValue?: never;
183
+ $unknown?: never;
184
+ }
185
+ /**
186
+ * <p>Card data parameters that are required to generate Card Verification Value (CVV) for the payment card.</p>
187
+ */
188
+ interface CardVerificationValue1Member {
189
+ AmexCardSecurityCodeVersion1?: never;
190
+ AmexCardSecurityCodeVersion2?: never;
191
+ CardVerificationValue1: CardVerificationValue1;
192
+ CardVerificationValue2?: never;
193
+ CardHolderVerificationValue?: never;
194
+ DynamicCardVerificationCode?: never;
195
+ DynamicCardVerificationValue?: never;
196
+ $unknown?: never;
197
+ }
198
+ /**
199
+ * <p>Card data parameters that are required to generate Card Verification Value (CVV2) for the payment card.</p>
200
+ */
201
+ interface CardVerificationValue2Member {
202
+ AmexCardSecurityCodeVersion1?: never;
203
+ AmexCardSecurityCodeVersion2?: never;
204
+ CardVerificationValue1?: never;
205
+ CardVerificationValue2: CardVerificationValue2;
206
+ CardHolderVerificationValue?: never;
207
+ DynamicCardVerificationCode?: never;
208
+ DynamicCardVerificationValue?: never;
209
+ $unknown?: never;
210
+ }
211
+ /**
212
+ * <p>Card data parameters that are required to generate a cardholder verification value for the payment card.</p>
213
+ */
214
+ interface CardHolderVerificationValueMember {
215
+ AmexCardSecurityCodeVersion1?: never;
216
+ AmexCardSecurityCodeVersion2?: never;
217
+ CardVerificationValue1?: never;
218
+ CardVerificationValue2?: never;
219
+ CardHolderVerificationValue: CardHolderVerificationValue;
220
+ DynamicCardVerificationCode?: never;
221
+ DynamicCardVerificationValue?: never;
222
+ $unknown?: never;
223
+ }
224
+ /**
225
+ * <p>Card data parameters that are required to generate CDynamic Card Verification Code (dCVC) for the payment card.</p>
226
+ */
227
+ interface DynamicCardVerificationCodeMember {
228
+ AmexCardSecurityCodeVersion1?: never;
229
+ AmexCardSecurityCodeVersion2?: never;
230
+ CardVerificationValue1?: never;
231
+ CardVerificationValue2?: never;
232
+ CardHolderVerificationValue?: never;
233
+ DynamicCardVerificationCode: DynamicCardVerificationCode;
234
+ DynamicCardVerificationValue?: never;
235
+ $unknown?: never;
236
+ }
237
+ /**
238
+ * <p>Card data parameters that are required to generate CDynamic Card Verification Value (dCVV) for the payment card.</p>
239
+ */
240
+ interface DynamicCardVerificationValueMember {
241
+ AmexCardSecurityCodeVersion1?: never;
242
+ AmexCardSecurityCodeVersion2?: never;
243
+ CardVerificationValue1?: never;
244
+ CardVerificationValue2?: never;
245
+ CardHolderVerificationValue?: never;
246
+ DynamicCardVerificationCode?: never;
247
+ DynamicCardVerificationValue: DynamicCardVerificationValue;
248
+ $unknown?: never;
249
+ }
250
+ interface $UnknownMember {
251
+ AmexCardSecurityCodeVersion1?: never;
252
+ AmexCardSecurityCodeVersion2?: never;
253
+ CardVerificationValue1?: never;
254
+ CardVerificationValue2?: never;
255
+ CardHolderVerificationValue?: never;
256
+ DynamicCardVerificationCode?: never;
257
+ DynamicCardVerificationValue?: never;
258
+ $unknown: [string, any];
259
+ }
260
+ interface Visitor<T> {
261
+ AmexCardSecurityCodeVersion1: (value: AmexCardSecurityCodeVersion1) => T;
262
+ AmexCardSecurityCodeVersion2: (value: AmexCardSecurityCodeVersion2) => T;
263
+ CardVerificationValue1: (value: CardVerificationValue1) => T;
264
+ CardVerificationValue2: (value: CardVerificationValue2) => T;
265
+ CardHolderVerificationValue: (value: CardHolderVerificationValue) => T;
266
+ DynamicCardVerificationCode: (value: DynamicCardVerificationCode) => T;
267
+ DynamicCardVerificationValue: (value: DynamicCardVerificationValue) => T;
268
+ _: (name: string, value: any) => T;
269
+ }
270
+ const visit: <T>(value: CardGenerationAttributes, visitor: Visitor<T>) => T;
271
+ }
272
+ /**
273
+ * @public
274
+ * <p>Parameters that are required to generate or verify dCVC (Dynamic Card Verification Code).</p>
275
+ */
276
+ export interface DiscoverDynamicCardVerificationCode {
277
+ /**
278
+ * <p>The expiry date of a payment card.</p>
279
+ */
280
+ CardExpiryDate: string | undefined;
281
+ /**
282
+ * <p>A random number that is generated by the issuer.</p>
283
+ */
284
+ UnpredictableNumber: string | undefined;
285
+ /**
286
+ * <p>The transaction counter value that comes from the terminal.</p>
287
+ */
288
+ ApplicationTransactionCounter: string | undefined;
289
+ }
290
+ /**
291
+ * @public
292
+ * <p>Card data parameters that are requried to verify Card Verification Values (CVV/CVV2), Dynamic Card Verification Values (dCVV/dCVV2), or Card Security Codes (CSC).</p>
293
+ */
294
+ export type CardVerificationAttributes = CardVerificationAttributes.AmexCardSecurityCodeVersion1Member | CardVerificationAttributes.AmexCardSecurityCodeVersion2Member | CardVerificationAttributes.CardHolderVerificationValueMember | CardVerificationAttributes.CardVerificationValue1Member | CardVerificationAttributes.CardVerificationValue2Member | CardVerificationAttributes.DiscoverDynamicCardVerificationCodeMember | CardVerificationAttributes.DynamicCardVerificationCodeMember | CardVerificationAttributes.DynamicCardVerificationValueMember | CardVerificationAttributes.$UnknownMember;
295
+ /**
296
+ * @public
297
+ */
298
+ export declare namespace CardVerificationAttributes {
299
+ /**
300
+ * <p>Card data parameters that are required to generate a Card Security Code (CSC2) for an AMEX payment card.</p>
301
+ */
302
+ interface AmexCardSecurityCodeVersion1Member {
303
+ AmexCardSecurityCodeVersion1: AmexCardSecurityCodeVersion1;
304
+ AmexCardSecurityCodeVersion2?: never;
305
+ CardVerificationValue1?: never;
306
+ CardVerificationValue2?: never;
307
+ CardHolderVerificationValue?: never;
308
+ DynamicCardVerificationCode?: never;
309
+ DynamicCardVerificationValue?: never;
310
+ DiscoverDynamicCardVerificationCode?: never;
311
+ $unknown?: never;
312
+ }
313
+ /**
314
+ * <p>Card data parameters that are required to verify a Card Security Code (CSC2) for an AMEX payment card.</p>
315
+ */
316
+ interface AmexCardSecurityCodeVersion2Member {
317
+ AmexCardSecurityCodeVersion1?: never;
318
+ AmexCardSecurityCodeVersion2: AmexCardSecurityCodeVersion2;
319
+ CardVerificationValue1?: never;
320
+ CardVerificationValue2?: never;
321
+ CardHolderVerificationValue?: never;
322
+ DynamicCardVerificationCode?: never;
323
+ DynamicCardVerificationValue?: never;
324
+ DiscoverDynamicCardVerificationCode?: never;
325
+ $unknown?: never;
326
+ }
327
+ /**
328
+ * <p>Card data parameters that are required to verify Card Verification Value (CVV) for the payment card.</p>
329
+ */
330
+ interface CardVerificationValue1Member {
331
+ AmexCardSecurityCodeVersion1?: never;
332
+ AmexCardSecurityCodeVersion2?: never;
333
+ CardVerificationValue1: CardVerificationValue1;
334
+ CardVerificationValue2?: never;
335
+ CardHolderVerificationValue?: never;
336
+ DynamicCardVerificationCode?: never;
337
+ DynamicCardVerificationValue?: never;
338
+ DiscoverDynamicCardVerificationCode?: never;
339
+ $unknown?: never;
340
+ }
341
+ /**
342
+ * <p>Card data parameters that are required to verify Card Verification Value (CVV2) for the payment card.</p>
343
+ */
344
+ interface CardVerificationValue2Member {
345
+ AmexCardSecurityCodeVersion1?: never;
346
+ AmexCardSecurityCodeVersion2?: never;
347
+ CardVerificationValue1?: never;
348
+ CardVerificationValue2: CardVerificationValue2;
349
+ CardHolderVerificationValue?: never;
350
+ DynamicCardVerificationCode?: never;
351
+ DynamicCardVerificationValue?: never;
352
+ DiscoverDynamicCardVerificationCode?: never;
353
+ $unknown?: never;
354
+ }
355
+ /**
356
+ * <p>Card data parameters that are required to verify a cardholder verification value for the payment card.</p>
357
+ */
358
+ interface CardHolderVerificationValueMember {
359
+ AmexCardSecurityCodeVersion1?: never;
360
+ AmexCardSecurityCodeVersion2?: never;
361
+ CardVerificationValue1?: never;
362
+ CardVerificationValue2?: never;
363
+ CardHolderVerificationValue: CardHolderVerificationValue;
364
+ DynamicCardVerificationCode?: never;
365
+ DynamicCardVerificationValue?: never;
366
+ DiscoverDynamicCardVerificationCode?: never;
367
+ $unknown?: never;
368
+ }
369
+ /**
370
+ * <p>Card data parameters that are required to verify CDynamic Card Verification Code (dCVC) for the payment card.</p>
371
+ */
372
+ interface DynamicCardVerificationCodeMember {
373
+ AmexCardSecurityCodeVersion1?: never;
374
+ AmexCardSecurityCodeVersion2?: never;
375
+ CardVerificationValue1?: never;
376
+ CardVerificationValue2?: never;
377
+ CardHolderVerificationValue?: never;
378
+ DynamicCardVerificationCode: DynamicCardVerificationCode;
379
+ DynamicCardVerificationValue?: never;
380
+ DiscoverDynamicCardVerificationCode?: never;
381
+ $unknown?: never;
382
+ }
383
+ /**
384
+ * <p>Card data parameters that are required to verify CDynamic Card Verification Value (dCVV) for the payment card.</p>
385
+ */
386
+ interface DynamicCardVerificationValueMember {
387
+ AmexCardSecurityCodeVersion1?: never;
388
+ AmexCardSecurityCodeVersion2?: never;
389
+ CardVerificationValue1?: never;
390
+ CardVerificationValue2?: never;
391
+ CardHolderVerificationValue?: never;
392
+ DynamicCardVerificationCode?: never;
393
+ DynamicCardVerificationValue: DynamicCardVerificationValue;
394
+ DiscoverDynamicCardVerificationCode?: never;
395
+ $unknown?: never;
396
+ }
397
+ /**
398
+ * <p>Card data parameters that are required to verify CDynamic Card Verification Code (dCVC) for the payment card.</p>
399
+ */
400
+ interface DiscoverDynamicCardVerificationCodeMember {
401
+ AmexCardSecurityCodeVersion1?: never;
402
+ AmexCardSecurityCodeVersion2?: never;
403
+ CardVerificationValue1?: never;
404
+ CardVerificationValue2?: never;
405
+ CardHolderVerificationValue?: never;
406
+ DynamicCardVerificationCode?: never;
407
+ DynamicCardVerificationValue?: never;
408
+ DiscoverDynamicCardVerificationCode: DiscoverDynamicCardVerificationCode;
409
+ $unknown?: never;
410
+ }
411
+ interface $UnknownMember {
412
+ AmexCardSecurityCodeVersion1?: never;
413
+ AmexCardSecurityCodeVersion2?: never;
414
+ CardVerificationValue1?: never;
415
+ CardVerificationValue2?: never;
416
+ CardHolderVerificationValue?: never;
417
+ DynamicCardVerificationCode?: never;
418
+ DynamicCardVerificationValue?: never;
419
+ DiscoverDynamicCardVerificationCode?: never;
420
+ $unknown: [string, any];
421
+ }
422
+ interface Visitor<T> {
423
+ AmexCardSecurityCodeVersion1: (value: AmexCardSecurityCodeVersion1) => T;
424
+ AmexCardSecurityCodeVersion2: (value: AmexCardSecurityCodeVersion2) => T;
425
+ CardVerificationValue1: (value: CardVerificationValue1) => T;
426
+ CardVerificationValue2: (value: CardVerificationValue2) => T;
427
+ CardHolderVerificationValue: (value: CardHolderVerificationValue) => T;
428
+ DynamicCardVerificationCode: (value: DynamicCardVerificationCode) => T;
429
+ DynamicCardVerificationValue: (value: DynamicCardVerificationValue) => T;
430
+ DiscoverDynamicCardVerificationCode: (value: DiscoverDynamicCardVerificationCode) => T;
431
+ _: (name: string, value: any) => T;
432
+ }
433
+ const visit: <T>(value: CardVerificationAttributes, visitor: Visitor<T>) => T;
434
+ }
435
+ /**
436
+ * @public
437
+ * <p>Parameters that are required for ARPC response generation using method1 after ARQC verification is successful.</p>
438
+ */
439
+ export interface CryptogramVerificationArpcMethod1 {
440
+ /**
441
+ * <p>The auth code used to calculate APRC after ARQC verification is successful. This is the same auth code used for ARQC generation outside of Amazon Web Services Payment Cryptography.</p>
442
+ */
443
+ AuthResponseCode: string | undefined;
444
+ }
445
+ /**
446
+ * @public
447
+ * <p>Parameters that are required for ARPC response generation using method2 after ARQC verification is successful.</p>
448
+ */
449
+ export interface CryptogramVerificationArpcMethod2 {
450
+ /**
451
+ * <p>The data indicating whether the issuer approves or declines an online transaction using an EMV chip card.</p>
452
+ */
453
+ CardStatusUpdate: string | undefined;
454
+ /**
455
+ * <p>The proprietary authentication data used by issuer for communication during online transaction using an EMV chip card.</p>
456
+ */
457
+ ProprietaryAuthenticationData?: string;
458
+ }
459
+ /**
460
+ * @public
461
+ * <p>Parameters that are required for Authorization Response Cryptogram (ARPC) generation after Authorization Request Cryptogram (ARQC) verification is successful.</p>
462
+ */
463
+ export type CryptogramAuthResponse = CryptogramAuthResponse.ArpcMethod1Member | CryptogramAuthResponse.ArpcMethod2Member | CryptogramAuthResponse.$UnknownMember;
464
+ /**
465
+ * @public
466
+ */
467
+ export declare namespace CryptogramAuthResponse {
468
+ /**
469
+ * <p>Parameters that are required for ARPC response generation using method1 after ARQC verification is successful.</p>
470
+ */
471
+ interface ArpcMethod1Member {
472
+ ArpcMethod1: CryptogramVerificationArpcMethod1;
473
+ ArpcMethod2?: never;
474
+ $unknown?: never;
475
+ }
476
+ /**
477
+ * <p>Parameters that are required for ARPC response generation using method2 after ARQC verification is successful.</p>
478
+ */
479
+ interface ArpcMethod2Member {
480
+ ArpcMethod1?: never;
481
+ ArpcMethod2: CryptogramVerificationArpcMethod2;
482
+ $unknown?: never;
483
+ }
484
+ interface $UnknownMember {
485
+ ArpcMethod1?: never;
486
+ ArpcMethod2?: never;
487
+ $unknown: [string, any];
488
+ }
489
+ interface Visitor<T> {
490
+ ArpcMethod1: (value: CryptogramVerificationArpcMethod1) => T;
491
+ ArpcMethod2: (value: CryptogramVerificationArpcMethod2) => T;
492
+ _: (name: string, value: any) => T;
493
+ }
494
+ const visit: <T>(value: CryptogramAuthResponse, visitor: Visitor<T>) => T;
495
+ }
496
+ /**
497
+ * @public
498
+ * @enum
499
+ */
500
+ export declare const DukptDerivationType: {
501
+ readonly AES_128: "AES_128";
502
+ readonly AES_192: "AES_192";
503
+ readonly AES_256: "AES_256";
504
+ readonly TDES_2KEY: "TDES_2KEY";
505
+ readonly TDES_3KEY: "TDES_3KEY";
506
+ };
507
+ /**
508
+ * @public
509
+ */
510
+ export type DukptDerivationType = (typeof DukptDerivationType)[keyof typeof DukptDerivationType];
511
+ /**
512
+ * @public
513
+ * @enum
514
+ */
515
+ export declare const DukptKeyVariant: {
516
+ readonly BIDIRECTIONAL: "BIDIRECTIONAL";
517
+ readonly REQUEST: "REQUEST";
518
+ readonly RESPONSE: "RESPONSE";
519
+ };
520
+ /**
521
+ * @public
522
+ */
523
+ export type DukptKeyVariant = (typeof DukptKeyVariant)[keyof typeof DukptKeyVariant];
524
+ /**
525
+ * @public
526
+ * @enum
527
+ */
528
+ export declare const DukptEncryptionMode: {
529
+ readonly CBC: "CBC";
530
+ readonly ECB: "ECB";
531
+ };
532
+ /**
533
+ * @public
534
+ */
535
+ export type DukptEncryptionMode = (typeof DukptEncryptionMode)[keyof typeof DukptEncryptionMode];
536
+ /**
537
+ * @public
538
+ * <p>Parameters that are required to encrypt plaintext data using DUKPT.</p>
539
+ */
540
+ export interface DukptEncryptionAttributes {
541
+ /**
542
+ * <p>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.</p>
543
+ */
544
+ KeySerialNumber: string | undefined;
545
+ /**
546
+ * <p>The block cipher mode of operation. Block ciphers are designed to encrypt a block of data of fixed size, for example, 128 bits. The size of the input block is usually same as the size of the encrypted output block, while the key length can be different. A mode of operation describes how to repeatedly apply a cipher's single-block operation to securely transform amounts of data larger than a block.</p>
547
+ * <p>The default is CBC.</p>
548
+ */
549
+ Mode?: DukptEncryptionMode | string;
550
+ /**
551
+ * <p>The key type encrypted 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 <code>AES_128</code> as a derivation type for a BDK of <code>AES_128</code> or <code>TDES_2KEY</code>
552
+ * </p>
553
+ */
554
+ DukptKeyDerivationType?: DukptDerivationType | string;
555
+ /**
556
+ * <p>The type of use of DUKPT, which can be incoming data decryption, outgoing data encryption, or both.</p>
557
+ */
558
+ DukptKeyVariant?: DukptKeyVariant | string;
559
+ /**
560
+ * <p>An input to cryptographic primitive used to provide the intial state. Typically the <code>InitializationVector</code> must have a random or psuedo-random value, but sometimes it only needs to be unpredictable or unique. If you don't provide a value, Amazon Web Services Payment Cryptography generates a random value.</p>
561
+ */
562
+ InitializationVector?: string;
563
+ }
564
+ /**
565
+ * @public
566
+ * @enum
567
+ */
568
+ export declare const EncryptionMode: {
569
+ readonly CBC: "CBC";
570
+ readonly CFB: "CFB";
571
+ readonly CFB1: "CFB1";
572
+ readonly CFB128: "CFB128";
573
+ readonly CFB64: "CFB64";
574
+ readonly CFB8: "CFB8";
575
+ readonly ECB: "ECB";
576
+ readonly OFB: "OFB";
577
+ };
578
+ /**
579
+ * @public
580
+ */
581
+ export type EncryptionMode = (typeof EncryptionMode)[keyof typeof EncryptionMode];
582
+ /**
583
+ * @public
584
+ * <p>Parameters requried to encrypt plaintext data using symmetric keys.</p>
585
+ */
586
+ export interface SymmetricEncryptionAttributes {
587
+ /**
588
+ * <p>The block cipher mode of operation. Block ciphers are designed to encrypt a block of data of fixed size (for example, 128 bits). The size of the input block is usually same as the size of the encrypted output block, while the key length can be different. A mode of operation describes how to repeatedly apply a cipher's single-block operation to securely transform amounts of data larger than a block.</p>
589
+ */
590
+ Mode: EncryptionMode | string | undefined;
591
+ /**
592
+ * <p>An input to cryptographic primitive used to provide the intial state. The <code>InitializationVector</code> is typically required have a random or psuedo-random value, but sometimes it only needs to be unpredictable or unique. If a value is not provided, Amazon Web Services Payment Cryptography generates a random value.</p>
593
+ */
594
+ InitializationVector?: string;
595
+ /**
596
+ * <p>The padding to be included with the data.</p>
597
+ */
598
+ PaddingType?: PaddingType | string;
599
+ }
600
+ /**
601
+ * @public
602
+ * <p>Parameters that are required to perform encryption and decryption operations.</p>
603
+ */
604
+ export type EncryptionDecryptionAttributes = EncryptionDecryptionAttributes.AsymmetricMember | EncryptionDecryptionAttributes.DukptMember | EncryptionDecryptionAttributes.SymmetricMember | EncryptionDecryptionAttributes.$UnknownMember;
605
+ /**
606
+ * @public
607
+ */
608
+ export declare namespace EncryptionDecryptionAttributes {
609
+ /**
610
+ * <p>Parameters that are required to perform encryption and decryption using symmetric keys.</p>
611
+ */
612
+ interface SymmetricMember {
613
+ Symmetric: SymmetricEncryptionAttributes;
614
+ Asymmetric?: never;
615
+ Dukpt?: never;
616
+ $unknown?: never;
617
+ }
618
+ /**
619
+ * <p>Parameters for plaintext encryption using asymmetric keys.</p>
620
+ */
621
+ interface AsymmetricMember {
622
+ Symmetric?: never;
623
+ Asymmetric: AsymmetricEncryptionAttributes;
624
+ Dukpt?: never;
625
+ $unknown?: never;
626
+ }
627
+ /**
628
+ * <p>Parameters that are required to encrypt plaintext data using DUKPT.</p>
629
+ */
630
+ interface DukptMember {
631
+ Symmetric?: never;
632
+ Asymmetric?: never;
633
+ Dukpt: DukptEncryptionAttributes;
634
+ $unknown?: never;
635
+ }
636
+ interface $UnknownMember {
637
+ Symmetric?: never;
638
+ Asymmetric?: never;
639
+ Dukpt?: never;
640
+ $unknown: [string, any];
641
+ }
642
+ interface Visitor<T> {
643
+ Symmetric: (value: SymmetricEncryptionAttributes) => T;
644
+ Asymmetric: (value: AsymmetricEncryptionAttributes) => T;
645
+ Dukpt: (value: DukptEncryptionAttributes) => T;
646
+ _: (name: string, value: any) => T;
647
+ }
648
+ const visit: <T>(value: EncryptionDecryptionAttributes, visitor: Visitor<T>) => T;
649
+ }
650
+ /**
651
+ * @public
652
+ */
653
+ export interface DecryptDataInput {
654
+ /**
655
+ * <p>The <code>keyARN</code> of the encryption key that Amazon Web Services Payment Cryptography uses for ciphertext decryption.</p>
656
+ */
657
+ KeyIdentifier: string | undefined;
658
+ /**
659
+ * <p>The ciphertext to decrypt.</p>
660
+ */
661
+ CipherText: string | undefined;
662
+ /**
663
+ * <p>The encryption key type and attributes for ciphertext decryption.</p>
664
+ */
665
+ DecryptionAttributes: EncryptionDecryptionAttributes | undefined;
666
+ }
667
+ /**
668
+ * @public
669
+ */
670
+ export interface DecryptDataOutput {
671
+ /**
672
+ * <p>The <code>keyARN</code> of the encryption key that Amazon Web Services Payment Cryptography uses for ciphertext decryption.</p>
673
+ */
674
+ KeyArn: string | undefined;
675
+ /**
676
+ * <p>The key check value (KCV) of the encryption key. The KCV is used to check if all parties holding a given key have the same key or to detect that a key has changed. Amazon Web Services Payment Cryptography calculates the KCV by using standard algorithms, typically by encrypting 8 or 16 bytes or "00" or "01" and then truncating the result to the first 3 bytes, or 6 hex digits, of the resulting cryptogram.</p>
677
+ */
678
+ KeyCheckValue: string | undefined;
679
+ /**
680
+ * <p>The decrypted plaintext data.</p>
681
+ */
682
+ PlainText: string | undefined;
683
+ }
684
+ /**
685
+ * @public
686
+ * <p>The request processing has failed because of an unknown error, exception, or failure.</p>
687
+ */
688
+ export declare class InternalServerException extends __BaseException {
689
+ readonly name: "InternalServerException";
690
+ readonly $fault: "server";
691
+ Message?: string;
692
+ /**
693
+ * @internal
694
+ */
695
+ constructor(opts: __ExceptionOptionType<InternalServerException, __BaseException>);
696
+ }
697
+ /**
698
+ * @public
699
+ * <p>The request was denied due to an invalid resource error.</p>
700
+ */
701
+ export declare class ResourceNotFoundException extends __BaseException {
702
+ readonly name: "ResourceNotFoundException";
703
+ readonly $fault: "client";
704
+ /**
705
+ * <p>The resource that is missing.</p>
706
+ */
707
+ ResourceId?: string;
708
+ /**
709
+ * @internal
710
+ */
711
+ constructor(opts: __ExceptionOptionType<ResourceNotFoundException, __BaseException>);
712
+ }
713
+ /**
714
+ * @public
715
+ * <p>The request was denied due to request throttling.</p>
716
+ */
717
+ export declare class ThrottlingException extends __BaseException {
718
+ readonly name: "ThrottlingException";
719
+ readonly $fault: "client";
720
+ Message?: string;
721
+ /**
722
+ * @internal
723
+ */
724
+ constructor(opts: __ExceptionOptionType<ThrottlingException, __BaseException>);
725
+ }
726
+ /**
727
+ * @public
728
+ * <p>The request was denied due to an invalid request error.</p>
729
+ */
730
+ export interface ValidationExceptionField {
731
+ /**
732
+ * <p>The request was denied due to an invalid request error.</p>
733
+ */
734
+ path: string | undefined;
735
+ /**
736
+ * <p>The request was denied due to an invalid request error.</p>
737
+ */
738
+ message: string | undefined;
739
+ }
740
+ /**
741
+ * @public
742
+ * <p>The request was denied due to an invalid request error.</p>
743
+ */
744
+ export declare class ValidationException extends __BaseException {
745
+ readonly name: "ValidationException";
746
+ readonly $fault: "client";
747
+ /**
748
+ * <p>The request was denied due to an invalid request error.</p>
749
+ */
750
+ fieldList?: ValidationExceptionField[];
751
+ /**
752
+ * @internal
753
+ */
754
+ constructor(opts: __ExceptionOptionType<ValidationException, __BaseException>);
755
+ }
756
+ /**
757
+ * @public
758
+ * <p>Parameters that are used for Derived Unique Key Per Transaction (DUKPT) derivation algorithm.</p>
759
+ */
760
+ export interface DukptAttributes {
761
+ /**
762
+ * <p>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.</p>
763
+ */
764
+ KeySerialNumber: string | undefined;
765
+ /**
766
+ * <p>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 <code>AES_128</code> as a derivation type for a BDK of <code>AES_128</code> or <code>TDES_2KEY</code>.</p>
767
+ */
768
+ DukptDerivationType: DukptDerivationType | string | undefined;
769
+ }
770
+ /**
771
+ * @public
772
+ * <p>Parameters required for encryption or decryption of data using DUKPT.</p>
773
+ */
774
+ export interface DukptDerivationAttributes {
775
+ /**
776
+ * <p>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.</p>
777
+ */
778
+ KeySerialNumber: string | undefined;
779
+ /**
780
+ * <p>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 <code>AES_128</code> as a derivation type for a BDK of <code>AES_128</code> or <code>TDES_2KEY</code>
781
+ * </p>
782
+ */
783
+ DukptKeyDerivationType?: DukptDerivationType | string;
784
+ /**
785
+ * <p>The type of use of DUKPT, which can be for incoming data decryption, outgoing data encryption, or both.</p>
786
+ */
787
+ DukptKeyVariant?: DukptKeyVariant | string;
788
+ }
789
+ /**
790
+ * @public
791
+ */
792
+ export interface EncryptDataInput {
793
+ /**
794
+ * <p>The <code>keyARN</code> of the encryption key that Amazon Web Services Payment Cryptography uses for plaintext encryption.</p>
795
+ */
796
+ KeyIdentifier: string | undefined;
797
+ /**
798
+ * <p>The plaintext to be encrypted.</p>
799
+ */
800
+ PlainText: string | undefined;
801
+ /**
802
+ * <p>The encryption key type and attributes for plaintext encryption.</p>
803
+ */
804
+ EncryptionAttributes: EncryptionDecryptionAttributes | undefined;
805
+ }
806
+ /**
807
+ * @public
808
+ */
809
+ export interface EncryptDataOutput {
810
+ /**
811
+ * <p>The <code>keyARN</code> of the encryption key that Amazon Web Services Payment Cryptography uses for plaintext encryption.</p>
812
+ */
813
+ KeyArn: string | undefined;
814
+ /**
815
+ * <p>The key check value (KCV) of the encryption key. The KCV is used to check if all parties holding a given key have the same key or to detect that a key has changed. Amazon Web Services Payment Cryptography calculates the KCV by using standard algorithms, typically by encrypting 8 or 16 bytes or "00" or "01" and then truncating the result to the first 3 bytes, or 6 hex digits, of the resulting cryptogram.</p>
816
+ */
817
+ KeyCheckValue: string | undefined;
818
+ /**
819
+ * <p>The encrypted ciphertext.</p>
820
+ */
821
+ CipherText: string | undefined;
822
+ }
823
+ /**
824
+ * @public
825
+ */
826
+ export interface GenerateCardValidationDataInput {
827
+ /**
828
+ * <p>The <code>keyARN</code> of the CVK encryption key that Amazon Web Services Payment Cryptography uses to generate card data.</p>
829
+ */
830
+ KeyIdentifier: string | undefined;
831
+ /**
832
+ * <p>The Primary Account Number (PAN), a unique identifier for a payment credit or debit card that associates the card with a specific account holder.</p>
833
+ */
834
+ PrimaryAccountNumber: string | undefined;
835
+ /**
836
+ * <p>The algorithm for generating CVV or CSC values for the card within Amazon Web Services Payment Cryptography.</p>
837
+ */
838
+ GenerationAttributes: CardGenerationAttributes | undefined;
839
+ /**
840
+ * <p>The length of the CVV or CSC to be generated. The default value is 3.</p>
841
+ */
842
+ ValidationDataLength?: number;
843
+ }
844
+ /**
845
+ * @public
846
+ */
847
+ export interface GenerateCardValidationDataOutput {
848
+ /**
849
+ * <p>The <code>keyARN</code> of the CVK encryption key that Amazon Web Services Payment Cryptography uses to generate CVV or CSC.</p>
850
+ */
851
+ KeyArn: string | undefined;
852
+ /**
853
+ * <p>The key check value (KCV) of the encryption key. The KCV is used to check if all parties holding a given key have the same key or to detect that a key has changed. Amazon Web Services Payment Cryptography calculates the KCV by using standard algorithms, typically by encrypting 8 or 16 bytes or "00" or "01" and then truncating the result to the first 3 bytes, or 6 hex digits, of the resulting cryptogram.</p>
854
+ */
855
+ KeyCheckValue: string | undefined;
856
+ /**
857
+ * <p>The CVV or CSC value that Amazon Web Services Payment Cryptography generates for the card.</p>
858
+ */
859
+ ValidationData: string | undefined;
860
+ }
861
+ /**
862
+ * @public
863
+ * @enum
864
+ */
865
+ export declare const MacAlgorithm: {
866
+ readonly CMAC: "CMAC";
867
+ readonly HMAC_SHA224: "HMAC_SHA224";
868
+ readonly HMAC_SHA256: "HMAC_SHA256";
869
+ readonly HMAC_SHA384: "HMAC_SHA384";
870
+ readonly HMAC_SHA512: "HMAC_SHA512";
871
+ readonly ISO9797_ALGORITHM1: "ISO9797_ALGORITHM1";
872
+ readonly ISO9797_ALGORITHM3: "ISO9797_ALGORITHM3";
873
+ };
874
+ /**
875
+ * @public
876
+ */
877
+ export type MacAlgorithm = (typeof MacAlgorithm)[keyof typeof MacAlgorithm];
878
+ /**
879
+ * @public
880
+ * <p>Parameters required for DUKPT MAC generation and verification.</p>
881
+ */
882
+ export interface MacAlgorithmDukpt {
883
+ /**
884
+ * <p>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.</p>
885
+ */
886
+ KeySerialNumber: string | undefined;
887
+ /**
888
+ * <p>The type of use of DUKPT, which can be MAC generation, MAC verification, or both.</p>
889
+ */
890
+ DukptKeyVariant: DukptKeyVariant | string | undefined;
891
+ /**
892
+ * <p>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 <code>AES_128</code> as a derivation type for a BDK of <code>AES_128</code> or <code>TDES_2KEY</code>.</p>
893
+ */
894
+ DukptDerivationType?: DukptDerivationType | string;
895
+ }
896
+ /**
897
+ * @public
898
+ * @enum
899
+ */
900
+ export declare const MajorKeyDerivationMode: {
901
+ readonly EMV_OPTION_A: "EMV_OPTION_A";
902
+ readonly EMV_OPTION_B: "EMV_OPTION_B";
903
+ };
904
+ /**
905
+ * @public
906
+ */
907
+ export type MajorKeyDerivationMode = (typeof MajorKeyDerivationMode)[keyof typeof MajorKeyDerivationMode];
908
+ /**
909
+ * @public
910
+ * @enum
911
+ */
912
+ export declare const SessionKeyDerivationMode: {
913
+ readonly AMEX: "AMEX";
914
+ readonly EMV2000: "EMV2000";
915
+ readonly EMV_COMMON_SESSION_KEY: "EMV_COMMON_SESSION_KEY";
916
+ readonly MASTERCARD_SESSION_KEY: "MASTERCARD_SESSION_KEY";
917
+ readonly VISA: "VISA";
918
+ };
919
+ /**
920
+ * @public
921
+ */
922
+ export type SessionKeyDerivationMode = (typeof SessionKeyDerivationMode)[keyof typeof SessionKeyDerivationMode];
923
+ /**
924
+ * @public
925
+ * <p>Parameters to derive session key value using a MAC EMV algorithm.</p>
926
+ */
927
+ export type SessionKeyDerivationValue = SessionKeyDerivationValue.ApplicationCryptogramMember | SessionKeyDerivationValue.ApplicationTransactionCounterMember | SessionKeyDerivationValue.$UnknownMember;
928
+ /**
929
+ * @public
930
+ */
931
+ export declare namespace SessionKeyDerivationValue {
932
+ /**
933
+ * <p>The cryptogram provided by the terminal during transaction processing.</p>
934
+ */
935
+ interface ApplicationCryptogramMember {
936
+ ApplicationCryptogram: string;
937
+ ApplicationTransactionCounter?: never;
938
+ $unknown?: never;
939
+ }
940
+ /**
941
+ * <p>The transaction counter that is provided by the terminal during transaction processing.</p>
942
+ */
943
+ interface ApplicationTransactionCounterMember {
944
+ ApplicationCryptogram?: never;
945
+ ApplicationTransactionCounter: string;
946
+ $unknown?: never;
947
+ }
948
+ interface $UnknownMember {
949
+ ApplicationCryptogram?: never;
950
+ ApplicationTransactionCounter?: never;
951
+ $unknown: [string, any];
952
+ }
953
+ interface Visitor<T> {
954
+ ApplicationCryptogram: (value: string) => T;
955
+ ApplicationTransactionCounter: (value: string) => T;
956
+ _: (name: string, value: any) => T;
957
+ }
958
+ const visit: <T>(value: SessionKeyDerivationValue, visitor: Visitor<T>) => T;
959
+ }
960
+ /**
961
+ * @public
962
+ * <p>Parameters that are required for EMV MAC generation and verification.</p>
963
+ */
964
+ export interface MacAlgorithmEmv {
965
+ /**
966
+ * <p>The method to use when deriving the master key for EMV MAC generation or verification.</p>
967
+ */
968
+ MajorKeyDerivationMode: MajorKeyDerivationMode | string | undefined;
969
+ /**
970
+ * <p>The Primary Account Number (PAN), a unique identifier for a payment credit or debit card and associates the card to a specific account holder.</p>
971
+ */
972
+ PrimaryAccountNumber: string | undefined;
973
+ /**
974
+ * <p>A number that identifies and differentiates payment cards with the same Primary Account Number (PAN).</p>
975
+ */
976
+ PanSequenceNumber: string | undefined;
977
+ /**
978
+ * <p>The method of deriving a session key for EMV MAC generation or verification.</p>
979
+ */
980
+ SessionKeyDerivationMode: SessionKeyDerivationMode | string | undefined;
981
+ /**
982
+ * <p>Parameters that are required to generate session key for EMV generation and verification.</p>
983
+ */
984
+ SessionKeyDerivationValue: SessionKeyDerivationValue | undefined;
985
+ }
986
+ /**
987
+ * @public
988
+ * <p>Parameters that are required for DUKPT, HMAC, or EMV MAC generation or verification.</p>
989
+ */
990
+ export type MacAttributes = MacAttributes.AlgorithmMember | MacAttributes.DukptCmacMember | MacAttributes.DukptIso9797Algorithm1Member | MacAttributes.DukptIso9797Algorithm3Member | MacAttributes.EmvMacMember | MacAttributes.$UnknownMember;
991
+ /**
992
+ * @public
993
+ */
994
+ export declare namespace MacAttributes {
995
+ /**
996
+ * <p>The encryption algorithm for MAC generation or verification.</p>
997
+ */
998
+ interface AlgorithmMember {
999
+ Algorithm: MacAlgorithm | string;
1000
+ EmvMac?: never;
1001
+ DukptIso9797Algorithm1?: never;
1002
+ DukptIso9797Algorithm3?: never;
1003
+ DukptCmac?: never;
1004
+ $unknown?: never;
1005
+ }
1006
+ /**
1007
+ * <p>Parameters that are required for MAC generation or verification using EMV MAC algorithm.</p>
1008
+ */
1009
+ interface EmvMacMember {
1010
+ Algorithm?: never;
1011
+ EmvMac: MacAlgorithmEmv;
1012
+ DukptIso9797Algorithm1?: never;
1013
+ DukptIso9797Algorithm3?: never;
1014
+ DukptCmac?: never;
1015
+ $unknown?: never;
1016
+ }
1017
+ /**
1018
+ * <p>Parameters that are required for MAC generation or verification using DUKPT ISO 9797 algorithm1.</p>
1019
+ */
1020
+ interface DukptIso9797Algorithm1Member {
1021
+ Algorithm?: never;
1022
+ EmvMac?: never;
1023
+ DukptIso9797Algorithm1: MacAlgorithmDukpt;
1024
+ DukptIso9797Algorithm3?: never;
1025
+ DukptCmac?: never;
1026
+ $unknown?: never;
1027
+ }
1028
+ /**
1029
+ * <p>Parameters that are required for MAC generation or verification using DUKPT ISO 9797 algorithm2.</p>
1030
+ */
1031
+ interface DukptIso9797Algorithm3Member {
1032
+ Algorithm?: never;
1033
+ EmvMac?: never;
1034
+ DukptIso9797Algorithm1?: never;
1035
+ DukptIso9797Algorithm3: MacAlgorithmDukpt;
1036
+ DukptCmac?: never;
1037
+ $unknown?: never;
1038
+ }
1039
+ /**
1040
+ * <p>Parameters that are required for MAC generation or verification using DUKPT CMAC algorithm.</p>
1041
+ */
1042
+ interface DukptCmacMember {
1043
+ Algorithm?: never;
1044
+ EmvMac?: never;
1045
+ DukptIso9797Algorithm1?: never;
1046
+ DukptIso9797Algorithm3?: never;
1047
+ DukptCmac: MacAlgorithmDukpt;
1048
+ $unknown?: never;
1049
+ }
1050
+ interface $UnknownMember {
1051
+ Algorithm?: never;
1052
+ EmvMac?: never;
1053
+ DukptIso9797Algorithm1?: never;
1054
+ DukptIso9797Algorithm3?: never;
1055
+ DukptCmac?: never;
1056
+ $unknown: [string, any];
1057
+ }
1058
+ interface Visitor<T> {
1059
+ Algorithm: (value: MacAlgorithm | string) => T;
1060
+ EmvMac: (value: MacAlgorithmEmv) => T;
1061
+ DukptIso9797Algorithm1: (value: MacAlgorithmDukpt) => T;
1062
+ DukptIso9797Algorithm3: (value: MacAlgorithmDukpt) => T;
1063
+ DukptCmac: (value: MacAlgorithmDukpt) => T;
1064
+ _: (name: string, value: any) => T;
1065
+ }
1066
+ const visit: <T>(value: MacAttributes, visitor: Visitor<T>) => T;
1067
+ }
1068
+ /**
1069
+ * @public
1070
+ */
1071
+ export interface GenerateMacInput {
1072
+ /**
1073
+ * <p>The <code>keyARN</code> of the MAC generation encryption key.</p>
1074
+ */
1075
+ KeyIdentifier: string | undefined;
1076
+ /**
1077
+ * <p>The data for which a MAC is under generation.</p>
1078
+ */
1079
+ MessageData: string | undefined;
1080
+ /**
1081
+ * <p>The attributes and data values to use for MAC generation within Amazon Web Services Payment Cryptography.</p>
1082
+ */
1083
+ GenerationAttributes: MacAttributes | undefined;
1084
+ /**
1085
+ * <p>The length of a MAC under generation.</p>
1086
+ */
1087
+ MacLength?: number;
1088
+ }
1089
+ /**
1090
+ * @public
1091
+ */
1092
+ export interface GenerateMacOutput {
1093
+ /**
1094
+ * <p>The <code>keyARN</code> of the encryption key that Amazon Web Services Payment Cryptography uses for MAC generation.</p>
1095
+ */
1096
+ KeyArn: string | undefined;
1097
+ /**
1098
+ * <p>The key check value (KCV) of the encryption key. The KCV is used to check if all parties holding a given key have the same key or to detect that a key has changed. Amazon Web Services Payment Cryptography calculates the KCV by using standard algorithms, typically by encrypting 8 or 16 bytes or "00" or "01" and then truncating the result to the first 3 bytes, or 6 hex digits, of the resulting cryptogram.</p>
1099
+ */
1100
+ KeyCheckValue: string | undefined;
1101
+ /**
1102
+ * <p>The MAC cryptogram generated within Amazon Web Services Payment Cryptography.</p>
1103
+ */
1104
+ Mac: string | undefined;
1105
+ }
1106
+ /**
1107
+ * @public
1108
+ * <p>Parameters that are required to generate or verify Ibm3624 natural PIN.</p>
1109
+ */
1110
+ export interface Ibm3624NaturalPin {
1111
+ /**
1112
+ * <p>The decimalization table to use for IBM 3624 PIN algorithm. The table is used to convert the algorithm intermediate result from hexadecimal characters to decimal.</p>
1113
+ */
1114
+ DecimalizationTable: string | undefined;
1115
+ /**
1116
+ * <p>The padding character for validation data.</p>
1117
+ */
1118
+ PinValidationDataPadCharacter: string | undefined;
1119
+ /**
1120
+ * <p>The unique data for cardholder identification.</p>
1121
+ */
1122
+ PinValidationData: string | undefined;
1123
+ }
1124
+ /**
1125
+ * @public
1126
+ * <p>Parameters that are required to generate or verify Ibm3624 PIN from offset PIN.</p>
1127
+ */
1128
+ export interface Ibm3624PinFromOffset {
1129
+ /**
1130
+ * <p>The decimalization table to use for IBM 3624 PIN algorithm. The table is used to convert the algorithm intermediate result from hexadecimal characters to decimal.</p>
1131
+ */
1132
+ DecimalizationTable: string | undefined;
1133
+ /**
1134
+ * <p>The padding character for validation data.</p>
1135
+ */
1136
+ PinValidationDataPadCharacter: string | undefined;
1137
+ /**
1138
+ * <p>The unique data for cardholder identification.</p>
1139
+ */
1140
+ PinValidationData: string | undefined;
1141
+ /**
1142
+ * <p>The PIN offset value.</p>
1143
+ */
1144
+ PinOffset: string | undefined;
1145
+ }
1146
+ /**
1147
+ * @public
1148
+ * <p>Pparameters that are required to generate or verify Ibm3624 PIN offset PIN.</p>
1149
+ */
1150
+ export interface Ibm3624PinOffset {
1151
+ /**
1152
+ * <p>The encrypted PIN block data. According to ISO 9564 standard, a PIN Block is an encoded representation of a payment card Personal Account Number (PAN) and the cardholder Personal Identification Number (PIN).</p>
1153
+ */
1154
+ EncryptedPinBlock: string | undefined;
1155
+ /**
1156
+ * <p>The decimalization table to use for IBM 3624 PIN algorithm. The table is used to convert the algorithm intermediate result from hexadecimal characters to decimal.</p>
1157
+ */
1158
+ DecimalizationTable: string | undefined;
1159
+ /**
1160
+ * <p>The padding character for validation data.</p>
1161
+ */
1162
+ PinValidationDataPadCharacter: string | undefined;
1163
+ /**
1164
+ * <p>The unique data for cardholder identification.</p>
1165
+ */
1166
+ PinValidationData: string | undefined;
1167
+ }
1168
+ /**
1169
+ * @public
1170
+ * <p>Parameters that are required to generate or verify Ibm3624 random PIN.</p>
1171
+ */
1172
+ export interface Ibm3624RandomPin {
1173
+ /**
1174
+ * <p>The decimalization table to use for IBM 3624 PIN algorithm. The table is used to convert the algorithm intermediate result from hexadecimal characters to decimal.</p>
1175
+ */
1176
+ DecimalizationTable: string | undefined;
1177
+ /**
1178
+ * <p>The padding character for validation data.</p>
1179
+ */
1180
+ PinValidationDataPadCharacter: string | undefined;
1181
+ /**
1182
+ * <p>The unique data for cardholder identification.</p>
1183
+ */
1184
+ PinValidationData: string | undefined;
1185
+ }
1186
+ /**
1187
+ * @public
1188
+ * <p>Parameters that are required to generate or verify Visa PIN.</p>
1189
+ */
1190
+ export interface VisaPin {
1191
+ /**
1192
+ * <p>The value for PIN verification index. It is used in the Visa PIN algorithm to calculate the PVV (PIN Verification Value).</p>
1193
+ */
1194
+ PinVerificationKeyIndex: number | undefined;
1195
+ }
1196
+ /**
1197
+ * @public
1198
+ * <p>Parameters that are required to generate or verify Visa PVV (PIN Verification Value).</p>
1199
+ */
1200
+ export interface VisaPinVerificationValue {
1201
+ /**
1202
+ * <p>The encrypted PIN block data to verify.</p>
1203
+ */
1204
+ EncryptedPinBlock: string | undefined;
1205
+ /**
1206
+ * <p>The value for PIN verification index. It is used in the Visa PIN algorithm to calculate the PVV (PIN Verification Value).</p>
1207
+ */
1208
+ PinVerificationKeyIndex: number | undefined;
1209
+ }
1210
+ /**
1211
+ * @public
1212
+ * <p>Parameters that are required for PIN data generation.</p>
1213
+ */
1214
+ export type PinGenerationAttributes = PinGenerationAttributes.Ibm3624NaturalPinMember | PinGenerationAttributes.Ibm3624PinFromOffsetMember | PinGenerationAttributes.Ibm3624PinOffsetMember | PinGenerationAttributes.Ibm3624RandomPinMember | PinGenerationAttributes.VisaPinMember | PinGenerationAttributes.VisaPinVerificationValueMember | PinGenerationAttributes.$UnknownMember;
1215
+ /**
1216
+ * @public
1217
+ */
1218
+ export declare namespace PinGenerationAttributes {
1219
+ /**
1220
+ * <p>Parameters that are required to generate or verify Visa PIN.</p>
1221
+ */
1222
+ interface VisaPinMember {
1223
+ VisaPin: VisaPin;
1224
+ VisaPinVerificationValue?: never;
1225
+ Ibm3624PinOffset?: never;
1226
+ Ibm3624NaturalPin?: never;
1227
+ Ibm3624RandomPin?: never;
1228
+ Ibm3624PinFromOffset?: never;
1229
+ $unknown?: never;
1230
+ }
1231
+ /**
1232
+ * <p>Parameters that are required to generate or verify Visa PIN Verification Value (PVV).</p>
1233
+ */
1234
+ interface VisaPinVerificationValueMember {
1235
+ VisaPin?: never;
1236
+ VisaPinVerificationValue: VisaPinVerificationValue;
1237
+ Ibm3624PinOffset?: never;
1238
+ Ibm3624NaturalPin?: never;
1239
+ Ibm3624RandomPin?: never;
1240
+ Ibm3624PinFromOffset?: never;
1241
+ $unknown?: never;
1242
+ }
1243
+ /**
1244
+ * <p>Parameters that are required to generate or verify Ibm3624 PIN offset PIN.</p>
1245
+ */
1246
+ interface Ibm3624PinOffsetMember {
1247
+ VisaPin?: never;
1248
+ VisaPinVerificationValue?: never;
1249
+ Ibm3624PinOffset: Ibm3624PinOffset;
1250
+ Ibm3624NaturalPin?: never;
1251
+ Ibm3624RandomPin?: never;
1252
+ Ibm3624PinFromOffset?: never;
1253
+ $unknown?: never;
1254
+ }
1255
+ /**
1256
+ * <p>Parameters that are required to generate or verify Ibm3624 natural PIN.</p>
1257
+ */
1258
+ interface Ibm3624NaturalPinMember {
1259
+ VisaPin?: never;
1260
+ VisaPinVerificationValue?: never;
1261
+ Ibm3624PinOffset?: never;
1262
+ Ibm3624NaturalPin: Ibm3624NaturalPin;
1263
+ Ibm3624RandomPin?: never;
1264
+ Ibm3624PinFromOffset?: never;
1265
+ $unknown?: never;
1266
+ }
1267
+ /**
1268
+ * <p>Parameters that are required to generate or verify Ibm3624 random PIN.</p>
1269
+ */
1270
+ interface Ibm3624RandomPinMember {
1271
+ VisaPin?: never;
1272
+ VisaPinVerificationValue?: never;
1273
+ Ibm3624PinOffset?: never;
1274
+ Ibm3624NaturalPin?: never;
1275
+ Ibm3624RandomPin: Ibm3624RandomPin;
1276
+ Ibm3624PinFromOffset?: never;
1277
+ $unknown?: never;
1278
+ }
1279
+ /**
1280
+ * <p>Parameters that are required to generate or verify Ibm3624 PIN from offset PIN.</p>
1281
+ */
1282
+ interface Ibm3624PinFromOffsetMember {
1283
+ VisaPin?: never;
1284
+ VisaPinVerificationValue?: never;
1285
+ Ibm3624PinOffset?: never;
1286
+ Ibm3624NaturalPin?: never;
1287
+ Ibm3624RandomPin?: never;
1288
+ Ibm3624PinFromOffset: Ibm3624PinFromOffset;
1289
+ $unknown?: never;
1290
+ }
1291
+ interface $UnknownMember {
1292
+ VisaPin?: never;
1293
+ VisaPinVerificationValue?: never;
1294
+ Ibm3624PinOffset?: never;
1295
+ Ibm3624NaturalPin?: never;
1296
+ Ibm3624RandomPin?: never;
1297
+ Ibm3624PinFromOffset?: never;
1298
+ $unknown: [string, any];
1299
+ }
1300
+ interface Visitor<T> {
1301
+ VisaPin: (value: VisaPin) => T;
1302
+ VisaPinVerificationValue: (value: VisaPinVerificationValue) => T;
1303
+ Ibm3624PinOffset: (value: Ibm3624PinOffset) => T;
1304
+ Ibm3624NaturalPin: (value: Ibm3624NaturalPin) => T;
1305
+ Ibm3624RandomPin: (value: Ibm3624RandomPin) => T;
1306
+ Ibm3624PinFromOffset: (value: Ibm3624PinFromOffset) => T;
1307
+ _: (name: string, value: any) => T;
1308
+ }
1309
+ const visit: <T>(value: PinGenerationAttributes, visitor: Visitor<T>) => T;
1310
+ }
1311
+ /**
1312
+ * @public
1313
+ * @enum
1314
+ */
1315
+ export declare const PinBlockFormatForPinData: {
1316
+ readonly ISO_FORMAT_0: "ISO_FORMAT_0";
1317
+ readonly ISO_FORMAT_3: "ISO_FORMAT_3";
1318
+ };
1319
+ /**
1320
+ * @public
1321
+ */
1322
+ export type PinBlockFormatForPinData = (typeof PinBlockFormatForPinData)[keyof typeof PinBlockFormatForPinData];
1323
+ /**
1324
+ * @public
1325
+ */
1326
+ export interface GeneratePinDataInput {
1327
+ /**
1328
+ * <p>The <code>keyARN</code> of the PEK that Amazon Web Services Payment Cryptography uses for pin data generation.</p>
1329
+ */
1330
+ GenerationKeyIdentifier: string | undefined;
1331
+ /**
1332
+ * <p>The <code>keyARN</code> of the PEK that Amazon Web Services Payment Cryptography uses to encrypt the PIN Block.</p>
1333
+ */
1334
+ EncryptionKeyIdentifier: string | undefined;
1335
+ /**
1336
+ * <p>The attributes and values to use for PIN, PVV, or PIN Offset generation.</p>
1337
+ */
1338
+ GenerationAttributes: PinGenerationAttributes | undefined;
1339
+ /**
1340
+ * <p>The length of PIN under generation.</p>
1341
+ */
1342
+ PinDataLength?: number;
1343
+ /**
1344
+ * <p>The Primary Account Number (PAN), a unique identifier for a payment credit or debit card that associates the card with a specific account holder.</p>
1345
+ */
1346
+ PrimaryAccountNumber: string | undefined;
1347
+ /**
1348
+ * <p>The PIN encoding format for pin data generation as specified in ISO 9564. Amazon Web Services Payment Cryptography supports <code>ISO_Format_0</code> and <code>ISO_Format_3</code>.</p>
1349
+ * <p>The <code>ISO_Format_0</code> PIN block format is equivalent to the ANSI X9.8, VISA-1, and ECI-1 PIN block formats. It is similar to a VISA-4 PIN block format. It supports a PIN from 4 to 12 digits in length.</p>
1350
+ * <p>The <code>ISO_Format_3</code> PIN block format is the same as <code>ISO_Format_0</code> except that the fill digits are random values from 10 to 15.</p>
1351
+ */
1352
+ PinBlockFormat: PinBlockFormatForPinData | string | undefined;
1353
+ }
1354
+ /**
1355
+ * @public
1356
+ * <p>Parameters that are required to generate, translate, or verify PIN data.</p>
1357
+ */
1358
+ export type PinData = PinData.PinOffsetMember | PinData.VerificationValueMember | PinData.$UnknownMember;
1359
+ /**
1360
+ * @public
1361
+ */
1362
+ export declare namespace PinData {
1363
+ /**
1364
+ * <p>The PIN offset value.</p>
1365
+ */
1366
+ interface PinOffsetMember {
1367
+ PinOffset: string;
1368
+ VerificationValue?: never;
1369
+ $unknown?: never;
1370
+ }
1371
+ /**
1372
+ * <p>The unique data to identify a cardholder. In most cases, this is the same as cardholder's Primary Account Number (PAN). If a value is not provided, it defaults to PAN.</p>
1373
+ */
1374
+ interface VerificationValueMember {
1375
+ PinOffset?: never;
1376
+ VerificationValue: string;
1377
+ $unknown?: never;
1378
+ }
1379
+ interface $UnknownMember {
1380
+ PinOffset?: never;
1381
+ VerificationValue?: never;
1382
+ $unknown: [string, any];
1383
+ }
1384
+ interface Visitor<T> {
1385
+ PinOffset: (value: string) => T;
1386
+ VerificationValue: (value: string) => T;
1387
+ _: (name: string, value: any) => T;
1388
+ }
1389
+ const visit: <T>(value: PinData, visitor: Visitor<T>) => T;
1390
+ }
1391
+ /**
1392
+ * @public
1393
+ */
1394
+ export interface GeneratePinDataOutput {
1395
+ /**
1396
+ * <p>The <code>keyARN</code> of the pin data generation key that Amazon Web Services Payment Cryptography uses for PIN, PVV or PIN Offset generation.</p>
1397
+ */
1398
+ GenerationKeyArn: string | undefined;
1399
+ /**
1400
+ * <p>The key check value (KCV) of the encryption key. The KCV is used to check if all parties holding a given key have the same key or to detect that a key has changed. Amazon Web Services Payment Cryptography calculates the KCV by using standard algorithms, typically by encrypting 8 or 16 bytes or "00" or "01" and then truncating the result to the first 3 bytes, or 6 hex digits, of the resulting cryptogram.</p>
1401
+ */
1402
+ GenerationKeyCheckValue: string | undefined;
1403
+ /**
1404
+ * <p>The <code>keyARN</code> of the PEK that Amazon Web Services Payment Cryptography uses for encrypted pin block generation.</p>
1405
+ */
1406
+ EncryptionKeyArn: string | undefined;
1407
+ /**
1408
+ * <p>The key check value (KCV) of the encryption key. The KCV is used to check if all parties holding a given key have the same key or to detect that a key has changed. Amazon Web Services Payment Cryptography calculates the KCV by using standard algorithms, typically by encrypting 8 or 16 bytes or "00" or "01" and then truncating the result to the first 3 bytes, or 6 hex digits, of the resulting cryptogram.</p>
1409
+ */
1410
+ EncryptionKeyCheckValue: string | undefined;
1411
+ /**
1412
+ * <p>The PIN block encrypted under PEK from Amazon Web Services Payment Cryptography. The encrypted PIN block is a composite of PAN (Primary Account Number) and PIN (Personal Identification Number), generated in accordance with ISO 9564 standard.</p>
1413
+ */
1414
+ EncryptedPinBlock: string | undefined;
1415
+ /**
1416
+ * <p>The attributes and values Amazon Web Services Payment Cryptography uses for pin data generation.</p>
1417
+ */
1418
+ PinData: PinData | undefined;
1419
+ }
1420
+ /**
1421
+ * @public
1422
+ * <p>Parameters that are required to generate or verify Ibm3624 PIN verification PIN.</p>
1423
+ */
1424
+ export interface Ibm3624PinVerification {
1425
+ /**
1426
+ * <p>The decimalization table to use for IBM 3624 PIN algorithm. The table is used to convert the algorithm intermediate result from hexadecimal characters to decimal.</p>
1427
+ */
1428
+ DecimalizationTable: string | undefined;
1429
+ /**
1430
+ * <p>The padding character for validation data.</p>
1431
+ */
1432
+ PinValidationDataPadCharacter: string | undefined;
1433
+ /**
1434
+ * <p>The unique data for cardholder identification.</p>
1435
+ */
1436
+ PinValidationData: string | undefined;
1437
+ /**
1438
+ * <p>The PIN offset value.</p>
1439
+ */
1440
+ PinOffset: string | undefined;
1441
+ }
1442
+ /**
1443
+ * @public
1444
+ * <p>Parameters that are required to perform reencryption operation.</p>
1445
+ */
1446
+ export type ReEncryptionAttributes = ReEncryptionAttributes.DukptMember | ReEncryptionAttributes.SymmetricMember | ReEncryptionAttributes.$UnknownMember;
1447
+ /**
1448
+ * @public
1449
+ */
1450
+ export declare namespace ReEncryptionAttributes {
1451
+ /**
1452
+ * <p>Parameters that are required to encrypt data using symmetric keys.</p>
1453
+ */
1454
+ interface SymmetricMember {
1455
+ Symmetric: SymmetricEncryptionAttributes;
1456
+ Dukpt?: never;
1457
+ $unknown?: never;
1458
+ }
1459
+ /**
1460
+ * <p>Parameters that are required to encrypt plaintext data using DUKPT.</p>
1461
+ */
1462
+ interface DukptMember {
1463
+ Symmetric?: never;
1464
+ Dukpt: DukptEncryptionAttributes;
1465
+ $unknown?: never;
1466
+ }
1467
+ interface $UnknownMember {
1468
+ Symmetric?: never;
1469
+ Dukpt?: never;
1470
+ $unknown: [string, any];
1471
+ }
1472
+ interface Visitor<T> {
1473
+ Symmetric: (value: SymmetricEncryptionAttributes) => T;
1474
+ Dukpt: (value: DukptEncryptionAttributes) => T;
1475
+ _: (name: string, value: any) => T;
1476
+ }
1477
+ const visit: <T>(value: ReEncryptionAttributes, visitor: Visitor<T>) => T;
1478
+ }
1479
+ /**
1480
+ * @public
1481
+ */
1482
+ export interface ReEncryptDataInput {
1483
+ /**
1484
+ * <p>The <code>keyARN</code> of the encryption key of incoming ciphertext data.</p>
1485
+ */
1486
+ IncomingKeyIdentifier: string | undefined;
1487
+ /**
1488
+ * <p>The <code>keyARN</code> of the encryption key of outgoing ciphertext data after encryption by Amazon Web Services Payment Cryptography.</p>
1489
+ */
1490
+ OutgoingKeyIdentifier: string | undefined;
1491
+ /**
1492
+ * <p>Ciphertext to be encrypted. The minimum allowed length is 16 bytes and maximum allowed length is 4096 bytes.</p>
1493
+ */
1494
+ CipherText: string | undefined;
1495
+ /**
1496
+ * <p>The attributes and values for incoming ciphertext.</p>
1497
+ */
1498
+ IncomingEncryptionAttributes: ReEncryptionAttributes | undefined;
1499
+ /**
1500
+ * <p>The attributes and values for outgoing ciphertext data after encryption by Amazon Web Services Payment Cryptography.</p>
1501
+ */
1502
+ OutgoingEncryptionAttributes: ReEncryptionAttributes | undefined;
1503
+ }
1504
+ /**
1505
+ * @public
1506
+ */
1507
+ export interface ReEncryptDataOutput {
1508
+ /**
1509
+ * <p>The keyARN (Amazon Resource Name) of the encryption key that Amazon Web Services Payment Cryptography uses for plaintext encryption.</p>
1510
+ */
1511
+ KeyArn: string | undefined;
1512
+ /**
1513
+ * <p>The key check value (KCV) of the encryption key. The KCV is used to check if all parties holding a given key have the same key or to detect that a key has changed. Amazon Web Services Payment Cryptography calculates the KCV by using standard algorithms, typically by encrypting 8 or 16 bytes or "00" or "01" and then truncating the result to the first 3 bytes, or 6 hex digits, of the resulting cryptogram.</p>
1514
+ */
1515
+ KeyCheckValue: string | undefined;
1516
+ /**
1517
+ * <p>The encrypted ciphertext.</p>
1518
+ */
1519
+ CipherText: string | undefined;
1520
+ }
1521
+ /**
1522
+ * @public
1523
+ * <p>Parameters that are required for tranlation between ISO9564 PIN format 0,3,4 tranlation.</p>
1524
+ */
1525
+ export interface TranslationPinDataIsoFormat034 {
1526
+ /**
1527
+ * <p>The Primary Account Number (PAN) of the cardholder. A PAN is a unique identifier for a payment credit or debit card and associates the card to a specific account holder.</p>
1528
+ */
1529
+ PrimaryAccountNumber: string | undefined;
1530
+ }
1531
+ /**
1532
+ * @public
1533
+ * <p>Parameters that are required for ISO9564 PIN format 1 tranlation.</p>
1534
+ */
1535
+ export interface TranslationPinDataIsoFormat1 {
1536
+ }
1537
+ /**
1538
+ * @public
1539
+ * <p>Parameters that are required for translation between ISO9564 PIN block formats 0,1,3,4.</p>
1540
+ */
1541
+ export type TranslationIsoFormats = TranslationIsoFormats.IsoFormat0Member | TranslationIsoFormats.IsoFormat1Member | TranslationIsoFormats.IsoFormat3Member | TranslationIsoFormats.IsoFormat4Member | TranslationIsoFormats.$UnknownMember;
1542
+ /**
1543
+ * @public
1544
+ */
1545
+ export declare namespace TranslationIsoFormats {
1546
+ /**
1547
+ * <p>Parameters that are required for ISO9564 PIN format 0 tranlation.</p>
1548
+ */
1549
+ interface IsoFormat0Member {
1550
+ IsoFormat0: TranslationPinDataIsoFormat034;
1551
+ IsoFormat1?: never;
1552
+ IsoFormat3?: never;
1553
+ IsoFormat4?: never;
1554
+ $unknown?: never;
1555
+ }
1556
+ /**
1557
+ * <p>Parameters that are required for ISO9564 PIN format 1 tranlation.</p>
1558
+ */
1559
+ interface IsoFormat1Member {
1560
+ IsoFormat0?: never;
1561
+ IsoFormat1: TranslationPinDataIsoFormat1;
1562
+ IsoFormat3?: never;
1563
+ IsoFormat4?: never;
1564
+ $unknown?: never;
1565
+ }
1566
+ /**
1567
+ * <p>Parameters that are required for ISO9564 PIN format 3 tranlation.</p>
1568
+ */
1569
+ interface IsoFormat3Member {
1570
+ IsoFormat0?: never;
1571
+ IsoFormat1?: never;
1572
+ IsoFormat3: TranslationPinDataIsoFormat034;
1573
+ IsoFormat4?: never;
1574
+ $unknown?: never;
1575
+ }
1576
+ /**
1577
+ * <p>Parameters that are required for ISO9564 PIN format 4 tranlation.</p>
1578
+ */
1579
+ interface IsoFormat4Member {
1580
+ IsoFormat0?: never;
1581
+ IsoFormat1?: never;
1582
+ IsoFormat3?: never;
1583
+ IsoFormat4: TranslationPinDataIsoFormat034;
1584
+ $unknown?: never;
1585
+ }
1586
+ interface $UnknownMember {
1587
+ IsoFormat0?: never;
1588
+ IsoFormat1?: never;
1589
+ IsoFormat3?: never;
1590
+ IsoFormat4?: never;
1591
+ $unknown: [string, any];
1592
+ }
1593
+ interface Visitor<T> {
1594
+ IsoFormat0: (value: TranslationPinDataIsoFormat034) => T;
1595
+ IsoFormat1: (value: TranslationPinDataIsoFormat1) => T;
1596
+ IsoFormat3: (value: TranslationPinDataIsoFormat034) => T;
1597
+ IsoFormat4: (value: TranslationPinDataIsoFormat034) => T;
1598
+ _: (name: string, value: any) => T;
1599
+ }
1600
+ const visit: <T>(value: TranslationIsoFormats, visitor: Visitor<T>) => T;
1601
+ }
1602
+ /**
1603
+ * @public
1604
+ */
1605
+ export interface TranslatePinDataInput {
1606
+ /**
1607
+ * <p>The <code>keyARN</code> of the encryption key under which incoming PIN block data is encrypted. This key type can be PEK or BDK.</p>
1608
+ */
1609
+ IncomingKeyIdentifier: string | undefined;
1610
+ /**
1611
+ * <p>The <code>keyARN</code> of the encryption key for encrypting outgoing PIN block data. This key type can be PEK or BDK.</p>
1612
+ */
1613
+ OutgoingKeyIdentifier: string | undefined;
1614
+ /**
1615
+ * <p>The format of the incoming PIN block data for tranlation within Amazon Web Services Payment Cryptography.</p>
1616
+ */
1617
+ IncomingTranslationAttributes: TranslationIsoFormats | undefined;
1618
+ /**
1619
+ * <p>The format of the outgoing PIN block data after tranlation by Amazon Web Services Payment Cryptography.</p>
1620
+ */
1621
+ OutgoingTranslationAttributes: TranslationIsoFormats | undefined;
1622
+ /**
1623
+ * <p>The encrypted PIN block data that Amazon Web Services Payment Cryptography translates.</p>
1624
+ */
1625
+ EncryptedPinBlock: string | undefined;
1626
+ /**
1627
+ * <p>The attributes and values to use for incoming DUKPT encryption key for PIN block tranlation.</p>
1628
+ */
1629
+ IncomingDukptAttributes?: DukptDerivationAttributes;
1630
+ /**
1631
+ * <p>The attributes and values to use for outgoing DUKPT encryption key after PIN block translation.</p>
1632
+ */
1633
+ OutgoingDukptAttributes?: DukptDerivationAttributes;
1634
+ }
1635
+ /**
1636
+ * @public
1637
+ */
1638
+ export interface TranslatePinDataOutput {
1639
+ /**
1640
+ * <p>The ougoing encrypted PIN block data after tranlation.</p>
1641
+ */
1642
+ PinBlock: string | undefined;
1643
+ /**
1644
+ * <p>The <code>keyARN</code> of the encryption key that Amazon Web Services Payment Cryptography uses to encrypt outgoing PIN block data after translation.</p>
1645
+ */
1646
+ KeyArn: string | undefined;
1647
+ /**
1648
+ * <p>The key check value (KCV) of the encryption key. The KCV is used to check if all parties holding a given key have the same key or to detect that a key has changed. Amazon Web Services Payment Cryptography calculates the KCV by using standard algorithms, typically by encrypting 8 or 16 bytes or "00" or "01" and then truncating the result to the first 3 bytes, or 6 hex digits, of the resulting cryptogram.</p>
1649
+ */
1650
+ KeyCheckValue: string | undefined;
1651
+ }
1652
+ /**
1653
+ * @public
1654
+ * @enum
1655
+ */
1656
+ export declare const VerificationFailedReason: {
1657
+ readonly INVALID_AUTH_REQUEST_CRYPTOGRAM: "INVALID_AUTH_REQUEST_CRYPTOGRAM";
1658
+ readonly INVALID_MAC: "INVALID_MAC";
1659
+ readonly INVALID_PIN: "INVALID_PIN";
1660
+ readonly INVALID_VALIDATION_DATA: "INVALID_VALIDATION_DATA";
1661
+ };
1662
+ /**
1663
+ * @public
1664
+ */
1665
+ export type VerificationFailedReason = (typeof VerificationFailedReason)[keyof typeof VerificationFailedReason];
1666
+ /**
1667
+ * @public
1668
+ * <p>This request failed verification.</p>
1669
+ */
1670
+ export declare class VerificationFailedException extends __BaseException {
1671
+ readonly name: "VerificationFailedException";
1672
+ readonly $fault: "client";
1673
+ /**
1674
+ * <p>The reason for the exception.</p>
1675
+ */
1676
+ Reason: VerificationFailedReason | string | undefined;
1677
+ Message: string | undefined;
1678
+ /**
1679
+ * @internal
1680
+ */
1681
+ constructor(opts: __ExceptionOptionType<VerificationFailedException, __BaseException>);
1682
+ }
1683
+ /**
1684
+ * @public
1685
+ * <p>Parameters to derive session key for an Amex payment card.</p>
1686
+ */
1687
+ export interface SessionKeyAmex {
1688
+ /**
1689
+ * <p>The Primary Account Number (PAN) of the cardholder. A PAN is a unique identifier for a payment credit or debit card and associates the card to a specific account holder.</p>
1690
+ */
1691
+ PrimaryAccountNumber: string | undefined;
1692
+ /**
1693
+ * <p>A number that identifies and differentiates payment cards with the same Primary Account Number (PAN).</p>
1694
+ */
1695
+ PanSequenceNumber: string | undefined;
1696
+ }
1697
+ /**
1698
+ * @public
1699
+ * <p>Parameters to derive session key for an Emv2000 payment card for ARQC verification.</p>
1700
+ */
1701
+ export interface SessionKeyEmv2000 {
1702
+ /**
1703
+ * <p>The Primary Account Number (PAN) of the cardholder. A PAN is a unique identifier for a payment credit or debit card and associates the card to a specific account holder.</p>
1704
+ */
1705
+ PrimaryAccountNumber: string | undefined;
1706
+ /**
1707
+ * <p>A number that identifies and differentiates payment cards with the same Primary Account Number (PAN).</p>
1708
+ */
1709
+ PanSequenceNumber: string | undefined;
1710
+ /**
1711
+ * <p>The transaction counter that is provided by the terminal during transaction processing.</p>
1712
+ */
1713
+ ApplicationTransactionCounter: string | undefined;
1714
+ }
1715
+ /**
1716
+ * @public
1717
+ * <p>Parameters to derive session key for an Emv common payment card for ARQC verification.</p>
1718
+ */
1719
+ export interface SessionKeyEmvCommon {
1720
+ /**
1721
+ * <p>The Primary Account Number (PAN) of the cardholder. A PAN is a unique identifier for a payment credit or debit card and associates the card to a specific account holder.</p>
1722
+ */
1723
+ PrimaryAccountNumber: string | undefined;
1724
+ /**
1725
+ * <p>A number that identifies and differentiates payment cards with the same Primary Account Number (PAN).</p>
1726
+ */
1727
+ PanSequenceNumber: string | undefined;
1728
+ /**
1729
+ * <p>The transaction counter that is provided by the terminal during transaction processing.</p>
1730
+ */
1731
+ ApplicationTransactionCounter: string | undefined;
1732
+ }
1733
+ /**
1734
+ * @public
1735
+ * <p>Parameters to derive session key for Mastercard payment card for ARQC verification.</p>
1736
+ */
1737
+ export interface SessionKeyMastercard {
1738
+ /**
1739
+ * <p>The Primary Account Number (PAN) of the cardholder. A PAN is a unique identifier for a payment credit or debit card and associates the card to a specific account holder.</p>
1740
+ */
1741
+ PrimaryAccountNumber: string | undefined;
1742
+ /**
1743
+ * <p>A number that identifies and differentiates payment cards with the same Primary Account Number (PAN).</p>
1744
+ */
1745
+ PanSequenceNumber: string | undefined;
1746
+ /**
1747
+ * <p>The transaction counter that is provided by the terminal during transaction processing.</p>
1748
+ */
1749
+ ApplicationTransactionCounter: string | undefined;
1750
+ /**
1751
+ * <p>A random number generated by the issuer.</p>
1752
+ */
1753
+ UnpredictableNumber: string | undefined;
1754
+ }
1755
+ /**
1756
+ * @public
1757
+ * <p>Parameters to derive session key for Visa payment card for ARQC verification.</p>
1758
+ */
1759
+ export interface SessionKeyVisa {
1760
+ /**
1761
+ * <p>The Primary Account Number (PAN) of the cardholder. A PAN is a unique identifier for a payment credit or debit card and associates the card to a specific account holder.</p>
1762
+ */
1763
+ PrimaryAccountNumber: string | undefined;
1764
+ /**
1765
+ * <p>A number that identifies and differentiates payment cards with the same Primary Account Number (PAN).</p>
1766
+ */
1767
+ PanSequenceNumber: string | undefined;
1768
+ }
1769
+ /**
1770
+ * @public
1771
+ * <p>Parameters to derive a session key for Authorization Response Cryptogram (ARQC) verification.</p>
1772
+ */
1773
+ export type SessionKeyDerivation = SessionKeyDerivation.AmexMember | SessionKeyDerivation.Emv2000Member | SessionKeyDerivation.EmvCommonMember | SessionKeyDerivation.MastercardMember | SessionKeyDerivation.VisaMember | SessionKeyDerivation.$UnknownMember;
1774
+ /**
1775
+ * @public
1776
+ */
1777
+ export declare namespace SessionKeyDerivation {
1778
+ /**
1779
+ * <p>Parameters to derive session key for an Emv common payment card for ARQC verification.</p>
1780
+ */
1781
+ interface EmvCommonMember {
1782
+ EmvCommon: SessionKeyEmvCommon;
1783
+ Mastercard?: never;
1784
+ Emv2000?: never;
1785
+ Amex?: never;
1786
+ Visa?: never;
1787
+ $unknown?: never;
1788
+ }
1789
+ /**
1790
+ * <p>Parameters to derive session key for a Mastercard payment card for ARQC verification.</p>
1791
+ */
1792
+ interface MastercardMember {
1793
+ EmvCommon?: never;
1794
+ Mastercard: SessionKeyMastercard;
1795
+ Emv2000?: never;
1796
+ Amex?: never;
1797
+ Visa?: never;
1798
+ $unknown?: never;
1799
+ }
1800
+ /**
1801
+ * <p>Parameters to derive session key for an Emv2000 payment card for ARQC verification.</p>
1802
+ */
1803
+ interface Emv2000Member {
1804
+ EmvCommon?: never;
1805
+ Mastercard?: never;
1806
+ Emv2000: SessionKeyEmv2000;
1807
+ Amex?: never;
1808
+ Visa?: never;
1809
+ $unknown?: never;
1810
+ }
1811
+ /**
1812
+ * <p>Parameters to derive session key for an Amex payment card for ARQC verification.</p>
1813
+ */
1814
+ interface AmexMember {
1815
+ EmvCommon?: never;
1816
+ Mastercard?: never;
1817
+ Emv2000?: never;
1818
+ Amex: SessionKeyAmex;
1819
+ Visa?: never;
1820
+ $unknown?: never;
1821
+ }
1822
+ /**
1823
+ * <p>Parameters to derive session key for a Visa payment cardfor ARQC verification.</p>
1824
+ */
1825
+ interface VisaMember {
1826
+ EmvCommon?: never;
1827
+ Mastercard?: never;
1828
+ Emv2000?: never;
1829
+ Amex?: never;
1830
+ Visa: SessionKeyVisa;
1831
+ $unknown?: never;
1832
+ }
1833
+ interface $UnknownMember {
1834
+ EmvCommon?: never;
1835
+ Mastercard?: never;
1836
+ Emv2000?: never;
1837
+ Amex?: never;
1838
+ Visa?: never;
1839
+ $unknown: [string, any];
1840
+ }
1841
+ interface Visitor<T> {
1842
+ EmvCommon: (value: SessionKeyEmvCommon) => T;
1843
+ Mastercard: (value: SessionKeyMastercard) => T;
1844
+ Emv2000: (value: SessionKeyEmv2000) => T;
1845
+ Amex: (value: SessionKeyAmex) => T;
1846
+ Visa: (value: SessionKeyVisa) => T;
1847
+ _: (name: string, value: any) => T;
1848
+ }
1849
+ const visit: <T>(value: SessionKeyDerivation, visitor: Visitor<T>) => T;
1850
+ }
1851
+ /**
1852
+ * @public
1853
+ */
1854
+ export interface VerifyAuthRequestCryptogramInput {
1855
+ /**
1856
+ * <p>The <code>keyARN</code> of the major encryption key that Amazon Web Services Payment Cryptography uses for ARQC verification.</p>
1857
+ */
1858
+ KeyIdentifier: string | undefined;
1859
+ /**
1860
+ * <p>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.</p>
1861
+ */
1862
+ TransactionData: string | undefined;
1863
+ /**
1864
+ * <p>The auth request cryptogram imported into Amazon Web Services Payment Cryptography for ARQC verification using a major encryption key and transaction data.</p>
1865
+ */
1866
+ AuthRequestCryptogram: string | undefined;
1867
+ /**
1868
+ * <p>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.</p>
1869
+ */
1870
+ MajorKeyDerivationMode: MajorKeyDerivationMode | string | undefined;
1871
+ /**
1872
+ * <p>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.</p>
1873
+ */
1874
+ SessionKeyDerivationAttributes: SessionKeyDerivation | undefined;
1875
+ /**
1876
+ * <p>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.</p>
1877
+ */
1878
+ AuthResponseAttributes?: CryptogramAuthResponse;
1879
+ }
1880
+ /**
1881
+ * @public
1882
+ */
1883
+ export interface VerifyAuthRequestCryptogramOutput {
1884
+ /**
1885
+ * <p>The <code>keyARN</code> of the major encryption key that Amazon Web Services Payment Cryptography uses for ARQC verification.</p>
1886
+ */
1887
+ KeyArn: string | undefined;
1888
+ /**
1889
+ * <p>The key check value (KCV) of the encryption key. The KCV is used to check if all parties holding a given key have the same key or to detect that a key has changed. Amazon Web Services Payment Cryptography calculates the KCV by using standard algorithms, typically by encrypting 8 or 16 bytes or "00" or "01" and then truncating the result to the first 3 bytes, or 6 hex digits, of the resulting cryptogram.</p>
1890
+ */
1891
+ KeyCheckValue: string | undefined;
1892
+ /**
1893
+ * <p>The result for ARQC verification or ARPC generation within Amazon Web Services Payment Cryptography.</p>
1894
+ */
1895
+ AuthResponseValue?: string;
1896
+ }
1897
+ /**
1898
+ * @public
1899
+ */
1900
+ export interface VerifyCardValidationDataInput {
1901
+ /**
1902
+ * <p>The <code>keyARN</code> of the CVK encryption key that Amazon Web Services Payment Cryptography uses to verify card data.</p>
1903
+ */
1904
+ KeyIdentifier: string | undefined;
1905
+ /**
1906
+ * <p>The Primary Account Number (PAN), a unique identifier for a payment credit or debit card that associates the card with a specific account holder.</p>
1907
+ */
1908
+ PrimaryAccountNumber: string | undefined;
1909
+ /**
1910
+ * <p>The algorithm to use for verification of card data within Amazon Web Services Payment Cryptography.</p>
1911
+ */
1912
+ VerificationAttributes: CardVerificationAttributes | undefined;
1913
+ /**
1914
+ * <p>The CVV or CSC value for use for card data verification within Amazon Web Services Payment Cryptography.</p>
1915
+ */
1916
+ ValidationData: string | undefined;
1917
+ }
1918
+ /**
1919
+ * @public
1920
+ */
1921
+ export interface VerifyCardValidationDataOutput {
1922
+ /**
1923
+ * <p>The <code>keyARN</code> of the CVK encryption key that Amazon Web Services Payment Cryptography uses to verify CVV or CSC.</p>
1924
+ */
1925
+ KeyArn: string | undefined;
1926
+ /**
1927
+ * <p>The key check value (KCV) of the encryption key. The KCV is used to check if all parties holding a given key have the same key or to detect that a key has changed. Amazon Web Services Payment Cryptography calculates the KCV by using standard algorithms, typically by encrypting 8 or 16 bytes or "00" or "01" and then truncating the result to the first 3 bytes, or 6 hex digits, of the resulting cryptogram.</p>
1928
+ */
1929
+ KeyCheckValue: string | undefined;
1930
+ }
1931
+ /**
1932
+ * @public
1933
+ */
1934
+ export interface VerifyMacInput {
1935
+ /**
1936
+ * <p>The <code>keyARN</code> of the encryption key that Amazon Web Services Payment Cryptography uses to verify MAC data.</p>
1937
+ */
1938
+ KeyIdentifier: string | undefined;
1939
+ /**
1940
+ * <p>The data on for which MAC is under verification.</p>
1941
+ */
1942
+ MessageData: string | undefined;
1943
+ /**
1944
+ * <p>The MAC being verified.</p>
1945
+ */
1946
+ Mac: string | undefined;
1947
+ /**
1948
+ * <p>The attributes and data values to use for MAC verification within Amazon Web Services Payment Cryptography.</p>
1949
+ */
1950
+ VerificationAttributes: MacAttributes | undefined;
1951
+ /**
1952
+ * <p>The length of the MAC.</p>
1953
+ */
1954
+ MacLength?: number;
1955
+ }
1956
+ /**
1957
+ * @public
1958
+ */
1959
+ export interface VerifyMacOutput {
1960
+ /**
1961
+ * <p>The <code>keyARN</code> of the encryption key that Amazon Web Services Payment Cryptography uses for MAC verification.</p>
1962
+ */
1963
+ KeyArn: string | undefined;
1964
+ /**
1965
+ * <p>The key check value (KCV) of the encryption key. The KCV is used to check if all parties holding a given key have the same key or to detect that a key has changed. Amazon Web Services Payment Cryptography calculates the KCV by using standard algorithms, typically by encrypting 8 or 16 bytes or "00" or "01" and then truncating the result to the first 3 bytes, or 6 hex digits, of the resulting cryptogram.</p>
1966
+ */
1967
+ KeyCheckValue: string | undefined;
1968
+ }
1969
+ /**
1970
+ * @public
1971
+ * <p>Parameters that are required to generate or verify Visa PIN.</p>
1972
+ */
1973
+ export interface VisaPinVerification {
1974
+ /**
1975
+ * <p>The value for PIN verification index. It is used in the Visa PIN algorithm to calculate the PVV (PIN Verification Value).</p>
1976
+ */
1977
+ PinVerificationKeyIndex: number | undefined;
1978
+ /**
1979
+ * <p>Parameters that are required to generate or verify Visa PVV (PIN Verification Value).</p>
1980
+ */
1981
+ VerificationValue: string | undefined;
1982
+ }
1983
+ /**
1984
+ * @public
1985
+ * <p>Parameters that are required for PIN data verification.</p>
1986
+ */
1987
+ export type PinVerificationAttributes = PinVerificationAttributes.Ibm3624PinMember | PinVerificationAttributes.VisaPinMember | PinVerificationAttributes.$UnknownMember;
1988
+ /**
1989
+ * @public
1990
+ */
1991
+ export declare namespace PinVerificationAttributes {
1992
+ /**
1993
+ * <p>Parameters that are required to generate or verify Visa PIN.</p>
1994
+ */
1995
+ interface VisaPinMember {
1996
+ VisaPin: VisaPinVerification;
1997
+ Ibm3624Pin?: never;
1998
+ $unknown?: never;
1999
+ }
2000
+ /**
2001
+ * <p>Parameters that are required to generate or verify Ibm3624 PIN.</p>
2002
+ */
2003
+ interface Ibm3624PinMember {
2004
+ VisaPin?: never;
2005
+ Ibm3624Pin: Ibm3624PinVerification;
2006
+ $unknown?: never;
2007
+ }
2008
+ interface $UnknownMember {
2009
+ VisaPin?: never;
2010
+ Ibm3624Pin?: never;
2011
+ $unknown: [string, any];
2012
+ }
2013
+ interface Visitor<T> {
2014
+ VisaPin: (value: VisaPinVerification) => T;
2015
+ Ibm3624Pin: (value: Ibm3624PinVerification) => T;
2016
+ _: (name: string, value: any) => T;
2017
+ }
2018
+ const visit: <T>(value: PinVerificationAttributes, visitor: Visitor<T>) => T;
2019
+ }
2020
+ /**
2021
+ * @public
2022
+ */
2023
+ export interface VerifyPinDataInput {
2024
+ /**
2025
+ * <p>The <code>keyARN</code> of the PIN verification key.</p>
2026
+ */
2027
+ VerificationKeyIdentifier: string | undefined;
2028
+ /**
2029
+ * <p>The <code>keyARN</code> of the encryption key under which the PIN block data is encrypted. This key type can be PEK or BDK.</p>
2030
+ */
2031
+ EncryptionKeyIdentifier: string | undefined;
2032
+ /**
2033
+ * <p>The attributes and values for PIN data verification.</p>
2034
+ */
2035
+ VerificationAttributes: PinVerificationAttributes | undefined;
2036
+ /**
2037
+ * <p>The encrypted PIN block data that Amazon Web Services Payment Cryptography verifies.</p>
2038
+ */
2039
+ EncryptedPinBlock: string | undefined;
2040
+ /**
2041
+ * <p>The Primary Account Number (PAN), a unique identifier for a payment credit or debit card that associates the card with a specific account holder.</p>
2042
+ */
2043
+ PrimaryAccountNumber: string | undefined;
2044
+ /**
2045
+ * <p>The PIN encoding format for pin data generation as specified in ISO 9564. Amazon Web Services Payment Cryptography supports <code>ISO_Format_0</code> and <code>ISO_Format_3</code>.</p>
2046
+ * <p>The <code>ISO_Format_0</code> PIN block format is equivalent to the ANSI X9.8, VISA-1, and ECI-1 PIN block formats. It is similar to a VISA-4 PIN block format. It supports a PIN from 4 to 12 digits in length.</p>
2047
+ * <p>The <code>ISO_Format_3</code> PIN block format is the same as <code>ISO_Format_0</code> except that the fill digits are random values from 10 to 15.</p>
2048
+ */
2049
+ PinBlockFormat: PinBlockFormatForPinData | string | undefined;
2050
+ /**
2051
+ * <p>The length of PIN being verified.</p>
2052
+ */
2053
+ PinDataLength?: number;
2054
+ /**
2055
+ * <p>The attributes and values for the DUKPT encrypted PIN block data.</p>
2056
+ */
2057
+ DukptAttributes?: DukptAttributes;
2058
+ }
2059
+ /**
2060
+ * @public
2061
+ */
2062
+ export interface VerifyPinDataOutput {
2063
+ /**
2064
+ * <p>The <code>keyARN</code> of the PIN encryption key that Amazon Web Services Payment Cryptography uses for PIN or PIN Offset verification.</p>
2065
+ */
2066
+ VerificationKeyArn: string | undefined;
2067
+ /**
2068
+ * <p>The key check value (KCV) of the encryption key. The KCV is used to check if all parties holding a given key have the same key or to detect that a key has changed. Amazon Web Services Payment Cryptography calculates the KCV by using standard algorithms, typically by encrypting 8 or 16 bytes or "00" or "01" and then truncating the result to the first 3 bytes, or 6 hex digits, of the resulting cryptogram.</p>
2069
+ */
2070
+ VerificationKeyCheckValue: string | undefined;
2071
+ /**
2072
+ * <p>The <code>keyARN</code> of the PEK that Amazon Web Services Payment Cryptography uses for encrypted pin block generation.</p>
2073
+ */
2074
+ EncryptionKeyArn: string | undefined;
2075
+ /**
2076
+ * <p>The key check value (KCV) of the encryption key. The KCV is used to check if all parties holding a given key have the same key or to detect that a key has changed. Amazon Web Services Payment Cryptography calculates the KCV by using standard algorithms, typically by encrypting 8 or 16 bytes or "00" or "01" and then truncating the result to the first 3 bytes, or 6 hex digits, of the resulting cryptogram.</p>
2077
+ */
2078
+ EncryptionKeyCheckValue: string | undefined;
2079
+ }
2080
+ /**
2081
+ * @internal
2082
+ */
2083
+ export declare const DukptEncryptionAttributesFilterSensitiveLog: (obj: DukptEncryptionAttributes) => any;
2084
+ /**
2085
+ * @internal
2086
+ */
2087
+ export declare const SymmetricEncryptionAttributesFilterSensitiveLog: (obj: SymmetricEncryptionAttributes) => any;
2088
+ /**
2089
+ * @internal
2090
+ */
2091
+ export declare const EncryptionDecryptionAttributesFilterSensitiveLog: (obj: EncryptionDecryptionAttributes) => any;
2092
+ /**
2093
+ * @internal
2094
+ */
2095
+ export declare const DecryptDataInputFilterSensitiveLog: (obj: DecryptDataInput) => any;
2096
+ /**
2097
+ * @internal
2098
+ */
2099
+ export declare const DecryptDataOutputFilterSensitiveLog: (obj: DecryptDataOutput) => any;
2100
+ /**
2101
+ * @internal
2102
+ */
2103
+ export declare const EncryptDataInputFilterSensitiveLog: (obj: EncryptDataInput) => any;
2104
+ /**
2105
+ * @internal
2106
+ */
2107
+ export declare const EncryptDataOutputFilterSensitiveLog: (obj: EncryptDataOutput) => any;
2108
+ /**
2109
+ * @internal
2110
+ */
2111
+ export declare const GenerateCardValidationDataInputFilterSensitiveLog: (obj: GenerateCardValidationDataInput) => any;
2112
+ /**
2113
+ * @internal
2114
+ */
2115
+ export declare const MacAlgorithmEmvFilterSensitiveLog: (obj: MacAlgorithmEmv) => any;
2116
+ /**
2117
+ * @internal
2118
+ */
2119
+ export declare const MacAttributesFilterSensitiveLog: (obj: MacAttributes) => any;
2120
+ /**
2121
+ * @internal
2122
+ */
2123
+ export declare const GenerateMacInputFilterSensitiveLog: (obj: GenerateMacInput) => any;
2124
+ /**
2125
+ * @internal
2126
+ */
2127
+ export declare const GeneratePinDataInputFilterSensitiveLog: (obj: GeneratePinDataInput) => any;
2128
+ /**
2129
+ * @internal
2130
+ */
2131
+ export declare const ReEncryptionAttributesFilterSensitiveLog: (obj: ReEncryptionAttributes) => any;
2132
+ /**
2133
+ * @internal
2134
+ */
2135
+ export declare const ReEncryptDataInputFilterSensitiveLog: (obj: ReEncryptDataInput) => any;
2136
+ /**
2137
+ * @internal
2138
+ */
2139
+ export declare const ReEncryptDataOutputFilterSensitiveLog: (obj: ReEncryptDataOutput) => any;
2140
+ /**
2141
+ * @internal
2142
+ */
2143
+ export declare const TranslationPinDataIsoFormat034FilterSensitiveLog: (obj: TranslationPinDataIsoFormat034) => any;
2144
+ /**
2145
+ * @internal
2146
+ */
2147
+ export declare const TranslationIsoFormatsFilterSensitiveLog: (obj: TranslationIsoFormats) => any;
2148
+ /**
2149
+ * @internal
2150
+ */
2151
+ export declare const TranslatePinDataInputFilterSensitiveLog: (obj: TranslatePinDataInput) => any;
2152
+ /**
2153
+ * @internal
2154
+ */
2155
+ export declare const SessionKeyAmexFilterSensitiveLog: (obj: SessionKeyAmex) => any;
2156
+ /**
2157
+ * @internal
2158
+ */
2159
+ export declare const SessionKeyEmv2000FilterSensitiveLog: (obj: SessionKeyEmv2000) => any;
2160
+ /**
2161
+ * @internal
2162
+ */
2163
+ export declare const SessionKeyEmvCommonFilterSensitiveLog: (obj: SessionKeyEmvCommon) => any;
2164
+ /**
2165
+ * @internal
2166
+ */
2167
+ export declare const SessionKeyMastercardFilterSensitiveLog: (obj: SessionKeyMastercard) => any;
2168
+ /**
2169
+ * @internal
2170
+ */
2171
+ export declare const SessionKeyVisaFilterSensitiveLog: (obj: SessionKeyVisa) => any;
2172
+ /**
2173
+ * @internal
2174
+ */
2175
+ export declare const SessionKeyDerivationFilterSensitiveLog: (obj: SessionKeyDerivation) => any;
2176
+ /**
2177
+ * @internal
2178
+ */
2179
+ export declare const VerifyAuthRequestCryptogramInputFilterSensitiveLog: (obj: VerifyAuthRequestCryptogramInput) => any;
2180
+ /**
2181
+ * @internal
2182
+ */
2183
+ export declare const VerifyCardValidationDataInputFilterSensitiveLog: (obj: VerifyCardValidationDataInput) => any;
2184
+ /**
2185
+ * @internal
2186
+ */
2187
+ export declare const VerifyMacInputFilterSensitiveLog: (obj: VerifyMacInput) => any;
2188
+ /**
2189
+ * @internal
2190
+ */
2191
+ export declare const VerifyPinDataInputFilterSensitiveLog: (obj: VerifyPinDataInput) => any;