aws-sdk-paymentcryptography 1.35.0 → 1.37.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.
@@ -95,7 +95,7 @@ module Aws::PaymentCryptography
95
95
  # class name or an instance of a plugin class.
96
96
  #
97
97
  # @option options [required, Aws::CredentialProvider] :credentials
98
- # Your AWS credentials. This can be an instance of any one of the
98
+ # Your AWS credentials used for authentication. This can be an instance of any one of the
99
99
  # following classes:
100
100
  #
101
101
  # * `Aws::Credentials` - Used for configuring static, non-refreshing
@@ -128,18 +128,23 @@ module Aws::PaymentCryptography
128
128
  # locations will be searched for credentials:
129
129
  #
130
130
  # * `Aws.config[:credentials]`
131
+ #
131
132
  # * The `:access_key_id`, `:secret_access_key`, `:session_token`, and
132
133
  # `:account_id` options.
133
- # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY'],
134
- # ENV['AWS_SESSION_TOKEN'], and ENV['AWS_ACCOUNT_ID']
134
+ #
135
+ # * `ENV['AWS_ACCESS_KEY_ID']`, `ENV['AWS_SECRET_ACCESS_KEY']`,
136
+ # `ENV['AWS_SESSION_TOKEN']`, and `ENV['AWS_ACCOUNT_ID']`.
137
+ #
135
138
  # * `~/.aws/credentials`
139
+ #
136
140
  # * `~/.aws/config`
141
+ #
137
142
  # * EC2/ECS IMDS instance profile - When used by default, the timeouts
138
143
  # are very aggressive. Construct and pass an instance of
139
144
  # `Aws::InstanceProfileCredentials` or `Aws::ECSCredentials` to
140
145
  # enable retries and extended timeouts. Instance profile credential
141
- # fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED']
142
- # to true.
146
+ # fetching can be disabled by setting `ENV['AWS_EC2_METADATA_DISABLED']`
147
+ # to `true`.
143
148
  #
144
149
  # @option options [required, String] :region
145
150
  # The AWS region to connect to. The configured `:region` is
@@ -167,6 +172,11 @@ module Aws::PaymentCryptography
167
172
  # When false, the request will raise a `RetryCapacityNotAvailableError` and will
168
173
  # not retry instead of sleeping.
169
174
  #
175
+ # @option options [Array<String>] :auth_scheme_preference
176
+ # A list of preferred authentication schemes to use when making a request. Supported values are:
177
+ # `sigv4`, `sigv4a`, `httpBearerAuth`, and `noAuth`. When set using `ENV['AWS_AUTH_SCHEME_PREFERENCE']` or in
178
+ # shared config as `auth_scheme_preference`, the value should be a comma-separated list.
179
+ #
170
180
  # @option options [Boolean] :client_side_monitoring (false)
171
181
  # When `true`, client-side metrics will be collected for all API requests from
172
182
  # this client.
@@ -253,8 +263,8 @@ module Aws::PaymentCryptography
253
263
  # 4 times. Used in `standard` and `adaptive` retry modes.
254
264
  #
255
265
  # @option options [String] :profile ("default")
256
- # Used when loading credentials from the shared credentials file
257
- # at HOME/.aws/credentials. When not specified, 'default' is used.
266
+ # Used when loading credentials from the shared credentials file at `HOME/.aws/credentials`.
267
+ # When not specified, 'default' is used.
258
268
  #
259
269
  # @option options [String] :request_checksum_calculation ("when_supported")
260
270
  # Determines when a checksum will be calculated for request payloads. Values are:
@@ -374,7 +384,7 @@ module Aws::PaymentCryptography
374
384
  # `Aws::Telemetry::OTelProvider` for telemetry provider.
375
385
  #
376
386
  # @option options [Aws::TokenProvider] :token_provider
377
- # A Bearer Token Provider. This can be an instance of any one of the
387
+ # Your Bearer token used for authentication. This can be an instance of any one of the
378
388
  # following classes:
379
389
  #
380
390
  # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
@@ -569,16 +579,33 @@ module Aws::PaymentCryptography
569
579
  # key, for example key class (example: `SYMMETRIC_KEY`), key algorithm
570
580
  # (example: `TDES_2KEY`), key usage (example:
571
581
  # `TR31_P0_PIN_ENCRYPTION_KEY`) and key modes of use (example:
572
- # `Encrypt`). For information about valid combinations of key
573
- # attributes, see [Understanding key attributes][1] in the *Amazon Web
574
- # Services Payment Cryptography User Guide*. The mutable data contained
575
- # within a key includes usage timestamp and key deletion timestamp and
576
- # can be modified after creation.
577
- #
578
- # Amazon Web Services Payment Cryptography binds key attributes to keys
579
- # using key blocks when you store or export them. Amazon Web Services
580
- # Payment Cryptography stores the key contents wrapped and never stores
581
- # or transmits them in the clear.
582
+ # `Encrypt`). Amazon Web Services Payment Cryptography binds key
583
+ # attributes to keys using key blocks when you store or export them.
584
+ # Amazon Web Services Payment Cryptography stores the key contents
585
+ # wrapped and never stores or transmits them in the clear.
586
+ #
587
+ # For information about valid combinations of key attributes, see
588
+ # [Understanding key attributes][1] in the *Amazon Web Services Payment
589
+ # Cryptography User Guide*. The mutable data contained within a key
590
+ # includes usage timestamp and key deletion timestamp and can be
591
+ # modified after creation.
592
+ #
593
+ # You can use the `CreateKey` operation to generate an ECC (Elliptic
594
+ # Curve Cryptography) key pair used for establishing an ECDH (Elliptic
595
+ # Curve Diffie-Hellman) key agreement between two parties. In the ECDH
596
+ # key agreement process, both parties generate their own ECC key pair
597
+ # with key usage K3 and exchange the public keys. Each party then use
598
+ # their private key, the received public key from the other party, and
599
+ # the key derivation parameters including key derivation function, hash
600
+ # algorithm, derivation data, and key algorithm to derive a shared key.
601
+ #
602
+ # To maintain the single-use principle of cryptographic keys in
603
+ # payments, ECDH derived keys should not be used for multiple purposes,
604
+ # such as a `TR31_P0_PIN_ENCRYPTION_KEY` and
605
+ # `TR31_K1_KEY_BLOCK_PROTECTION_KEY`. When creating ECC key pairs in
606
+ # Amazon Web Services Payment Cryptography you can optionally set the
607
+ # `DeriveKeyUsage` parameter, which defines the key usage bound to the
608
+ # symmetric key that will be derived using the ECC key pair.
582
609
  #
583
610
  # **Cross-account use**: This operation can't be used across different
584
611
  # Amazon Web Services accounts.
@@ -647,8 +674,11 @@ module Aws::PaymentCryptography
647
674
  # [1]: https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_TagResource.html
648
675
  #
649
676
  # @option params [String] :derive_key_usage
650
- # The cryptographic usage of an ECDH derived key as defined in section
651
- # A.5.2 of the TR-31 spec.
677
+ # The intended cryptographic usage of keys derived from the ECC key pair
678
+ # to be created.
679
+ #
680
+ # After creating an ECC key pair, you cannot change the intended
681
+ # cryptographic usage of keys derived from it using ECDH.
652
682
  #
653
683
  # @return [Types::CreateKeyOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
654
684
  #
@@ -660,7 +690,7 @@ module Aws::PaymentCryptography
660
690
  # key_attributes: { # required
661
691
  # key_usage: "TR31_B0_BASE_DERIVATION_KEY", # required, accepts TR31_B0_BASE_DERIVATION_KEY, TR31_C0_CARD_VERIFICATION_KEY, TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY, TR31_D1_ASYMMETRIC_KEY_FOR_DATA_ENCRYPTION, TR31_E0_EMV_MKEY_APP_CRYPTOGRAMS, TR31_E1_EMV_MKEY_CONFIDENTIALITY, TR31_E2_EMV_MKEY_INTEGRITY, TR31_E4_EMV_MKEY_DYNAMIC_NUMBERS, TR31_E5_EMV_MKEY_CARD_PERSONALIZATION, TR31_E6_EMV_MKEY_OTHER, TR31_K0_KEY_ENCRYPTION_KEY, TR31_K1_KEY_BLOCK_PROTECTION_KEY, TR31_K3_ASYMMETRIC_KEY_FOR_KEY_AGREEMENT, TR31_M3_ISO_9797_3_MAC_KEY, TR31_M1_ISO_9797_1_MAC_KEY, TR31_M6_ISO_9797_5_CMAC_KEY, TR31_M7_HMAC_KEY, TR31_P0_PIN_ENCRYPTION_KEY, TR31_P1_PIN_GENERATION_KEY, TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE, TR31_V1_IBM3624_PIN_VERIFICATION_KEY, TR31_V2_VISA_PIN_VERIFICATION_KEY, TR31_K2_TR34_ASYMMETRIC_KEY
662
692
  # key_class: "SYMMETRIC_KEY", # required, accepts SYMMETRIC_KEY, ASYMMETRIC_KEY_PAIR, PRIVATE_KEY, PUBLIC_KEY
663
- # key_algorithm: "TDES_2KEY", # required, accepts TDES_2KEY, TDES_3KEY, AES_128, AES_192, AES_256, RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521
693
+ # key_algorithm: "TDES_2KEY", # required, accepts TDES_2KEY, TDES_3KEY, AES_128, AES_192, AES_256, HMAC_SHA256, HMAC_SHA384, HMAC_SHA512, HMAC_SHA224, RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521
664
694
  # key_modes_of_use: { # required
665
695
  # encrypt: false,
666
696
  # decrypt: false,
@@ -673,7 +703,7 @@ module Aws::PaymentCryptography
673
703
  # no_restrictions: false,
674
704
  # },
675
705
  # },
676
- # key_check_value_algorithm: "CMAC", # accepts CMAC, ANSI_X9_24
706
+ # key_check_value_algorithm: "CMAC", # accepts CMAC, ANSI_X9_24, HMAC
677
707
  # exportable: false, # required
678
708
  # enabled: false,
679
709
  # tags: [
@@ -690,7 +720,7 @@ module Aws::PaymentCryptography
690
720
  # resp.key.key_arn #=> String
691
721
  # resp.key.key_attributes.key_usage #=> String, one of "TR31_B0_BASE_DERIVATION_KEY", "TR31_C0_CARD_VERIFICATION_KEY", "TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY", "TR31_D1_ASYMMETRIC_KEY_FOR_DATA_ENCRYPTION", "TR31_E0_EMV_MKEY_APP_CRYPTOGRAMS", "TR31_E1_EMV_MKEY_CONFIDENTIALITY", "TR31_E2_EMV_MKEY_INTEGRITY", "TR31_E4_EMV_MKEY_DYNAMIC_NUMBERS", "TR31_E5_EMV_MKEY_CARD_PERSONALIZATION", "TR31_E6_EMV_MKEY_OTHER", "TR31_K0_KEY_ENCRYPTION_KEY", "TR31_K1_KEY_BLOCK_PROTECTION_KEY", "TR31_K3_ASYMMETRIC_KEY_FOR_KEY_AGREEMENT", "TR31_M3_ISO_9797_3_MAC_KEY", "TR31_M1_ISO_9797_1_MAC_KEY", "TR31_M6_ISO_9797_5_CMAC_KEY", "TR31_M7_HMAC_KEY", "TR31_P0_PIN_ENCRYPTION_KEY", "TR31_P1_PIN_GENERATION_KEY", "TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE", "TR31_V1_IBM3624_PIN_VERIFICATION_KEY", "TR31_V2_VISA_PIN_VERIFICATION_KEY", "TR31_K2_TR34_ASYMMETRIC_KEY"
692
722
  # resp.key.key_attributes.key_class #=> String, one of "SYMMETRIC_KEY", "ASYMMETRIC_KEY_PAIR", "PRIVATE_KEY", "PUBLIC_KEY"
693
- # resp.key.key_attributes.key_algorithm #=> String, one of "TDES_2KEY", "TDES_3KEY", "AES_128", "AES_192", "AES_256", "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521"
723
+ # resp.key.key_attributes.key_algorithm #=> String, one of "TDES_2KEY", "TDES_3KEY", "AES_128", "AES_192", "AES_256", "HMAC_SHA256", "HMAC_SHA384", "HMAC_SHA512", "HMAC_SHA224", "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521"
694
724
  # resp.key.key_attributes.key_modes_of_use.encrypt #=> Boolean
695
725
  # resp.key.key_attributes.key_modes_of_use.decrypt #=> Boolean
696
726
  # resp.key.key_attributes.key_modes_of_use.wrap #=> Boolean
@@ -701,7 +731,7 @@ module Aws::PaymentCryptography
701
731
  # resp.key.key_attributes.key_modes_of_use.derive_key #=> Boolean
702
732
  # resp.key.key_attributes.key_modes_of_use.no_restrictions #=> Boolean
703
733
  # resp.key.key_check_value #=> String
704
- # resp.key.key_check_value_algorithm #=> String, one of "CMAC", "ANSI_X9_24"
734
+ # resp.key.key_check_value_algorithm #=> String, one of "CMAC", "ANSI_X9_24", "HMAC"
705
735
  # resp.key.enabled #=> Boolean
706
736
  # resp.key.exportable #=> Boolean
707
737
  # resp.key.key_state #=> String, one of "CREATE_IN_PROGRESS", "CREATE_COMPLETE", "DELETE_PENDING", "DELETE_COMPLETE"
@@ -833,7 +863,7 @@ module Aws::PaymentCryptography
833
863
  # resp.key.key_arn #=> String
834
864
  # resp.key.key_attributes.key_usage #=> String, one of "TR31_B0_BASE_DERIVATION_KEY", "TR31_C0_CARD_VERIFICATION_KEY", "TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY", "TR31_D1_ASYMMETRIC_KEY_FOR_DATA_ENCRYPTION", "TR31_E0_EMV_MKEY_APP_CRYPTOGRAMS", "TR31_E1_EMV_MKEY_CONFIDENTIALITY", "TR31_E2_EMV_MKEY_INTEGRITY", "TR31_E4_EMV_MKEY_DYNAMIC_NUMBERS", "TR31_E5_EMV_MKEY_CARD_PERSONALIZATION", "TR31_E6_EMV_MKEY_OTHER", "TR31_K0_KEY_ENCRYPTION_KEY", "TR31_K1_KEY_BLOCK_PROTECTION_KEY", "TR31_K3_ASYMMETRIC_KEY_FOR_KEY_AGREEMENT", "TR31_M3_ISO_9797_3_MAC_KEY", "TR31_M1_ISO_9797_1_MAC_KEY", "TR31_M6_ISO_9797_5_CMAC_KEY", "TR31_M7_HMAC_KEY", "TR31_P0_PIN_ENCRYPTION_KEY", "TR31_P1_PIN_GENERATION_KEY", "TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE", "TR31_V1_IBM3624_PIN_VERIFICATION_KEY", "TR31_V2_VISA_PIN_VERIFICATION_KEY", "TR31_K2_TR34_ASYMMETRIC_KEY"
835
865
  # resp.key.key_attributes.key_class #=> String, one of "SYMMETRIC_KEY", "ASYMMETRIC_KEY_PAIR", "PRIVATE_KEY", "PUBLIC_KEY"
836
- # resp.key.key_attributes.key_algorithm #=> String, one of "TDES_2KEY", "TDES_3KEY", "AES_128", "AES_192", "AES_256", "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521"
866
+ # resp.key.key_attributes.key_algorithm #=> String, one of "TDES_2KEY", "TDES_3KEY", "AES_128", "AES_192", "AES_256", "HMAC_SHA256", "HMAC_SHA384", "HMAC_SHA512", "HMAC_SHA224", "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521"
837
867
  # resp.key.key_attributes.key_modes_of_use.encrypt #=> Boolean
838
868
  # resp.key.key_attributes.key_modes_of_use.decrypt #=> Boolean
839
869
  # resp.key.key_attributes.key_modes_of_use.wrap #=> Boolean
@@ -844,7 +874,7 @@ module Aws::PaymentCryptography
844
874
  # resp.key.key_attributes.key_modes_of_use.derive_key #=> Boolean
845
875
  # resp.key.key_attributes.key_modes_of_use.no_restrictions #=> Boolean
846
876
  # resp.key.key_check_value #=> String
847
- # resp.key.key_check_value_algorithm #=> String, one of "CMAC", "ANSI_X9_24"
877
+ # resp.key.key_check_value_algorithm #=> String, one of "CMAC", "ANSI_X9_24", "HMAC"
848
878
  # resp.key.enabled #=> Boolean
849
879
  # resp.key.exportable #=> Boolean
850
880
  # resp.key.key_state #=> String, one of "CREATE_IN_PROGRESS", "CREATE_COMPLETE", "DELETE_PENDING", "DELETE_COMPLETE"
@@ -878,20 +908,21 @@ module Aws::PaymentCryptography
878
908
  # For symmetric key exchange, Amazon Web Services Payment Cryptography
879
909
  # uses the ANSI X9 TR-31 norm in accordance with PCI PIN guidelines. And
880
910
  # for asymmetric key exchange, Amazon Web Services Payment Cryptography
881
- # supports ANSI X9 TR-34 norm and RSA wrap and unwrap key exchange
882
- # mechanism. Asymmetric key exchange methods are typically used to
883
- # establish bi-directional trust between the two parties exhanging keys
884
- # and are used for initial key exchange such as Key Encryption Key
885
- # (KEK). After which you can export working keys using symmetric method
886
- # to perform various cryptographic operations within Amazon Web Services
887
- # Payment Cryptography.
888
- #
889
- # The TR-34 norm is intended for exchanging 3DES keys only and keys are
890
- # imported in a WrappedKeyBlock format. Key attributes (such as
891
- # KeyUsage, KeyAlgorithm, KeyModesOfUse, Exportability) are contained
892
- # within the key block. With RSA wrap and unwrap, you can exchange both
893
- # 3DES and AES-128 keys. The keys are imported in a WrappedKeyCryptogram
894
- # format and you will need to specify the key attributes during import.
911
+ # supports ANSI X9 TR-34 norm, RSA unwrap, and ECDH (Elliptic Curve
912
+ # Diffie-Hellman) key exchange mechanisms. Asymmetric key exchange
913
+ # methods are typically used to establish bi-directional trust between
914
+ # the two parties exhanging keys and are used for initial key exchange
915
+ # such as Key Encryption Key (KEK). After which you can export working
916
+ # keys using symmetric method to perform various cryptographic
917
+ # operations within Amazon Web Services Payment Cryptography.
918
+ #
919
+ # PCI requires specific minimum key strength of wrapping keys used to
920
+ # protect the keys being exchanged electronically. These requirements
921
+ # can change when PCI standards are revised. The rules specify that
922
+ # wrapping keys used for transport must be at least as strong as the key
923
+ # being protected. For more information on recommended key strength of
924
+ # wrapping keys and key exchange mechanism, see [Importing and exporting
925
+ # keys][1] in the *Amazon Web Services Payment Cryptography User Guide*.
895
926
  #
896
927
  # You can also use `ExportKey` functionality to generate and export an
897
928
  # IPEK (Initial Pin Encryption Key) from Amazon Web Services Payment
@@ -911,7 +942,7 @@ module Aws::PaymentCryptography
911
942
  #
912
943
  # The `OptionalBlocks` contain the additional data related to the key.
913
944
  # For information on data type that can be included within optional
914
- # blocks, refer to [ASC X9.143-2022][1].
945
+ # blocks, refer to [ASC X9.143-2022][2].
915
946
  #
916
947
  # <note markdown="1"> Data included in key block headers is signed but transmitted in clear
917
948
  # text. Sensitive or confidential information should not be included in
@@ -932,7 +963,7 @@ module Aws::PaymentCryptography
932
963
  # the key.
933
964
  #
934
965
  # To initiate TR-34 key export, the KRD must obtain an export token by
935
- # calling [GetParametersForExport][2]. This operation also generates a
966
+ # calling [GetParametersForExport][3]. This operation also generates a
936
967
  # key pair for the purpose of key export, signs the key and returns back
937
968
  # the signing public key certificate (also known as KDH signing
938
969
  # certificate) and root certificate chain. The KDH uses the private key
@@ -940,18 +971,18 @@ module Aws::PaymentCryptography
940
971
  # is provided to KRD to verify the signature. The KRD can import the
941
972
  # root certificate into its Hardware Security Module (HSM), as required.
942
973
  # The export token and the associated KDH signing certificate expires
943
- # after 7 days.
974
+ # after 30 days.
944
975
  #
945
976
  # Next the KRD generates a key pair for the the purpose of encrypting
946
977
  # the KDH key and provides the public key cerificate (also known as KRD
947
978
  # wrapping certificate) back to KDH. The KRD will also import the root
948
979
  # cerificate chain into Amazon Web Services Payment Cryptography by
949
- # calling [ImportKey][3] for `RootCertificatePublicKey`. The KDH, Amazon
980
+ # calling [ImportKey][4] for `RootCertificatePublicKey`. The KDH, Amazon
950
981
  # Web Services Payment Cryptography, will use the KRD wrapping
951
982
  # cerificate to encrypt (wrap) the key under export and signs it with
952
983
  # signing private key to generate a TR-34 WrappedKeyBlock. For more
953
984
  # information on TR-34 key export, see section [Exporting symmetric
954
- # keys][4] in the *Amazon Web Services Payment Cryptography User Guide*.
985
+ # keys][5] in the *Amazon Web Services Payment Cryptography User Guide*.
955
986
  #
956
987
  # Set the following parameters:
957
988
  #
@@ -967,7 +998,7 @@ module Aws::PaymentCryptography
967
998
  # certificate chain that signed the KRD wrapping key certificate.
968
999
  #
969
1000
  # * `ExportToken`: Obtained from KDH by calling
970
- # [GetParametersForImport][5].
1001
+ # [GetParametersForImport][6].
971
1002
  #
972
1003
  # * `WrappingKeyCertificate`: The public key certificate in PEM format
973
1004
  # (base64 encoded) of the KRD wrapping key Amazon Web Services Payment
@@ -986,7 +1017,7 @@ module Aws::PaymentCryptography
986
1017
  # asymmetric key pair on the receiving HSM and obtain the public key
987
1018
  # certificate in PEM format (base64 encoded) for the purpose of wrapping
988
1019
  # and the root certifiate chain. Import the root certificate into Amazon
989
- # Web Services Payment Cryptography by calling [ImportKey][3] for
1020
+ # Web Services Payment Cryptography by calling [ImportKey][4] for
990
1021
  # `RootCertificatePublicKey`.
991
1022
  #
992
1023
  # Next call `ExportKey` and set the following parameters:
@@ -1010,7 +1041,7 @@ module Aws::PaymentCryptography
1010
1041
  # Using this operation, you can export working keys or IPEK using TR-31
1011
1042
  # symmetric key exchange. In TR-31, you must use an initial key such as
1012
1043
  # KEK to encrypt or wrap the key under export. To establish a KEK, you
1013
- # can use [CreateKey][6] or [ImportKey][3].
1044
+ # can use [CreateKey][7] or [ImportKey][4].
1014
1045
  #
1015
1046
  # Set the following parameters:
1016
1047
  #
@@ -1022,27 +1053,59 @@ module Aws::PaymentCryptography
1022
1053
  #
1023
1054
  # * `KeyMaterial`: Use `Tr31KeyBlock` parameters.
1024
1055
  #
1056
+ # **To export working keys using ECDH**
1057
+ #
1058
+ # You can also use ECDH key agreement to export working keys in a TR-31
1059
+ # keyblock, where the wrapping key is an ECDH derived key.
1060
+ #
1061
+ # To initiate a TR-31 key export using ECDH, both sides must create an
1062
+ # ECC key pair with key usage K3 and exchange public key certificates.
1063
+ # In Amazon Web Services Payment Cryptography, you can do this by
1064
+ # calling `CreateKey`. If you have not already done so, you must import
1065
+ # the CA chain that issued the receiving public key certificate by
1066
+ # calling `ImportKey` with input `RootCertificatePublicKey` for root CA
1067
+ # or `TrustedPublicKey` for intermediate CA. You can then complete a
1068
+ # TR-31 key export by deriving a shared wrapping key using the service
1069
+ # ECC key pair, public certificate of your ECC key pair outside of
1070
+ # Amazon Web Services Payment Cryptography, and the key derivation
1071
+ # parameters including key derivation function, hash algorithm,
1072
+ # derivation data, key algorithm.
1073
+ #
1074
+ # * `KeyMaterial`: Use `DiffieHellmanTr31KeyBlock` parameters.
1075
+ #
1076
+ # * `PrivateKeyIdentifier`: The `KeyArn` of the ECC key pair created
1077
+ # within Amazon Web Services Payment Cryptography to derive a shared
1078
+ # KEK.
1079
+ #
1080
+ # * `PublicKeyCertificate`: The public key certificate of the receiving
1081
+ # ECC key pair in PEM format (base64 encoded) to derive a shared KEK.
1082
+ #
1083
+ # * `CertificateAuthorityPublicKeyIdentifier`: The `keyARN` of the CA
1084
+ # that signed the public key certificate of the receiving ECC key
1085
+ # pair.
1086
+ #
1025
1087
  # When this operation is successful, Amazon Web Services Payment
1026
- # Cryptography returns the working key or IPEK as a TR-31
1027
- # WrappedKeyBlock.
1088
+ # Cryptography returns the working key as a TR-31 WrappedKeyBlock, where
1089
+ # the wrapping key is the ECDH derived key.
1028
1090
  #
1029
1091
  # **Cross-account use:** This operation can't be used across different
1030
1092
  # Amazon Web Services accounts.
1031
1093
  #
1032
1094
  # **Related operations:**
1033
1095
  #
1034
- # * [GetParametersForExport][2]
1096
+ # * [GetParametersForExport][3]
1035
1097
  #
1036
- # * [ImportKey][3]
1098
+ # * [ImportKey][4]
1037
1099
  #
1038
1100
  #
1039
1101
  #
1040
- # [1]: https://webstore.ansi.org/standards/ascx9/ansix91432022
1041
- # [2]: https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_GetParametersForExport.html
1042
- # [3]: https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ImportKey.html
1043
- # [4]: https://docs.aws.amazon.com/payment-cryptography/latest/userguide/keys-export.html
1044
- # [5]: https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_GetParametersForImport.html
1045
- # [6]: https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_CreateKey.html
1102
+ # [1]: https://docs.aws.amazon.com/payment-cryptography/latest/userguide/keys-importexport.html
1103
+ # [2]: https://webstore.ansi.org/standards/ascx9/ansix91432022
1104
+ # [3]: https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_GetParametersForExport.html
1105
+ # [4]: https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ImportKey.html
1106
+ # [5]: https://docs.aws.amazon.com/payment-cryptography/latest/userguide/keys-export.html
1107
+ # [6]: https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_GetParametersForImport.html
1108
+ # [7]: https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_CreateKey.html
1046
1109
  #
1047
1110
  # @option params [required, Types::ExportKeyMaterial] :key_material
1048
1111
  # The key block format type, for example, TR-34 or TR-31, to use during
@@ -1118,7 +1181,7 @@ module Aws::PaymentCryptography
1118
1181
  # private_key_identifier: "KeyArnOrKeyAliasType", # required
1119
1182
  # certificate_authority_public_key_identifier: "KeyArnOrKeyAliasType", # required
1120
1183
  # public_key_certificate: "CertificateType", # required
1121
- # derive_key_algorithm: "TDES_2KEY", # required, accepts TDES_2KEY, TDES_3KEY, AES_128, AES_192, AES_256
1184
+ # 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
1122
1185
  # key_derivation_function: "NIST_SP800", # required, accepts NIST_SP800, ANSI_X963
1123
1186
  # key_derivation_hash_algorithm: "SHA_256", # required, accepts SHA_256, SHA_384, SHA_512
1124
1187
  # derivation_data: { # required
@@ -1149,7 +1212,7 @@ module Aws::PaymentCryptography
1149
1212
  # export_dukpt_initial_key: {
1150
1213
  # key_serial_number: "HexLength20Or24", # required
1151
1214
  # },
1152
- # key_check_value_algorithm: "CMAC", # accepts CMAC, ANSI_X9_24
1215
+ # key_check_value_algorithm: "CMAC", # accepts CMAC, ANSI_X9_24, HMAC
1153
1216
  # },
1154
1217
  # })
1155
1218
  #
@@ -1159,7 +1222,7 @@ module Aws::PaymentCryptography
1159
1222
  # resp.wrapped_key.wrapped_key_material_format #=> String, one of "KEY_CRYPTOGRAM", "TR31_KEY_BLOCK", "TR34_KEY_BLOCK"
1160
1223
  # resp.wrapped_key.key_material #=> String
1161
1224
  # resp.wrapped_key.key_check_value #=> String
1162
- # resp.wrapped_key.key_check_value_algorithm #=> String, one of "CMAC", "ANSI_X9_24"
1225
+ # resp.wrapped_key.key_check_value_algorithm #=> String, one of "CMAC", "ANSI_X9_24", "HMAC"
1163
1226
  #
1164
1227
  # @see http://docs.aws.amazon.com/goto/WebAPI/payment-cryptography-2021-09-14/ExportKey AWS API Documentation
1165
1228
  #
@@ -1259,7 +1322,7 @@ module Aws::PaymentCryptography
1259
1322
  # resp.key.key_arn #=> String
1260
1323
  # resp.key.key_attributes.key_usage #=> String, one of "TR31_B0_BASE_DERIVATION_KEY", "TR31_C0_CARD_VERIFICATION_KEY", "TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY", "TR31_D1_ASYMMETRIC_KEY_FOR_DATA_ENCRYPTION", "TR31_E0_EMV_MKEY_APP_CRYPTOGRAMS", "TR31_E1_EMV_MKEY_CONFIDENTIALITY", "TR31_E2_EMV_MKEY_INTEGRITY", "TR31_E4_EMV_MKEY_DYNAMIC_NUMBERS", "TR31_E5_EMV_MKEY_CARD_PERSONALIZATION", "TR31_E6_EMV_MKEY_OTHER", "TR31_K0_KEY_ENCRYPTION_KEY", "TR31_K1_KEY_BLOCK_PROTECTION_KEY", "TR31_K3_ASYMMETRIC_KEY_FOR_KEY_AGREEMENT", "TR31_M3_ISO_9797_3_MAC_KEY", "TR31_M1_ISO_9797_1_MAC_KEY", "TR31_M6_ISO_9797_5_CMAC_KEY", "TR31_M7_HMAC_KEY", "TR31_P0_PIN_ENCRYPTION_KEY", "TR31_P1_PIN_GENERATION_KEY", "TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE", "TR31_V1_IBM3624_PIN_VERIFICATION_KEY", "TR31_V2_VISA_PIN_VERIFICATION_KEY", "TR31_K2_TR34_ASYMMETRIC_KEY"
1261
1324
  # resp.key.key_attributes.key_class #=> String, one of "SYMMETRIC_KEY", "ASYMMETRIC_KEY_PAIR", "PRIVATE_KEY", "PUBLIC_KEY"
1262
- # resp.key.key_attributes.key_algorithm #=> String, one of "TDES_2KEY", "TDES_3KEY", "AES_128", "AES_192", "AES_256", "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521"
1325
+ # resp.key.key_attributes.key_algorithm #=> String, one of "TDES_2KEY", "TDES_3KEY", "AES_128", "AES_192", "AES_256", "HMAC_SHA256", "HMAC_SHA384", "HMAC_SHA512", "HMAC_SHA224", "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521"
1263
1326
  # resp.key.key_attributes.key_modes_of_use.encrypt #=> Boolean
1264
1327
  # resp.key.key_attributes.key_modes_of_use.decrypt #=> Boolean
1265
1328
  # resp.key.key_attributes.key_modes_of_use.wrap #=> Boolean
@@ -1270,7 +1333,7 @@ module Aws::PaymentCryptography
1270
1333
  # resp.key.key_attributes.key_modes_of_use.derive_key #=> Boolean
1271
1334
  # resp.key.key_attributes.key_modes_of_use.no_restrictions #=> Boolean
1272
1335
  # resp.key.key_check_value #=> String
1273
- # resp.key.key_check_value_algorithm #=> String, one of "CMAC", "ANSI_X9_24"
1336
+ # resp.key.key_check_value_algorithm #=> String, one of "CMAC", "ANSI_X9_24", "HMAC"
1274
1337
  # resp.key.enabled #=> Boolean
1275
1338
  # resp.key.exportable #=> Boolean
1276
1339
  # resp.key.key_state #=> String, one of "CREATE_IN_PROGRESS", "CREATE_COMPLETE", "DELETE_PENDING", "DELETE_COMPLETE"
@@ -1297,7 +1360,7 @@ module Aws::PaymentCryptography
1297
1360
  # The signing key certificate signs the wrapped key under export within
1298
1361
  # the TR-34 key payload. The export token and signing key certificate
1299
1362
  # must be in place and operational before calling [ExportKey][1]. The
1300
- # export token expires in 7 days. You can use the same export token to
1363
+ # export token expires in 30 days. You can use the same export token to
1301
1364
  # export multiple keys from your service account.
1302
1365
  #
1303
1366
  # **Cross-account use:** This operation can't be used across different
@@ -1337,14 +1400,14 @@ module Aws::PaymentCryptography
1337
1400
  #
1338
1401
  # resp = client.get_parameters_for_export({
1339
1402
  # key_material_type: "TR34_KEY_BLOCK", # required, accepts TR34_KEY_BLOCK, TR31_KEY_BLOCK, ROOT_PUBLIC_KEY_CERTIFICATE, TRUSTED_PUBLIC_KEY_CERTIFICATE, KEY_CRYPTOGRAM
1340
- # signing_key_algorithm: "TDES_2KEY", # required, accepts TDES_2KEY, TDES_3KEY, AES_128, AES_192, AES_256, RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521
1403
+ # signing_key_algorithm: "TDES_2KEY", # required, accepts TDES_2KEY, TDES_3KEY, AES_128, AES_192, AES_256, HMAC_SHA256, HMAC_SHA384, HMAC_SHA512, HMAC_SHA224, RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521
1341
1404
  # })
1342
1405
  #
1343
1406
  # @example Response structure
1344
1407
  #
1345
1408
  # resp.signing_key_certificate #=> String
1346
1409
  # resp.signing_key_certificate_chain #=> String
1347
- # resp.signing_key_algorithm #=> String, one of "TDES_2KEY", "TDES_3KEY", "AES_128", "AES_192", "AES_256", "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521"
1410
+ # resp.signing_key_algorithm #=> String, one of "TDES_2KEY", "TDES_3KEY", "AES_128", "AES_192", "AES_256", "HMAC_SHA256", "HMAC_SHA384", "HMAC_SHA512", "HMAC_SHA224", "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521"
1348
1411
  # resp.export_token #=> String
1349
1412
  # resp.parameters_valid_until_timestamp #=> Time
1350
1413
  #
@@ -1364,8 +1427,8 @@ module Aws::PaymentCryptography
1364
1427
  #
1365
1428
  # The wrapping key certificate wraps the key under import. The import
1366
1429
  # token and wrapping key certificate must be in place and operational
1367
- # before calling [ImportKey][1]. The import token expires in 7 days. You
1368
- # can use the same import token to import multiple keys into your
1430
+ # before calling [ImportKey][1]. The import token expires in 30 days.
1431
+ # You can use the same import token to import multiple keys into your
1369
1432
  # service account.
1370
1433
  #
1371
1434
  # **Cross-account use:** This operation can't be used across different
@@ -1411,14 +1474,14 @@ module Aws::PaymentCryptography
1411
1474
  #
1412
1475
  # resp = client.get_parameters_for_import({
1413
1476
  # key_material_type: "TR34_KEY_BLOCK", # required, accepts TR34_KEY_BLOCK, TR31_KEY_BLOCK, ROOT_PUBLIC_KEY_CERTIFICATE, TRUSTED_PUBLIC_KEY_CERTIFICATE, KEY_CRYPTOGRAM
1414
- # wrapping_key_algorithm: "TDES_2KEY", # required, accepts TDES_2KEY, TDES_3KEY, AES_128, AES_192, AES_256, RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521
1477
+ # wrapping_key_algorithm: "TDES_2KEY", # required, accepts TDES_2KEY, TDES_3KEY, AES_128, AES_192, AES_256, HMAC_SHA256, HMAC_SHA384, HMAC_SHA512, HMAC_SHA224, RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521
1415
1478
  # })
1416
1479
  #
1417
1480
  # @example Response structure
1418
1481
  #
1419
1482
  # resp.wrapping_key_certificate #=> String
1420
1483
  # resp.wrapping_key_certificate_chain #=> String
1421
- # resp.wrapping_key_algorithm #=> String, one of "TDES_2KEY", "TDES_3KEY", "AES_128", "AES_192", "AES_256", "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521"
1484
+ # resp.wrapping_key_algorithm #=> String, one of "TDES_2KEY", "TDES_3KEY", "AES_128", "AES_192", "AES_256", "HMAC_SHA256", "HMAC_SHA384", "HMAC_SHA512", "HMAC_SHA224", "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521"
1422
1485
  # resp.import_token #=> String
1423
1486
  # resp.parameters_valid_until_timestamp #=> Time
1424
1487
  #
@@ -1483,20 +1546,22 @@ module Aws::PaymentCryptography
1483
1546
  # For symmetric key exchange, Amazon Web Services Payment Cryptography
1484
1547
  # uses the ANSI X9 TR-31 norm in accordance with PCI PIN guidelines. And
1485
1548
  # for asymmetric key exchange, Amazon Web Services Payment Cryptography
1486
- # supports ANSI X9 TR-34 norm and RSA wrap and unwrap key exchange
1487
- # mechanisms. Asymmetric key exchange methods are typically used to
1488
- # establish bi-directional trust between the two parties exhanging keys
1489
- # and are used for initial key exchange such as Key Encryption Key (KEK)
1490
- # or Zone Master Key (ZMK). After which you can import working keys
1491
- # using symmetric method to perform various cryptographic operations
1492
- # within Amazon Web Services Payment Cryptography.
1549
+ # supports ANSI X9 TR-34 norm, RSA unwrap, and ECDH (Elliptic Curve
1550
+ # Diffie-Hellman) key exchange mechanisms. Asymmetric key exchange
1551
+ # methods are typically used to establish bi-directional trust between
1552
+ # the two parties exhanging keys and are used for initial key exchange
1553
+ # such as Key Encryption Key (KEK) or Zone Master Key (ZMK). After which
1554
+ # you can import working keys using symmetric method to perform various
1555
+ # cryptographic operations within Amazon Web Services Payment
1556
+ # Cryptography.
1493
1557
  #
1494
- # The TR-34 norm is intended for exchanging 3DES keys only and keys are
1495
- # imported in a WrappedKeyBlock format. Key attributes (such as
1496
- # KeyUsage, KeyAlgorithm, KeyModesOfUse, Exportability) are contained
1497
- # within the key block. With RSA wrap and unwrap, you can exchange both
1498
- # 3DES and AES-128 keys. The keys are imported in a WrappedKeyCryptogram
1499
- # format and you will need to specify the key attributes during import.
1558
+ # PCI requires specific minimum key strength of wrapping keys used to
1559
+ # protect the keys being exchanged electronically. These requirements
1560
+ # can change when PCI standards are revised. The rules specify that
1561
+ # wrapping keys used for transport must be at least as strong as the key
1562
+ # being protected. For more information on recommended key strength of
1563
+ # wrapping keys and key exchange mechanism, see [Importing and exporting
1564
+ # keys][1] in the *Amazon Web Services Payment Cryptography User Guide*.
1500
1565
  #
1501
1566
  # You can also import a *root public key certificate*, used to sign
1502
1567
  # other public key certificates, or a *trusted public key certificate*
@@ -1551,13 +1616,13 @@ module Aws::PaymentCryptography
1551
1616
  # Amazon Web Services Payment Cryptography who receives the key.
1552
1617
  #
1553
1618
  # To initiate TR-34 key import, the KDH must obtain an import token by
1554
- # calling [GetParametersForImport][1]. This operation generates an
1619
+ # calling [GetParametersForImport][2]. This operation generates an
1555
1620
  # encryption keypair for the purpose of key import, signs the key and
1556
1621
  # returns back the wrapping key certificate (also known as KRD wrapping
1557
1622
  # certificate) and the root certificate chain. The KDH must trust and
1558
1623
  # install the KRD wrapping certificate on its HSM and use it to encrypt
1559
1624
  # (wrap) the KDH key during TR-34 WrappedKeyBlock generation. The import
1560
- # token and associated KRD wrapping certificate expires after 7 days.
1625
+ # token and associated KRD wrapping certificate expires after 30 days.
1561
1626
  #
1562
1627
  # Next the KDH generates a key pair for the purpose of signing the
1563
1628
  # encrypted KDH key and provides the public certificate of the signing
@@ -1565,7 +1630,7 @@ module Aws::PaymentCryptography
1565
1630
  # need to import the root certificate chain of the KDH signing
1566
1631
  # certificate by calling `ImportKey` for `RootCertificatePublicKey`. For
1567
1632
  # more information on TR-34 key import, see section [Importing symmetric
1568
- # keys][2] in the *Amazon Web Services Payment Cryptography User Guide*.
1633
+ # keys][3] in the *Amazon Web Services Payment Cryptography User Guide*.
1569
1634
  #
1570
1635
  # Set the following parameters:
1571
1636
  #
@@ -1575,7 +1640,7 @@ module Aws::PaymentCryptography
1575
1640
  # certificate chain that signed the KDH signing key certificate.
1576
1641
  #
1577
1642
  # * `ImportToken`: Obtained from KRD by calling
1578
- # [GetParametersForImport][1].
1643
+ # [GetParametersForImport][2].
1579
1644
  #
1580
1645
  # * `WrappedKeyBlock`: The TR-34 wrapped key material from KDH. It
1581
1646
  # contains the KDH key under import, wrapped with KRD wrapping
@@ -1593,12 +1658,12 @@ module Aws::PaymentCryptography
1593
1658
  #
1594
1659
  # Using this operation, you can import initial key using asymmetric RSA
1595
1660
  # wrap and unwrap key exchange method. To initiate import, call
1596
- # [GetParametersForImport][1] with `KeyMaterial` set to `KEY_CRYPTOGRAM`
1661
+ # [GetParametersForImport][2] with `KeyMaterial` set to `KEY_CRYPTOGRAM`
1597
1662
  # to generate an import token. This operation also generates an
1598
1663
  # encryption keypair for the purpose of key import, signs the key and
1599
1664
  # returns back the wrapping key certificate in PEM format (base64
1600
1665
  # encoded) and its root certificate chain. The import token and
1601
- # associated KRD wrapping certificate expires after 7 days.
1666
+ # associated KRD wrapping certificate expires after 30 days.
1602
1667
  #
1603
1668
  # You must trust and install the wrapping certificate and its
1604
1669
  # certificate chain on the sending HSM and use it to wrap the key under
@@ -1611,7 +1676,7 @@ module Aws::PaymentCryptography
1611
1676
  # Amazon Web Services Payment Cryptography uses TR-31 symmetric key
1612
1677
  # exchange norm to import working keys. A KEK must be established within
1613
1678
  # Amazon Web Services Payment Cryptography by using TR-34 key import or
1614
- # by using [CreateKey][3]. To initiate a TR-31 key import, set the
1679
+ # by using [CreateKey][4]. To initiate a TR-31 key import, set the
1615
1680
  # following parameters:
1616
1681
  #
1617
1682
  # * `KeyMaterial`: Use `Tr31KeyBlock` parameters.
@@ -1625,21 +1690,57 @@ module Aws::PaymentCryptography
1625
1690
  # Services Payment Cryptography uses to decrypt or unwrap the key
1626
1691
  # under import.
1627
1692
  #
1693
+ # **To import working keys using ECDH**
1694
+ #
1695
+ # You can also use ECDH key agreement to import working keys as a TR-31
1696
+ # keyblock, where the wrapping key is an ECDH derived key.
1697
+ #
1698
+ # To initiate a TR-31 key import using ECDH, both sides must create an
1699
+ # ECC key pair with key usage K3 and exchange public key certificates.
1700
+ # In Amazon Web Services Payment Cryptography, you can do this by
1701
+ # calling `CreateKey` and then `GetPublicKeyCertificate` to retrieve its
1702
+ # public key certificate. Next, you can then generate a TR-31
1703
+ # WrappedKeyBlock using your own ECC key pair, the public certificate of
1704
+ # the service's ECC key pair, and the key derivation parameters
1705
+ # including key derivation function, hash algorithm, derivation data,
1706
+ # and key algorithm. If you have not already done so, you must import
1707
+ # the CA chain that issued the receiving public key certificate by
1708
+ # calling `ImportKey` with input `RootCertificatePublicKey` for root CA
1709
+ # or `TrustedPublicKey` for intermediate CA. To complete the TR-31 key
1710
+ # import, you can use the following parameters. It is important that the
1711
+ # ECDH key derivation parameters you use should match those used during
1712
+ # import to derive the same shared wrapping key within Amazon Web
1713
+ # Services Payment Cryptography.
1714
+ #
1715
+ # * `KeyMaterial`: Use `DiffieHellmanTr31KeyBlock` parameters.
1716
+ #
1717
+ # * `PrivateKeyIdentifier`: The `KeyArn` of the ECC key pair created
1718
+ # within Amazon Web Services Payment Cryptography to derive a shared
1719
+ # KEK.
1720
+ #
1721
+ # * `PublicKeyCertificate`: The public key certificate of the receiving
1722
+ # ECC key pair in PEM format (base64 encoded) to derive a shared KEK.
1723
+ #
1724
+ # * `CertificateAuthorityPublicKeyIdentifier`: The `keyARN` of the CA
1725
+ # that signed the public key certificate of the receiving ECC key
1726
+ # pair.
1727
+ #
1628
1728
  # **Cross-account use:** This operation can't be used across different
1629
1729
  # Amazon Web Services accounts.
1630
1730
  #
1631
1731
  # **Related operations:**
1632
1732
  #
1633
- # * [ExportKey][4]
1733
+ # * [ExportKey][5]
1634
1734
  #
1635
- # * [GetParametersForImport][1]
1735
+ # * [GetParametersForImport][2]
1636
1736
  #
1637
1737
  #
1638
1738
  #
1639
- # [1]: https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_GetParametersForImport.html
1640
- # [2]: https://docs.aws.amazon.com/payment-cryptography/latest/userguide/keys-import.html
1641
- # [3]: https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_CreateKey.html
1642
- # [4]: https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ExportKey.html
1739
+ # [1]: https://docs.aws.amazon.com/payment-cryptography/latest/userguide/keys-importexport.html
1740
+ # [2]: https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_GetParametersForImport.html
1741
+ # [3]: https://docs.aws.amazon.com/payment-cryptography/latest/userguide/keys-import.html
1742
+ # [4]: https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_CreateKey.html
1743
+ # [5]: https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ExportKey.html
1643
1744
  #
1644
1745
  # @option params [required, Types::ImportKeyMaterial] :key_material
1645
1746
  # The key or public key certificate type to use during key material
@@ -1698,7 +1799,7 @@ module Aws::PaymentCryptography
1698
1799
  # key_attributes: { # required
1699
1800
  # key_usage: "TR31_B0_BASE_DERIVATION_KEY", # required, accepts TR31_B0_BASE_DERIVATION_KEY, TR31_C0_CARD_VERIFICATION_KEY, TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY, TR31_D1_ASYMMETRIC_KEY_FOR_DATA_ENCRYPTION, TR31_E0_EMV_MKEY_APP_CRYPTOGRAMS, TR31_E1_EMV_MKEY_CONFIDENTIALITY, TR31_E2_EMV_MKEY_INTEGRITY, TR31_E4_EMV_MKEY_DYNAMIC_NUMBERS, TR31_E5_EMV_MKEY_CARD_PERSONALIZATION, TR31_E6_EMV_MKEY_OTHER, TR31_K0_KEY_ENCRYPTION_KEY, TR31_K1_KEY_BLOCK_PROTECTION_KEY, TR31_K3_ASYMMETRIC_KEY_FOR_KEY_AGREEMENT, TR31_M3_ISO_9797_3_MAC_KEY, TR31_M1_ISO_9797_1_MAC_KEY, TR31_M6_ISO_9797_5_CMAC_KEY, TR31_M7_HMAC_KEY, TR31_P0_PIN_ENCRYPTION_KEY, TR31_P1_PIN_GENERATION_KEY, TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE, TR31_V1_IBM3624_PIN_VERIFICATION_KEY, TR31_V2_VISA_PIN_VERIFICATION_KEY, TR31_K2_TR34_ASYMMETRIC_KEY
1700
1801
  # key_class: "SYMMETRIC_KEY", # required, accepts SYMMETRIC_KEY, ASYMMETRIC_KEY_PAIR, PRIVATE_KEY, PUBLIC_KEY
1701
- # key_algorithm: "TDES_2KEY", # required, accepts TDES_2KEY, TDES_3KEY, AES_128, AES_192, AES_256, RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521
1802
+ # key_algorithm: "TDES_2KEY", # required, accepts TDES_2KEY, TDES_3KEY, AES_128, AES_192, AES_256, HMAC_SHA256, HMAC_SHA384, HMAC_SHA512, HMAC_SHA224, RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521
1702
1803
  # key_modes_of_use: { # required
1703
1804
  # encrypt: false,
1704
1805
  # decrypt: false,
@@ -1717,7 +1818,7 @@ module Aws::PaymentCryptography
1717
1818
  # key_attributes: { # required
1718
1819
  # key_usage: "TR31_B0_BASE_DERIVATION_KEY", # required, accepts TR31_B0_BASE_DERIVATION_KEY, TR31_C0_CARD_VERIFICATION_KEY, TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY, TR31_D1_ASYMMETRIC_KEY_FOR_DATA_ENCRYPTION, TR31_E0_EMV_MKEY_APP_CRYPTOGRAMS, TR31_E1_EMV_MKEY_CONFIDENTIALITY, TR31_E2_EMV_MKEY_INTEGRITY, TR31_E4_EMV_MKEY_DYNAMIC_NUMBERS, TR31_E5_EMV_MKEY_CARD_PERSONALIZATION, TR31_E6_EMV_MKEY_OTHER, TR31_K0_KEY_ENCRYPTION_KEY, TR31_K1_KEY_BLOCK_PROTECTION_KEY, TR31_K3_ASYMMETRIC_KEY_FOR_KEY_AGREEMENT, TR31_M3_ISO_9797_3_MAC_KEY, TR31_M1_ISO_9797_1_MAC_KEY, TR31_M6_ISO_9797_5_CMAC_KEY, TR31_M7_HMAC_KEY, TR31_P0_PIN_ENCRYPTION_KEY, TR31_P1_PIN_GENERATION_KEY, TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE, TR31_V1_IBM3624_PIN_VERIFICATION_KEY, TR31_V2_VISA_PIN_VERIFICATION_KEY, TR31_K2_TR34_ASYMMETRIC_KEY
1719
1820
  # key_class: "SYMMETRIC_KEY", # required, accepts SYMMETRIC_KEY, ASYMMETRIC_KEY_PAIR, PRIVATE_KEY, PUBLIC_KEY
1720
- # key_algorithm: "TDES_2KEY", # required, accepts TDES_2KEY, TDES_3KEY, AES_128, AES_192, AES_256, RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521
1821
+ # key_algorithm: "TDES_2KEY", # required, accepts TDES_2KEY, TDES_3KEY, AES_128, AES_192, AES_256, HMAC_SHA256, HMAC_SHA384, HMAC_SHA512, HMAC_SHA224, RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521
1721
1822
  # key_modes_of_use: { # required
1722
1823
  # encrypt: false,
1723
1824
  # decrypt: false,
@@ -1749,7 +1850,7 @@ module Aws::PaymentCryptography
1749
1850
  # key_attributes: { # required
1750
1851
  # key_usage: "TR31_B0_BASE_DERIVATION_KEY", # required, accepts TR31_B0_BASE_DERIVATION_KEY, TR31_C0_CARD_VERIFICATION_KEY, TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY, TR31_D1_ASYMMETRIC_KEY_FOR_DATA_ENCRYPTION, TR31_E0_EMV_MKEY_APP_CRYPTOGRAMS, TR31_E1_EMV_MKEY_CONFIDENTIALITY, TR31_E2_EMV_MKEY_INTEGRITY, TR31_E4_EMV_MKEY_DYNAMIC_NUMBERS, TR31_E5_EMV_MKEY_CARD_PERSONALIZATION, TR31_E6_EMV_MKEY_OTHER, TR31_K0_KEY_ENCRYPTION_KEY, TR31_K1_KEY_BLOCK_PROTECTION_KEY, TR31_K3_ASYMMETRIC_KEY_FOR_KEY_AGREEMENT, TR31_M3_ISO_9797_3_MAC_KEY, TR31_M1_ISO_9797_1_MAC_KEY, TR31_M6_ISO_9797_5_CMAC_KEY, TR31_M7_HMAC_KEY, TR31_P0_PIN_ENCRYPTION_KEY, TR31_P1_PIN_GENERATION_KEY, TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE, TR31_V1_IBM3624_PIN_VERIFICATION_KEY, TR31_V2_VISA_PIN_VERIFICATION_KEY, TR31_K2_TR34_ASYMMETRIC_KEY
1751
1852
  # key_class: "SYMMETRIC_KEY", # required, accepts SYMMETRIC_KEY, ASYMMETRIC_KEY_PAIR, PRIVATE_KEY, PUBLIC_KEY
1752
- # key_algorithm: "TDES_2KEY", # required, accepts TDES_2KEY, TDES_3KEY, AES_128, AES_192, AES_256, RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521
1853
+ # key_algorithm: "TDES_2KEY", # required, accepts TDES_2KEY, TDES_3KEY, AES_128, AES_192, AES_256, HMAC_SHA256, HMAC_SHA384, HMAC_SHA512, HMAC_SHA224, RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521
1753
1854
  # key_modes_of_use: { # required
1754
1855
  # encrypt: false,
1755
1856
  # decrypt: false,
@@ -1771,7 +1872,7 @@ module Aws::PaymentCryptography
1771
1872
  # private_key_identifier: "KeyArnOrKeyAliasType", # required
1772
1873
  # certificate_authority_public_key_identifier: "KeyArnOrKeyAliasType", # required
1773
1874
  # public_key_certificate: "CertificateType", # required
1774
- # derive_key_algorithm: "TDES_2KEY", # required, accepts TDES_2KEY, TDES_3KEY, AES_128, AES_192, AES_256
1875
+ # 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
1775
1876
  # key_derivation_function: "NIST_SP800", # required, accepts NIST_SP800, ANSI_X963
1776
1877
  # key_derivation_hash_algorithm: "SHA_256", # required, accepts SHA_256, SHA_384, SHA_512
1777
1878
  # derivation_data: { # required
@@ -1780,7 +1881,7 @@ module Aws::PaymentCryptography
1780
1881
  # wrapped_key_block: "Tr31WrappedKeyBlock", # required
1781
1882
  # },
1782
1883
  # },
1783
- # key_check_value_algorithm: "CMAC", # accepts CMAC, ANSI_X9_24
1884
+ # key_check_value_algorithm: "CMAC", # accepts CMAC, ANSI_X9_24, HMAC
1784
1885
  # enabled: false,
1785
1886
  # tags: [
1786
1887
  # {
@@ -1795,7 +1896,7 @@ module Aws::PaymentCryptography
1795
1896
  # resp.key.key_arn #=> String
1796
1897
  # resp.key.key_attributes.key_usage #=> String, one of "TR31_B0_BASE_DERIVATION_KEY", "TR31_C0_CARD_VERIFICATION_KEY", "TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY", "TR31_D1_ASYMMETRIC_KEY_FOR_DATA_ENCRYPTION", "TR31_E0_EMV_MKEY_APP_CRYPTOGRAMS", "TR31_E1_EMV_MKEY_CONFIDENTIALITY", "TR31_E2_EMV_MKEY_INTEGRITY", "TR31_E4_EMV_MKEY_DYNAMIC_NUMBERS", "TR31_E5_EMV_MKEY_CARD_PERSONALIZATION", "TR31_E6_EMV_MKEY_OTHER", "TR31_K0_KEY_ENCRYPTION_KEY", "TR31_K1_KEY_BLOCK_PROTECTION_KEY", "TR31_K3_ASYMMETRIC_KEY_FOR_KEY_AGREEMENT", "TR31_M3_ISO_9797_3_MAC_KEY", "TR31_M1_ISO_9797_1_MAC_KEY", "TR31_M6_ISO_9797_5_CMAC_KEY", "TR31_M7_HMAC_KEY", "TR31_P0_PIN_ENCRYPTION_KEY", "TR31_P1_PIN_GENERATION_KEY", "TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE", "TR31_V1_IBM3624_PIN_VERIFICATION_KEY", "TR31_V2_VISA_PIN_VERIFICATION_KEY", "TR31_K2_TR34_ASYMMETRIC_KEY"
1797
1898
  # resp.key.key_attributes.key_class #=> String, one of "SYMMETRIC_KEY", "ASYMMETRIC_KEY_PAIR", "PRIVATE_KEY", "PUBLIC_KEY"
1798
- # resp.key.key_attributes.key_algorithm #=> String, one of "TDES_2KEY", "TDES_3KEY", "AES_128", "AES_192", "AES_256", "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521"
1899
+ # resp.key.key_attributes.key_algorithm #=> String, one of "TDES_2KEY", "TDES_3KEY", "AES_128", "AES_192", "AES_256", "HMAC_SHA256", "HMAC_SHA384", "HMAC_SHA512", "HMAC_SHA224", "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521"
1799
1900
  # resp.key.key_attributes.key_modes_of_use.encrypt #=> Boolean
1800
1901
  # resp.key.key_attributes.key_modes_of_use.decrypt #=> Boolean
1801
1902
  # resp.key.key_attributes.key_modes_of_use.wrap #=> Boolean
@@ -1806,7 +1907,7 @@ module Aws::PaymentCryptography
1806
1907
  # resp.key.key_attributes.key_modes_of_use.derive_key #=> Boolean
1807
1908
  # resp.key.key_attributes.key_modes_of_use.no_restrictions #=> Boolean
1808
1909
  # resp.key.key_check_value #=> String
1809
- # resp.key.key_check_value_algorithm #=> String, one of "CMAC", "ANSI_X9_24"
1910
+ # resp.key.key_check_value_algorithm #=> String, one of "CMAC", "ANSI_X9_24", "HMAC"
1810
1911
  # resp.key.enabled #=> Boolean
1811
1912
  # resp.key.exportable #=> Boolean
1812
1913
  # resp.key.key_state #=> String, one of "CREATE_IN_PROGRESS", "CREATE_COMPLETE", "DELETE_PENDING", "DELETE_COMPLETE"
@@ -1974,7 +2075,7 @@ module Aws::PaymentCryptography
1974
2075
  # resp.keys[0].key_state #=> String, one of "CREATE_IN_PROGRESS", "CREATE_COMPLETE", "DELETE_PENDING", "DELETE_COMPLETE"
1975
2076
  # resp.keys[0].key_attributes.key_usage #=> String, one of "TR31_B0_BASE_DERIVATION_KEY", "TR31_C0_CARD_VERIFICATION_KEY", "TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY", "TR31_D1_ASYMMETRIC_KEY_FOR_DATA_ENCRYPTION", "TR31_E0_EMV_MKEY_APP_CRYPTOGRAMS", "TR31_E1_EMV_MKEY_CONFIDENTIALITY", "TR31_E2_EMV_MKEY_INTEGRITY", "TR31_E4_EMV_MKEY_DYNAMIC_NUMBERS", "TR31_E5_EMV_MKEY_CARD_PERSONALIZATION", "TR31_E6_EMV_MKEY_OTHER", "TR31_K0_KEY_ENCRYPTION_KEY", "TR31_K1_KEY_BLOCK_PROTECTION_KEY", "TR31_K3_ASYMMETRIC_KEY_FOR_KEY_AGREEMENT", "TR31_M3_ISO_9797_3_MAC_KEY", "TR31_M1_ISO_9797_1_MAC_KEY", "TR31_M6_ISO_9797_5_CMAC_KEY", "TR31_M7_HMAC_KEY", "TR31_P0_PIN_ENCRYPTION_KEY", "TR31_P1_PIN_GENERATION_KEY", "TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE", "TR31_V1_IBM3624_PIN_VERIFICATION_KEY", "TR31_V2_VISA_PIN_VERIFICATION_KEY", "TR31_K2_TR34_ASYMMETRIC_KEY"
1976
2077
  # resp.keys[0].key_attributes.key_class #=> String, one of "SYMMETRIC_KEY", "ASYMMETRIC_KEY_PAIR", "PRIVATE_KEY", "PUBLIC_KEY"
1977
- # resp.keys[0].key_attributes.key_algorithm #=> String, one of "TDES_2KEY", "TDES_3KEY", "AES_128", "AES_192", "AES_256", "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521"
2078
+ # resp.keys[0].key_attributes.key_algorithm #=> String, one of "TDES_2KEY", "TDES_3KEY", "AES_128", "AES_192", "AES_256", "HMAC_SHA256", "HMAC_SHA384", "HMAC_SHA512", "HMAC_SHA224", "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521"
1978
2079
  # resp.keys[0].key_attributes.key_modes_of_use.encrypt #=> Boolean
1979
2080
  # resp.keys[0].key_attributes.key_modes_of_use.decrypt #=> Boolean
1980
2081
  # resp.keys[0].key_attributes.key_modes_of_use.wrap #=> Boolean
@@ -2114,7 +2215,7 @@ module Aws::PaymentCryptography
2114
2215
  # resp.key.key_arn #=> String
2115
2216
  # resp.key.key_attributes.key_usage #=> String, one of "TR31_B0_BASE_DERIVATION_KEY", "TR31_C0_CARD_VERIFICATION_KEY", "TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY", "TR31_D1_ASYMMETRIC_KEY_FOR_DATA_ENCRYPTION", "TR31_E0_EMV_MKEY_APP_CRYPTOGRAMS", "TR31_E1_EMV_MKEY_CONFIDENTIALITY", "TR31_E2_EMV_MKEY_INTEGRITY", "TR31_E4_EMV_MKEY_DYNAMIC_NUMBERS", "TR31_E5_EMV_MKEY_CARD_PERSONALIZATION", "TR31_E6_EMV_MKEY_OTHER", "TR31_K0_KEY_ENCRYPTION_KEY", "TR31_K1_KEY_BLOCK_PROTECTION_KEY", "TR31_K3_ASYMMETRIC_KEY_FOR_KEY_AGREEMENT", "TR31_M3_ISO_9797_3_MAC_KEY", "TR31_M1_ISO_9797_1_MAC_KEY", "TR31_M6_ISO_9797_5_CMAC_KEY", "TR31_M7_HMAC_KEY", "TR31_P0_PIN_ENCRYPTION_KEY", "TR31_P1_PIN_GENERATION_KEY", "TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE", "TR31_V1_IBM3624_PIN_VERIFICATION_KEY", "TR31_V2_VISA_PIN_VERIFICATION_KEY", "TR31_K2_TR34_ASYMMETRIC_KEY"
2116
2217
  # resp.key.key_attributes.key_class #=> String, one of "SYMMETRIC_KEY", "ASYMMETRIC_KEY_PAIR", "PRIVATE_KEY", "PUBLIC_KEY"
2117
- # resp.key.key_attributes.key_algorithm #=> String, one of "TDES_2KEY", "TDES_3KEY", "AES_128", "AES_192", "AES_256", "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521"
2218
+ # resp.key.key_attributes.key_algorithm #=> String, one of "TDES_2KEY", "TDES_3KEY", "AES_128", "AES_192", "AES_256", "HMAC_SHA256", "HMAC_SHA384", "HMAC_SHA512", "HMAC_SHA224", "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521"
2118
2219
  # resp.key.key_attributes.key_modes_of_use.encrypt #=> Boolean
2119
2220
  # resp.key.key_attributes.key_modes_of_use.decrypt #=> Boolean
2120
2221
  # resp.key.key_attributes.key_modes_of_use.wrap #=> Boolean
@@ -2125,7 +2226,7 @@ module Aws::PaymentCryptography
2125
2226
  # resp.key.key_attributes.key_modes_of_use.derive_key #=> Boolean
2126
2227
  # resp.key.key_attributes.key_modes_of_use.no_restrictions #=> Boolean
2127
2228
  # resp.key.key_check_value #=> String
2128
- # resp.key.key_check_value_algorithm #=> String, one of "CMAC", "ANSI_X9_24"
2229
+ # resp.key.key_check_value_algorithm #=> String, one of "CMAC", "ANSI_X9_24", "HMAC"
2129
2230
  # resp.key.enabled #=> Boolean
2130
2231
  # resp.key.exportable #=> Boolean
2131
2232
  # resp.key.key_state #=> String, one of "CREATE_IN_PROGRESS", "CREATE_COMPLETE", "DELETE_PENDING", "DELETE_COMPLETE"
@@ -2181,7 +2282,7 @@ module Aws::PaymentCryptography
2181
2282
  # resp.key.key_arn #=> String
2182
2283
  # resp.key.key_attributes.key_usage #=> String, one of "TR31_B0_BASE_DERIVATION_KEY", "TR31_C0_CARD_VERIFICATION_KEY", "TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY", "TR31_D1_ASYMMETRIC_KEY_FOR_DATA_ENCRYPTION", "TR31_E0_EMV_MKEY_APP_CRYPTOGRAMS", "TR31_E1_EMV_MKEY_CONFIDENTIALITY", "TR31_E2_EMV_MKEY_INTEGRITY", "TR31_E4_EMV_MKEY_DYNAMIC_NUMBERS", "TR31_E5_EMV_MKEY_CARD_PERSONALIZATION", "TR31_E6_EMV_MKEY_OTHER", "TR31_K0_KEY_ENCRYPTION_KEY", "TR31_K1_KEY_BLOCK_PROTECTION_KEY", "TR31_K3_ASYMMETRIC_KEY_FOR_KEY_AGREEMENT", "TR31_M3_ISO_9797_3_MAC_KEY", "TR31_M1_ISO_9797_1_MAC_KEY", "TR31_M6_ISO_9797_5_CMAC_KEY", "TR31_M7_HMAC_KEY", "TR31_P0_PIN_ENCRYPTION_KEY", "TR31_P1_PIN_GENERATION_KEY", "TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE", "TR31_V1_IBM3624_PIN_VERIFICATION_KEY", "TR31_V2_VISA_PIN_VERIFICATION_KEY", "TR31_K2_TR34_ASYMMETRIC_KEY"
2183
2284
  # resp.key.key_attributes.key_class #=> String, one of "SYMMETRIC_KEY", "ASYMMETRIC_KEY_PAIR", "PRIVATE_KEY", "PUBLIC_KEY"
2184
- # resp.key.key_attributes.key_algorithm #=> String, one of "TDES_2KEY", "TDES_3KEY", "AES_128", "AES_192", "AES_256", "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521"
2285
+ # resp.key.key_attributes.key_algorithm #=> String, one of "TDES_2KEY", "TDES_3KEY", "AES_128", "AES_192", "AES_256", "HMAC_SHA256", "HMAC_SHA384", "HMAC_SHA512", "HMAC_SHA224", "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521"
2185
2286
  # resp.key.key_attributes.key_modes_of_use.encrypt #=> Boolean
2186
2287
  # resp.key.key_attributes.key_modes_of_use.decrypt #=> Boolean
2187
2288
  # resp.key.key_attributes.key_modes_of_use.wrap #=> Boolean
@@ -2192,7 +2293,7 @@ module Aws::PaymentCryptography
2192
2293
  # resp.key.key_attributes.key_modes_of_use.derive_key #=> Boolean
2193
2294
  # resp.key.key_attributes.key_modes_of_use.no_restrictions #=> Boolean
2194
2295
  # resp.key.key_check_value #=> String
2195
- # resp.key.key_check_value_algorithm #=> String, one of "CMAC", "ANSI_X9_24"
2296
+ # resp.key.key_check_value_algorithm #=> String, one of "CMAC", "ANSI_X9_24", "HMAC"
2196
2297
  # resp.key.enabled #=> Boolean
2197
2298
  # resp.key.exportable #=> Boolean
2198
2299
  # resp.key.key_state #=> String, one of "CREATE_IN_PROGRESS", "CREATE_COMPLETE", "DELETE_PENDING", "DELETE_COMPLETE"
@@ -2252,7 +2353,7 @@ module Aws::PaymentCryptography
2252
2353
  # resp.key.key_arn #=> String
2253
2354
  # resp.key.key_attributes.key_usage #=> String, one of "TR31_B0_BASE_DERIVATION_KEY", "TR31_C0_CARD_VERIFICATION_KEY", "TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY", "TR31_D1_ASYMMETRIC_KEY_FOR_DATA_ENCRYPTION", "TR31_E0_EMV_MKEY_APP_CRYPTOGRAMS", "TR31_E1_EMV_MKEY_CONFIDENTIALITY", "TR31_E2_EMV_MKEY_INTEGRITY", "TR31_E4_EMV_MKEY_DYNAMIC_NUMBERS", "TR31_E5_EMV_MKEY_CARD_PERSONALIZATION", "TR31_E6_EMV_MKEY_OTHER", "TR31_K0_KEY_ENCRYPTION_KEY", "TR31_K1_KEY_BLOCK_PROTECTION_KEY", "TR31_K3_ASYMMETRIC_KEY_FOR_KEY_AGREEMENT", "TR31_M3_ISO_9797_3_MAC_KEY", "TR31_M1_ISO_9797_1_MAC_KEY", "TR31_M6_ISO_9797_5_CMAC_KEY", "TR31_M7_HMAC_KEY", "TR31_P0_PIN_ENCRYPTION_KEY", "TR31_P1_PIN_GENERATION_KEY", "TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE", "TR31_V1_IBM3624_PIN_VERIFICATION_KEY", "TR31_V2_VISA_PIN_VERIFICATION_KEY", "TR31_K2_TR34_ASYMMETRIC_KEY"
2254
2355
  # resp.key.key_attributes.key_class #=> String, one of "SYMMETRIC_KEY", "ASYMMETRIC_KEY_PAIR", "PRIVATE_KEY", "PUBLIC_KEY"
2255
- # resp.key.key_attributes.key_algorithm #=> String, one of "TDES_2KEY", "TDES_3KEY", "AES_128", "AES_192", "AES_256", "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521"
2356
+ # resp.key.key_attributes.key_algorithm #=> String, one of "TDES_2KEY", "TDES_3KEY", "AES_128", "AES_192", "AES_256", "HMAC_SHA256", "HMAC_SHA384", "HMAC_SHA512", "HMAC_SHA224", "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521"
2256
2357
  # resp.key.key_attributes.key_modes_of_use.encrypt #=> Boolean
2257
2358
  # resp.key.key_attributes.key_modes_of_use.decrypt #=> Boolean
2258
2359
  # resp.key.key_attributes.key_modes_of_use.wrap #=> Boolean
@@ -2263,7 +2364,7 @@ module Aws::PaymentCryptography
2263
2364
  # resp.key.key_attributes.key_modes_of_use.derive_key #=> Boolean
2264
2365
  # resp.key.key_attributes.key_modes_of_use.no_restrictions #=> Boolean
2265
2366
  # resp.key.key_check_value #=> String
2266
- # resp.key.key_check_value_algorithm #=> String, one of "CMAC", "ANSI_X9_24"
2367
+ # resp.key.key_check_value_algorithm #=> String, one of "CMAC", "ANSI_X9_24", "HMAC"
2267
2368
  # resp.key.enabled #=> Boolean
2268
2369
  # resp.key.exportable #=> Boolean
2269
2370
  # resp.key.key_state #=> String, one of "CREATE_IN_PROGRESS", "CREATE_COMPLETE", "DELETE_PENDING", "DELETE_COMPLETE"
@@ -2493,7 +2594,7 @@ module Aws::PaymentCryptography
2493
2594
  tracer: tracer
2494
2595
  )
2495
2596
  context[:gem_name] = 'aws-sdk-paymentcryptography'
2496
- context[:gem_version] = '1.35.0'
2597
+ context[:gem_version] = '1.37.0'
2497
2598
  Seahorse::Client::Request.new(handlers, context)
2498
2599
  end
2499
2600