@aws-sdk/client-payment-cryptography-data 3.1050.0 → 3.1052.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 (37) hide show
  1. package/README.md +7 -0
  2. package/dist-cjs/index.js +20 -0
  3. package/dist-cjs/schemas/schemas_0.js +22 -5
  4. package/dist-es/PaymentCryptographyData.js +2 -0
  5. package/dist-es/commands/GenerateAuthRequestCryptogramCommand.js +16 -0
  6. package/dist-es/commands/index.js +1 -0
  7. package/dist-es/models/enums.js +5 -0
  8. package/dist-es/schemas/schemas_0.js +19 -2
  9. package/dist-types/PaymentCryptographyData.d.ts +7 -0
  10. package/dist-types/PaymentCryptographyDataClient.d.ts +3 -2
  11. package/dist-types/commands/DecryptDataCommand.d.ts +1 -1
  12. package/dist-types/commands/EncryptDataCommand.d.ts +1 -1
  13. package/dist-types/commands/GenerateAs2805KekValidationCommand.d.ts +2 -1
  14. package/dist-types/commands/GenerateAuthRequestCryptogramCommand.d.ts +121 -0
  15. package/dist-types/commands/GenerateCardValidationDataCommand.d.ts +1 -1
  16. package/dist-types/commands/GenerateMacCommand.d.ts +1 -1
  17. package/dist-types/commands/GenerateMacEmvPinChangeCommand.d.ts +1 -1
  18. package/dist-types/commands/GeneratePinDataCommand.d.ts +1 -1
  19. package/dist-types/commands/ReEncryptDataCommand.d.ts +1 -1
  20. package/dist-types/commands/TranslateKeyMaterialCommand.d.ts +1 -1
  21. package/dist-types/commands/TranslatePinDataCommand.d.ts +1 -1
  22. package/dist-types/commands/VerifyAuthRequestCryptogramCommand.d.ts +1 -1
  23. package/dist-types/commands/VerifyCardValidationDataCommand.d.ts +1 -1
  24. package/dist-types/commands/VerifyMacCommand.d.ts +1 -1
  25. package/dist-types/commands/VerifyPinDataCommand.d.ts +1 -1
  26. package/dist-types/commands/index.d.ts +1 -0
  27. package/dist-types/models/enums.d.ts +13 -0
  28. package/dist-types/models/models_0.d.ts +246 -196
  29. package/dist-types/schemas/schemas_0.d.ts +3 -0
  30. package/dist-types/ts3.4/PaymentCryptographyData.d.ts +17 -0
  31. package/dist-types/ts3.4/PaymentCryptographyDataClient.d.ts +6 -0
  32. package/dist-types/ts3.4/commands/GenerateAuthRequestCryptogramCommand.d.ts +53 -0
  33. package/dist-types/ts3.4/commands/index.d.ts +1 -0
  34. package/dist-types/ts3.4/models/enums.d.ts +7 -0
  35. package/dist-types/ts3.4/models/models_0.d.ts +102 -89
  36. package/dist-types/ts3.4/schemas/schemas_0.d.ts +3 -0
  37. package/package.json +8 -8
package/README.md CHANGED
@@ -202,6 +202,13 @@ GenerateAs2805KekValidation
202
202
  </details>
203
203
  <details>
204
204
  <summary>
205
+ GenerateAuthRequestCryptogram
206
+ </summary>
207
+
208
+ [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/payment-cryptography-data/command/GenerateAuthRequestCryptogramCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-payment-cryptography-data/Interface/GenerateAuthRequestCryptogramCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-payment-cryptography-data/Interface/GenerateAuthRequestCryptogramCommandOutput/)
209
+ </details>
210
+ <details>
211
+ <summary>
205
212
  GenerateCardValidationData
206
213
  </summary>
207
214
 
package/dist-cjs/index.js CHANGED
@@ -144,6 +144,18 @@ class GenerateAs2805KekValidationCommand extends client.Command
144
144
  .build() {
145
145
  }
146
146
 
147
+ class GenerateAuthRequestCryptogramCommand extends client.Command
148
+ .classBuilder()
149
+ .ep(commonParams)
150
+ .m(function (Command, cs, config, o) {
151
+ return [endpoints.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
152
+ })
153
+ .s("PaymentCryptographyDataPlane", "GenerateAuthRequestCryptogram", {})
154
+ .n("PaymentCryptographyDataClient", "GenerateAuthRequestCryptogramCommand")
155
+ .sc(schemas_0.GenerateAuthRequestCryptogram$)
156
+ .build() {
157
+ }
158
+
147
159
  class GenerateCardValidationDataCommand extends client.Command
148
160
  .classBuilder()
149
161
  .ep(commonParams)
@@ -280,6 +292,7 @@ const commands = {
280
292
  DecryptDataCommand,
281
293
  EncryptDataCommand,
282
294
  GenerateAs2805KekValidationCommand,
295
+ GenerateAuthRequestCryptogramCommand,
283
296
  GenerateCardValidationDataCommand,
284
297
  GenerateMacCommand,
285
298
  GenerateMacEmvPinChangeCommand,
@@ -311,6 +324,11 @@ const SymmetricKeyAlgorithm = {
311
324
  TDES_2KEY: "TDES_2KEY",
312
325
  TDES_3KEY: "TDES_3KEY",
313
326
  };
327
+ const RandomKeyMaxLength = {
328
+ BYTES_16: "BYTES_16",
329
+ BYTES_24: "BYTES_24",
330
+ BYTES_8: "BYTES_8",
331
+ };
314
332
  const PaddingType = {
315
333
  OAEP_SHA1: "OAEP_SHA1",
316
334
  OAEP_SHA256: "OAEP_SHA256",
@@ -431,6 +449,7 @@ exports.EmvMajorKeyDerivationMode = EmvMajorKeyDerivationMode;
431
449
  exports.EncryptDataCommand = EncryptDataCommand;
432
450
  exports.EncryptionMode = EncryptionMode;
433
451
  exports.GenerateAs2805KekValidationCommand = GenerateAs2805KekValidationCommand;
452
+ exports.GenerateAuthRequestCryptogramCommand = GenerateAuthRequestCryptogramCommand;
434
453
  exports.GenerateCardValidationDataCommand = GenerateCardValidationDataCommand;
435
454
  exports.GenerateMacCommand = GenerateMacCommand;
436
455
  exports.GenerateMacEmvPinChangeCommand = GenerateMacEmvPinChangeCommand;
@@ -447,6 +466,7 @@ exports.PinBlockFormatForEmvPinChange = PinBlockFormatForEmvPinChange;
447
466
  exports.PinBlockFormatForPinData = PinBlockFormatForPinData;
448
467
  exports.PinBlockLengthPosition = PinBlockLengthPosition;
449
468
  exports.PinBlockPaddingType = PinBlockPaddingType;
469
+ exports.RandomKeyMaxLength = RandomKeyMaxLength;
450
470
  exports.RandomKeySendVariantMask = RandomKeySendVariantMask;
451
471
  exports.ReEncryptDataCommand = ReEncryptDataCommand;
452
472
  exports.SessionKeyDerivationMode = SessionKeyDerivationMode;
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.KekValidationRequest$ = exports.IncomingDiffieHellmanTr31KeyBlock$ = exports.Ibm3624RandomPin$ = exports.Ibm3624PinVerification$ = exports.Ibm3624PinOffset$ = exports.Ibm3624PinFromOffset$ = exports.Ibm3624NaturalPin$ = exports.GeneratePinDataOutput$ = exports.GeneratePinDataInput$ = exports.GenerateMacOutput$ = exports.GenerateMacInput$ = exports.GenerateMacEmvPinChangeOutput$ = exports.GenerateMacEmvPinChangeInput$ = exports.GenerateCardValidationDataOutput$ = exports.GenerateCardValidationDataInput$ = exports.GenerateAs2805KekValidationOutput$ = exports.GenerateAs2805KekValidationInput$ = exports.EncryptDataOutput$ = exports.EncryptDataInput$ = exports.EmvEncryptionAttributes$ = exports.EmvCommonAttributes$ = exports.Emv2000Attributes$ = exports.EcdhDerivationAttributes$ = exports.DynamicCardVerificationValue$ = exports.DynamicCardVerificationCode$ = exports.DukptEncryptionAttributes$ = exports.DukptDerivationAttributes$ = exports.DukptAttributes$ = exports.DiscoverDynamicCardVerificationCode$ = exports.DecryptDataOutput$ = exports.DecryptDataInput$ = exports.CurrentPinAttributes$ = exports.CryptogramVerificationArpcMethod2$ = exports.CryptogramVerificationArpcMethod1$ = exports.CardVerificationValue2$ = exports.CardVerificationValue1$ = exports.CardHolderVerificationValue$ = exports.AsymmetricEncryptionAttributes$ = exports.As2805PekDerivationAttributes$ = exports.AmexCardSecurityCodeVersion2$ = exports.AmexCardSecurityCodeVersion1$ = exports.AmexAttributes$ = exports.errorTypeRegistries = exports.VerificationFailedException$ = exports.ValidationException$ = exports.ThrottlingException$ = exports.ResourceNotFoundException$ = exports.InternalServerException$ = exports.AccessDeniedException$ = exports.PaymentCryptographyDataServiceException$ = void 0;
4
- exports.ReEncryptionAttributes$ = exports.PinVerificationAttributes$ = exports.PinGenerationAttributes$ = exports.PinData$ = exports.OutgoingKeyMaterial$ = exports.MacAttributes$ = exports.IncomingKeyMaterial$ = exports.EncryptionDecryptionAttributes$ = exports.DiffieHellmanDerivationData$ = exports.DerivationMethodAttributes$ = exports.CryptogramAuthResponse$ = exports.CardVerificationAttributes$ = exports.CardGenerationAttributes$ = exports.As2805KekValidationType$ = exports.WrappedWorkingKey$ = exports.WrappedKey$ = exports.VisaPinVerificationValue$ = exports.VisaPinVerification$ = exports.VisaPin$ = exports.VisaAttributes$ = exports.VisaAmexDerivationOutputs$ = exports.VerifyPinDataOutput$ = exports.VerifyPinDataInput$ = exports.VerifyMacOutput$ = exports.VerifyMacInput$ = exports.VerifyCardValidationDataOutput$ = exports.VerifyCardValidationDataInput$ = exports.VerifyAuthRequestCryptogramOutput$ = exports.VerifyAuthRequestCryptogramInput$ = exports.ValidationExceptionField$ = exports.TranslationPinDataIsoFormat1$ = exports.TranslationPinDataIsoFormat034$ = exports.TranslationPinDataAs2805Format0$ = exports.TranslatePinDataOutput$ = exports.TranslatePinDataInput$ = exports.TranslateKeyMaterialOutput$ = exports.TranslateKeyMaterialInput$ = exports.SymmetricEncryptionAttributes$ = exports.SessionKeyVisa$ = exports.SessionKeyMastercard$ = exports.SessionKeyEmvCommon$ = exports.SessionKeyEmv2000$ = exports.SessionKeyAmex$ = exports.ReEncryptDataOutput$ = exports.ReEncryptDataInput$ = exports.OutgoingTr31KeyBlock$ = exports.MasterCardAttributes$ = exports.MacAlgorithmEmv$ = exports.MacAlgorithmDukpt$ = exports.KekValidationResponse$ = void 0;
5
- exports.VerifyPinData$ = exports.VerifyMac$ = exports.VerifyCardValidationData$ = exports.VerifyAuthRequestCryptogram$ = exports.TranslatePinData$ = exports.TranslateKeyMaterial$ = exports.ReEncryptData$ = exports.GeneratePinData$ = exports.GenerateMacEmvPinChange$ = exports.GenerateMac$ = exports.GenerateCardValidationData$ = exports.GenerateAs2805KekValidation$ = exports.EncryptData$ = exports.DecryptData$ = exports.WrappedKeyMaterial$ = exports.TranslationIsoFormats$ = exports.SessionKeyDerivationValue$ = exports.SessionKeyDerivation$ = void 0;
3
+ exports.Ibm3624RandomPin$ = exports.Ibm3624PinVerification$ = exports.Ibm3624PinOffset$ = exports.Ibm3624PinFromOffset$ = exports.Ibm3624NaturalPin$ = exports.GeneratePinDataOutput$ = exports.GeneratePinDataInput$ = exports.GenerateMacOutput$ = exports.GenerateMacInput$ = exports.GenerateMacEmvPinChangeOutput$ = exports.GenerateMacEmvPinChangeInput$ = exports.GenerateCardValidationDataOutput$ = exports.GenerateCardValidationDataInput$ = exports.GenerateAuthRequestCryptogramOutput$ = exports.GenerateAuthRequestCryptogramInput$ = exports.GenerateAs2805KekValidationOutput$ = exports.GenerateAs2805KekValidationInput$ = exports.EncryptDataOutput$ = exports.EncryptDataInput$ = exports.EmvEncryptionAttributes$ = exports.EmvCommonAttributes$ = exports.Emv2000Attributes$ = exports.EcdhDerivationAttributes$ = exports.DynamicCardVerificationValue$ = exports.DynamicCardVerificationCode$ = exports.DukptEncryptionAttributes$ = exports.DukptDerivationAttributes$ = exports.DukptAttributes$ = exports.DiscoverDynamicCardVerificationCode$ = exports.DecryptDataOutput$ = exports.DecryptDataInput$ = exports.CurrentPinAttributes$ = exports.CryptogramVerificationArpcMethod2$ = exports.CryptogramVerificationArpcMethod1$ = exports.CardVerificationValue2$ = exports.CardVerificationValue1$ = exports.CardHolderVerificationValue$ = exports.AsymmetricEncryptionAttributes$ = exports.As2805PekDerivationAttributes$ = exports.AmexCardSecurityCodeVersion2$ = exports.AmexCardSecurityCodeVersion1$ = exports.AmexAttributes$ = exports.errorTypeRegistries = exports.VerificationFailedException$ = exports.ValidationException$ = exports.ThrottlingException$ = exports.ResourceNotFoundException$ = exports.InternalServerException$ = exports.AccessDeniedException$ = exports.PaymentCryptographyDataServiceException$ = void 0;
4
+ exports.PinGenerationAttributes$ = exports.PinData$ = exports.OutgoingKeyMaterial$ = exports.MacAttributes$ = exports.IncomingKeyMaterial$ = exports.EncryptionDecryptionAttributes$ = exports.DiffieHellmanDerivationData$ = exports.DerivationMethodAttributes$ = exports.CryptogramAuthResponse$ = exports.CardVerificationAttributes$ = exports.CardGenerationAttributes$ = exports.As2805KekValidationType$ = exports.WrappedWorkingKey$ = exports.WrappedKey$ = exports.VisaPinVerificationValue$ = exports.VisaPinVerification$ = exports.VisaPin$ = exports.VisaAttributes$ = exports.VisaAmexDerivationOutputs$ = exports.VerifyPinDataOutput$ = exports.VerifyPinDataInput$ = exports.VerifyMacOutput$ = exports.VerifyMacInput$ = exports.VerifyCardValidationDataOutput$ = exports.VerifyCardValidationDataInput$ = exports.VerifyAuthRequestCryptogramOutput$ = exports.VerifyAuthRequestCryptogramInput$ = exports.ValidationExceptionField$ = exports.TranslationPinDataIsoFormat1$ = exports.TranslationPinDataIsoFormat034$ = exports.TranslationPinDataAs2805Format0$ = exports.TranslatePinDataOutput$ = exports.TranslatePinDataInput$ = exports.TranslateKeyMaterialOutput$ = exports.TranslateKeyMaterialInput$ = exports.SymmetricEncryptionAttributes$ = exports.SessionKeyVisa$ = exports.SessionKeyMastercard$ = exports.SessionKeyEmvCommon$ = exports.SessionKeyEmv2000$ = exports.SessionKeyAmex$ = exports.ReEncryptDataOutput$ = exports.ReEncryptDataInput$ = exports.OutgoingTr31KeyBlock$ = exports.MasterCardAttributes$ = exports.MacAlgorithmEmv$ = exports.MacAlgorithmDukpt$ = exports.KekValidationResponse$ = exports.KekValidationRequest$ = exports.IncomingDiffieHellmanTr31KeyBlock$ = void 0;
5
+ exports.VerifyPinData$ = exports.VerifyMac$ = exports.VerifyCardValidationData$ = exports.VerifyAuthRequestCryptogram$ = exports.TranslatePinData$ = exports.TranslateKeyMaterial$ = exports.ReEncryptData$ = exports.GeneratePinData$ = exports.GenerateMacEmvPinChange$ = exports.GenerateMac$ = exports.GenerateCardValidationData$ = exports.GenerateAuthRequestCryptogram$ = exports.GenerateAs2805KekValidation$ = exports.EncryptData$ = exports.DecryptData$ = exports.WrappedKeyMaterial$ = exports.TranslationIsoFormats$ = exports.SessionKeyDerivationValue$ = exports.SessionKeyDerivation$ = exports.ReEncryptionAttributes$ = exports.PinVerificationAttributes$ = void 0;
6
6
  const _A = "Amex";
7
7
  const _AA = "AmexAttributes";
8
8
  const _AC = "ApplicationCryptogram";
@@ -97,6 +97,9 @@ const _GA = "GenerationAttributes";
97
97
  const _GAKV = "GenerateAs2805KekValidation";
98
98
  const _GAKVI = "GenerateAs2805KekValidationInput";
99
99
  const _GAKVO = "GenerateAs2805KekValidationOutput";
100
+ const _GARC = "GenerateAuthRequestCryptogram";
101
+ const _GARCI = "GenerateAuthRequestCryptogramInput";
102
+ const _GARCO = "GenerateAuthRequestCryptogramOutput";
100
103
  const _GCVD = "GenerateCardValidationData";
101
104
  const _GCVDI = "GenerateCardValidationDataInput";
102
105
  const _GCVDO = "GenerateCardValidationDataOutput";
@@ -204,6 +207,7 @@ const _RED = "ReEncryptData";
204
207
  const _REDI = "ReEncryptDataInput";
205
208
  const _REDO = "ReEncryptDataOutput";
206
209
  const _RI = "ResourceId";
210
+ const _RKML = "RandomKeyMaxLength";
207
211
  const _RKR = "RandomKeyReceive";
208
212
  const _RKS = "RandomKeySend";
209
213
  const _RKSVM = "RandomKeySendVariantMask";
@@ -509,6 +513,16 @@ exports.GenerateAs2805KekValidationOutput$ = [3, n0, _GAKVO,
509
513
  [_KA, _KCV, _RKS, _RKR],
510
514
  [0, 0, [() => As2805RandomKeyMaterial, 0], [() => As2805RandomKeyMaterial, 0]], 4
511
515
  ];
516
+ exports.GenerateAuthRequestCryptogramInput$ = [3, n0, _GARCI,
517
+ 0,
518
+ [_KI, _TDr, _MKDM, _SKDA],
519
+ [0, [() => TransactionDataType, 0], 0, [() => exports.SessionKeyDerivation$, 0]], 4
520
+ ];
521
+ exports.GenerateAuthRequestCryptogramOutput$ = [3, n0, _GARCO,
522
+ 0,
523
+ [_KA, _KCV, _ARCu],
524
+ [0, 0, [() => AuthRequestCryptogramType, 0]], 3
525
+ ];
512
526
  exports.GenerateCardValidationDataInput$ = [3, n0, _GCVDI,
513
527
  0,
514
528
  [_KI, _PAN, _GA, _VDL],
@@ -581,8 +595,8 @@ exports.IncomingDiffieHellmanTr31KeyBlock$ = [3, n0, _IDHTKB,
581
595
  ];
582
596
  exports.KekValidationRequest$ = [3, n0, _KVR,
583
597
  0,
584
- [_DKA],
585
- [0], 1
598
+ [_DKA, _RKML],
599
+ [0, 0], 1
586
600
  ];
587
601
  exports.KekValidationResponse$ = [3, n0, _KVRe,
588
602
  0,
@@ -866,6 +880,9 @@ exports.EncryptData$ = [9, n0, _ED,
866
880
  exports.GenerateAs2805KekValidation$ = [9, n0, _GAKV,
867
881
  { [_h]: ["POST", "/as2805kekvalidation/generate", 200] }, () => exports.GenerateAs2805KekValidationInput$, () => exports.GenerateAs2805KekValidationOutput$
868
882
  ];
883
+ exports.GenerateAuthRequestCryptogram$ = [9, n0, _GARC,
884
+ { [_h]: ["POST", "/cryptogram/generate", 200] }, () => exports.GenerateAuthRequestCryptogramInput$, () => exports.GenerateAuthRequestCryptogramOutput$
885
+ ];
869
886
  exports.GenerateCardValidationData$ = [9, n0, _GCVD,
870
887
  { [_h]: ["POST", "/cardvalidationdata/generate", 200] }, () => exports.GenerateCardValidationDataInput$, () => exports.GenerateCardValidationDataOutput$
871
888
  ];
@@ -2,6 +2,7 @@ import { createAggregatedClient } from "@smithy/core/client";
2
2
  import { DecryptDataCommand, } from "./commands/DecryptDataCommand";
3
3
  import { EncryptDataCommand, } from "./commands/EncryptDataCommand";
4
4
  import { GenerateAs2805KekValidationCommand, } from "./commands/GenerateAs2805KekValidationCommand";
5
+ import { GenerateAuthRequestCryptogramCommand, } from "./commands/GenerateAuthRequestCryptogramCommand";
5
6
  import { GenerateCardValidationDataCommand, } from "./commands/GenerateCardValidationDataCommand";
6
7
  import { GenerateMacCommand, } from "./commands/GenerateMacCommand";
7
8
  import { GenerateMacEmvPinChangeCommand, } from "./commands/GenerateMacEmvPinChangeCommand";
@@ -18,6 +19,7 @@ const commands = {
18
19
  DecryptDataCommand,
19
20
  EncryptDataCommand,
20
21
  GenerateAs2805KekValidationCommand,
22
+ GenerateAuthRequestCryptogramCommand,
21
23
  GenerateCardValidationDataCommand,
22
24
  GenerateMacCommand,
23
25
  GenerateMacEmvPinChangeCommand,
@@ -0,0 +1,16 @@
1
+ import { Command as $Command } from "@smithy/core/client";
2
+ import { getEndpointPlugin } from "@smithy/core/endpoints";
3
+ import { commonParams } from "../endpoint/EndpointParameters";
4
+ import { GenerateAuthRequestCryptogram$ } from "../schemas/schemas_0";
5
+ export { $Command };
6
+ export class GenerateAuthRequestCryptogramCommand extends $Command
7
+ .classBuilder()
8
+ .ep(commonParams)
9
+ .m(function (Command, cs, config, o) {
10
+ return [getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
11
+ })
12
+ .s("PaymentCryptographyDataPlane", "GenerateAuthRequestCryptogram", {})
13
+ .n("PaymentCryptographyDataClient", "GenerateAuthRequestCryptogramCommand")
14
+ .sc(GenerateAuthRequestCryptogram$)
15
+ .build() {
16
+ }
@@ -1,6 +1,7 @@
1
1
  export * from "./DecryptDataCommand";
2
2
  export * from "./EncryptDataCommand";
3
3
  export * from "./GenerateAs2805KekValidationCommand";
4
+ export * from "./GenerateAuthRequestCryptogramCommand";
4
5
  export * from "./GenerateCardValidationDataCommand";
5
6
  export * from "./GenerateMacCommand";
6
7
  export * from "./GenerateMacEmvPinChangeCommand";
@@ -13,6 +13,11 @@ export const SymmetricKeyAlgorithm = {
13
13
  TDES_2KEY: "TDES_2KEY",
14
14
  TDES_3KEY: "TDES_3KEY",
15
15
  };
16
+ export const RandomKeyMaxLength = {
17
+ BYTES_16: "BYTES_16",
18
+ BYTES_24: "BYTES_24",
19
+ BYTES_8: "BYTES_8",
20
+ };
16
21
  export const PaddingType = {
17
22
  OAEP_SHA1: "OAEP_SHA1",
18
23
  OAEP_SHA256: "OAEP_SHA256",
@@ -92,6 +92,9 @@ const _GA = "GenerationAttributes";
92
92
  const _GAKV = "GenerateAs2805KekValidation";
93
93
  const _GAKVI = "GenerateAs2805KekValidationInput";
94
94
  const _GAKVO = "GenerateAs2805KekValidationOutput";
95
+ const _GARC = "GenerateAuthRequestCryptogram";
96
+ const _GARCI = "GenerateAuthRequestCryptogramInput";
97
+ const _GARCO = "GenerateAuthRequestCryptogramOutput";
95
98
  const _GCVD = "GenerateCardValidationData";
96
99
  const _GCVDI = "GenerateCardValidationDataInput";
97
100
  const _GCVDO = "GenerateCardValidationDataOutput";
@@ -199,6 +202,7 @@ const _RED = "ReEncryptData";
199
202
  const _REDI = "ReEncryptDataInput";
200
203
  const _REDO = "ReEncryptDataOutput";
201
204
  const _RI = "ResourceId";
205
+ const _RKML = "RandomKeyMaxLength";
202
206
  const _RKR = "RandomKeyReceive";
203
207
  const _RKS = "RandomKeySend";
204
208
  const _RKSVM = "RandomKeySendVariantMask";
@@ -504,6 +508,16 @@ export var GenerateAs2805KekValidationOutput$ = [3, n0, _GAKVO,
504
508
  [_KA, _KCV, _RKS, _RKR],
505
509
  [0, 0, [() => As2805RandomKeyMaterial, 0], [() => As2805RandomKeyMaterial, 0]], 4
506
510
  ];
511
+ export var GenerateAuthRequestCryptogramInput$ = [3, n0, _GARCI,
512
+ 0,
513
+ [_KI, _TDr, _MKDM, _SKDA],
514
+ [0, [() => TransactionDataType, 0], 0, [() => SessionKeyDerivation$, 0]], 4
515
+ ];
516
+ export var GenerateAuthRequestCryptogramOutput$ = [3, n0, _GARCO,
517
+ 0,
518
+ [_KA, _KCV, _ARCu],
519
+ [0, 0, [() => AuthRequestCryptogramType, 0]], 3
520
+ ];
507
521
  export var GenerateCardValidationDataInput$ = [3, n0, _GCVDI,
508
522
  0,
509
523
  [_KI, _PAN, _GA, _VDL],
@@ -576,8 +590,8 @@ export var IncomingDiffieHellmanTr31KeyBlock$ = [3, n0, _IDHTKB,
576
590
  ];
577
591
  export var KekValidationRequest$ = [3, n0, _KVR,
578
592
  0,
579
- [_DKA],
580
- [0], 1
593
+ [_DKA, _RKML],
594
+ [0, 0], 1
581
595
  ];
582
596
  export var KekValidationResponse$ = [3, n0, _KVRe,
583
597
  0,
@@ -861,6 +875,9 @@ export var EncryptData$ = [9, n0, _ED,
861
875
  export var GenerateAs2805KekValidation$ = [9, n0, _GAKV,
862
876
  { [_h]: ["POST", "/as2805kekvalidation/generate", 200] }, () => GenerateAs2805KekValidationInput$, () => GenerateAs2805KekValidationOutput$
863
877
  ];
878
+ export var GenerateAuthRequestCryptogram$ = [9, n0, _GARC,
879
+ { [_h]: ["POST", "/cryptogram/generate", 200] }, () => GenerateAuthRequestCryptogramInput$, () => GenerateAuthRequestCryptogramOutput$
880
+ ];
864
881
  export var GenerateCardValidationData$ = [9, n0, _GCVD,
865
882
  { [_h]: ["POST", "/cardvalidationdata/generate", 200] }, () => GenerateCardValidationDataInput$, () => GenerateCardValidationDataOutput$
866
883
  ];
@@ -2,6 +2,7 @@ import type { HttpHandlerOptions as __HttpHandlerOptions } from "@smithy/types";
2
2
  import { type DecryptDataCommandInput, type DecryptDataCommandOutput } from "./commands/DecryptDataCommand";
3
3
  import { type EncryptDataCommandInput, type EncryptDataCommandOutput } from "./commands/EncryptDataCommand";
4
4
  import { type GenerateAs2805KekValidationCommandInput, type GenerateAs2805KekValidationCommandOutput } from "./commands/GenerateAs2805KekValidationCommand";
5
+ import { type GenerateAuthRequestCryptogramCommandInput, type GenerateAuthRequestCryptogramCommandOutput } from "./commands/GenerateAuthRequestCryptogramCommand";
5
6
  import { type GenerateCardValidationDataCommandInput, type GenerateCardValidationDataCommandOutput } from "./commands/GenerateCardValidationDataCommand";
6
7
  import { type GenerateMacCommandInput, type GenerateMacCommandOutput } from "./commands/GenerateMacCommand";
7
8
  import { type GenerateMacEmvPinChangeCommandInput, type GenerateMacEmvPinChangeCommandOutput } from "./commands/GenerateMacEmvPinChangeCommand";
@@ -33,6 +34,12 @@ export interface PaymentCryptographyData {
33
34
  generateAs2805KekValidation(args: GenerateAs2805KekValidationCommandInput, options?: __HttpHandlerOptions): Promise<GenerateAs2805KekValidationCommandOutput>;
34
35
  generateAs2805KekValidation(args: GenerateAs2805KekValidationCommandInput, cb: (err: any, data?: GenerateAs2805KekValidationCommandOutput) => void): void;
35
36
  generateAs2805KekValidation(args: GenerateAs2805KekValidationCommandInput, options: __HttpHandlerOptions, cb: (err: any, data?: GenerateAs2805KekValidationCommandOutput) => void): void;
37
+ /**
38
+ * @see {@link GenerateAuthRequestCryptogramCommand}
39
+ */
40
+ generateAuthRequestCryptogram(args: GenerateAuthRequestCryptogramCommandInput, options?: __HttpHandlerOptions): Promise<GenerateAuthRequestCryptogramCommandOutput>;
41
+ generateAuthRequestCryptogram(args: GenerateAuthRequestCryptogramCommandInput, cb: (err: any, data?: GenerateAuthRequestCryptogramCommandOutput) => void): void;
42
+ generateAuthRequestCryptogram(args: GenerateAuthRequestCryptogramCommandInput, options: __HttpHandlerOptions, cb: (err: any, data?: GenerateAuthRequestCryptogramCommandOutput) => void): void;
36
43
  /**
37
44
  * @see {@link GenerateCardValidationDataCommand}
38
45
  */
@@ -9,6 +9,7 @@ import { type HttpAuthSchemeInputConfig, type HttpAuthSchemeResolvedConfig } fro
9
9
  import type { DecryptDataCommandInput, DecryptDataCommandOutput } from "./commands/DecryptDataCommand";
10
10
  import type { EncryptDataCommandInput, EncryptDataCommandOutput } from "./commands/EncryptDataCommand";
11
11
  import type { GenerateAs2805KekValidationCommandInput, GenerateAs2805KekValidationCommandOutput } from "./commands/GenerateAs2805KekValidationCommand";
12
+ import type { GenerateAuthRequestCryptogramCommandInput, GenerateAuthRequestCryptogramCommandOutput } from "./commands/GenerateAuthRequestCryptogramCommand";
12
13
  import type { GenerateCardValidationDataCommandInput, GenerateCardValidationDataCommandOutput } from "./commands/GenerateCardValidationDataCommand";
13
14
  import type { GenerateMacCommandInput, GenerateMacCommandOutput } from "./commands/GenerateMacCommand";
14
15
  import type { GenerateMacEmvPinChangeCommandInput, GenerateMacEmvPinChangeCommandOutput } from "./commands/GenerateMacEmvPinChangeCommand";
@@ -26,11 +27,11 @@ export { __Client };
26
27
  /**
27
28
  * @public
28
29
  */
29
- export type ServiceInputTypes = DecryptDataCommandInput | EncryptDataCommandInput | GenerateAs2805KekValidationCommandInput | GenerateCardValidationDataCommandInput | GenerateMacCommandInput | GenerateMacEmvPinChangeCommandInput | GeneratePinDataCommandInput | ReEncryptDataCommandInput | TranslateKeyMaterialCommandInput | TranslatePinDataCommandInput | VerifyAuthRequestCryptogramCommandInput | VerifyCardValidationDataCommandInput | VerifyMacCommandInput | VerifyPinDataCommandInput;
30
+ export type ServiceInputTypes = DecryptDataCommandInput | EncryptDataCommandInput | GenerateAs2805KekValidationCommandInput | GenerateAuthRequestCryptogramCommandInput | GenerateCardValidationDataCommandInput | GenerateMacCommandInput | GenerateMacEmvPinChangeCommandInput | GeneratePinDataCommandInput | ReEncryptDataCommandInput | TranslateKeyMaterialCommandInput | TranslatePinDataCommandInput | VerifyAuthRequestCryptogramCommandInput | VerifyCardValidationDataCommandInput | VerifyMacCommandInput | VerifyPinDataCommandInput;
30
31
  /**
31
32
  * @public
32
33
  */
33
- export type ServiceOutputTypes = DecryptDataCommandOutput | EncryptDataCommandOutput | GenerateAs2805KekValidationCommandOutput | GenerateCardValidationDataCommandOutput | GenerateMacCommandOutput | GenerateMacEmvPinChangeCommandOutput | GeneratePinDataCommandOutput | ReEncryptDataCommandOutput | TranslateKeyMaterialCommandOutput | TranslatePinDataCommandOutput | VerifyAuthRequestCryptogramCommandOutput | VerifyCardValidationDataCommandOutput | VerifyMacCommandOutput | VerifyPinDataCommandOutput;
34
+ export type ServiceOutputTypes = DecryptDataCommandOutput | EncryptDataCommandOutput | GenerateAs2805KekValidationCommandOutput | GenerateAuthRequestCryptogramCommandOutput | GenerateCardValidationDataCommandOutput | GenerateMacCommandOutput | GenerateMacEmvPinChangeCommandOutput | GeneratePinDataCommandOutput | ReEncryptDataCommandOutput | TranslateKeyMaterialCommandOutput | TranslatePinDataCommandOutput | VerifyAuthRequestCryptogramCommandOutput | VerifyCardValidationDataCommandOutput | VerifyMacCommandOutput | VerifyPinDataCommandOutput;
34
35
  /**
35
36
  * @public
36
37
  */
@@ -29,7 +29,7 @@ declare const DecryptDataCommand_base: {
29
29
  };
30
30
  };
31
31
  /**
32
- * <p>Decrypts ciphertext data to plaintext using a symmetric (TDES, AES), asymmetric (RSA), or derived (DUKPT or EMV) encryption key scheme. For more information, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/decrypt-data.html">Decrypt data</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>.</p> <p>You can use an decryption key generated within Amazon Web Services Payment Cryptography, or you can import your own decryption key by calling <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ImportKey.html">ImportKey</a>. For this operation, the key must have <code>KeyModesOfUse</code> set to <code>Decrypt</code>. In asymmetric decryption, Amazon Web Services Payment Cryptography decrypts the ciphertext using the private component of the asymmetric encryption key pair. For data encryption outside of Amazon Web Services Payment Cryptography, you can export the public component of the asymmetric key pair by calling <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_GetPublicKeyCertificate.html">GetPublicCertificate</a>.</p> <p>This operation also supports dynamic keys, allowing you to pass a dynamic decryption key as a TR-31 WrappedKeyBlock. This can be used when key material is frequently rotated, such as during every card transaction, and there is need to avoid importing short-lived keys into Amazon Web Services Payment Cryptography. To decrypt using dynamic keys, the <code>keyARN</code> is the Key Encryption Key (KEK) of the TR-31 wrapped decryption key material. The incoming wrapped key shall have a key purpose of D0 with a mode of use of B or D. For more information, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/use-cases-acquirers-dynamickeys.html">Using Dynamic Keys</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>.</p> <p>For symmetric and DUKPT decryption, Amazon Web Services Payment Cryptography supports <code>TDES</code> and <code>AES</code> algorithms. For EMV decryption, Amazon Web Services Payment Cryptography supports <code>TDES</code> algorithms. For asymmetric decryption, Amazon Web Services Payment Cryptography supports <code>RSA</code>. </p> <p>When you use TDES or TDES DUKPT, the ciphertext data length must be a multiple of 8 bytes. For AES or AES DUKPT, the ciphertext data length must be a multiple of 16 bytes. For RSA, it sould be equal to the key size unless padding is enabled.</p> <p>For information about valid keys for this operation, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/keys-validattributes.html">Understanding key attributes</a> and <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html">Key types for specific data operations</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>. </p> <p> <b>Cross-account use</b>: This operation can't be used across different Amazon Web Services accounts.</p> <p> <b>Related operations:</b> </p> <ul> <li> <p> <a>EncryptData</a> </p> </li> <li> <p> <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_GetPublicKeyCertificate.html">GetPublicCertificate</a> </p> </li> <li> <p> <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ImportKey.html">ImportKey</a> </p> </li> </ul>
32
+ * <p>Decrypts ciphertext data to plaintext using a symmetric (TDES, AES), asymmetric (RSA), or derived (DUKPT or EMV) encryption key scheme. For more information, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/decrypt-data.html">Decrypt data</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>.</p> <p>You can use an decryption key generated within Amazon Web Services Payment Cryptography, or you can import your own decryption key by calling <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ImportKey.html">ImportKey</a>. For this operation, the key must have <code>KeyModesOfUse</code> set to <code>Decrypt</code>. In asymmetric decryption, Amazon Web Services Payment Cryptography decrypts the ciphertext using the private component of the asymmetric encryption key pair. For data encryption outside of Amazon Web Services Payment Cryptography, you can export the public component of the asymmetric key pair by calling <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_GetPublicKeyCertificate.html">GetPublicCertificate</a>.</p> <p>This operation also supports dynamic keys, allowing you to pass a dynamic decryption key as a TR-31 WrappedKeyBlock. This can be used when key material is frequently rotated, such as during every card transaction, and there is need to avoid importing short-lived keys into Amazon Web Services Payment Cryptography. To decrypt using dynamic keys, the <code>keyARN</code> is the Key Encryption Key (KEK) of the TR-31 wrapped decryption key material. The incoming wrapped key shall have a key purpose of D0 with a mode of use of B or D. For more information, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/use-cases-acquirers-dynamickeys.html">Using Dynamic Keys</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>.</p> <p>For symmetric and DUKPT decryption, Amazon Web Services Payment Cryptography supports <code>TDES</code> and <code>AES</code> algorithms. For EMV decryption, Amazon Web Services Payment Cryptography supports <code>TDES</code> algorithms. For asymmetric decryption, Amazon Web Services Payment Cryptography supports <code>RSA</code>. </p> <p>When you use TDES or TDES DUKPT, the ciphertext data length must be a multiple of 8 bytes. For AES or AES DUKPT, the ciphertext data length must be a multiple of 16 bytes. For RSA, it sould be equal to the key size unless padding is enabled.</p> <p>For information about valid keys for this operation, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/keys-validattributes.html">Understanding key attributes</a> and <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html">Key types for specific data operations</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>. </p> <p> <b>Cross-account use</b>: This operation supports cross-account use when the key has a resource-based policy that grants access. For more information, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/security_iam_resource-based-policies.html">Resource-based policies</a>.</p> <p> <b>Related operations:</b> </p> <ul> <li> <p> <a>EncryptData</a> </p> </li> <li> <p> <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_GetPublicKeyCertificate.html">GetPublicCertificate</a> </p> </li> <li> <p> <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ImportKey.html">ImportKey</a> </p> </li> </ul>
33
33
  * @example
34
34
  * Use a bare-bones client and the command you need to make an API call.
35
35
  * ```javascript
@@ -29,7 +29,7 @@ declare const EncryptDataCommand_base: {
29
29
  };
30
30
  };
31
31
  /**
32
- * <p>Encrypts plaintext data to ciphertext using a symmetric (TDES, AES), asymmetric (RSA), or derived (DUKPT or EMV) encryption key scheme. For more information, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/encrypt-data.html">Encrypt data</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>.</p> <p>You can generate an encryption key within Amazon Web Services Payment Cryptography by calling <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_CreateKey.html">CreateKey</a>. You can import your own encryption key by calling <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ImportKey.html">ImportKey</a>.</p> <p>For this operation, the key must have <code>KeyModesOfUse</code> set to <code>Encrypt</code>. In asymmetric encryption, plaintext is encrypted using public component. You can import the public component of an asymmetric key pair created outside Amazon Web Services Payment Cryptography by calling <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ImportKey.html">ImportKey</a>. </p> <p>This operation also supports dynamic keys, allowing you to pass a dynamic encryption key as a TR-31 WrappedKeyBlock. This can be used when key material is frequently rotated, such as during every card transaction, and there is need to avoid importing short-lived keys into Amazon Web Services Payment Cryptography. To encrypt using dynamic keys, the <code>keyARN</code> is the Key Encryption Key (KEK) of the TR-31 wrapped encryption key material. The incoming wrapped key shall have a key purpose of D0 with a mode of use of B or D. For more information, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/use-cases-acquirers-dynamickeys.html">Using Dynamic Keys</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>.</p> <p>For symmetric and DUKPT encryption, Amazon Web Services Payment Cryptography supports <code>TDES</code> and <code>AES</code> algorithms. For EMV encryption, Amazon Web Services Payment Cryptography supports <code>TDES</code> algorithms.For asymmetric encryption, Amazon Web Services Payment Cryptography supports <code>RSA</code>. </p> <p>When you use TDES or TDES DUKPT, the plaintext data length must be a multiple of 8 bytes. For AES or AES DUKPT, the plaintext data length must be a multiple of 16 bytes. For RSA, it sould be equal to the key size unless padding is enabled.</p> <p>To encrypt using DUKPT, you must already have a BDK (Base Derivation Key) key in your account with <code>KeyModesOfUse</code> set to <code>DeriveKey</code>, or you can generate a new DUKPT key by calling <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_CreateKey.html">CreateKey</a>. To encrypt using EMV, you must already have an IMK (Issuer Master Key) key in your account with <code>KeyModesOfUse</code> set to <code>DeriveKey</code>.</p> <p>For information about valid keys for this operation, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/keys-validattributes.html">Understanding key attributes</a> and <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html">Key types for specific data operations</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>.</p> <p> <b>Cross-account use</b>: This operation can't be used across different Amazon Web Services accounts.</p> <p> <b>Related operations:</b> </p> <ul> <li> <p> <a>DecryptData</a> </p> </li> <li> <p> <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_GetPublicKeyCertificate.html">GetPublicCertificate</a> </p> </li> <li> <p> <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ImportKey.html">ImportKey</a> </p> </li> <li> <p> <a>ReEncryptData</a> </p> </li> </ul>
32
+ * <p>Encrypts plaintext data to ciphertext using a symmetric (TDES, AES), asymmetric (RSA), or derived (DUKPT or EMV) encryption key scheme. For more information, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/encrypt-data.html">Encrypt data</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>.</p> <p>You can generate an encryption key within Amazon Web Services Payment Cryptography by calling <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_CreateKey.html">CreateKey</a>. You can import your own encryption key by calling <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ImportKey.html">ImportKey</a>.</p> <p>For this operation, the key must have <code>KeyModesOfUse</code> set to <code>Encrypt</code>. In asymmetric encryption, plaintext is encrypted using public component. You can import the public component of an asymmetric key pair created outside Amazon Web Services Payment Cryptography by calling <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ImportKey.html">ImportKey</a>. </p> <p>This operation also supports dynamic keys, allowing you to pass a dynamic encryption key as a TR-31 WrappedKeyBlock. This can be used when key material is frequently rotated, such as during every card transaction, and there is need to avoid importing short-lived keys into Amazon Web Services Payment Cryptography. To encrypt using dynamic keys, the <code>keyARN</code> is the Key Encryption Key (KEK) of the TR-31 wrapped encryption key material. The incoming wrapped key shall have a key purpose of D0 with a mode of use of B or D. For more information, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/use-cases-acquirers-dynamickeys.html">Using Dynamic Keys</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>.</p> <p>For symmetric and DUKPT encryption, Amazon Web Services Payment Cryptography supports <code>TDES</code> and <code>AES</code> algorithms. For EMV encryption, Amazon Web Services Payment Cryptography supports <code>TDES</code> algorithms.For asymmetric encryption, Amazon Web Services Payment Cryptography supports <code>RSA</code>. </p> <p>When you use TDES or TDES DUKPT, the plaintext data length must be a multiple of 8 bytes. For AES or AES DUKPT, the plaintext data length must be a multiple of 16 bytes. For RSA, it sould be equal to the key size unless padding is enabled.</p> <p>To encrypt using DUKPT, you must already have a BDK (Base Derivation Key) key in your account with <code>KeyModesOfUse</code> set to <code>DeriveKey</code>, or you can generate a new DUKPT key by calling <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_CreateKey.html">CreateKey</a>. To encrypt using EMV, you must already have an IMK (Issuer Master Key) key in your account with <code>KeyModesOfUse</code> set to <code>DeriveKey</code>.</p> <p>For information about valid keys for this operation, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/keys-validattributes.html">Understanding key attributes</a> and <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html">Key types for specific data operations</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>.</p> <p> <b>Cross-account use</b>: This operation supports cross-account use when the key has a resource-based policy that grants access. For more information, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/security_iam_resource-based-policies.html">Resource-based policies</a>.</p> <p> <b>Related operations:</b> </p> <ul> <li> <p> <a>DecryptData</a> </p> </li> <li> <p> <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_GetPublicKeyCertificate.html">GetPublicCertificate</a> </p> </li> <li> <p> <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ImportKey.html">ImportKey</a> </p> </li> <li> <p> <a>ReEncryptData</a> </p> </li> </ul>
33
33
  * @example
34
34
  * Use a bare-bones client and the command you need to make an API call.
35
35
  * ```javascript
@@ -29,7 +29,7 @@ declare const GenerateAs2805KekValidationCommand_base: {
29
29
  };
30
30
  };
31
31
  /**
32
- * <p>Establishes node-to-node initialization between payment processing nodes such as an acquirer, issuer or payment network using Australian Standard 2805 (AS2805).</p> <p>During node-to-node initialization, both communicating nodes must validate that they possess the correct Key Encrypting Keys (KEKs) before proceeding with session key exchange. In AS2805, the sending KEK (KEKs) of one node corresponds to the receiving KEK (KEKr) of its partner node. Each node uses its KEK to encrypt and decrypt session keys exchanged between the nodes. A KEK can be created or imported into Amazon Web Services Payment Cryptography using either the <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_CreateKey.html">CreateKey</a> or <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ImportKey.html">ImportKey</a> operations.</p> <p>The node initiating communication can use <code>GenerateAS2805KekValidation</code> to generate a combined KEK validation request and KEK validation response to send to the partnering node for validation. When invoked, the API internally generates a random sending key encrypted under KEKs and provides a receiving key encrypted under KEKr as response. The initiating node sends the response returned by this API to its partner for validation.</p> <p>For information about valid keys for this operation, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/keys-validattributes.html">Understanding key attributes</a> and <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html">Key types for specific data operations</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>. </p> <p> <b>Cross-account use</b>: This operation can't be used across different Amazon Web Services accounts.</p>
32
+ * <p>Generates a <code>KekValidationRequest</code> or a <code>KekValidationResponse</code> for node-to-node initialization between payment processing nodes using <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/as2805.html">Australian Standard 2805 (AS2805)</a>.</p> <p>During node-to-node initialization, both communicating nodes must validate that they possess the correct Key Encrypting Keys (KEKs) before proceeding with session key exchange. In AS2805, the sending KEK (KEKs) of one node corresponds to the receiving KEK (KEKr) of its partner node. Each node uses its KEK to encrypt and decrypt session keys exchanged between the nodes. A KEK can be created or imported into Amazon Web Services Payment Cryptography using either the <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_CreateKey.html">CreateKey</a> or <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ImportKey.html">ImportKey</a> operations.</p> <p>To use <code>GenerateAs2805KekValidation</code> to generate a KEK validation request, set <code>KekValidationType</code> to <code>KekValidationRequest</code>. This operation returns both <code>RandomKeySend</code> (KRs) and <code>RandomKeyReceive</code> (KRr) as response values. The partnering node receives the KRs, uses its KEKr to decrypt it, and generates a KRr which is an inverted value of KRs. The node receiving the KRr validates it against its own KRr generated during KEK validation request outside of Amazon Web Services Payment Cryptography.</p> <p>You can also use this operation to generate a KEK validation response, by setting <code>KekValidationType</code> to <code>KekValidationResponse</code> and providing the incoming KRs. This operation then calculates a KRr. To learn more about more about node-to-node initialization, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/as2805.kekvalidation.html">Validation of KEK</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>.</p> <p>For information about valid keys for this operation, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/keys-validattributes.html">Understanding key attributes</a> and <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html">Key types for specific data operations</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>. </p> <p> <b>Cross-account use</b>: This operation supports cross-account use when the key has a resource-based policy that grants access. For more information, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/security_iam_resource-based-policies.html">Resource-based policies</a>.</p>
33
33
  * @example
34
34
  * Use a bare-bones client and the command you need to make an API call.
35
35
  * ```javascript
@@ -43,6 +43,7 @@ declare const GenerateAs2805KekValidationCommand_base: {
43
43
  * KekValidationType: { // As2805KekValidationType Union: only one key present
44
44
  * KekValidationRequest: { // KekValidationRequest
45
45
  * DeriveKeyAlgorithm: "TDES_2KEY" || "TDES_3KEY" || "AES_128" || "AES_192" || "AES_256" || "HMAC_SHA256" || "HMAC_SHA384" || "HMAC_SHA512" || "HMAC_SHA224", // required
46
+ * RandomKeyMaxLength: "BYTES_8" || "BYTES_16" || "BYTES_24",
46
47
  * },
47
48
  * KekValidationResponse: { // KekValidationResponse
48
49
  * RandomKeySend: "STRING_VALUE", // required
@@ -0,0 +1,121 @@
1
+ import { Command as $Command } from "@smithy/core/client";
2
+ import type { MetadataBearer as __MetadataBearer } from "@smithy/types";
3
+ import type { GenerateAuthRequestCryptogramInput, GenerateAuthRequestCryptogramOutput } from "../models/models_0";
4
+ import type { PaymentCryptographyDataClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../PaymentCryptographyDataClient";
5
+ /**
6
+ * @public
7
+ */
8
+ export type { __MetadataBearer };
9
+ export { $Command };
10
+ /**
11
+ * @public
12
+ *
13
+ * The input for {@link GenerateAuthRequestCryptogramCommand}.
14
+ */
15
+ export interface GenerateAuthRequestCryptogramCommandInput extends GenerateAuthRequestCryptogramInput {
16
+ }
17
+ /**
18
+ * @public
19
+ *
20
+ * The output of {@link GenerateAuthRequestCryptogramCommand}.
21
+ */
22
+ export interface GenerateAuthRequestCryptogramCommandOutput extends GenerateAuthRequestCryptogramOutput, __MetadataBearer {
23
+ }
24
+ declare const GenerateAuthRequestCryptogramCommand_base: {
25
+ new (input: GenerateAuthRequestCryptogramCommandInput): import("@smithy/core/client").CommandImpl<GenerateAuthRequestCryptogramCommandInput, GenerateAuthRequestCryptogramCommandOutput, PaymentCryptographyDataClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes>;
26
+ new (input: GenerateAuthRequestCryptogramCommandInput): import("@smithy/core/client").CommandImpl<GenerateAuthRequestCryptogramCommandInput, GenerateAuthRequestCryptogramCommandOutput, PaymentCryptographyDataClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes>;
27
+ getEndpointParameterInstructions(): {
28
+ [x: string]: unknown;
29
+ };
30
+ };
31
+ /**
32
+ * <p>Generates an Authorization Request Cryptogram (ARQC) for an EMV chip payment card authorization. For more information, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/data-operations.generateauthrequestcryptogram.html">Generate auth request cryptogram</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>.</p> <p>ARQC generation uses an Issuer Master Key (IMK) for application cryptograms (TR31_E0_EMV_MKEY_APP_CRYPTOGRAMS) to derive a session key, which is then used to generate the cryptogram from the provided transaction data (when applicable). To use this operation, you must first create or import an IMK-AC key by calling <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_CreateKey.html">CreateKey</a> or <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ImportKey.html">ImportKey</a>. The <code>KeyModesOfUse</code> should be set to <code>DeriveKey</code> for the IMK-AC encryption key.</p> <important> <p>This operation is intended for development and testing scenarios only. It is not recommended to use this operation as a substitute for card-based cryptogram generation in production payment flows.</p> </important> <p>For information about valid keys for this operation, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/keys-validattributes.html">Understanding key attributes</a> and <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html">Key types for specific data operations</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>. </p> <p> <b>Cross-account use</b>: This operation supports cross-account use when the key has a resource-based policy that grants access. For more information, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/security_iam_resource-based-policies.html">Resource-based policies</a>.</p> <p> <b>Related operations:</b> </p> <ul> <li> <p> <a>VerifyAuthRequestCryptogram</a> </p> </li> </ul>
33
+ * @example
34
+ * Use a bare-bones client and the command you need to make an API call.
35
+ * ```javascript
36
+ * import { PaymentCryptographyDataClient, GenerateAuthRequestCryptogramCommand } from "@aws-sdk/client-payment-cryptography-data"; // ES Modules import
37
+ * // const { PaymentCryptographyDataClient, GenerateAuthRequestCryptogramCommand } = require("@aws-sdk/client-payment-cryptography-data"); // CommonJS import
38
+ * // import type { PaymentCryptographyDataClientConfig } from "@aws-sdk/client-payment-cryptography-data";
39
+ * const config = {}; // type is PaymentCryptographyDataClientConfig
40
+ * const client = new PaymentCryptographyDataClient(config);
41
+ * const input = { // GenerateAuthRequestCryptogramInput
42
+ * KeyIdentifier: "STRING_VALUE", // required
43
+ * TransactionData: "STRING_VALUE", // required
44
+ * MajorKeyDerivationMode: "EMV_OPTION_A" || "EMV_OPTION_B", // required
45
+ * SessionKeyDerivationAttributes: { // SessionKeyDerivation Union: only one key present
46
+ * EmvCommon: { // SessionKeyEmvCommon
47
+ * PrimaryAccountNumber: "STRING_VALUE", // required
48
+ * PanSequenceNumber: "STRING_VALUE", // required
49
+ * ApplicationTransactionCounter: "STRING_VALUE", // required
50
+ * },
51
+ * Mastercard: { // SessionKeyMastercard
52
+ * PrimaryAccountNumber: "STRING_VALUE", // required
53
+ * PanSequenceNumber: "STRING_VALUE", // required
54
+ * ApplicationTransactionCounter: "STRING_VALUE", // required
55
+ * UnpredictableNumber: "STRING_VALUE", // required
56
+ * },
57
+ * Emv2000: { // SessionKeyEmv2000
58
+ * PrimaryAccountNumber: "STRING_VALUE", // required
59
+ * PanSequenceNumber: "STRING_VALUE", // required
60
+ * ApplicationTransactionCounter: "STRING_VALUE", // required
61
+ * },
62
+ * Amex: { // SessionKeyAmex
63
+ * PrimaryAccountNumber: "STRING_VALUE", // required
64
+ * PanSequenceNumber: "STRING_VALUE", // required
65
+ * },
66
+ * Visa: { // SessionKeyVisa
67
+ * PrimaryAccountNumber: "STRING_VALUE", // required
68
+ * PanSequenceNumber: "STRING_VALUE", // required
69
+ * },
70
+ * },
71
+ * };
72
+ * const command = new GenerateAuthRequestCryptogramCommand(input);
73
+ * const response = await client.send(command);
74
+ * // { // GenerateAuthRequestCryptogramOutput
75
+ * // KeyArn: "STRING_VALUE", // required
76
+ * // KeyCheckValue: "STRING_VALUE", // required
77
+ * // AuthRequestCryptogram: "STRING_VALUE", // required
78
+ * // };
79
+ *
80
+ * ```
81
+ *
82
+ * @param GenerateAuthRequestCryptogramCommandInput - {@link GenerateAuthRequestCryptogramCommandInput}
83
+ * @returns {@link GenerateAuthRequestCryptogramCommandOutput}
84
+ * @see {@link GenerateAuthRequestCryptogramCommandInput} for command's `input` shape.
85
+ * @see {@link GenerateAuthRequestCryptogramCommandOutput} for command's `response` shape.
86
+ * @see {@link PaymentCryptographyDataClientResolvedConfig | config} for PaymentCryptographyDataClient's `config` shape.
87
+ *
88
+ * @throws {@link AccessDeniedException} (client fault)
89
+ * <p>You do not have sufficient access to perform this action.</p>
90
+ *
91
+ * @throws {@link InternalServerException} (server fault)
92
+ * <p>The request processing has failed because of an unknown error, exception, or failure.</p>
93
+ *
94
+ * @throws {@link ResourceNotFoundException} (client fault)
95
+ * <p>The request was denied due to an invalid resource error.</p>
96
+ *
97
+ * @throws {@link ThrottlingException} (client fault)
98
+ * <p>The request was denied due to request throttling.</p>
99
+ *
100
+ * @throws {@link ValidationException} (client fault)
101
+ * <p>The request was denied due to an invalid request error.</p>
102
+ *
103
+ * @throws {@link PaymentCryptographyDataServiceException}
104
+ * <p>Base exception class for all service exceptions from PaymentCryptographyData service.</p>
105
+ *
106
+ *
107
+ * @public
108
+ */
109
+ export declare class GenerateAuthRequestCryptogramCommand extends GenerateAuthRequestCryptogramCommand_base {
110
+ /** @internal type navigation helper, not in runtime. */
111
+ protected static __types: {
112
+ api: {
113
+ input: GenerateAuthRequestCryptogramInput;
114
+ output: GenerateAuthRequestCryptogramOutput;
115
+ };
116
+ sdk: {
117
+ input: GenerateAuthRequestCryptogramCommandInput;
118
+ output: GenerateAuthRequestCryptogramCommandOutput;
119
+ };
120
+ };
121
+ }
@@ -29,7 +29,7 @@ declare const GenerateCardValidationDataCommand_base: {
29
29
  };
30
30
  };
31
31
  /**
32
- * <p>Generates card-related validation data using algorithms such as Card Verification Values (CVV/CVV2), Dynamic Card Verification Values (dCVV/dCVV2), or Card Security Codes (CSC). For more information, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/generate-card-data.html">Generate card data</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>.</p> <p>This operation generates a CVV or CSC value that is printed on a payment credit or debit card during card production. The CVV or CSC, PAN (Primary Account Number) and expiration date of the card are required to check its validity during transaction processing. To begin this operation, a CVK (Card Verification Key) encryption key is required. You can use <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_CreateKey.html">CreateKey</a> or <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ImportKey.html">ImportKey</a> to establish a CVK within Amazon Web Services Payment Cryptography. The <code>KeyModesOfUse</code> should be set to <code>Generate</code> and <code>Verify</code> for a CVK encryption key. </p> <p>For information about valid keys for this operation, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/keys-validattributes.html">Understanding key attributes</a> and <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html">Key types for specific data operations</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>. </p> <p> <b>Cross-account use</b>: This operation can't be used across different Amazon Web Services accounts.</p> <p> <b>Related operations:</b> </p> <ul> <li> <p> <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ImportKey.html">ImportKey</a> </p> </li> <li> <p> <a>VerifyCardValidationData</a> </p> </li> </ul>
32
+ * <p>Generates card-related validation data using algorithms such as Card Verification Values (CVV/CVV2), Dynamic Card Verification Values (dCVV/dCVV2), or Card Security Codes (CSC). For more information, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/generate-card-data.html">Generate card data</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>.</p> <p>This operation generates a CVV or CSC value that is printed on a payment credit or debit card during card production. The CVV or CSC, PAN (Primary Account Number) and expiration date of the card are required to check its validity during transaction processing. To begin this operation, a CVK (Card Verification Key) encryption key is required. You can use <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_CreateKey.html">CreateKey</a> or <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ImportKey.html">ImportKey</a> to establish a CVK within Amazon Web Services Payment Cryptography. The <code>KeyModesOfUse</code> should be set to <code>Generate</code> and <code>Verify</code> for a CVK encryption key. </p> <p>For information about valid keys for this operation, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/keys-validattributes.html">Understanding key attributes</a> and <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html">Key types for specific data operations</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>. </p> <p> <b>Cross-account use</b>: This operation supports cross-account use when the key has a resource-based policy that grants access. For more information, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/security_iam_resource-based-policies.html">Resource-based policies</a>.</p> <p> <b>Related operations:</b> </p> <ul> <li> <p> <a href="https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ImportKey.html">ImportKey</a> </p> </li> <li> <p> <a>VerifyCardValidationData</a> </p> </li> </ul>
33
33
  * @example
34
34
  * Use a bare-bones client and the command you need to make an API call.
35
35
  * ```javascript
@@ -29,7 +29,7 @@ declare const GenerateMacCommand_base: {
29
29
  };
30
30
  };
31
31
  /**
32
- * <p>Generates a Message Authentication Code (MAC) cryptogram within Amazon Web Services Payment Cryptography. </p> <p>You can use this operation to authenticate card-related data by using known data values to generate MAC for data validation between the sending and receiving parties. This operation uses message data, a secret encryption key and MAC algorithm to generate a unique MAC value for transmission. The receiving party of the MAC must use the same message data, secret encryption key and MAC algorithm to reproduce another MAC value for comparision.</p> <p>You can use this operation to generate a DUPKT, CMAC, HMAC or EMV MAC by setting generation attributes and algorithm to the associated values. The MAC generation encryption key must have valid values for <code>KeyUsage</code> such as <code>TR31_M7_HMAC_KEY</code> for HMAC generation, and the key must have <code>KeyModesOfUse</code> set to <code>Generate</code>.</p> <p>For information about valid keys for this operation, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/keys-validattributes.html">Understanding key attributes</a> and <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html">Key types for specific data operations</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>. </p> <p> <b>Cross-account use</b>: This operation can't be used across different Amazon Web Services accounts.</p> <p> <b>Related operations:</b> </p> <ul> <li> <p> <a>VerifyMac</a> </p> </li> </ul>
32
+ * <p>Generates a Message Authentication Code (MAC) cryptogram within Amazon Web Services Payment Cryptography. </p> <p>You can use this operation to authenticate card-related data by using known data values to generate MAC for data validation between the sending and receiving parties. This operation uses message data, a secret encryption key and MAC algorithm to generate a unique MAC value for transmission. The receiving party of the MAC must use the same message data, secret encryption key and MAC algorithm to reproduce another MAC value for comparision.</p> <p>You can use this operation to generate a DUPKT, CMAC, HMAC or EMV MAC by setting generation attributes and algorithm to the associated values. The MAC generation encryption key must have valid values for <code>KeyUsage</code> such as <code>TR31_M7_HMAC_KEY</code> for HMAC generation, and the key must have <code>KeyModesOfUse</code> set to <code>Generate</code>.</p> <p>For information about valid keys for this operation, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/keys-validattributes.html">Understanding key attributes</a> and <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html">Key types for specific data operations</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>. </p> <p> <b>Cross-account use</b>: This operation supports cross-account use when the key has a resource-based policy that grants access. For more information, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/security_iam_resource-based-policies.html">Resource-based policies</a>.</p> <p> <b>Related operations:</b> </p> <ul> <li> <p> <a>VerifyMac</a> </p> </li> </ul>
33
33
  * @example
34
34
  * Use a bare-bones client and the command you need to make an API call.
35
35
  * ```javascript
@@ -29,7 +29,7 @@ declare const GenerateMacEmvPinChangeCommand_base: {
29
29
  };
30
30
  };
31
31
  /**
32
- * <p>Generates an issuer script mac for EMV payment cards that use offline PINs as the cardholder verification method (CVM).</p> <p>This operation generates an authenticated issuer script response by appending the incoming message data (APDU command) with the target encrypted PIN block in ISO2 format. The command structure and method to send the issuer script update to the card is not defined by this operation and is typically determined by the applicable payment card scheme.</p> <p>The primary inputs to this operation include the incoming new encrypted pinblock, PIN encryption key (PEK), issuer master key (IMK), primary account number (PAN), and the payment card derivation method.</p> <p>The operation uses two issuer master keys - secure messaging for confidentiality (IMK-SMC) and secure messaging for integrity (IMK-SMI). The SMC key is used to internally derive a key to secure the pin, while SMI key is used to internally derive a key to authenticate the script reponse as per the <a href="https://www.emvco.com/specifications/">EMV 4.4 - Book 2 - Security and Key Management</a> specification. </p> <p>This operation supports Amex, EMV2000, EMVCommon, Mastercard and Visa derivation methods, each requiring specific input parameters. Users must follow the specific derivation method and input parameters defined by the respective payment card scheme.</p> <note> <p>Use <a>GenerateMac</a> operation when sending a script update to an EMV card that does not involve PIN change. When assigning IAM permissions, it is important to understand that <a>EncryptData</a> using EMV keys and <a>GenerateMac</a> perform similar functions to this command.</p> </note> <p> <b>Cross-account use</b>: This operation can't be used across different Amazon Web Services accounts.</p> <p> <b>Related operations:</b> </p> <ul> <li> <p> <a>EncryptData</a> </p> </li> <li> <p> <a>GenerateMac</a> </p> </li> </ul>
32
+ * <p>Generates an issuer script mac for EMV payment cards that use offline PINs as the cardholder verification method (CVM).</p> <p>This operation generates an authenticated issuer script response by appending the incoming message data (APDU command) with the target encrypted PIN block in ISO2 format. The command structure and method to send the issuer script update to the card is not defined by this operation and is typically determined by the applicable payment card scheme.</p> <p>The primary inputs to this operation include the incoming new encrypted pinblock, PIN encryption key (PEK), issuer master key (IMK), primary account number (PAN), and the payment card derivation method.</p> <p>The operation uses two issuer master keys - secure messaging for confidentiality (IMK-SMC) and secure messaging for integrity (IMK-SMI). The SMC key is used to internally derive a key to secure the pin, while SMI key is used to internally derive a key to authenticate the script reponse as per the <a href="https://www.emvco.com/specifications/">EMV 4.4 - Book 2 - Security and Key Management</a> specification. </p> <p>This operation supports Amex, EMV2000, EMVCommon, Mastercard and Visa derivation methods, each requiring specific input parameters. Users must follow the specific derivation method and input parameters defined by the respective payment card scheme.</p> <note> <p>Use <a>GenerateMac</a> operation when sending a script update to an EMV card that does not involve PIN change. When assigning IAM permissions, it is important to understand that <a>EncryptData</a> using EMV keys and <a>GenerateMac</a> perform similar functions to this command.</p> </note> <p> <b>Cross-account use</b>: This operation supports cross-account use when the key has a resource-based policy that grants access. For more information, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/security_iam_resource-based-policies.html">Resource-based policies</a>.</p> <p> <b>Related operations:</b> </p> <ul> <li> <p> <a>EncryptData</a> </p> </li> <li> <p> <a>GenerateMac</a> </p> </li> </ul>
33
33
  * @example
34
34
  * Use a bare-bones client and the command you need to make an API call.
35
35
  * ```javascript
@@ -29,7 +29,7 @@ declare const GeneratePinDataCommand_base: {
29
29
  };
30
30
  };
31
31
  /**
32
- * <p>Generates pin-related data such as PIN, PIN Verification Value (PVV), PIN Block, and PIN Offset during new card issuance or reissuance. For more information, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/generate-pin-data.html">Generate PIN data</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>.</p> <p>PIN data is never transmitted in clear to or from Amazon Web Services Payment Cryptography. This operation generates PIN, PVV, or PIN Offset and then encrypts it using Pin Encryption Key (PEK) to create an <code>EncryptedPinBlock</code> for transmission from Amazon Web Services Payment Cryptography. This operation uses a separate Pin Verification Key (PVK) for VISA PVV generation. </p> <p>Using ECDH key exchange, you can receive cardholder selectable PINs into Amazon Web Services Payment Cryptography. The ECDH derived key protects the incoming PIN block. You can also use it for reveal PIN, wherein the generated PIN block is protected by the ECDH derived key before transmission from Amazon Web Services Payment Cryptography. For more information on establishing ECDH derived keys, see the <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/create-keys.html">Generating keys</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>.</p> <p>For information about valid keys for this operation, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/keys-validattributes.html">Understanding key attributes</a> and <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html">Key types for specific data operations</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>.</p> <p> <b>Cross-account use</b>: This operation can't be used across different Amazon Web Services accounts.</p> <p> <b>Related operations:</b> </p> <ul> <li> <p> <a>GenerateCardValidationData</a> </p> </li> <li> <p> <a>TranslatePinData</a> </p> </li> <li> <p> <a>VerifyPinData</a> </p> </li> </ul>
32
+ * <p>Generates pin-related data such as PIN, PIN Verification Value (PVV), PIN Block, and PIN Offset during new card issuance or reissuance. For more information, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/generate-pin-data.html">Generate PIN data</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>.</p> <p>PIN data is never transmitted in clear to or from Amazon Web Services Payment Cryptography. This operation generates PIN, PVV, or PIN Offset and then encrypts it using Pin Encryption Key (PEK) to create an <code>EncryptedPinBlock</code> for transmission from Amazon Web Services Payment Cryptography. This operation uses a separate Pin Verification Key (PVK) for VISA PVV generation. </p> <p>Using ECDH key exchange, you can receive cardholder selectable PINs into Amazon Web Services Payment Cryptography. The ECDH derived key protects the incoming PIN block. You can also use it for reveal PIN, wherein the generated PIN block is protected by the ECDH derived key before transmission from Amazon Web Services Payment Cryptography. For more information on establishing ECDH derived keys, see the <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/create-keys.html">Generating keys</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>.</p> <p>For information about valid keys for this operation, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/keys-validattributes.html">Understanding key attributes</a> and <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html">Key types for specific data operations</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>.</p> <p> <b>Cross-account use</b>: This operation supports cross-account use when the key has a resource-based policy that grants access. For more information, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/security_iam_resource-based-policies.html">Resource-based policies</a>.</p> <p> <b>Related operations:</b> </p> <ul> <li> <p> <a>GenerateCardValidationData</a> </p> </li> <li> <p> <a>TranslatePinData</a> </p> </li> <li> <p> <a>VerifyPinData</a> </p> </li> </ul>
33
33
  * @example
34
34
  * Use a bare-bones client and the command you need to make an API call.
35
35
  * ```javascript