@aws-sdk/client-payment-cryptography-data 3.677.0 → 3.678.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -11,7 +11,7 @@ AWS SDK for JavaScript PaymentCryptographyData Client for Node.js, Browser and R
11
11
 
12
12
  ## Installing
13
13
 
14
- To install the this package, simply type add or install @aws-sdk/client-payment-cryptography-data
14
+ To install this package, simply type add or install @aws-sdk/client-payment-cryptography-data
15
15
  using your favorite package manager:
16
16
 
17
17
  - `npm install @aws-sdk/client-payment-cryptography-data`
package/dist-cjs/index.js CHANGED
@@ -47,6 +47,7 @@ __export(src_exports, {
47
47
  DukptKeyVariant: () => DukptKeyVariant,
48
48
  DynamicCardVerificationCodeFilterSensitiveLog: () => DynamicCardVerificationCodeFilterSensitiveLog,
49
49
  DynamicCardVerificationValueFilterSensitiveLog: () => DynamicCardVerificationValueFilterSensitiveLog,
50
+ EcdhDerivationAttributesFilterSensitiveLog: () => EcdhDerivationAttributesFilterSensitiveLog,
50
51
  Emv2000AttributesFilterSensitiveLog: () => Emv2000AttributesFilterSensitiveLog,
51
52
  EmvCommonAttributesFilterSensitiveLog: () => EmvCommonAttributesFilterSensitiveLog,
52
53
  EmvEncryptionAttributesFilterSensitiveLog: () => EmvEncryptionAttributesFilterSensitiveLog,
@@ -77,6 +78,8 @@ __export(src_exports, {
77
78
  Ibm3624RandomPinFilterSensitiveLog: () => Ibm3624RandomPinFilterSensitiveLog,
78
79
  InternalServerException: () => InternalServerException,
79
80
  KeyCheckValueAlgorithm: () => KeyCheckValueAlgorithm,
81
+ KeyDerivationFunction: () => KeyDerivationFunction,
82
+ KeyDerivationHashAlgorithm: () => KeyDerivationHashAlgorithm,
80
83
  MacAlgorithm: () => MacAlgorithm,
81
84
  MacAlgorithmEmvFilterSensitiveLog: () => MacAlgorithmEmvFilterSensitiveLog,
82
85
  MacAttributes: () => MacAttributes,
@@ -114,6 +117,7 @@ __export(src_exports, {
114
117
  SessionKeyMastercardFilterSensitiveLog: () => SessionKeyMastercardFilterSensitiveLog,
115
118
  SessionKeyVisaFilterSensitiveLog: () => SessionKeyVisaFilterSensitiveLog,
116
119
  SymmetricEncryptionAttributesFilterSensitiveLog: () => SymmetricEncryptionAttributesFilterSensitiveLog,
120
+ SymmetricKeyAlgorithm: () => SymmetricKeyAlgorithm,
117
121
  ThrottlingException: () => ThrottlingException,
118
122
  TranslatePinDataCommand: () => TranslatePinDataCommand,
119
123
  TranslatePinDataInputFilterSensitiveLog: () => TranslatePinDataInputFilterSensitiveLog,
@@ -438,11 +442,29 @@ var KeyCheckValueAlgorithm = {
438
442
  ANSI_X9_24: "ANSI_X9_24",
439
443
  CMAC: "CMAC"
440
444
  };
445
+ var SymmetricKeyAlgorithm = {
446
+ AES_128: "AES_128",
447
+ AES_192: "AES_192",
448
+ AES_256: "AES_256",
449
+ TDES_2KEY: "TDES_2KEY",
450
+ TDES_3KEY: "TDES_3KEY"
451
+ };
452
+ var KeyDerivationFunction = {
453
+ ANSI_X963: "ANSI_X963",
454
+ NIST_SP800: "NIST_SP800"
455
+ };
456
+ var KeyDerivationHashAlgorithm = {
457
+ SHA_256: "SHA_256",
458
+ SHA_384: "SHA_384",
459
+ SHA_512: "SHA_512"
460
+ };
441
461
  var WrappedKeyMaterial;
442
462
  ((WrappedKeyMaterial3) => {
443
463
  WrappedKeyMaterial3.visit = /* @__PURE__ */ __name((value, visitor) => {
444
464
  if (value.Tr31KeyBlock !== void 0)
445
465
  return visitor.Tr31KeyBlock(value.Tr31KeyBlock);
466
+ if (value.DiffieHellmanSymmetricKey !== void 0)
467
+ return visitor.DiffieHellmanSymmetricKey(value.DiffieHellmanSymmetricKey);
446
468
  return visitor._(value.$unknown[0], value.$unknown[1]);
447
469
  }, "visit");
448
470
  })(WrappedKeyMaterial || (WrappedKeyMaterial = {}));
@@ -609,7 +631,8 @@ var PinGenerationAttributes;
609
631
  })(PinGenerationAttributes || (PinGenerationAttributes = {}));
610
632
  var PinBlockFormatForPinData = {
611
633
  ISO_FORMAT_0: "ISO_FORMAT_0",
612
- ISO_FORMAT_3: "ISO_FORMAT_3"
634
+ ISO_FORMAT_3: "ISO_FORMAT_3",
635
+ ISO_FORMAT_4: "ISO_FORMAT_4"
613
636
  };
614
637
  var PinData;
615
638
  ((PinData2) => {
@@ -834,9 +857,15 @@ var EncryptionDecryptionAttributesFilterSensitiveLog = /* @__PURE__ */ __name((o
834
857
  if (obj.$unknown !== void 0)
835
858
  return { [obj.$unknown[0]]: "UNKNOWN" };
836
859
  }, "EncryptionDecryptionAttributesFilterSensitiveLog");
860
+ var EcdhDerivationAttributesFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({
861
+ ...obj,
862
+ ...obj.PublicKeyCertificate && { PublicKeyCertificate: import_smithy_client.SENSITIVE_STRING }
863
+ }), "EcdhDerivationAttributesFilterSensitiveLog");
837
864
  var WrappedKeyMaterialFilterSensitiveLog = /* @__PURE__ */ __name((obj) => {
838
865
  if (obj.Tr31KeyBlock !== void 0)
839
866
  return { Tr31KeyBlock: import_smithy_client.SENSITIVE_STRING };
867
+ if (obj.DiffieHellmanSymmetricKey !== void 0)
868
+ return { DiffieHellmanSymmetricKey: EcdhDerivationAttributesFilterSensitiveLog(obj.DiffieHellmanSymmetricKey) };
840
869
  if (obj.$unknown !== void 0)
841
870
  return { [obj.$unknown[0]]: "UNKNOWN" };
842
871
  }, "WrappedKeyMaterialFilterSensitiveLog");
@@ -1012,7 +1041,8 @@ var GeneratePinDataInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({
1012
1041
  ...obj.GenerationAttributes && {
1013
1042
  GenerationAttributes: PinGenerationAttributesFilterSensitiveLog(obj.GenerationAttributes)
1014
1043
  },
1015
- ...obj.PrimaryAccountNumber && { PrimaryAccountNumber: import_smithy_client.SENSITIVE_STRING }
1044
+ ...obj.PrimaryAccountNumber && { PrimaryAccountNumber: import_smithy_client.SENSITIVE_STRING },
1045
+ ...obj.EncryptionWrappedKey && { EncryptionWrappedKey: WrappedKeyFilterSensitiveLog(obj.EncryptionWrappedKey) }
1016
1046
  }), "GeneratePinDataInputFilterSensitiveLog");
1017
1047
  var PinDataFilterSensitiveLog = /* @__PURE__ */ __name((obj) => {
1018
1048
  if (obj.PinOffset !== void 0)
@@ -1172,7 +1202,8 @@ var VerifyPinDataInputFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({
1172
1202
  VerificationAttributes: PinVerificationAttributesFilterSensitiveLog(obj.VerificationAttributes)
1173
1203
  },
1174
1204
  ...obj.EncryptedPinBlock && { EncryptedPinBlock: import_smithy_client.SENSITIVE_STRING },
1175
- ...obj.PrimaryAccountNumber && { PrimaryAccountNumber: import_smithy_client.SENSITIVE_STRING }
1205
+ ...obj.PrimaryAccountNumber && { PrimaryAccountNumber: import_smithy_client.SENSITIVE_STRING },
1206
+ ...obj.EncryptionWrappedKey && { EncryptionWrappedKey: WrappedKeyFilterSensitiveLog(obj.EncryptionWrappedKey) }
1176
1207
  }), "VerifyPinDataInputFilterSensitiveLog");
1177
1208
 
1178
1209
  // src/protocols/Aws_restJson1.ts
@@ -1282,6 +1313,7 @@ var se_GeneratePinDataCommand = /* @__PURE__ */ __name(async (input, context) =>
1282
1313
  body = JSON.stringify(
1283
1314
  (0, import_smithy_client.take)(input, {
1284
1315
  EncryptionKeyIdentifier: [],
1316
+ EncryptionWrappedKey: (_) => (0, import_smithy_client._json)(_),
1285
1317
  GenerationAttributes: (_) => (0, import_smithy_client._json)(_),
1286
1318
  GenerationKeyIdentifier: [],
1287
1319
  PinBlockFormat: [],
@@ -1405,6 +1437,7 @@ var se_VerifyPinDataCommand = /* @__PURE__ */ __name(async (input, context) => {
1405
1437
  DukptAttributes: (_) => (0, import_smithy_client._json)(_),
1406
1438
  EncryptedPinBlock: [],
1407
1439
  EncryptionKeyIdentifier: [],
1440
+ EncryptionWrappedKey: (_) => (0, import_smithy_client._json)(_),
1408
1441
  PinBlockFormat: [],
1409
1442
  PinDataLength: [],
1410
1443
  PrimaryAccountNumber: [],
@@ -1956,6 +1989,9 @@ var PaymentCryptographyData = _PaymentCryptographyData;
1956
1989
  EncryptionMode,
1957
1990
  EncryptionDecryptionAttributes,
1958
1991
  KeyCheckValueAlgorithm,
1992
+ SymmetricKeyAlgorithm,
1993
+ KeyDerivationFunction,
1994
+ KeyDerivationHashAlgorithm,
1959
1995
  WrappedKeyMaterial,
1960
1996
  InternalServerException,
1961
1997
  ResourceNotFoundException,
@@ -1995,6 +2031,7 @@ var PaymentCryptographyData = _PaymentCryptographyData;
1995
2031
  EmvEncryptionAttributesFilterSensitiveLog,
1996
2032
  SymmetricEncryptionAttributesFilterSensitiveLog,
1997
2033
  EncryptionDecryptionAttributesFilterSensitiveLog,
2034
+ EcdhDerivationAttributesFilterSensitiveLog,
1998
2035
  WrappedKeyMaterialFilterSensitiveLog,
1999
2036
  WrappedKeyFilterSensitiveLog,
2000
2037
  DecryptDataInputFilterSensitiveLog,
@@ -127,11 +127,29 @@ export const KeyCheckValueAlgorithm = {
127
127
  ANSI_X9_24: "ANSI_X9_24",
128
128
  CMAC: "CMAC",
129
129
  };
130
+ export const SymmetricKeyAlgorithm = {
131
+ AES_128: "AES_128",
132
+ AES_192: "AES_192",
133
+ AES_256: "AES_256",
134
+ TDES_2KEY: "TDES_2KEY",
135
+ TDES_3KEY: "TDES_3KEY",
136
+ };
137
+ export const KeyDerivationFunction = {
138
+ ANSI_X963: "ANSI_X963",
139
+ NIST_SP800: "NIST_SP800",
140
+ };
141
+ export const KeyDerivationHashAlgorithm = {
142
+ SHA_256: "SHA_256",
143
+ SHA_384: "SHA_384",
144
+ SHA_512: "SHA_512",
145
+ };
130
146
  export var WrappedKeyMaterial;
131
147
  (function (WrappedKeyMaterial) {
132
148
  WrappedKeyMaterial.visit = (value, visitor) => {
133
149
  if (value.Tr31KeyBlock !== undefined)
134
150
  return visitor.Tr31KeyBlock(value.Tr31KeyBlock);
151
+ if (value.DiffieHellmanSymmetricKey !== undefined)
152
+ return visitor.DiffieHellmanSymmetricKey(value.DiffieHellmanSymmetricKey);
135
153
  return visitor._(value.$unknown[0], value.$unknown[1]);
136
154
  };
137
155
  })(WrappedKeyMaterial || (WrappedKeyMaterial = {}));
@@ -279,6 +297,7 @@ export var PinGenerationAttributes;
279
297
  export const PinBlockFormatForPinData = {
280
298
  ISO_FORMAT_0: "ISO_FORMAT_0",
281
299
  ISO_FORMAT_3: "ISO_FORMAT_3",
300
+ ISO_FORMAT_4: "ISO_FORMAT_4",
282
301
  };
283
302
  export var PinData;
284
303
  (function (PinData) {
@@ -496,9 +515,15 @@ export const EncryptionDecryptionAttributesFilterSensitiveLog = (obj) => {
496
515
  if (obj.$unknown !== undefined)
497
516
  return { [obj.$unknown[0]]: "UNKNOWN" };
498
517
  };
518
+ export const EcdhDerivationAttributesFilterSensitiveLog = (obj) => ({
519
+ ...obj,
520
+ ...(obj.PublicKeyCertificate && { PublicKeyCertificate: SENSITIVE_STRING }),
521
+ });
499
522
  export const WrappedKeyMaterialFilterSensitiveLog = (obj) => {
500
523
  if (obj.Tr31KeyBlock !== undefined)
501
524
  return { Tr31KeyBlock: SENSITIVE_STRING };
525
+ if (obj.DiffieHellmanSymmetricKey !== undefined)
526
+ return { DiffieHellmanSymmetricKey: EcdhDerivationAttributesFilterSensitiveLog(obj.DiffieHellmanSymmetricKey) };
502
527
  if (obj.$unknown !== undefined)
503
528
  return { [obj.$unknown[0]]: "UNKNOWN" };
504
529
  };
@@ -675,6 +700,7 @@ export const GeneratePinDataInputFilterSensitiveLog = (obj) => ({
675
700
  GenerationAttributes: PinGenerationAttributesFilterSensitiveLog(obj.GenerationAttributes),
676
701
  }),
677
702
  ...(obj.PrimaryAccountNumber && { PrimaryAccountNumber: SENSITIVE_STRING }),
703
+ ...(obj.EncryptionWrappedKey && { EncryptionWrappedKey: WrappedKeyFilterSensitiveLog(obj.EncryptionWrappedKey) }),
678
704
  });
679
705
  export const PinDataFilterSensitiveLog = (obj) => {
680
706
  if (obj.PinOffset !== undefined)
@@ -835,4 +861,5 @@ export const VerifyPinDataInputFilterSensitiveLog = (obj) => ({
835
861
  }),
836
862
  ...(obj.EncryptedPinBlock && { EncryptedPinBlock: SENSITIVE_STRING }),
837
863
  ...(obj.PrimaryAccountNumber && { PrimaryAccountNumber: SENSITIVE_STRING }),
864
+ ...(obj.EncryptionWrappedKey && { EncryptionWrappedKey: WrappedKeyFilterSensitiveLog(obj.EncryptionWrappedKey) }),
838
865
  });
@@ -95,6 +95,7 @@ export const se_GeneratePinDataCommand = async (input, context) => {
95
95
  let body;
96
96
  body = JSON.stringify(take(input, {
97
97
  EncryptionKeyIdentifier: [],
98
+ EncryptionWrappedKey: (_) => _json(_),
98
99
  GenerationAttributes: (_) => _json(_),
99
100
  GenerationKeyIdentifier: [],
100
101
  PinBlockFormat: [],
@@ -206,6 +207,7 @@ export const se_VerifyPinDataCommand = async (input, context) => {
206
207
  DukptAttributes: (_) => _json(_),
207
208
  EncryptedPinBlock: [],
208
209
  EncryptionKeyIdentifier: [],
210
+ EncryptionWrappedKey: (_) => _json(_),
209
211
  PinBlockFormat: [],
210
212
  PinDataLength: [],
211
213
  PrimaryAccountNumber: [],
@@ -92,6 +92,14 @@ declare const DecryptDataCommand_base: {
92
92
  * WrappedKey: { // WrappedKey
93
93
  * WrappedKeyMaterial: { // WrappedKeyMaterial Union: only one key present
94
94
  * Tr31KeyBlock: "STRING_VALUE",
95
+ * DiffieHellmanSymmetricKey: { // EcdhDerivationAttributes
96
+ * CertificateAuthorityPublicKeyIdentifier: "STRING_VALUE", // required
97
+ * PublicKeyCertificate: "STRING_VALUE", // required
98
+ * KeyAlgorithm: "TDES_2KEY" || "TDES_3KEY" || "AES_128" || "AES_192" || "AES_256", // required
99
+ * KeyDerivationFunction: "NIST_SP800" || "ANSI_X963", // required
100
+ * KeyDerivationHashAlgorithm: "SHA_256" || "SHA_384" || "SHA_512", // required
101
+ * SharedInformation: "STRING_VALUE", // required
102
+ * },
95
103
  * },
96
104
  * KeyCheckValueAlgorithm: "STRING_VALUE",
97
105
  * },
@@ -99,6 +99,14 @@ declare const EncryptDataCommand_base: {
99
99
  * WrappedKey: { // WrappedKey
100
100
  * WrappedKeyMaterial: { // WrappedKeyMaterial Union: only one key present
101
101
  * Tr31KeyBlock: "STRING_VALUE",
102
+ * DiffieHellmanSymmetricKey: { // EcdhDerivationAttributes
103
+ * CertificateAuthorityPublicKeyIdentifier: "STRING_VALUE", // required
104
+ * PublicKeyCertificate: "STRING_VALUE", // required
105
+ * KeyAlgorithm: "TDES_2KEY" || "TDES_3KEY" || "AES_128" || "AES_192" || "AES_256", // required
106
+ * KeyDerivationFunction: "NIST_SP800" || "ANSI_X963", // required
107
+ * KeyDerivationHashAlgorithm: "SHA_256" || "SHA_384" || "SHA_512", // required
108
+ * SharedInformation: "STRING_VALUE", // required
109
+ * },
102
110
  * },
103
111
  * KeyCheckValueAlgorithm: "STRING_VALUE",
104
112
  * },
@@ -29,6 +29,7 @@ declare const GeneratePinDataCommand_base: {
29
29
  /**
30
30
  * <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>
31
31
  * <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>
32
+ * <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>
32
33
  * <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>
33
34
  * <p>
34
35
  * <b>Cross-account use</b>: This operation can't be used across different Amazon Web Services accounts.</p>
@@ -94,7 +95,21 @@ declare const GeneratePinDataCommand_base: {
94
95
  * },
95
96
  * PinDataLength: Number("int"),
96
97
  * PrimaryAccountNumber: "STRING_VALUE", // required
97
- * PinBlockFormat: "ISO_FORMAT_0" || "ISO_FORMAT_3", // required
98
+ * PinBlockFormat: "ISO_FORMAT_0" || "ISO_FORMAT_3" || "ISO_FORMAT_4", // required
99
+ * EncryptionWrappedKey: { // WrappedKey
100
+ * WrappedKeyMaterial: { // WrappedKeyMaterial Union: only one key present
101
+ * Tr31KeyBlock: "STRING_VALUE",
102
+ * DiffieHellmanSymmetricKey: { // EcdhDerivationAttributes
103
+ * CertificateAuthorityPublicKeyIdentifier: "STRING_VALUE", // required
104
+ * PublicKeyCertificate: "STRING_VALUE", // required
105
+ * KeyAlgorithm: "TDES_2KEY" || "TDES_3KEY" || "AES_128" || "AES_192" || "AES_256", // required
106
+ * KeyDerivationFunction: "NIST_SP800" || "ANSI_X963", // required
107
+ * KeyDerivationHashAlgorithm: "SHA_256" || "SHA_384" || "SHA_512", // required
108
+ * SharedInformation: "STRING_VALUE", // required
109
+ * },
110
+ * },
111
+ * KeyCheckValueAlgorithm: "STRING_VALUE",
112
+ * },
98
113
  * };
99
114
  * const command = new GeneratePinDataCommand(input);
100
115
  * const response = await client.send(command);
@@ -100,12 +100,28 @@ declare const ReEncryptDataCommand_base: {
100
100
  * IncomingWrappedKey: { // WrappedKey
101
101
  * WrappedKeyMaterial: { // WrappedKeyMaterial Union: only one key present
102
102
  * Tr31KeyBlock: "STRING_VALUE",
103
+ * DiffieHellmanSymmetricKey: { // EcdhDerivationAttributes
104
+ * CertificateAuthorityPublicKeyIdentifier: "STRING_VALUE", // required
105
+ * PublicKeyCertificate: "STRING_VALUE", // required
106
+ * KeyAlgorithm: "TDES_2KEY" || "TDES_3KEY" || "AES_128" || "AES_192" || "AES_256", // required
107
+ * KeyDerivationFunction: "NIST_SP800" || "ANSI_X963", // required
108
+ * KeyDerivationHashAlgorithm: "SHA_256" || "SHA_384" || "SHA_512", // required
109
+ * SharedInformation: "STRING_VALUE", // required
110
+ * },
103
111
  * },
104
112
  * KeyCheckValueAlgorithm: "STRING_VALUE",
105
113
  * },
106
114
  * OutgoingWrappedKey: {
107
115
  * WrappedKeyMaterial: {// Union: only one key present
108
116
  * Tr31KeyBlock: "STRING_VALUE",
117
+ * DiffieHellmanSymmetricKey: {
118
+ * CertificateAuthorityPublicKeyIdentifier: "STRING_VALUE", // required
119
+ * PublicKeyCertificate: "STRING_VALUE", // required
120
+ * KeyAlgorithm: "TDES_2KEY" || "TDES_3KEY" || "AES_128" || "AES_192" || "AES_256", // required
121
+ * KeyDerivationFunction: "NIST_SP800" || "ANSI_X963", // required
122
+ * KeyDerivationHashAlgorithm: "SHA_256" || "SHA_384" || "SHA_512", // required
123
+ * SharedInformation: "STRING_VALUE", // required
124
+ * },
109
125
  * },
110
126
  * KeyCheckValueAlgorithm: "STRING_VALUE",
111
127
  * },
@@ -28,8 +28,10 @@ declare const TranslatePinDataCommand_base: {
28
28
  };
29
29
  /**
30
30
  * <p>Translates encrypted PIN block from and to ISO 9564 formats 0,1,3,4. For more information, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/translate-pin-data.html">Translate PIN data</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>.</p>
31
- * <p>PIN block translation involves changing the encrytion of PIN block from one encryption key to another encryption key and changing PIN block format from one to another without PIN block data leaving Amazon Web Services Payment Cryptography. The encryption key transformation can be from PEK (Pin Encryption Key) to BDK (Base Derivation Key) for DUKPT or from BDK for DUKPT to PEK. Amazon Web Services Payment Cryptography supports <code>TDES</code> and <code>AES</code> key derivation type for DUKPT translations. </p>
32
- * <p>This operation also supports dynamic keys, allowing you to pass a dynamic PEK as a TR-31 WrappedKeyBlock. This can be used when key material is frequently rotated, such as during every card transaction, and there is need to avoid importing short-lived keys into Amazon Web Services Payment Cryptography. To translate PIN block using dynamic keys, the <code>keyARN</code> is the Key Encryption Key (KEK) of the TR-31 wrapped PEK. The incoming wrapped key shall have a key purpose of P0 with a mode of use of B or D. For more information, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/use-cases-acquirers-dynamickeys.html">Using Dynamic Keys</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>.</p>
31
+ * <p>PIN block translation involves changing a PIN block from one encryption key to another and optionally change its format. PIN block translation occurs entirely within the HSM boundary and PIN data never enters or leaves Amazon Web Services Payment Cryptography in clear text. The encryption key transformation can be from PEK (Pin Encryption Key) to BDK (Base Derivation Key) for DUKPT or from BDK for DUKPT to PEK.</p>
32
+ * <p>Amazon Web Services Payment Cryptography also supports use of dynamic keys and ECDH (Elliptic Curve Diffie-Hellman) based key exchange for this operation.</p>
33
+ * <p>Dynamic keys allow you to pass a PEK as a TR-31 WrappedKeyBlock. They can be used when key material is frequently rotated, such as during every card transaction, and there is need to avoid importing short-lived keys into Amazon Web Services Payment Cryptography. To translate PIN block using dynamic keys, the <code>keyARN</code> is the Key Encryption Key (KEK) of the TR-31 wrapped PEK. The incoming wrapped key shall have a key purpose of P0 with a mode of use of B or D. For more information, see <a href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/use-cases-acquirers-dynamickeys.html">Using Dynamic Keys</a> in the <i>Amazon Web Services Payment Cryptography User Guide</i>.</p>
34
+ * <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, which is translated to a PEK encrypted PIN block for use within the service. You can also use ECDH for reveal PIN, wherein the service translates the PIN block from PEK to a ECDH derived encryption key. 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>
33
35
  * <p>The allowed combinations of PIN block format translations are guided by PCI. It is important to note that not all encrypted PIN block formats (example, format 1) require PAN (Primary Account Number) as input. And as such, PIN block format that requires PAN (example, formats 0,3,4) cannot be translated to a format (format 1) that does not require a PAN for generation. </p>
34
36
  * <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>
35
37
  * <note>
@@ -97,12 +99,28 @@ declare const TranslatePinDataCommand_base: {
97
99
  * IncomingWrappedKey: { // WrappedKey
98
100
  * WrappedKeyMaterial: { // WrappedKeyMaterial Union: only one key present
99
101
  * Tr31KeyBlock: "STRING_VALUE",
102
+ * DiffieHellmanSymmetricKey: { // EcdhDerivationAttributes
103
+ * CertificateAuthorityPublicKeyIdentifier: "STRING_VALUE", // required
104
+ * PublicKeyCertificate: "STRING_VALUE", // required
105
+ * KeyAlgorithm: "TDES_2KEY" || "TDES_3KEY" || "AES_128" || "AES_192" || "AES_256", // required
106
+ * KeyDerivationFunction: "NIST_SP800" || "ANSI_X963", // required
107
+ * KeyDerivationHashAlgorithm: "SHA_256" || "SHA_384" || "SHA_512", // required
108
+ * SharedInformation: "STRING_VALUE", // required
109
+ * },
100
110
  * },
101
111
  * KeyCheckValueAlgorithm: "STRING_VALUE",
102
112
  * },
103
113
  * OutgoingWrappedKey: {
104
114
  * WrappedKeyMaterial: {// Union: only one key present
105
115
  * Tr31KeyBlock: "STRING_VALUE",
116
+ * DiffieHellmanSymmetricKey: {
117
+ * CertificateAuthorityPublicKeyIdentifier: "STRING_VALUE", // required
118
+ * PublicKeyCertificate: "STRING_VALUE", // required
119
+ * KeyAlgorithm: "TDES_2KEY" || "TDES_3KEY" || "AES_128" || "AES_192" || "AES_256", // required
120
+ * KeyDerivationFunction: "NIST_SP800" || "ANSI_X963", // required
121
+ * KeyDerivationHashAlgorithm: "SHA_256" || "SHA_384" || "SHA_512", // required
122
+ * SharedInformation: "STRING_VALUE", // required
123
+ * },
106
124
  * },
107
125
  * KeyCheckValueAlgorithm: "STRING_VALUE",
108
126
  * },
@@ -70,12 +70,26 @@ declare const VerifyPinDataCommand_base: {
70
70
  * },
71
71
  * EncryptedPinBlock: "STRING_VALUE", // required
72
72
  * PrimaryAccountNumber: "STRING_VALUE", // required
73
- * PinBlockFormat: "ISO_FORMAT_0" || "ISO_FORMAT_3", // required
73
+ * PinBlockFormat: "ISO_FORMAT_0" || "ISO_FORMAT_3" || "ISO_FORMAT_4", // required
74
74
  * PinDataLength: Number("int"),
75
75
  * DukptAttributes: { // DukptAttributes
76
76
  * KeySerialNumber: "STRING_VALUE", // required
77
77
  * DukptDerivationType: "TDES_2KEY" || "TDES_3KEY" || "AES_128" || "AES_192" || "AES_256", // required
78
78
  * },
79
+ * EncryptionWrappedKey: { // WrappedKey
80
+ * WrappedKeyMaterial: { // WrappedKeyMaterial Union: only one key present
81
+ * Tr31KeyBlock: "STRING_VALUE",
82
+ * DiffieHellmanSymmetricKey: { // EcdhDerivationAttributes
83
+ * CertificateAuthorityPublicKeyIdentifier: "STRING_VALUE", // required
84
+ * PublicKeyCertificate: "STRING_VALUE", // required
85
+ * KeyAlgorithm: "TDES_2KEY" || "TDES_3KEY" || "AES_128" || "AES_192" || "AES_256", // required
86
+ * KeyDerivationFunction: "NIST_SP800" || "ANSI_X963", // required
87
+ * KeyDerivationHashAlgorithm: "SHA_256" || "SHA_384" || "SHA_512", // required
88
+ * SharedInformation: "STRING_VALUE", // required
89
+ * },
90
+ * },
91
+ * KeyCheckValueAlgorithm: "STRING_VALUE",
92
+ * },
79
93
  * };
80
94
  * const command = new VerifyPinDataCommand(input);
81
95
  * const response = await client.send(command);
@@ -863,11 +863,88 @@ export declare const KeyCheckValueAlgorithm: {
863
863
  * @public
864
864
  */
865
865
  export type KeyCheckValueAlgorithm = (typeof KeyCheckValueAlgorithm)[keyof typeof KeyCheckValueAlgorithm];
866
+ /**
867
+ * @public
868
+ * @enum
869
+ */
870
+ export declare const SymmetricKeyAlgorithm: {
871
+ readonly AES_128: "AES_128";
872
+ readonly AES_192: "AES_192";
873
+ readonly AES_256: "AES_256";
874
+ readonly TDES_2KEY: "TDES_2KEY";
875
+ readonly TDES_3KEY: "TDES_3KEY";
876
+ };
877
+ /**
878
+ * @public
879
+ */
880
+ export type SymmetricKeyAlgorithm = (typeof SymmetricKeyAlgorithm)[keyof typeof SymmetricKeyAlgorithm];
881
+ /**
882
+ * @public
883
+ * @enum
884
+ */
885
+ export declare const KeyDerivationFunction: {
886
+ readonly ANSI_X963: "ANSI_X963";
887
+ readonly NIST_SP800: "NIST_SP800";
888
+ };
889
+ /**
890
+ * @public
891
+ */
892
+ export type KeyDerivationFunction = (typeof KeyDerivationFunction)[keyof typeof KeyDerivationFunction];
893
+ /**
894
+ * @public
895
+ * @enum
896
+ */
897
+ export declare const KeyDerivationHashAlgorithm: {
898
+ readonly SHA_256: "SHA_256";
899
+ readonly SHA_384: "SHA_384";
900
+ readonly SHA_512: "SHA_512";
901
+ };
902
+ /**
903
+ * @public
904
+ */
905
+ export type KeyDerivationHashAlgorithm = (typeof KeyDerivationHashAlgorithm)[keyof typeof KeyDerivationHashAlgorithm];
906
+ /**
907
+ * <p>Parameters required to establish ECDH based key exchange.</p>
908
+ * @public
909
+ */
910
+ export interface EcdhDerivationAttributes {
911
+ /**
912
+ * <p>The <code>keyArn</code> of the certificate that signed the client's <code>PublicKeyCertificate</code>.</p>
913
+ * @public
914
+ */
915
+ CertificateAuthorityPublicKeyIdentifier: string | undefined;
916
+ /**
917
+ * <p>The client's public key certificate in PEM format (base64 encoded) to use for ECDH key derivation.</p>
918
+ * @public
919
+ */
920
+ PublicKeyCertificate: string | undefined;
921
+ /**
922
+ * <p>The key algorithm of the derived ECDH key.</p>
923
+ * @public
924
+ */
925
+ KeyAlgorithm: SymmetricKeyAlgorithm | undefined;
926
+ /**
927
+ * <p>The key derivation function to use for deriving a key using ECDH.</p>
928
+ * @public
929
+ */
930
+ KeyDerivationFunction: KeyDerivationFunction | undefined;
931
+ /**
932
+ * <p>The hash type to use for deriving a key using ECDH.</p>
933
+ * @public
934
+ */
935
+ KeyDerivationHashAlgorithm: KeyDerivationHashAlgorithm | undefined;
936
+ /**
937
+ * <p>A byte string containing information that binds the ECDH derived key to the two parties involved or to the context of the key.</p>
938
+ * <p>It may include details like identities of the two parties deriving the key, context of the operation, session IDs, and optionally a nonce. It must not contain zero bytes, and re-using shared information for multiple ECDH key derivations is not recommended.</p>
939
+ * @public
940
+ */
941
+ SharedInformation: string | undefined;
942
+ }
866
943
  /**
867
944
  * <p>Parameter information of a WrappedKeyBlock for encryption key exchange.</p>
868
945
  * @public
869
946
  */
870
- export type WrappedKeyMaterial = WrappedKeyMaterial.Tr31KeyBlockMember | WrappedKeyMaterial.$UnknownMember;
947
+ export type WrappedKeyMaterial = WrappedKeyMaterial.DiffieHellmanSymmetricKeyMember | WrappedKeyMaterial.Tr31KeyBlockMember | WrappedKeyMaterial.$UnknownMember;
871
948
  /**
872
949
  * @public
873
950
  */
@@ -878,6 +955,16 @@ export declare namespace WrappedKeyMaterial {
878
955
  */
879
956
  interface Tr31KeyBlockMember {
880
957
  Tr31KeyBlock: string;
958
+ DiffieHellmanSymmetricKey?: never;
959
+ $unknown?: never;
960
+ }
961
+ /**
962
+ * <p>The parameter information for deriving a ECDH shared key.</p>
963
+ * @public
964
+ */
965
+ interface DiffieHellmanSymmetricKeyMember {
966
+ Tr31KeyBlock?: never;
967
+ DiffieHellmanSymmetricKey: EcdhDerivationAttributes;
881
968
  $unknown?: never;
882
969
  }
883
970
  /**
@@ -885,10 +972,12 @@ export declare namespace WrappedKeyMaterial {
885
972
  */
886
973
  interface $UnknownMember {
887
974
  Tr31KeyBlock?: never;
975
+ DiffieHellmanSymmetricKey?: never;
888
976
  $unknown: [string, any];
889
977
  }
890
978
  interface Visitor<T> {
891
979
  Tr31KeyBlock: (value: string) => T;
980
+ DiffieHellmanSymmetricKey: (value: EcdhDerivationAttributes) => T;
892
981
  _: (name: string, value: any) => T;
893
982
  }
894
983
  const visit: <T>(value: WrappedKeyMaterial, visitor: Visitor<T>) => T;
@@ -2041,6 +2130,7 @@ export declare namespace PinGenerationAttributes {
2041
2130
  export declare const PinBlockFormatForPinData: {
2042
2131
  readonly ISO_FORMAT_0: "ISO_FORMAT_0";
2043
2132
  readonly ISO_FORMAT_3: "ISO_FORMAT_3";
2133
+ readonly ISO_FORMAT_4: "ISO_FORMAT_4";
2044
2134
  };
2045
2135
  /**
2046
2136
  * @public
@@ -2056,7 +2146,7 @@ export interface GeneratePinDataInput {
2056
2146
  */
2057
2147
  GenerationKeyIdentifier: string | undefined;
2058
2148
  /**
2059
- * <p>The <code>keyARN</code> of the PEK that Amazon Web Services Payment Cryptography uses to encrypt the PIN Block.</p>
2149
+ * <p>The <code>keyARN</code> of the PEK that Amazon Web Services Payment Cryptography uses to encrypt the PIN Block. For ECDH, it is the <code>keyARN</code> of the asymmetric ECC key.</p>
2060
2150
  * @public
2061
2151
  */
2062
2152
  EncryptionKeyIdentifier: string | undefined;
@@ -2082,6 +2172,11 @@ export interface GeneratePinDataInput {
2082
2172
  * @public
2083
2173
  */
2084
2174
  PinBlockFormat: PinBlockFormatForPinData | undefined;
2175
+ /**
2176
+ * <p>Parameter information of a WrappedKeyBlock for encryption key exchange.</p>
2177
+ * @public
2178
+ */
2179
+ EncryptionWrappedKey?: WrappedKey;
2085
2180
  }
2086
2181
  /**
2087
2182
  * <p>Parameters that are required to generate, translate, or verify PIN data.</p>
@@ -2141,7 +2236,7 @@ export interface GeneratePinDataOutput {
2141
2236
  */
2142
2237
  GenerationKeyCheckValue: string | undefined;
2143
2238
  /**
2144
- * <p>The <code>keyARN</code> of the PEK that Amazon Web Services Payment Cryptography uses for encrypted pin block generation.</p>
2239
+ * <p>The <code>keyARN</code> of the PEK that Amazon Web Services Payment Cryptography uses for encrypted pin block generation. For ECDH, it is the <code>keyARN</code> of the asymmetric ECC key.</p>
2145
2240
  * @public
2146
2241
  */
2147
2242
  EncryptionKeyArn: string | undefined;
@@ -2387,12 +2482,13 @@ export declare namespace TranslationIsoFormats {
2387
2482
  export interface TranslatePinDataInput {
2388
2483
  /**
2389
2484
  * <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>
2390
- * <p>When a WrappedKeyBlock is provided, this value will be the identifier to the key wrapping key for PIN block. Otherwise, it is the key identifier used to perform the operation.</p>
2485
+ * <p>For dynamic keys, it is the <code>keyARN</code> of KEK of the TR-31 wrapped PEK. For ECDH, it is the <code>keyARN</code> of the asymmetric ECC key.</p>
2391
2486
  * @public
2392
2487
  */
2393
2488
  IncomingKeyIdentifier: string | undefined;
2394
2489
  /**
2395
2490
  * <p>The <code>keyARN</code> of the encryption key for encrypting outgoing PIN block data. This key type can be PEK or BDK.</p>
2491
+ * <p>For ECDH, it is the <code>keyARN</code> of the asymmetric ECC key.</p>
2396
2492
  * @public
2397
2493
  */
2398
2494
  OutgoingKeyIdentifier: string | undefined;
@@ -2922,6 +3018,11 @@ export interface VerifyPinDataInput {
2922
3018
  * @public
2923
3019
  */
2924
3020
  DukptAttributes?: DukptAttributes;
3021
+ /**
3022
+ * <p>Parameter information of a WrappedKeyBlock for encryption key exchange.</p>
3023
+ * @public
3024
+ */
3025
+ EncryptionWrappedKey?: WrappedKey;
2925
3026
  }
2926
3027
  /**
2927
3028
  * @public
@@ -3018,6 +3119,10 @@ export declare const SymmetricEncryptionAttributesFilterSensitiveLog: (obj: Symm
3018
3119
  * @internal
3019
3120
  */
3020
3121
  export declare const EncryptionDecryptionAttributesFilterSensitiveLog: (obj: EncryptionDecryptionAttributes) => any;
3122
+ /**
3123
+ * @internal
3124
+ */
3125
+ export declare const EcdhDerivationAttributesFilterSensitiveLog: (obj: EcdhDerivationAttributes) => any;
3021
3126
  /**
3022
3127
  * @internal
3023
3128
  */
@@ -459,20 +459,59 @@ export declare const KeyCheckValueAlgorithm: {
459
459
  };
460
460
  export type KeyCheckValueAlgorithm =
461
461
  (typeof KeyCheckValueAlgorithm)[keyof typeof KeyCheckValueAlgorithm];
462
+ export declare const SymmetricKeyAlgorithm: {
463
+ readonly AES_128: "AES_128";
464
+ readonly AES_192: "AES_192";
465
+ readonly AES_256: "AES_256";
466
+ readonly TDES_2KEY: "TDES_2KEY";
467
+ readonly TDES_3KEY: "TDES_3KEY";
468
+ };
469
+ export type SymmetricKeyAlgorithm =
470
+ (typeof SymmetricKeyAlgorithm)[keyof typeof SymmetricKeyAlgorithm];
471
+ export declare const KeyDerivationFunction: {
472
+ readonly ANSI_X963: "ANSI_X963";
473
+ readonly NIST_SP800: "NIST_SP800";
474
+ };
475
+ export type KeyDerivationFunction =
476
+ (typeof KeyDerivationFunction)[keyof typeof KeyDerivationFunction];
477
+ export declare const KeyDerivationHashAlgorithm: {
478
+ readonly SHA_256: "SHA_256";
479
+ readonly SHA_384: "SHA_384";
480
+ readonly SHA_512: "SHA_512";
481
+ };
482
+ export type KeyDerivationHashAlgorithm =
483
+ (typeof KeyDerivationHashAlgorithm)[keyof typeof KeyDerivationHashAlgorithm];
484
+ export interface EcdhDerivationAttributes {
485
+ CertificateAuthorityPublicKeyIdentifier: string | undefined;
486
+ PublicKeyCertificate: string | undefined;
487
+ KeyAlgorithm: SymmetricKeyAlgorithm | undefined;
488
+ KeyDerivationFunction: KeyDerivationFunction | undefined;
489
+ KeyDerivationHashAlgorithm: KeyDerivationHashAlgorithm | undefined;
490
+ SharedInformation: string | undefined;
491
+ }
462
492
  export type WrappedKeyMaterial =
493
+ | WrappedKeyMaterial.DiffieHellmanSymmetricKeyMember
463
494
  | WrappedKeyMaterial.Tr31KeyBlockMember
464
495
  | WrappedKeyMaterial.$UnknownMember;
465
496
  export declare namespace WrappedKeyMaterial {
466
497
  interface Tr31KeyBlockMember {
467
498
  Tr31KeyBlock: string;
499
+ DiffieHellmanSymmetricKey?: never;
500
+ $unknown?: never;
501
+ }
502
+ interface DiffieHellmanSymmetricKeyMember {
503
+ Tr31KeyBlock?: never;
504
+ DiffieHellmanSymmetricKey: EcdhDerivationAttributes;
468
505
  $unknown?: never;
469
506
  }
470
507
  interface $UnknownMember {
471
508
  Tr31KeyBlock?: never;
509
+ DiffieHellmanSymmetricKey?: never;
472
510
  $unknown: [string, any];
473
511
  }
474
512
  interface Visitor<T> {
475
513
  Tr31KeyBlock: (value: string) => T;
514
+ DiffieHellmanSymmetricKey: (value: EcdhDerivationAttributes) => T;
476
515
  _: (name: string, value: any) => T;
477
516
  }
478
517
  const visit: <T>(value: WrappedKeyMaterial, visitor: Visitor<T>) => T;
@@ -949,6 +988,7 @@ export declare namespace PinGenerationAttributes {
949
988
  export declare const PinBlockFormatForPinData: {
950
989
  readonly ISO_FORMAT_0: "ISO_FORMAT_0";
951
990
  readonly ISO_FORMAT_3: "ISO_FORMAT_3";
991
+ readonly ISO_FORMAT_4: "ISO_FORMAT_4";
952
992
  };
953
993
  export type PinBlockFormatForPinData =
954
994
  (typeof PinBlockFormatForPinData)[keyof typeof PinBlockFormatForPinData];
@@ -959,6 +999,7 @@ export interface GeneratePinDataInput {
959
999
  PinDataLength?: number;
960
1000
  PrimaryAccountNumber: string | undefined;
961
1001
  PinBlockFormat: PinBlockFormatForPinData | undefined;
1002
+ EncryptionWrappedKey?: WrappedKey;
962
1003
  }
963
1004
  export type PinData =
964
1005
  | PinData.PinOffsetMember
@@ -1294,6 +1335,7 @@ export interface VerifyPinDataInput {
1294
1335
  PinBlockFormat: PinBlockFormatForPinData | undefined;
1295
1336
  PinDataLength?: number;
1296
1337
  DukptAttributes?: DukptAttributes;
1338
+ EncryptionWrappedKey?: WrappedKey;
1297
1339
  }
1298
1340
  export interface VerifyPinDataOutput {
1299
1341
  VerificationKeyArn: string | undefined;
@@ -1352,6 +1394,9 @@ export declare const SymmetricEncryptionAttributesFilterSensitiveLog: (
1352
1394
  export declare const EncryptionDecryptionAttributesFilterSensitiveLog: (
1353
1395
  obj: EncryptionDecryptionAttributes
1354
1396
  ) => any;
1397
+ export declare const EcdhDerivationAttributesFilterSensitiveLog: (
1398
+ obj: EcdhDerivationAttributes
1399
+ ) => any;
1355
1400
  export declare const WrappedKeyMaterialFilterSensitiveLog: (
1356
1401
  obj: WrappedKeyMaterial
1357
1402
  ) => any;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@aws-sdk/client-payment-cryptography-data",
3
3
  "description": "AWS SDK for JavaScript Payment Cryptography Data Client for Node.js, Browser and React Native",
4
- "version": "3.677.0",
4
+ "version": "3.678.0",
5
5
  "scripts": {
6
6
  "build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'",
7
7
  "build:cjs": "node ../../scripts/compilation/inline client-payment-cryptography-data",
@@ -20,19 +20,19 @@
20
20
  "dependencies": {
21
21
  "@aws-crypto/sha256-browser": "5.2.0",
22
22
  "@aws-crypto/sha256-js": "5.2.0",
23
- "@aws-sdk/client-sso-oidc": "3.677.0",
24
- "@aws-sdk/client-sts": "3.677.0",
25
- "@aws-sdk/core": "3.677.0",
26
- "@aws-sdk/credential-provider-node": "3.677.0",
23
+ "@aws-sdk/client-sso-oidc": "3.678.0",
24
+ "@aws-sdk/client-sts": "3.678.0",
25
+ "@aws-sdk/core": "3.678.0",
26
+ "@aws-sdk/credential-provider-node": "3.678.0",
27
27
  "@aws-sdk/middleware-host-header": "3.667.0",
28
28
  "@aws-sdk/middleware-logger": "3.667.0",
29
29
  "@aws-sdk/middleware-recursion-detection": "3.667.0",
30
- "@aws-sdk/middleware-user-agent": "3.677.0",
30
+ "@aws-sdk/middleware-user-agent": "3.678.0",
31
31
  "@aws-sdk/region-config-resolver": "3.667.0",
32
32
  "@aws-sdk/types": "3.667.0",
33
33
  "@aws-sdk/util-endpoints": "3.667.0",
34
34
  "@aws-sdk/util-user-agent-browser": "3.675.0",
35
- "@aws-sdk/util-user-agent-node": "3.677.0",
35
+ "@aws-sdk/util-user-agent-node": "3.678.0",
36
36
  "@smithy/config-resolver": "^3.0.9",
37
37
  "@smithy/core": "^2.4.8",
38
38
  "@smithy/fetch-http-handler": "^3.2.9",