aws-sdk-paymentcryptographydata 1.40.0 → 1.41.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f7a988cb691a76c341ff4752a33db0bf178fab283306971d706bd1d432391b87
4
- data.tar.gz: 1584efa94a364e93db46cfce48115cbb15a621c08442a87aeecdf3d2480ec9eb
3
+ metadata.gz: 1d4d6281b3b0f070359c045251c85d178c9313f41e9b08c4da673056f3b886ed
4
+ data.tar.gz: 1bc7ed971b2c2d9794f030b49cb19e10b3be96eb1ad9f71bb70c9be3d751a9ea
5
5
  SHA512:
6
- metadata.gz: cc11373d2c9562b9566a780d984c0d8d86570e138f92d9bb61b6055a753a372c5da88038ee71f1eb4c4703ac784f7e24546e8fbab39e4872fafb43d80b069825
7
- data.tar.gz: d86faadede30e90c059ae9dd6ae0c5ee316b2c942d9f82a0216975b2a54dab7e73614774f295bc56e75ddc2da2b3ba95dc8e1e7a28176d5286fac3a072ab26c4
6
+ metadata.gz: 992e61b5595680a082c3337edb27abc6ce692311ed055d999ad38395c811277b80d97b38fb6bce8e0542f7b382d0cfa8e09e3f30c3018094ec3405b1e651d3ea
7
+ data.tar.gz: 441ae30230bc96c32163930137d0c1b4f9db05ded2ba6cfa10a6eb367ab09fa083171440b1cbd67f1ca55223d219474a89ed571cb39aa501cd8671e47fe3c419
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.41.0 (2025-10-03)
5
+ ------------------
6
+
7
+ * Feature - Added a new API - translateKeyMaterial; allows keys wrapped by ECDH derived keys to be rewrapped under a static AES keyblock without first importing the key into the service.
8
+
4
9
  1.40.0 (2025-08-27)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.40.0
1
+ 1.41.0
@@ -921,8 +921,8 @@ module Aws::PaymentCryptographyData
921
921
  # You can use this operation to generate a DUPKT, CMAC, HMAC or EMV MAC
922
922
  # by setting generation attributes and algorithm to the associated
923
923
  # values. The MAC generation encryption key must have valid values for
924
- # `KeyUsage` such as `TR31_M7_HMAC_KEY` for HMAC generation, and they
925
- # key must have `KeyModesOfUse` set to `Generate` and `Verify`.
924
+ # `KeyUsage` such as `TR31_M7_HMAC_KEY` for HMAC generation, and the key
925
+ # must have `KeyModesOfUse` set to `Generate` and `Verify`.
926
926
  #
927
927
  # For information about valid keys for this operation, see
928
928
  # [Understanding key attributes][1] and [Key types for specific data
@@ -1241,15 +1241,15 @@ module Aws::PaymentCryptographyData
1241
1241
  # @option params [Integer] :pin_data_length
1242
1242
  # The length of PIN under generation.
1243
1243
  #
1244
- # @option params [required, String] :primary_account_number
1244
+ # @option params [String] :primary_account_number
1245
1245
  # The Primary Account Number (PAN), a unique identifier for a payment
1246
1246
  # credit or debit card that associates the card with a specific account
1247
1247
  # holder.
1248
1248
  #
1249
1249
  # @option params [required, String] :pin_block_format
1250
1250
  # The PIN encoding format for pin data generation as specified in ISO
1251
- # 9564. Amazon Web Services Payment Cryptography supports `ISO_Format_0`
1252
- # and `ISO_Format_3`.
1251
+ # 9564. Amazon Web Services Payment Cryptography supports
1252
+ # `ISO_Format_0`, `ISO_Format_3` and `ISO_Format_4`.
1253
1253
  #
1254
1254
  # The `ISO_Format_0` PIN block format is equivalent to the ANSI X9.8,
1255
1255
  # VISA-1, and ECI-1 PIN block formats. It is similar to a VISA-4 PIN
@@ -1258,6 +1258,10 @@ module Aws::PaymentCryptographyData
1258
1258
  # The `ISO_Format_3` PIN block format is the same as `ISO_Format_0`
1259
1259
  # except that the fill digits are random values from 10 to 15.
1260
1260
  #
1261
+ # The `ISO_Format_4` PIN block format is the only one supporting AES
1262
+ # encryption. It is similar to `ISO_Format_3` but doubles the pin block
1263
+ # length by padding with fill digit A and random values from 10 to 15.
1264
+ #
1261
1265
  # @option params [Types::WrappedKey] :encryption_wrapped_key
1262
1266
  # Parameter information of a WrappedKeyBlock for encryption key
1263
1267
  # exchange.
@@ -1308,8 +1312,8 @@ module Aws::PaymentCryptographyData
1308
1312
  # },
1309
1313
  # },
1310
1314
  # pin_data_length: 1,
1311
- # primary_account_number: "PrimaryAccountNumberType", # required
1312
- # pin_block_format: "ISO_FORMAT_0", # required, accepts ISO_FORMAT_0, ISO_FORMAT_3, ISO_FORMAT_4
1315
+ # primary_account_number: "PrimaryAccountNumberType",
1316
+ # pin_block_format: "ISO_FORMAT_0", # required, accepts ISO_FORMAT_0, ISO_FORMAT_1, ISO_FORMAT_3, ISO_FORMAT_4
1313
1317
  # encryption_wrapped_key: {
1314
1318
  # wrapped_key_material: { # required
1315
1319
  # tr_31_key_block: "Tr31WrappedKeyBlock",
@@ -1513,6 +1517,109 @@ module Aws::PaymentCryptographyData
1513
1517
  req.send_request(options)
1514
1518
  end
1515
1519
 
1520
+ # Translates an encryption key between different wrapping keys without
1521
+ # importing the key into Amazon Web Services Payment Cryptography.
1522
+ #
1523
+ # This operation can be used when key material is frequently rotated,
1524
+ # such as during every card transaction, and there is a need to avoid
1525
+ # importing short-lived keys into Amazon Web Services Payment
1526
+ # Cryptography. It translates short-lived transaction keys such as Pin
1527
+ # Encryption Key (PEK) generated for each transaction and wrapped with
1528
+ # an ECDH (Elliptic Curve Diffie-Hellman) derived wrapping key to
1529
+ # another KEK (Key Encryption Key) wrapping key.
1530
+ #
1531
+ # Before using this operation, you must first request the public key
1532
+ # certificate of the ECC key pair generated within Amazon Web Services
1533
+ # Payment Cryptography to establish an ECDH key agreement. In
1534
+ # `TranslateKeyData`, the service uses its own ECC key pair, public
1535
+ # certificate of receiving ECC key pair, and the key derivation
1536
+ # parameters to generate a derived key. The service uses this derived
1537
+ # key to unwrap the incoming transaction key received as a
1538
+ # TR31WrappedKeyBlock and re-wrap using a user provided KEK to generate
1539
+ # an outgoing Tr31WrappedKeyBlock. For more information on establishing
1540
+ # ECDH derived keys, see the [Creating keys][1] in the *Amazon Web
1541
+ # Services Payment Cryptography User Guide*.
1542
+ #
1543
+ # For information about valid keys for this operation, see
1544
+ # [Understanding key attributes][2] and [Key types for specific data
1545
+ # operations][3] in the *Amazon Web Services Payment Cryptography User
1546
+ # Guide*.
1547
+ #
1548
+ # **Cross-account use**: This operation can't be used across different
1549
+ # Amazon Web Services accounts.
1550
+ #
1551
+ # **Related operations:**
1552
+ #
1553
+ # * [CreateKey][4]
1554
+ #
1555
+ # * [GetPublicCertificate][5]
1556
+ #
1557
+ # * [ImportKey][6]
1558
+ #
1559
+ #
1560
+ #
1561
+ # [1]: https://docs.aws.amazon.com/payment-cryptography/latest/userguide/create-keys.html
1562
+ # [2]: https://docs.aws.amazon.com/payment-cryptography/latest/userguide/keys-validattributes.html
1563
+ # [3]: https://docs.aws.amazon.com/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html
1564
+ # [4]: https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_CreateKey.html
1565
+ # [5]: https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_GetPublicKeyCertificate.html
1566
+ # [6]: https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ImportKey.html
1567
+ #
1568
+ # @option params [required, Types::IncomingKeyMaterial] :incoming_key_material
1569
+ # Parameter information of the TR31WrappedKeyBlock containing the
1570
+ # transaction key.
1571
+ #
1572
+ # @option params [required, Types::OutgoingKeyMaterial] :outgoing_key_material
1573
+ # Parameter information of the wrapping key used to wrap the transaction
1574
+ # key in the outgoing TR31WrappedKeyBlock.
1575
+ #
1576
+ # @option params [String] :key_check_value_algorithm
1577
+ # The key check value (KCV) algorithm used for calculating the KCV.
1578
+ #
1579
+ # @return [Types::TranslateKeyMaterialOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1580
+ #
1581
+ # * {Types::TranslateKeyMaterialOutput#wrapped_key #wrapped_key} => Types::WrappedWorkingKey
1582
+ #
1583
+ # @example Request syntax with placeholder values
1584
+ #
1585
+ # resp = client.translate_key_material({
1586
+ # incoming_key_material: { # required
1587
+ # diffie_hellman_tr_31_key_block: {
1588
+ # private_key_identifier: "KeyArnOrKeyAliasType", # required
1589
+ # certificate_authority_public_key_identifier: "KeyArnOrKeyAliasType", # required
1590
+ # public_key_certificate: "CertificateType", # required
1591
+ # derive_key_algorithm: "TDES_2KEY", # required, accepts TDES_2KEY, TDES_3KEY, AES_128, AES_192, AES_256, HMAC_SHA256, HMAC_SHA384, HMAC_SHA512, HMAC_SHA224
1592
+ # key_derivation_function: "NIST_SP800", # required, accepts NIST_SP800, ANSI_X963
1593
+ # key_derivation_hash_algorithm: "SHA_256", # required, accepts SHA_256, SHA_384, SHA_512
1594
+ # derivation_data: { # required
1595
+ # shared_information: "SharedInformation",
1596
+ # },
1597
+ # wrapped_key_block: "Tr31WrappedKeyBlock", # required
1598
+ # },
1599
+ # },
1600
+ # outgoing_key_material: { # required
1601
+ # tr_31_key_block: {
1602
+ # wrapping_key_identifier: "KeyArnOrKeyAliasType", # required
1603
+ # },
1604
+ # },
1605
+ # key_check_value_algorithm: "CMAC", # accepts CMAC, ANSI_X9_24, HMAC, SHA_1
1606
+ # })
1607
+ #
1608
+ # @example Response structure
1609
+ #
1610
+ # resp.wrapped_key.wrapped_key_material #=> String
1611
+ # resp.wrapped_key.key_check_value #=> String
1612
+ # resp.wrapped_key.wrapped_key_material_format #=> String, one of "KEY_CRYPTOGRAM", "TR31_KEY_BLOCK", "TR34_KEY_BLOCK"
1613
+ #
1614
+ # @see http://docs.aws.amazon.com/goto/WebAPI/payment-cryptography-data-2022-02-03/TranslateKeyMaterial AWS API Documentation
1615
+ #
1616
+ # @overload translate_key_material(params = {})
1617
+ # @param [Hash] params ({})
1618
+ def translate_key_material(params = {}, options = {})
1619
+ req = build_request(:translate_key_material, params)
1620
+ req.send_request(options)
1621
+ end
1622
+
1516
1623
  # Translates encrypted PIN block from and to ISO 9564 formats 0,1,3,4.
1517
1624
  # For more information, see [Translate PIN data][1] in the *Amazon Web
1518
1625
  # Services Payment Cryptography User Guide*.
@@ -1545,7 +1652,7 @@ module Aws::PaymentCryptographyData
1545
1652
  # encrypted PIN block for use within the service. You can also use ECDH
1546
1653
  # for reveal PIN, wherein the service translates the PIN block from PEK
1547
1654
  # to a ECDH derived encryption key. For more information on establishing
1548
- # ECDH derived keys, see the [Generating keys][3] in the *Amazon Web
1655
+ # ECDH derived keys, see the [Creating keys][3] in the *Amazon Web
1549
1656
  # Services Payment Cryptography User Guide*.
1550
1657
  #
1551
1658
  # The allowed combinations of PIN block format translations are guided
@@ -2119,7 +2226,7 @@ module Aws::PaymentCryptographyData
2119
2226
  # The encrypted PIN block data that Amazon Web Services Payment
2120
2227
  # Cryptography verifies.
2121
2228
  #
2122
- # @option params [required, String] :primary_account_number
2229
+ # @option params [String] :primary_account_number
2123
2230
  # The Primary Account Number (PAN), a unique identifier for a payment
2124
2231
  # credit or debit card that associates the card with a specific account
2125
2232
  # holder.
@@ -2171,8 +2278,8 @@ module Aws::PaymentCryptographyData
2171
2278
  # },
2172
2279
  # },
2173
2280
  # encrypted_pin_block: "EncryptedPinBlockType", # required
2174
- # primary_account_number: "PrimaryAccountNumberType", # required
2175
- # pin_block_format: "ISO_FORMAT_0", # required, accepts ISO_FORMAT_0, ISO_FORMAT_3, ISO_FORMAT_4
2281
+ # primary_account_number: "PrimaryAccountNumberType",
2282
+ # pin_block_format: "ISO_FORMAT_0", # required, accepts ISO_FORMAT_0, ISO_FORMAT_1, ISO_FORMAT_3, ISO_FORMAT_4
2176
2283
  # pin_data_length: 1,
2177
2284
  # dukpt_attributes: {
2178
2285
  # key_serial_number: "HexLength16Or20Or24", # required
@@ -2228,7 +2335,7 @@ module Aws::PaymentCryptographyData
2228
2335
  tracer: tracer
2229
2336
  )
2230
2337
  context[:gem_name] = 'aws-sdk-paymentcryptographydata'
2231
- context[:gem_version] = '1.40.0'
2338
+ context[:gem_version] = '1.41.0'
2232
2339
  Seahorse::Client::Request.new(handlers, context)
2233
2340
  end
2234
2341
 
@@ -39,6 +39,7 @@ module Aws::PaymentCryptographyData
39
39
  DecryptDataInput = Shapes::StructureShape.new(name: 'DecryptDataInput')
40
40
  DecryptDataOutput = Shapes::StructureShape.new(name: 'DecryptDataOutput')
41
41
  DerivationMethodAttributes = Shapes::UnionShape.new(name: 'DerivationMethodAttributes')
42
+ DiffieHellmanDerivationData = Shapes::UnionShape.new(name: 'DiffieHellmanDerivationData')
42
43
  DiscoverDynamicCardVerificationCode = Shapes::StructureShape.new(name: 'DiscoverDynamicCardVerificationCode')
43
44
  DukptAttributes = Shapes::StructureShape.new(name: 'DukptAttributes')
44
45
  DukptDerivationAttributes = Shapes::StructureShape.new(name: 'DukptDerivationAttributes')
@@ -79,6 +80,8 @@ module Aws::PaymentCryptographyData
79
80
  Ibm3624PinOffset = Shapes::StructureShape.new(name: 'Ibm3624PinOffset')
80
81
  Ibm3624PinVerification = Shapes::StructureShape.new(name: 'Ibm3624PinVerification')
81
82
  Ibm3624RandomPin = Shapes::StructureShape.new(name: 'Ibm3624RandomPin')
83
+ IncomingDiffieHellmanTr31KeyBlock = Shapes::StructureShape.new(name: 'IncomingDiffieHellmanTr31KeyBlock')
84
+ IncomingKeyMaterial = Shapes::UnionShape.new(name: 'IncomingKeyMaterial')
82
85
  InitializationVectorType = Shapes::StringShape.new(name: 'InitializationVectorType')
83
86
  IntegerRangeBetween0And6 = Shapes::IntegerShape.new(name: 'IntegerRangeBetween0And6')
84
87
  IntegerRangeBetween3And5Type = Shapes::IntegerShape.new(name: 'IntegerRangeBetween3And5Type')
@@ -91,6 +94,7 @@ module Aws::PaymentCryptographyData
91
94
  KeyCheckValueAlgorithm = Shapes::StringShape.new(name: 'KeyCheckValueAlgorithm')
92
95
  KeyDerivationFunction = Shapes::StringShape.new(name: 'KeyDerivationFunction')
93
96
  KeyDerivationHashAlgorithm = Shapes::StringShape.new(name: 'KeyDerivationHashAlgorithm')
97
+ KeyMaterial = Shapes::StringShape.new(name: 'KeyMaterial')
94
98
  MacAlgorithm = Shapes::StringShape.new(name: 'MacAlgorithm')
95
99
  MacAlgorithmDukpt = Shapes::StructureShape.new(name: 'MacAlgorithmDukpt')
96
100
  MacAlgorithmEmv = Shapes::StructureShape.new(name: 'MacAlgorithmEmv')
@@ -101,6 +105,8 @@ module Aws::PaymentCryptographyData
101
105
  MasterCardAttributes = Shapes::StructureShape.new(name: 'MasterCardAttributes')
102
106
  MessageDataType = Shapes::StringShape.new(name: 'MessageDataType')
103
107
  NumberLengthEquals2 = Shapes::StringShape.new(name: 'NumberLengthEquals2')
108
+ OutgoingKeyMaterial = Shapes::UnionShape.new(name: 'OutgoingKeyMaterial')
109
+ OutgoingTr31KeyBlock = Shapes::StructureShape.new(name: 'OutgoingTr31KeyBlock')
104
110
  PaddingType = Shapes::StringShape.new(name: 'PaddingType')
105
111
  PinBlockFormatForEmvPinChange = Shapes::StringShape.new(name: 'PinBlockFormatForEmvPinChange')
106
112
  PinBlockFormatForPinData = Shapes::StringShape.new(name: 'PinBlockFormatForPinData')
@@ -139,6 +145,8 @@ module Aws::PaymentCryptographyData
139
145
  Tr31WrappedKeyBlock = Shapes::StringShape.new(name: 'Tr31WrappedKeyBlock')
140
146
  TrackDataType = Shapes::StringShape.new(name: 'TrackDataType')
141
147
  TransactionDataType = Shapes::StringShape.new(name: 'TransactionDataType')
148
+ TranslateKeyMaterialInput = Shapes::StructureShape.new(name: 'TranslateKeyMaterialInput')
149
+ TranslateKeyMaterialOutput = Shapes::StructureShape.new(name: 'TranslateKeyMaterialOutput')
142
150
  TranslatePinDataInput = Shapes::StructureShape.new(name: 'TranslatePinDataInput')
143
151
  TranslatePinDataOutput = Shapes::StructureShape.new(name: 'TranslatePinDataOutput')
144
152
  TranslationIsoFormats = Shapes::UnionShape.new(name: 'TranslationIsoFormats')
@@ -166,6 +174,8 @@ module Aws::PaymentCryptographyData
166
174
  VisaPinVerificationValue = Shapes::StructureShape.new(name: 'VisaPinVerificationValue')
167
175
  WrappedKey = Shapes::StructureShape.new(name: 'WrappedKey')
168
176
  WrappedKeyMaterial = Shapes::UnionShape.new(name: 'WrappedKeyMaterial')
177
+ WrappedKeyMaterialFormat = Shapes::StringShape.new(name: 'WrappedKeyMaterialFormat')
178
+ WrappedWorkingKey = Shapes::StructureShape.new(name: 'WrappedWorkingKey')
169
179
 
170
180
  AccessDeniedException.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "Message"))
171
181
  AccessDeniedException.struct_class = Types::AccessDeniedException
@@ -282,6 +292,12 @@ module Aws::PaymentCryptographyData
282
292
  DerivationMethodAttributes.add_member_subclass(:unknown, Types::DerivationMethodAttributes::Unknown)
283
293
  DerivationMethodAttributes.struct_class = Types::DerivationMethodAttributes
284
294
 
295
+ DiffieHellmanDerivationData.add_member(:shared_information, Shapes::ShapeRef.new(shape: SharedInformation, location_name: "SharedInformation"))
296
+ DiffieHellmanDerivationData.add_member(:unknown, Shapes::ShapeRef.new(shape: nil, location_name: 'unknown'))
297
+ DiffieHellmanDerivationData.add_member_subclass(:shared_information, Types::DiffieHellmanDerivationData::SharedInformation)
298
+ DiffieHellmanDerivationData.add_member_subclass(:unknown, Types::DiffieHellmanDerivationData::Unknown)
299
+ DiffieHellmanDerivationData.struct_class = Types::DiffieHellmanDerivationData
300
+
285
301
  DiscoverDynamicCardVerificationCode.add_member(:card_expiry_date, Shapes::ShapeRef.new(shape: CardExpiryDateType, required: true, location_name: "CardExpiryDate"))
286
302
  DiscoverDynamicCardVerificationCode.add_member(:unpredictable_number, Shapes::ShapeRef.new(shape: HexLengthBetween2And8, required: true, location_name: "UnpredictableNumber"))
287
303
  DiscoverDynamicCardVerificationCode.add_member(:application_transaction_counter, Shapes::ShapeRef.new(shape: HexLengthBetween2And4, required: true, location_name: "ApplicationTransactionCounter"))
@@ -415,7 +431,7 @@ module Aws::PaymentCryptographyData
415
431
  GeneratePinDataInput.add_member(:encryption_key_identifier, Shapes::ShapeRef.new(shape: KeyArnOrKeyAliasType, required: true, location_name: "EncryptionKeyIdentifier"))
416
432
  GeneratePinDataInput.add_member(:generation_attributes, Shapes::ShapeRef.new(shape: PinGenerationAttributes, required: true, location_name: "GenerationAttributes"))
417
433
  GeneratePinDataInput.add_member(:pin_data_length, Shapes::ShapeRef.new(shape: IntegerRangeBetween4And12, location_name: "PinDataLength"))
418
- GeneratePinDataInput.add_member(:primary_account_number, Shapes::ShapeRef.new(shape: PrimaryAccountNumberType, required: true, location_name: "PrimaryAccountNumber"))
434
+ GeneratePinDataInput.add_member(:primary_account_number, Shapes::ShapeRef.new(shape: PrimaryAccountNumberType, location_name: "PrimaryAccountNumber"))
419
435
  GeneratePinDataInput.add_member(:pin_block_format, Shapes::ShapeRef.new(shape: PinBlockFormatForPinData, required: true, location_name: "PinBlockFormat"))
420
436
  GeneratePinDataInput.add_member(:encryption_wrapped_key, Shapes::ShapeRef.new(shape: WrappedKey, location_name: "EncryptionWrappedKey"))
421
437
  GeneratePinDataInput.struct_class = Types::GeneratePinDataInput
@@ -456,6 +472,22 @@ module Aws::PaymentCryptographyData
456
472
  Ibm3624RandomPin.add_member(:pin_validation_data, Shapes::ShapeRef.new(shape: PinValidationDataType, required: true, location_name: "PinValidationData"))
457
473
  Ibm3624RandomPin.struct_class = Types::Ibm3624RandomPin
458
474
 
475
+ IncomingDiffieHellmanTr31KeyBlock.add_member(:private_key_identifier, Shapes::ShapeRef.new(shape: KeyArnOrKeyAliasType, required: true, location_name: "PrivateKeyIdentifier"))
476
+ IncomingDiffieHellmanTr31KeyBlock.add_member(:certificate_authority_public_key_identifier, Shapes::ShapeRef.new(shape: KeyArnOrKeyAliasType, required: true, location_name: "CertificateAuthorityPublicKeyIdentifier"))
477
+ IncomingDiffieHellmanTr31KeyBlock.add_member(:public_key_certificate, Shapes::ShapeRef.new(shape: CertificateType, required: true, location_name: "PublicKeyCertificate"))
478
+ IncomingDiffieHellmanTr31KeyBlock.add_member(:derive_key_algorithm, Shapes::ShapeRef.new(shape: SymmetricKeyAlgorithm, required: true, location_name: "DeriveKeyAlgorithm"))
479
+ IncomingDiffieHellmanTr31KeyBlock.add_member(:key_derivation_function, Shapes::ShapeRef.new(shape: KeyDerivationFunction, required: true, location_name: "KeyDerivationFunction"))
480
+ IncomingDiffieHellmanTr31KeyBlock.add_member(:key_derivation_hash_algorithm, Shapes::ShapeRef.new(shape: KeyDerivationHashAlgorithm, required: true, location_name: "KeyDerivationHashAlgorithm"))
481
+ IncomingDiffieHellmanTr31KeyBlock.add_member(:derivation_data, Shapes::ShapeRef.new(shape: DiffieHellmanDerivationData, required: true, location_name: "DerivationData"))
482
+ IncomingDiffieHellmanTr31KeyBlock.add_member(:wrapped_key_block, Shapes::ShapeRef.new(shape: Tr31WrappedKeyBlock, required: true, location_name: "WrappedKeyBlock"))
483
+ IncomingDiffieHellmanTr31KeyBlock.struct_class = Types::IncomingDiffieHellmanTr31KeyBlock
484
+
485
+ IncomingKeyMaterial.add_member(:diffie_hellman_tr_31_key_block, Shapes::ShapeRef.new(shape: IncomingDiffieHellmanTr31KeyBlock, location_name: "DiffieHellmanTr31KeyBlock"))
486
+ IncomingKeyMaterial.add_member(:unknown, Shapes::ShapeRef.new(shape: nil, location_name: 'unknown'))
487
+ IncomingKeyMaterial.add_member_subclass(:diffie_hellman_tr_31_key_block, Types::IncomingKeyMaterial::DiffieHellmanTr31KeyBlock)
488
+ IncomingKeyMaterial.add_member_subclass(:unknown, Types::IncomingKeyMaterial::Unknown)
489
+ IncomingKeyMaterial.struct_class = Types::IncomingKeyMaterial
490
+
459
491
  InternalServerException.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "Message"))
460
492
  InternalServerException.struct_class = Types::InternalServerException
461
493
 
@@ -491,6 +523,15 @@ module Aws::PaymentCryptographyData
491
523
  MasterCardAttributes.add_member(:application_cryptogram, Shapes::ShapeRef.new(shape: ApplicationCryptogramType, required: true, location_name: "ApplicationCryptogram"))
492
524
  MasterCardAttributes.struct_class = Types::MasterCardAttributes
493
525
 
526
+ OutgoingKeyMaterial.add_member(:tr_31_key_block, Shapes::ShapeRef.new(shape: OutgoingTr31KeyBlock, location_name: "Tr31KeyBlock"))
527
+ OutgoingKeyMaterial.add_member(:unknown, Shapes::ShapeRef.new(shape: nil, location_name: 'unknown'))
528
+ OutgoingKeyMaterial.add_member_subclass(:tr_31_key_block, Types::OutgoingKeyMaterial::Tr31KeyBlock)
529
+ OutgoingKeyMaterial.add_member_subclass(:unknown, Types::OutgoingKeyMaterial::Unknown)
530
+ OutgoingKeyMaterial.struct_class = Types::OutgoingKeyMaterial
531
+
532
+ OutgoingTr31KeyBlock.add_member(:wrapping_key_identifier, Shapes::ShapeRef.new(shape: KeyArnOrKeyAliasType, required: true, location_name: "WrappingKeyIdentifier"))
533
+ OutgoingTr31KeyBlock.struct_class = Types::OutgoingTr31KeyBlock
534
+
494
535
  PinData.add_member(:pin_offset, Shapes::ShapeRef.new(shape: PinOffsetType, location_name: "PinOffset"))
495
536
  PinData.add_member(:verification_value, Shapes::ShapeRef.new(shape: VerificationValueType, location_name: "VerificationValue"))
496
537
  PinData.add_member(:unknown, Shapes::ShapeRef.new(shape: nil, location_name: 'unknown'))
@@ -602,6 +643,14 @@ module Aws::PaymentCryptographyData
602
643
  ThrottlingException.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "Message"))
603
644
  ThrottlingException.struct_class = Types::ThrottlingException
604
645
 
646
+ TranslateKeyMaterialInput.add_member(:incoming_key_material, Shapes::ShapeRef.new(shape: IncomingKeyMaterial, required: true, location_name: "IncomingKeyMaterial"))
647
+ TranslateKeyMaterialInput.add_member(:outgoing_key_material, Shapes::ShapeRef.new(shape: OutgoingKeyMaterial, required: true, location_name: "OutgoingKeyMaterial"))
648
+ TranslateKeyMaterialInput.add_member(:key_check_value_algorithm, Shapes::ShapeRef.new(shape: KeyCheckValueAlgorithm, location_name: "KeyCheckValueAlgorithm"))
649
+ TranslateKeyMaterialInput.struct_class = Types::TranslateKeyMaterialInput
650
+
651
+ TranslateKeyMaterialOutput.add_member(:wrapped_key, Shapes::ShapeRef.new(shape: WrappedWorkingKey, required: true, location_name: "WrappedKey"))
652
+ TranslateKeyMaterialOutput.struct_class = Types::TranslateKeyMaterialOutput
653
+
605
654
  TranslatePinDataInput.add_member(:incoming_key_identifier, Shapes::ShapeRef.new(shape: KeyArnOrKeyAliasType, required: true, location_name: "IncomingKeyIdentifier"))
606
655
  TranslatePinDataInput.add_member(:outgoing_key_identifier, Shapes::ShapeRef.new(shape: KeyArnOrKeyAliasType, required: true, location_name: "OutgoingKeyIdentifier"))
607
656
  TranslatePinDataInput.add_member(:incoming_translation_attributes, Shapes::ShapeRef.new(shape: TranslationIsoFormats, required: true, location_name: "IncomingTranslationAttributes"))
@@ -687,7 +736,7 @@ module Aws::PaymentCryptographyData
687
736
  VerifyPinDataInput.add_member(:encryption_key_identifier, Shapes::ShapeRef.new(shape: KeyArnOrKeyAliasType, required: true, location_name: "EncryptionKeyIdentifier"))
688
737
  VerifyPinDataInput.add_member(:verification_attributes, Shapes::ShapeRef.new(shape: PinVerificationAttributes, required: true, location_name: "VerificationAttributes"))
689
738
  VerifyPinDataInput.add_member(:encrypted_pin_block, Shapes::ShapeRef.new(shape: EncryptedPinBlockType, required: true, location_name: "EncryptedPinBlock"))
690
- VerifyPinDataInput.add_member(:primary_account_number, Shapes::ShapeRef.new(shape: PrimaryAccountNumberType, required: true, location_name: "PrimaryAccountNumber"))
739
+ VerifyPinDataInput.add_member(:primary_account_number, Shapes::ShapeRef.new(shape: PrimaryAccountNumberType, location_name: "PrimaryAccountNumber"))
691
740
  VerifyPinDataInput.add_member(:pin_block_format, Shapes::ShapeRef.new(shape: PinBlockFormatForPinData, required: true, location_name: "PinBlockFormat"))
692
741
  VerifyPinDataInput.add_member(:pin_data_length, Shapes::ShapeRef.new(shape: IntegerRangeBetween4And12, location_name: "PinDataLength"))
693
742
  VerifyPinDataInput.add_member(:dukpt_attributes, Shapes::ShapeRef.new(shape: DukptAttributes, location_name: "DukptAttributes"))
@@ -737,6 +786,11 @@ module Aws::PaymentCryptographyData
737
786
  WrappedKeyMaterial.add_member_subclass(:unknown, Types::WrappedKeyMaterial::Unknown)
738
787
  WrappedKeyMaterial.struct_class = Types::WrappedKeyMaterial
739
788
 
789
+ WrappedWorkingKey.add_member(:wrapped_key_material, Shapes::ShapeRef.new(shape: KeyMaterial, required: true, location_name: "WrappedKeyMaterial"))
790
+ WrappedWorkingKey.add_member(:key_check_value, Shapes::ShapeRef.new(shape: KeyCheckValue, required: true, location_name: "KeyCheckValue"))
791
+ WrappedWorkingKey.add_member(:wrapped_key_material_format, Shapes::ShapeRef.new(shape: WrappedKeyMaterialFormat, required: true, location_name: "WrappedKeyMaterialFormat"))
792
+ WrappedWorkingKey.struct_class = Types::WrappedWorkingKey
793
+
740
794
 
741
795
  # @api private
742
796
  API = Seahorse::Model::Api.new.tap do |api|
@@ -847,6 +901,19 @@ module Aws::PaymentCryptographyData
847
901
  o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
848
902
  end)
849
903
 
904
+ api.add_operation(:translate_key_material, Seahorse::Model::Operation.new.tap do |o|
905
+ o.name = "TranslateKeyMaterial"
906
+ o.http_method = "POST"
907
+ o.http_request_uri = "/keymaterial/translate"
908
+ o.input = Shapes::ShapeRef.new(shape: TranslateKeyMaterialInput)
909
+ o.output = Shapes::ShapeRef.new(shape: TranslateKeyMaterialOutput)
910
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
911
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
912
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
913
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
914
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
915
+ end)
916
+
850
917
  api.add_operation(:translate_pin_data, Seahorse::Model::Operation.new.tap do |o|
851
918
  o.name = "TranslatePinData"
852
919
  o.http_method = "POST"
@@ -522,6 +522,35 @@ module Aws::PaymentCryptographyData
522
522
  class Unknown < DerivationMethodAttributes; end
523
523
  end
524
524
 
525
+ # The shared information used when deriving a key using ECDH.
526
+ #
527
+ # @note DiffieHellmanDerivationData is a union - when making an API calls you must set exactly one of the members.
528
+ #
529
+ # @!attribute [rw] shared_information
530
+ # A string containing information that binds the ECDH derived key to
531
+ # the two parties involved or to the context of the key.
532
+ #
533
+ # It may include details like identities of the two parties deriving
534
+ # the key, context of the operation, session IDs, and optionally a
535
+ # nonce. It must not contain zero bytes. It is not recommended to
536
+ # reuse shared information for multiple ECDH key derivations, as it
537
+ # could result in derived key material being the same across different
538
+ # derivations.
539
+ # @return [String]
540
+ #
541
+ # @see http://docs.aws.amazon.com/goto/WebAPI/payment-cryptography-data-2022-02-03/DiffieHellmanDerivationData AWS API Documentation
542
+ #
543
+ class DiffieHellmanDerivationData < Struct.new(
544
+ :shared_information,
545
+ :unknown)
546
+ SENSITIVE = []
547
+ include Aws::Structure
548
+ include Aws::Structure::Union
549
+
550
+ class SharedInformation < DiffieHellmanDerivationData; end
551
+ class Unknown < DiffieHellmanDerivationData; end
552
+ end
553
+
525
554
  # Parameters that are required to generate or verify dCVC (Dynamic Card
526
555
  # Verification Code).
527
556
  #
@@ -757,7 +786,7 @@ module Aws::PaymentCryptographyData
757
786
  :key_derivation_function,
758
787
  :key_derivation_hash_algorithm,
759
788
  :shared_information)
760
- SENSITIVE = [:public_key_certificate]
789
+ SENSITIVE = []
761
790
  include Aws::Structure
762
791
  end
763
792
 
@@ -1269,7 +1298,7 @@ module Aws::PaymentCryptographyData
1269
1298
  # @!attribute [rw] pin_block_format
1270
1299
  # The PIN encoding format for pin data generation as specified in ISO
1271
1300
  # 9564. Amazon Web Services Payment Cryptography supports
1272
- # `ISO_Format_0` and `ISO_Format_3`.
1301
+ # `ISO_Format_0`, `ISO_Format_3` and `ISO_Format_4`.
1273
1302
  #
1274
1303
  # The `ISO_Format_0` PIN block format is equivalent to the ANSI X9.8,
1275
1304
  # VISA-1, and ECI-1 PIN block formats. It is similar to a VISA-4 PIN
@@ -1277,6 +1306,11 @@ module Aws::PaymentCryptographyData
1277
1306
  #
1278
1307
  # The `ISO_Format_3` PIN block format is the same as `ISO_Format_0`
1279
1308
  # except that the fill digits are random values from 10 to 15.
1309
+ #
1310
+ # The `ISO_Format_4` PIN block format is the only one supporting AES
1311
+ # encryption. It is similar to `ISO_Format_3` but doubles the pin
1312
+ # block length by padding with fill digit A and random values from 10
1313
+ # to 15.
1280
1314
  # @return [String]
1281
1315
  #
1282
1316
  # @!attribute [rw] encryption_wrapped_key
@@ -1504,6 +1538,82 @@ module Aws::PaymentCryptographyData
1504
1538
  include Aws::Structure
1505
1539
  end
1506
1540
 
1541
+ # Parameter information of a TR31KeyBlock wrapped using an ECDH derived
1542
+ # key.
1543
+ #
1544
+ # @!attribute [rw] private_key_identifier
1545
+ # The `keyARN` of the asymmetric ECC key pair.
1546
+ # @return [String]
1547
+ #
1548
+ # @!attribute [rw] certificate_authority_public_key_identifier
1549
+ # The `keyArn` of the certificate that signed the client's
1550
+ # `PublicKeyCertificate`.
1551
+ # @return [String]
1552
+ #
1553
+ # @!attribute [rw] public_key_certificate
1554
+ # The client's public key certificate in PEM format (base64 encoded)
1555
+ # to use for ECDH key derivation.
1556
+ # @return [String]
1557
+ #
1558
+ # @!attribute [rw] derive_key_algorithm
1559
+ # The key algorithm of the derived ECDH key.
1560
+ # @return [String]
1561
+ #
1562
+ # @!attribute [rw] key_derivation_function
1563
+ # The key derivation function to use for deriving a key using ECDH.
1564
+ # @return [String]
1565
+ #
1566
+ # @!attribute [rw] key_derivation_hash_algorithm
1567
+ # The hash type to use for deriving a key using ECDH.
1568
+ # @return [String]
1569
+ #
1570
+ # @!attribute [rw] derivation_data
1571
+ # The shared information used when deriving a key using ECDH.
1572
+ # @return [Types::DiffieHellmanDerivationData]
1573
+ #
1574
+ # @!attribute [rw] wrapped_key_block
1575
+ # The WrappedKeyBlock containing the transaction key wrapped using an
1576
+ # ECDH dervied key.
1577
+ # @return [String]
1578
+ #
1579
+ # @see http://docs.aws.amazon.com/goto/WebAPI/payment-cryptography-data-2022-02-03/IncomingDiffieHellmanTr31KeyBlock AWS API Documentation
1580
+ #
1581
+ class IncomingDiffieHellmanTr31KeyBlock < Struct.new(
1582
+ :private_key_identifier,
1583
+ :certificate_authority_public_key_identifier,
1584
+ :public_key_certificate,
1585
+ :derive_key_algorithm,
1586
+ :key_derivation_function,
1587
+ :key_derivation_hash_algorithm,
1588
+ :derivation_data,
1589
+ :wrapped_key_block)
1590
+ SENSITIVE = [:wrapped_key_block]
1591
+ include Aws::Structure
1592
+ end
1593
+
1594
+ # Parameter information of the incoming WrappedKeyBlock containing the
1595
+ # transaction key.
1596
+ #
1597
+ # @note IncomingKeyMaterial is a union - when making an API calls you must set exactly one of the members.
1598
+ #
1599
+ # @!attribute [rw] diffie_hellman_tr_31_key_block
1600
+ # Parameter information of the TR31WrappedKeyBlock containing the
1601
+ # transaction key wrapped using an ECDH dervied key.
1602
+ # @return [Types::IncomingDiffieHellmanTr31KeyBlock]
1603
+ #
1604
+ # @see http://docs.aws.amazon.com/goto/WebAPI/payment-cryptography-data-2022-02-03/IncomingKeyMaterial AWS API Documentation
1605
+ #
1606
+ class IncomingKeyMaterial < Struct.new(
1607
+ :diffie_hellman_tr_31_key_block,
1608
+ :unknown)
1609
+ SENSITIVE = []
1610
+ include Aws::Structure
1611
+ include Aws::Structure::Union
1612
+
1613
+ class DiffieHellmanTr31KeyBlock < IncomingKeyMaterial; end
1614
+ class Unknown < IncomingKeyMaterial; end
1615
+ end
1616
+
1507
1617
  # The request processing has failed because of an unknown error,
1508
1618
  # exception, or failure.
1509
1619
  #
@@ -1672,6 +1782,44 @@ module Aws::PaymentCryptographyData
1672
1782
  include Aws::Structure
1673
1783
  end
1674
1784
 
1785
+ # Parameter information of the outgoing TR31WrappedKeyBlock containing
1786
+ # the transaction key.
1787
+ #
1788
+ # @note OutgoingKeyMaterial is a union - when making an API calls you must set exactly one of the members.
1789
+ #
1790
+ # @!attribute [rw] tr_31_key_block
1791
+ # Parameter information of the TR31WrappedKeyBlock containing the
1792
+ # transaction key wrapped using a KEK.
1793
+ # @return [Types::OutgoingTr31KeyBlock]
1794
+ #
1795
+ # @see http://docs.aws.amazon.com/goto/WebAPI/payment-cryptography-data-2022-02-03/OutgoingKeyMaterial AWS API Documentation
1796
+ #
1797
+ class OutgoingKeyMaterial < Struct.new(
1798
+ :tr_31_key_block,
1799
+ :unknown)
1800
+ SENSITIVE = []
1801
+ include Aws::Structure
1802
+ include Aws::Structure::Union
1803
+
1804
+ class Tr31KeyBlock < OutgoingKeyMaterial; end
1805
+ class Unknown < OutgoingKeyMaterial; end
1806
+ end
1807
+
1808
+ # Parameter information of the TR31WrappedKeyBlock containing the
1809
+ # transaction key wrapped using a KEK.
1810
+ #
1811
+ # @!attribute [rw] wrapping_key_identifier
1812
+ # The `keyARN` of the KEK used to wrap the transaction key.
1813
+ # @return [String]
1814
+ #
1815
+ # @see http://docs.aws.amazon.com/goto/WebAPI/payment-cryptography-data-2022-02-03/OutgoingTr31KeyBlock AWS API Documentation
1816
+ #
1817
+ class OutgoingTr31KeyBlock < Struct.new(
1818
+ :wrapping_key_identifier)
1819
+ SENSITIVE = []
1820
+ include Aws::Structure
1821
+ end
1822
+
1675
1823
  # Parameters that are required to generate, translate, or verify PIN
1676
1824
  # data.
1677
1825
  #
@@ -2161,6 +2309,42 @@ module Aws::PaymentCryptographyData
2161
2309
  include Aws::Structure
2162
2310
  end
2163
2311
 
2312
+ # @!attribute [rw] incoming_key_material
2313
+ # Parameter information of the TR31WrappedKeyBlock containing the
2314
+ # transaction key.
2315
+ # @return [Types::IncomingKeyMaterial]
2316
+ #
2317
+ # @!attribute [rw] outgoing_key_material
2318
+ # Parameter information of the wrapping key used to wrap the
2319
+ # transaction key in the outgoing TR31WrappedKeyBlock.
2320
+ # @return [Types::OutgoingKeyMaterial]
2321
+ #
2322
+ # @!attribute [rw] key_check_value_algorithm
2323
+ # The key check value (KCV) algorithm used for calculating the KCV.
2324
+ # @return [String]
2325
+ #
2326
+ # @see http://docs.aws.amazon.com/goto/WebAPI/payment-cryptography-data-2022-02-03/TranslateKeyMaterialInput AWS API Documentation
2327
+ #
2328
+ class TranslateKeyMaterialInput < Struct.new(
2329
+ :incoming_key_material,
2330
+ :outgoing_key_material,
2331
+ :key_check_value_algorithm)
2332
+ SENSITIVE = []
2333
+ include Aws::Structure
2334
+ end
2335
+
2336
+ # @!attribute [rw] wrapped_key
2337
+ # The outgoing KEK wrapped TR31WrappedKeyBlock.
2338
+ # @return [Types::WrappedWorkingKey]
2339
+ #
2340
+ # @see http://docs.aws.amazon.com/goto/WebAPI/payment-cryptography-data-2022-02-03/TranslateKeyMaterialOutput AWS API Documentation
2341
+ #
2342
+ class TranslateKeyMaterialOutput < Struct.new(
2343
+ :wrapped_key)
2344
+ SENSITIVE = []
2345
+ include Aws::Structure
2346
+ end
2347
+
2164
2348
  # @!attribute [rw] incoming_key_identifier
2165
2349
  # The `keyARN` of the encryption key under which incoming PIN block
2166
2350
  # data is encrypted. This key type can be PEK or BDK.
@@ -2863,6 +3047,40 @@ module Aws::PaymentCryptographyData
2863
3047
  class Unknown < WrappedKeyMaterial; end
2864
3048
  end
2865
3049
 
3050
+ # The parameter information of the outgoing wrapped key block.
3051
+ #
3052
+ # @!attribute [rw] wrapped_key_material
3053
+ # The wrapped key block of the outgoing transaction key.
3054
+ # @return [String]
3055
+ #
3056
+ # @!attribute [rw] key_check_value
3057
+ # The key check value (KCV) of the key contained within the outgoing
3058
+ # TR31WrappedKeyBlock.
3059
+ #
3060
+ # The KCV is used to check if all parties holding a given key have the
3061
+ # same key or to detect that a key has changed. For more information
3062
+ # on KCV, see [KCV][1] in the *Amazon Web Services Payment
3063
+ # Cryptography User Guide*.
3064
+ #
3065
+ #
3066
+ #
3067
+ # [1]: https://docs.aws.amazon.com/payment-cryptography/latest/userguide/terminology.html#terms.kcv
3068
+ # @return [String]
3069
+ #
3070
+ # @!attribute [rw] wrapped_key_material_format
3071
+ # The key block format of the wrapped key.
3072
+ # @return [String]
3073
+ #
3074
+ # @see http://docs.aws.amazon.com/goto/WebAPI/payment-cryptography-data-2022-02-03/WrappedWorkingKey AWS API Documentation
3075
+ #
3076
+ class WrappedWorkingKey < Struct.new(
3077
+ :wrapped_key_material,
3078
+ :key_check_value,
3079
+ :wrapped_key_material_format)
3080
+ SENSITIVE = [:wrapped_key_material]
3081
+ include Aws::Structure
3082
+ end
3083
+
2866
3084
  end
2867
3085
  end
2868
3086
 
@@ -55,7 +55,7 @@ module Aws::PaymentCryptographyData
55
55
  autoload :EndpointProvider, 'aws-sdk-paymentcryptographydata/endpoint_provider'
56
56
  autoload :Endpoints, 'aws-sdk-paymentcryptographydata/endpoints'
57
57
 
58
- GEM_VERSION = '1.40.0'
58
+ GEM_VERSION = '1.41.0'
59
59
 
60
60
  end
61
61
 
data/sig/client.rbs CHANGED
@@ -384,8 +384,8 @@ module Aws
384
384
  }?
385
385
  },
386
386
  ?pin_data_length: ::Integer,
387
- primary_account_number: ::String,
388
- pin_block_format: ("ISO_FORMAT_0" | "ISO_FORMAT_3" | "ISO_FORMAT_4"),
387
+ ?primary_account_number: ::String,
388
+ pin_block_format: ("ISO_FORMAT_0" | "ISO_FORMAT_1" | "ISO_FORMAT_3" | "ISO_FORMAT_4"),
389
389
  ?encryption_wrapped_key: {
390
390
  wrapped_key_material: {
391
391
  tr_31_key_block: ::String?,
@@ -473,6 +473,35 @@ module Aws
473
473
  ) -> _ReEncryptDataResponseSuccess
474
474
  | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _ReEncryptDataResponseSuccess
475
475
 
476
+ interface _TranslateKeyMaterialResponseSuccess
477
+ include ::Seahorse::Client::_ResponseSuccess[Types::TranslateKeyMaterialOutput]
478
+ def wrapped_key: () -> Types::WrappedWorkingKey
479
+ end
480
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/PaymentCryptographyData/Client.html#translate_key_material-instance_method
481
+ def translate_key_material: (
482
+ incoming_key_material: {
483
+ diffie_hellman_tr_31_key_block: {
484
+ private_key_identifier: ::String,
485
+ certificate_authority_public_key_identifier: ::String,
486
+ public_key_certificate: ::String,
487
+ derive_key_algorithm: ("TDES_2KEY" | "TDES_3KEY" | "AES_128" | "AES_192" | "AES_256" | "HMAC_SHA256" | "HMAC_SHA384" | "HMAC_SHA512" | "HMAC_SHA224"),
488
+ key_derivation_function: ("NIST_SP800" | "ANSI_X963"),
489
+ key_derivation_hash_algorithm: ("SHA_256" | "SHA_384" | "SHA_512"),
490
+ derivation_data: {
491
+ shared_information: ::String?
492
+ },
493
+ wrapped_key_block: ::String
494
+ }?
495
+ },
496
+ outgoing_key_material: {
497
+ tr_31_key_block: {
498
+ wrapping_key_identifier: ::String
499
+ }?
500
+ },
501
+ ?key_check_value_algorithm: ("CMAC" | "ANSI_X9_24" | "HMAC" | "SHA_1")
502
+ ) -> _TranslateKeyMaterialResponseSuccess
503
+ | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _TranslateKeyMaterialResponseSuccess
504
+
476
505
  interface _TranslatePinDataResponseSuccess
477
506
  include ::Seahorse::Client::_ResponseSuccess[Types::TranslatePinDataOutput]
478
507
  def pin_block: () -> ::String
@@ -718,8 +747,8 @@ module Aws
718
747
  }?
719
748
  },
720
749
  encrypted_pin_block: ::String,
721
- primary_account_number: ::String,
722
- pin_block_format: ("ISO_FORMAT_0" | "ISO_FORMAT_3" | "ISO_FORMAT_4"),
750
+ ?primary_account_number: ::String,
751
+ pin_block_format: ("ISO_FORMAT_0" | "ISO_FORMAT_1" | "ISO_FORMAT_3" | "ISO_FORMAT_4"),
723
752
  ?pin_data_length: ::Integer,
724
753
  ?dukpt_attributes: {
725
754
  key_serial_number: ::String,
data/sig/types.rbs CHANGED
@@ -187,6 +187,17 @@ module Aws::PaymentCryptographyData
187
187
  end
188
188
  end
189
189
 
190
+ class DiffieHellmanDerivationData
191
+ attr_accessor shared_information: ::String
192
+ attr_accessor unknown: untyped
193
+ SENSITIVE: []
194
+
195
+ class SharedInformation < DiffieHellmanDerivationData
196
+ end
197
+ class Unknown < DiffieHellmanDerivationData
198
+ end
199
+ end
200
+
190
201
  class DiscoverDynamicCardVerificationCode
191
202
  attr_accessor card_expiry_date: ::String
192
203
  attr_accessor unpredictable_number: ::String
@@ -239,7 +250,7 @@ module Aws::PaymentCryptographyData
239
250
  attr_accessor key_derivation_function: ("NIST_SP800" | "ANSI_X963")
240
251
  attr_accessor key_derivation_hash_algorithm: ("SHA_256" | "SHA_384" | "SHA_512")
241
252
  attr_accessor shared_information: ::String
242
- SENSITIVE: [:public_key_certificate]
253
+ SENSITIVE: []
243
254
  end
244
255
 
245
256
  class Emv2000Attributes
@@ -366,7 +377,7 @@ module Aws::PaymentCryptographyData
366
377
  attr_accessor generation_attributes: Types::PinGenerationAttributes
367
378
  attr_accessor pin_data_length: ::Integer
368
379
  attr_accessor primary_account_number: ::String
369
- attr_accessor pin_block_format: ("ISO_FORMAT_0" | "ISO_FORMAT_3" | "ISO_FORMAT_4")
380
+ attr_accessor pin_block_format: ("ISO_FORMAT_0" | "ISO_FORMAT_1" | "ISO_FORMAT_3" | "ISO_FORMAT_4")
370
381
  attr_accessor encryption_wrapped_key: Types::WrappedKey
371
382
  SENSITIVE: [:primary_account_number]
372
383
  end
@@ -419,6 +430,29 @@ module Aws::PaymentCryptographyData
419
430
  SENSITIVE: [:decimalization_table, :pin_validation_data]
420
431
  end
421
432
 
433
+ class IncomingDiffieHellmanTr31KeyBlock
434
+ attr_accessor private_key_identifier: ::String
435
+ attr_accessor certificate_authority_public_key_identifier: ::String
436
+ attr_accessor public_key_certificate: ::String
437
+ attr_accessor derive_key_algorithm: ("TDES_2KEY" | "TDES_3KEY" | "AES_128" | "AES_192" | "AES_256" | "HMAC_SHA256" | "HMAC_SHA384" | "HMAC_SHA512" | "HMAC_SHA224")
438
+ attr_accessor key_derivation_function: ("NIST_SP800" | "ANSI_X963")
439
+ attr_accessor key_derivation_hash_algorithm: ("SHA_256" | "SHA_384" | "SHA_512")
440
+ attr_accessor derivation_data: Types::DiffieHellmanDerivationData
441
+ attr_accessor wrapped_key_block: ::String
442
+ SENSITIVE: [:wrapped_key_block]
443
+ end
444
+
445
+ class IncomingKeyMaterial
446
+ attr_accessor diffie_hellman_tr_31_key_block: Types::IncomingDiffieHellmanTr31KeyBlock
447
+ attr_accessor unknown: untyped
448
+ SENSITIVE: []
449
+
450
+ class DiffieHellmanTr31KeyBlock < IncomingKeyMaterial
451
+ end
452
+ class Unknown < IncomingKeyMaterial
453
+ end
454
+ end
455
+
422
456
  class InternalServerException
423
457
  attr_accessor message: ::String
424
458
  SENSITIVE: []
@@ -471,6 +505,22 @@ module Aws::PaymentCryptographyData
471
505
  SENSITIVE: [:primary_account_number, :application_cryptogram]
472
506
  end
473
507
 
508
+ class OutgoingKeyMaterial
509
+ attr_accessor tr_31_key_block: Types::OutgoingTr31KeyBlock
510
+ attr_accessor unknown: untyped
511
+ SENSITIVE: []
512
+
513
+ class Tr31KeyBlock < OutgoingKeyMaterial
514
+ end
515
+ class Unknown < OutgoingKeyMaterial
516
+ end
517
+ end
518
+
519
+ class OutgoingTr31KeyBlock
520
+ attr_accessor wrapping_key_identifier: ::String
521
+ SENSITIVE: []
522
+ end
523
+
474
524
  class PinData
475
525
  attr_accessor pin_offset: ::String
476
526
  attr_accessor verification_value: ::String
@@ -645,6 +695,18 @@ module Aws::PaymentCryptographyData
645
695
  SENSITIVE: []
646
696
  end
647
697
 
698
+ class TranslateKeyMaterialInput
699
+ attr_accessor incoming_key_material: Types::IncomingKeyMaterial
700
+ attr_accessor outgoing_key_material: Types::OutgoingKeyMaterial
701
+ attr_accessor key_check_value_algorithm: ("CMAC" | "ANSI_X9_24" | "HMAC" | "SHA_1")
702
+ SENSITIVE: []
703
+ end
704
+
705
+ class TranslateKeyMaterialOutput
706
+ attr_accessor wrapped_key: Types::WrappedWorkingKey
707
+ SENSITIVE: []
708
+ end
709
+
648
710
  class TranslatePinDataInput
649
711
  attr_accessor incoming_key_identifier: ::String
650
712
  attr_accessor outgoing_key_identifier: ::String
@@ -763,7 +825,7 @@ module Aws::PaymentCryptographyData
763
825
  attr_accessor verification_attributes: Types::PinVerificationAttributes
764
826
  attr_accessor encrypted_pin_block: ::String
765
827
  attr_accessor primary_account_number: ::String
766
- attr_accessor pin_block_format: ("ISO_FORMAT_0" | "ISO_FORMAT_3" | "ISO_FORMAT_4")
828
+ attr_accessor pin_block_format: ("ISO_FORMAT_0" | "ISO_FORMAT_1" | "ISO_FORMAT_3" | "ISO_FORMAT_4")
767
829
  attr_accessor pin_data_length: ::Integer
768
830
  attr_accessor dukpt_attributes: Types::DukptAttributes
769
831
  attr_accessor encryption_wrapped_key: Types::WrappedKey
@@ -832,5 +894,12 @@ module Aws::PaymentCryptographyData
832
894
  class Unknown < WrappedKeyMaterial
833
895
  end
834
896
  end
897
+
898
+ class WrappedWorkingKey
899
+ attr_accessor wrapped_key_material: ::String
900
+ attr_accessor key_check_value: ::String
901
+ attr_accessor wrapped_key_material_format: ("KEY_CRYPTOGRAM" | "TR31_KEY_BLOCK" | "TR34_KEY_BLOCK")
902
+ SENSITIVE: [:wrapped_key_material]
903
+ end
835
904
  end
836
905
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-paymentcryptographydata
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.40.0
4
+ version: 1.41.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services