aws-sdk-kms 1.135.0 → 1.136.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: db01ac349a82ef63df3f7a70cbcd6d67ceb8ef01dde95083c7ca73815f558c33
4
- data.tar.gz: 6c0fb6cc68a8dc87913d4fe48201406d08996c1483212cb88491d889e79495d3
3
+ metadata.gz: 5ec239237e7bd70a8d1970abecb35397b740f37bb3c0f08e730f9bccb4193025
4
+ data.tar.gz: 118c0f0aa37c952a2ceff53b679c66dee5f9b35f2a3f7f0f243f1ceba6350522
5
5
  SHA512:
6
- metadata.gz: 35522e9bbc413d41ef9ae087330befda2b4b1cc529ba703f7fade3a6171b73e6a164f75bfe3e2d3468f2dac96698bcef6dd41bc66e88679bb94befe961d2a247
7
- data.tar.gz: c1f4a01a91047c4eb847722a3a8f0fab8c83b7352bafb8f5e53c2d236cfbced85d7201aeb00609d3e766e501c4377c68cd2e56f6fd80123113ee75bec9a4736e
6
+ metadata.gz: ded191d2ce8ef5739a27758d51512e29efa346963b316b011a36a288871def80f3c8f82eb84c8fc164cfd3764cf29e1e6f179ce9bd276fcc78e4779357db796a
7
+ data.tar.gz: 3f953533e0dbf41cd2cd0148f50ef02c24341ac5d09fed5c0e6c6f396fa284d70f9c963d7c3c3179fe22d14a986089d52530b81a5e038c40a3edf93eebe389ff
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.136.0 (2026-10-26)
5
+ ------------------
6
+
7
+ * Feature - This release adds support for ML-KEM (Module-Lattice-Based Key-Encapsulation Mechanism) keys in AWS KMS. ML-KEM, as specified in NIST FIPS 203, is a post-quantum key encapsulation mechanism that can be used to establish a shared secret between two parties.
8
+
4
9
  1.135.0 (2026-10-21)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.135.0
1
+ 1.136.0
@@ -1570,7 +1570,7 @@ module Aws::KMS
1570
1570
  # key_id: "KeyIdType", # required
1571
1571
  # grantee_principal: "PrincipalIdType",
1572
1572
  # retiring_principal: "PrincipalIdType",
1573
- # operations: ["Decrypt"], # required, accepts Decrypt, Encrypt, GenerateDataKey, GenerateDataKeyWithoutPlaintext, ReEncryptFrom, ReEncryptTo, Sign, Verify, GetPublicKey, CreateGrant, RetireGrant, DescribeKey, GenerateDataKeyPair, GenerateDataKeyPairWithoutPlaintext, GenerateMac, VerifyMac, DeriveSharedSecret
1573
+ # operations: ["Decrypt"], # required, accepts Decrypt, Encrypt, GenerateDataKey, GenerateDataKeyWithoutPlaintext, ReEncryptFrom, ReEncryptTo, Sign, Verify, GetPublicKey, CreateGrant, RetireGrant, DescribeKey, GenerateDataKeyPair, GenerateDataKeyPairWithoutPlaintext, GenerateMac, VerifyMac, DeriveSharedSecret, Encapsulate, Decapsulate
1574
1574
  # constraints: {
1575
1575
  # encryption_context_subset: {
1576
1576
  # "EncryptionContextKey" => "EncryptionContextValue",
@@ -1923,6 +1923,9 @@ module Aws::KMS
1923
1923
  # * For asymmetric KMS keys with ML-DSA key pairs, specify
1924
1924
  # `SIGN_VERIFY`.
1925
1925
  #
1926
+ # * For asymmetric KMS keys with ML-KEM key pairs, specify
1927
+ # `ENCAPSULATE_DECAPSULATE`.
1928
+ #
1926
1929
  # * For asymmetric KMS keys with SM2 key pairs (China Regions only),
1927
1930
  # specify `ENCRYPT_DECRYPT`, `SIGN_VERIFY`, or `KEY_AGREEMENT`.
1928
1931
  #
@@ -2017,6 +2020,15 @@ module Aws::KMS
2017
2020
  # * `ML_DSA_65`
2018
2021
  #
2019
2022
  # * `ML_DSA_87`
2023
+ # * Asymmetric ML-KEM key pairs (establishing shared secrets)
2024
+ #
2025
+ # * `ML_KEM_512`
2026
+ #
2027
+ # * `ML_KEM_768`
2028
+ #
2029
+ # * `ML_KEM_1024`
2030
+ # The ML-KEM key specs are not available in China Regions.
2031
+ #
2020
2032
  # * SM2 key pairs (encryption and decryption -or- signing and
2021
2033
  # verification -or- deriving shared secrets)
2022
2034
  #
@@ -2518,9 +2530,9 @@ module Aws::KMS
2518
2530
  # resp = client.create_key({
2519
2531
  # policy: "PolicyType",
2520
2532
  # description: "DescriptionType",
2521
- # key_usage: "SIGN_VERIFY", # accepts SIGN_VERIFY, ENCRYPT_DECRYPT, GENERATE_VERIFY_MAC, KEY_AGREEMENT
2533
+ # key_usage: "SIGN_VERIFY", # accepts SIGN_VERIFY, ENCRYPT_DECRYPT, GENERATE_VERIFY_MAC, KEY_AGREEMENT, ENCAPSULATE_DECAPSULATE
2522
2534
  # customer_master_key_spec: "RSA_2048", # accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1, SYMMETRIC_DEFAULT, HMAC_224, HMAC_256, HMAC_384, HMAC_512, SM2
2523
- # key_spec: "RSA_2048", # accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1, SYMMETRIC_DEFAULT, HMAC_224, HMAC_256, HMAC_384, HMAC_512, SM2, ML_DSA_44, ML_DSA_65, ML_DSA_87, ECC_NIST_EDWARDS25519
2535
+ # key_spec: "RSA_2048", # accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1, SYMMETRIC_DEFAULT, HMAC_224, HMAC_256, HMAC_384, HMAC_512, SM2, ML_DSA_44, ML_DSA_65, ML_DSA_87, ECC_NIST_EDWARDS25519, ML_KEM_512, ML_KEM_768, ML_KEM_1024
2524
2536
  # origin: "AWS_KMS", # accepts AWS_KMS, EXTERNAL, AWS_CLOUDHSM, EXTERNAL_KEY_STORE
2525
2537
  # custom_key_store_id: "CustomKeyStoreIdType",
2526
2538
  # bypass_policy_lockout_safety_check: false,
@@ -2542,7 +2554,7 @@ module Aws::KMS
2542
2554
  # resp.key_metadata.creation_date #=> Time
2543
2555
  # resp.key_metadata.enabled #=> Boolean
2544
2556
  # resp.key_metadata.description #=> String
2545
- # resp.key_metadata.key_usage #=> String, one of "SIGN_VERIFY", "ENCRYPT_DECRYPT", "GENERATE_VERIFY_MAC", "KEY_AGREEMENT"
2557
+ # resp.key_metadata.key_usage #=> String, one of "SIGN_VERIFY", "ENCRYPT_DECRYPT", "GENERATE_VERIFY_MAC", "KEY_AGREEMENT", "ENCAPSULATE_DECAPSULATE"
2546
2558
  # resp.key_metadata.key_state #=> String, one of "Creating", "Enabled", "Disabled", "PendingDeletion", "PendingImport", "PendingReplicaDeletion", "Unavailable", "Updating"
2547
2559
  # resp.key_metadata.deletion_date #=> Time
2548
2560
  # resp.key_metadata.valid_to #=> Time
@@ -2552,13 +2564,15 @@ module Aws::KMS
2552
2564
  # resp.key_metadata.expiration_model #=> String, one of "KEY_MATERIAL_EXPIRES", "KEY_MATERIAL_DOES_NOT_EXPIRE"
2553
2565
  # resp.key_metadata.key_manager #=> String, one of "AWS", "CUSTOMER"
2554
2566
  # resp.key_metadata.customer_master_key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2"
2555
- # resp.key_metadata.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2", "ML_DSA_44", "ML_DSA_65", "ML_DSA_87", "ECC_NIST_EDWARDS25519"
2567
+ # resp.key_metadata.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2", "ML_DSA_44", "ML_DSA_65", "ML_DSA_87", "ECC_NIST_EDWARDS25519", "ML_KEM_512", "ML_KEM_768", "ML_KEM_1024"
2556
2568
  # resp.key_metadata.encryption_algorithms #=> Array
2557
2569
  # resp.key_metadata.encryption_algorithms[0] #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE"
2558
2570
  # resp.key_metadata.signing_algorithms #=> Array
2559
2571
  # resp.key_metadata.signing_algorithms[0] #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA", "ML_DSA_SHAKE_256", "ED25519_SHA_512", "ED25519_PH_SHA_512"
2560
2572
  # resp.key_metadata.key_agreement_algorithms #=> Array
2561
2573
  # resp.key_metadata.key_agreement_algorithms[0] #=> String, one of "ECDH"
2574
+ # resp.key_metadata.encapsulation_algorithms #=> Array
2575
+ # resp.key_metadata.encapsulation_algorithms[0] #=> String, one of "ML_KEM"
2562
2576
  # resp.key_metadata.multi_region #=> Boolean
2563
2577
  # resp.key_metadata.multi_region_configuration.multi_region_key_type #=> String, one of "PRIMARY", "REPLICA"
2564
2578
  # resp.key_metadata.multi_region_configuration.primary_key.arn #=> String
@@ -2581,6 +2595,173 @@ module Aws::KMS
2581
2595
  req.send_request(options)
2582
2596
  end
2583
2597
 
2598
+ # Recovers the shared secret that was encapsulated with the public key
2599
+ # of an ML-KEM KMS key. Module-Lattice-Based Key-Encapsulation Mechanism
2600
+ # (ML-KEM), specified in [FIPS 203][1] on the NIST website, is a
2601
+ # post-quantum algorithm for establishing a shared secret between two
2602
+ # parties. For an example of how two parties establish a shared secret
2603
+ # over an insecure channel using ML-KEM, see [ML-KEM keys in KMS][2] in
2604
+ # the *Key Management Service Developer Guide*.
2605
+ #
2606
+ # The Decapsulate operation is not available in China Regions.
2607
+ #
2608
+ # `Decapsulate` returns the shared secret as a 32-byte value. You can
2609
+ # use it directly as key material, or run it through a key derivation
2610
+ # function to derive multiple keys and nonces.
2611
+ #
2612
+ # `Decapsulate` returns an `InvalidCiphertextException` when the length
2613
+ # of the `SharedSecretCiphertextBlob` is inconsistent with the ML-KEM
2614
+ # key spec. In all other cases, `Decapsulate` returns a 32-byte
2615
+ # pseudo-random value. This is true even when the
2616
+ # `SharedSecretCiphertextBlob` was created using a different ML-KEM key
2617
+ # or altered from its original value. This behavior is a security
2618
+ # feature called *implicit rejection* that helps protect against
2619
+ # chosen-ciphertext attacks.
2620
+ #
2621
+ # Because a response does not indicate that the ciphertext and key are
2622
+ # valid, confirm the two parties derived the same shared secret before
2623
+ # using it.
2624
+ #
2625
+ # The KMS key that you use for this operation must be in a compatible
2626
+ # key state. For details, see [Key states of KMS keys][3] in the *Key
2627
+ # Management Service Developer Guide*.
2628
+ #
2629
+ # **Cross-account use**: Yes. To perform this operation with a KMS key
2630
+ # in a different Amazon Web Services account, specify the key ARN or
2631
+ # alias ARN in the value of the `KeyId` parameter.
2632
+ #
2633
+ # **Required permissions**: [kms:Decapsulate][4] (key policy)
2634
+ #
2635
+ # **Related operations:**
2636
+ #
2637
+ # * Encapsulate
2638
+ #
2639
+ # * CreateKey
2640
+ #
2641
+ # * GetPublicKey
2642
+ #
2643
+ # * DescribeKey
2644
+ #
2645
+ # **Eventual consistency**: The KMS API follows an eventual consistency
2646
+ # model. For more information, see [KMS eventual consistency][5].
2647
+ #
2648
+ #
2649
+ #
2650
+ # [1]: https://csrc.nist.gov/pubs/fips/203/final
2651
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/pqkeys.html#mlkem
2652
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
2653
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
2654
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
2655
+ #
2656
+ # @option params [required, String] :key_id
2657
+ # Identifies the asymmetric ML-KEM KMS key whose public key was used to
2658
+ # produce the encapsulated shared secret. KMS uses the private key in
2659
+ # the specified key pair to decapsulate the shared secret.
2660
+ #
2661
+ # To specify a KMS key, use its key ID, key ARN, alias name, or alias
2662
+ # ARN. When using an alias name, prefix it with `"alias/"`. To specify a
2663
+ # KMS key in a different Amazon Web Services account, you must use the
2664
+ # key ARN or alias ARN.
2665
+ #
2666
+ # For example:
2667
+ #
2668
+ # * Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab`
2669
+ #
2670
+ # * Key ARN:
2671
+ # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
2672
+ #
2673
+ # * Alias name: `alias/ExampleAlias`
2674
+ #
2675
+ # * Alias ARN: `arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias`
2676
+ #
2677
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
2678
+ # DescribeKey. To get the alias name and alias ARN, use ListAliases.
2679
+ #
2680
+ # @option params [required, String, StringIO, File] :shared_secret_ciphertext_blob
2681
+ # The encapsulated (ciphertext) form of the shared secret to recover.
2682
+ # This is the `SharedSecretCiphertextBlob` value that the Encapsulate
2683
+ # operation returns. When you use the HTTP API or the Amazon Web
2684
+ # Services CLI, the value is Base64-encoded. Otherwise, it is not
2685
+ # Base64-encoded.
2686
+ #
2687
+ # @option params [required, String] :encapsulation_algorithm
2688
+ # Specifies the key encapsulation algorithm used to recover the shared
2689
+ # secret. The only valid value is `ML_KEM`.
2690
+ #
2691
+ # @option params [Array<String>] :grant_tokens
2692
+ # A list of grant tokens.
2693
+ #
2694
+ # Use a grant token when your permission to call this operation comes
2695
+ # from a new grant that has not yet achieved *eventual consistency*. For
2696
+ # more information, see [Grant token][1] and [Using a grant token][2] in
2697
+ # the *Key Management Service Developer Guide*.
2698
+ #
2699
+ #
2700
+ #
2701
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
2702
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
2703
+ #
2704
+ # @option params [Boolean] :dry_run
2705
+ # Checks if your request will succeed. `DryRun` is an optional
2706
+ # parameter.
2707
+ #
2708
+ # To learn more about how to use this parameter, see [Testing your
2709
+ # permissions][1] in the *Key Management Service Developer Guide*.
2710
+ #
2711
+ #
2712
+ #
2713
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
2714
+ #
2715
+ # @return [Types::DecapsulateResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2716
+ #
2717
+ # * {Types::DecapsulateResponse#key_id #key_id} => String
2718
+ # * {Types::DecapsulateResponse#shared_secret #shared_secret} => String
2719
+ # * {Types::DecapsulateResponse#encapsulation_algorithm #encapsulation_algorithm} => String
2720
+ #
2721
+ #
2722
+ # @example Example: To recover a shared secret from its encapsulated ciphertext
2723
+ #
2724
+ # # Recovers a shared secret from its encapsulated ciphertext (SharedSecretCiphertextBlob) using the private key in an
2725
+ # # asymmetric ML-KEM KMS key. Your peer calls Encapsulate to generate the shared secret and ciphertext.
2726
+ #
2727
+ # resp = client.decapsulate({
2728
+ # encapsulation_algorithm: "ML_KEM", # The requested key encapsulation algorithm. The only valid value is ML_KEM.
2729
+ # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The asymmetric ML-KEM KMS key that recovers the shared secret.
2730
+ # shared_secret_ciphertext_blob: "<binary data>", # The encapsulated shared secret that you received from your peer.
2731
+ # })
2732
+ #
2733
+ # resp.to_h outputs the following:
2734
+ # {
2735
+ # encapsulation_algorithm: "ML_KEM", # The key encapsulation algorithm used to recover the shared secret.
2736
+ # key_id: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The key ARN of the asymmetric ML-KEM KMS key that recovered the shared secret.
2737
+ # shared_secret: "AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8=", # The raw shared secret. It matches the shared secret that Encapsulate returned to your peer.
2738
+ # }
2739
+ #
2740
+ # @example Request syntax with placeholder values
2741
+ #
2742
+ # resp = client.decapsulate({
2743
+ # key_id: "KeyIdType", # required
2744
+ # shared_secret_ciphertext_blob: "data", # required
2745
+ # encapsulation_algorithm: "ML_KEM", # required, accepts ML_KEM
2746
+ # grant_tokens: ["GrantTokenType"],
2747
+ # dry_run: false,
2748
+ # })
2749
+ #
2750
+ # @example Response structure
2751
+ #
2752
+ # resp.key_id #=> String
2753
+ # resp.shared_secret #=> String
2754
+ # resp.encapsulation_algorithm #=> String, one of "ML_KEM"
2755
+ #
2756
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/Decapsulate AWS API Documentation
2757
+ #
2758
+ # @overload decapsulate(params = {})
2759
+ # @param [Hash] params ({})
2760
+ def decapsulate(params = {}, options = {})
2761
+ req = build_request(:decapsulate, params)
2762
+ req.send_request(options)
2763
+ end
2764
+
2584
2765
  # Decrypts ciphertext that was encrypted by a KMS key using any of the
2585
2766
  # following operations:
2586
2767
  #
@@ -4099,7 +4280,7 @@ module Aws::KMS
4099
4280
  # resp.key_metadata.creation_date #=> Time
4100
4281
  # resp.key_metadata.enabled #=> Boolean
4101
4282
  # resp.key_metadata.description #=> String
4102
- # resp.key_metadata.key_usage #=> String, one of "SIGN_VERIFY", "ENCRYPT_DECRYPT", "GENERATE_VERIFY_MAC", "KEY_AGREEMENT"
4283
+ # resp.key_metadata.key_usage #=> String, one of "SIGN_VERIFY", "ENCRYPT_DECRYPT", "GENERATE_VERIFY_MAC", "KEY_AGREEMENT", "ENCAPSULATE_DECAPSULATE"
4103
4284
  # resp.key_metadata.key_state #=> String, one of "Creating", "Enabled", "Disabled", "PendingDeletion", "PendingImport", "PendingReplicaDeletion", "Unavailable", "Updating"
4104
4285
  # resp.key_metadata.deletion_date #=> Time
4105
4286
  # resp.key_metadata.valid_to #=> Time
@@ -4109,13 +4290,15 @@ module Aws::KMS
4109
4290
  # resp.key_metadata.expiration_model #=> String, one of "KEY_MATERIAL_EXPIRES", "KEY_MATERIAL_DOES_NOT_EXPIRE"
4110
4291
  # resp.key_metadata.key_manager #=> String, one of "AWS", "CUSTOMER"
4111
4292
  # resp.key_metadata.customer_master_key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2"
4112
- # resp.key_metadata.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2", "ML_DSA_44", "ML_DSA_65", "ML_DSA_87", "ECC_NIST_EDWARDS25519"
4293
+ # resp.key_metadata.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2", "ML_DSA_44", "ML_DSA_65", "ML_DSA_87", "ECC_NIST_EDWARDS25519", "ML_KEM_512", "ML_KEM_768", "ML_KEM_1024"
4113
4294
  # resp.key_metadata.encryption_algorithms #=> Array
4114
4295
  # resp.key_metadata.encryption_algorithms[0] #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE"
4115
4296
  # resp.key_metadata.signing_algorithms #=> Array
4116
4297
  # resp.key_metadata.signing_algorithms[0] #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA", "ML_DSA_SHAKE_256", "ED25519_SHA_512", "ED25519_PH_SHA_512"
4117
4298
  # resp.key_metadata.key_agreement_algorithms #=> Array
4118
4299
  # resp.key_metadata.key_agreement_algorithms[0] #=> String, one of "ECDH"
4300
+ # resp.key_metadata.encapsulation_algorithms #=> Array
4301
+ # resp.key_metadata.encapsulation_algorithms[0] #=> String, one of "ML_KEM"
4119
4302
  # resp.key_metadata.multi_region #=> Boolean
4120
4303
  # resp.key_metadata.multi_region_configuration.multi_region_key_type #=> String, one of "PRIMARY", "REPLICA"
4121
4304
  # resp.key_metadata.multi_region_configuration.primary_key.arn #=> String
@@ -4634,6 +4817,157 @@ module Aws::KMS
4634
4817
  req.send_request(options)
4635
4818
  end
4636
4819
 
4820
+ # Generates a shared secret and its encapsulated (ciphertext) form using
4821
+ # the public key of an ML-KEM KMS key pair. Module-Lattice-Based
4822
+ # Key-Encapsulation Mechanism (ML-KEM), specified in [FIPS 203][1] on
4823
+ # the NIST website, is a post-quantum algorithm for establishing a
4824
+ # shared secret between two parties.
4825
+ #
4826
+ # For an example of how two parties establish a shared secret over an
4827
+ # insecure channel using ML-KEM, see [ML-KEM keys in KMS][2] in the *Key
4828
+ # Management Service Developer Guide*.
4829
+ #
4830
+ # The Encapsulate operation is not available in China Regions.
4831
+ #
4832
+ # The KMS key that you use for this operation must be in a compatible
4833
+ # key state. For details, see [Key states of KMS keys][3] in the *Key
4834
+ # Management Service Developer Guide*.
4835
+ #
4836
+ # **Cross-account use**: Yes. To perform this operation with a KMS key
4837
+ # in a different Amazon Web Services account, specify the key ARN or
4838
+ # alias ARN in the value of the `KeyId` parameter.
4839
+ #
4840
+ # **Required permissions**: [kms:Encapsulate][4] (key policy)
4841
+ #
4842
+ # **Related operations:**
4843
+ #
4844
+ # * Decapsulate
4845
+ #
4846
+ # * DeriveSharedSecret
4847
+ #
4848
+ # * CreateKey
4849
+ #
4850
+ # * GetPublicKey
4851
+ #
4852
+ # * DescribeKey
4853
+ #
4854
+ # **Eventual consistency**: The KMS API follows an eventual consistency
4855
+ # model. For more information, see [KMS eventual consistency][5].
4856
+ #
4857
+ #
4858
+ #
4859
+ # [1]: https://csrc.nist.gov/pubs/fips/203/final
4860
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/pqkeys.html#mlkem
4861
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html
4862
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
4863
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency
4864
+ #
4865
+ # @option params [required, String] :key_id
4866
+ # Identifies an asymmetric ML-KEM KMS key. KMS uses the public key in
4867
+ # the specified key pair to encapsulate the shared secret. ML-KEM KMS
4868
+ # keys have a `KeySpec` value of `ML_KEM_512`, `ML_KEM_768`, or
4869
+ # `ML_KEM_1024` and a `KeyUsage` value of `ENCAPSULATE_DECAPSULATE`. To
4870
+ # find the `KeySpec` and `KeyUsage` of a KMS key, use the DescribeKey
4871
+ # operation.
4872
+ #
4873
+ # To specify a KMS key, use its key ID, key ARN, alias name, or alias
4874
+ # ARN. When using an alias name, prefix it with `"alias/"`. To specify a
4875
+ # KMS key in a different Amazon Web Services account, you must use the
4876
+ # key ARN or alias ARN.
4877
+ #
4878
+ # For example:
4879
+ #
4880
+ # * Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab`
4881
+ #
4882
+ # * Key ARN:
4883
+ # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
4884
+ #
4885
+ # * Alias name: `alias/ExampleAlias`
4886
+ #
4887
+ # * Alias ARN: `arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias`
4888
+ #
4889
+ # To get the key ID and key ARN for a KMS key, use ListKeys or
4890
+ # DescribeKey. To get the alias name and alias ARN, use ListAliases.
4891
+ #
4892
+ # @option params [required, String] :encapsulation_algorithm
4893
+ # Specifies the key encapsulation algorithm used to generate the shared
4894
+ # secret and its encapsulated form. The only valid value is `ML_KEM`.
4895
+ #
4896
+ # @option params [Array<String>] :grant_tokens
4897
+ # A list of grant tokens.
4898
+ #
4899
+ # Use a grant token when your permission to call this operation comes
4900
+ # from a new grant that has not yet achieved *eventual consistency*. For
4901
+ # more information, see [Grant token][1] and [Using a grant token][2] in
4902
+ # the *Key Management Service Developer Guide*.
4903
+ #
4904
+ #
4905
+ #
4906
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token
4907
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html
4908
+ #
4909
+ # @option params [Boolean] :dry_run
4910
+ # Checks if your request will succeed. `DryRun` is an optional
4911
+ # parameter.
4912
+ #
4913
+ # To learn more about how to use this parameter, see [Testing your
4914
+ # permissions][1] in the *Key Management Service Developer Guide*.
4915
+ #
4916
+ #
4917
+ #
4918
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html
4919
+ #
4920
+ # @return [Types::EncapsulateResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4921
+ #
4922
+ # * {Types::EncapsulateResponse#key_id #key_id} => String
4923
+ # * {Types::EncapsulateResponse#shared_secret #shared_secret} => String
4924
+ # * {Types::EncapsulateResponse#shared_secret_ciphertext_blob #shared_secret_ciphertext_blob} => String
4925
+ # * {Types::EncapsulateResponse#encapsulation_algorithm #encapsulation_algorithm} => String
4926
+ #
4927
+ #
4928
+ # @example Example: To generate a shared secret and its encapsulated ciphertext
4929
+ #
4930
+ # # Generates a shared secret and its encapsulated ciphertext (SharedSecretCiphertextBlob) using the public key in an
4931
+ # # asymmetric ML-KEM KMS key. Send the ciphertext to your peer, who calls Decapsulate to recover the same shared secret.
4932
+ #
4933
+ # resp = client.encapsulate({
4934
+ # encapsulation_algorithm: "ML_KEM", # The requested key encapsulation algorithm. The only valid value is ML_KEM.
4935
+ # key_id: "1234abcd-12ab-34cd-56ef-1234567890ab", # The asymmetric ML-KEM KMS key that generates the shared secret.
4936
+ # })
4937
+ #
4938
+ # resp.to_h outputs the following:
4939
+ # {
4940
+ # encapsulation_algorithm: "ML_KEM", # The key encapsulation algorithm used to generate the shared secret.
4941
+ # key_id: "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", # The key ARN of the asymmetric ML-KEM KMS key that generated the shared secret.
4942
+ # shared_secret: "AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8=", # The raw shared secret.
4943
+ # shared_secret_ciphertext_blob: "<binary data>", # The encapsulated shared secret. Send this ciphertext to your peer, who calls Decapsulate with the same KMS key to recover the same shared secret.
4944
+ # }
4945
+ #
4946
+ # @example Request syntax with placeholder values
4947
+ #
4948
+ # resp = client.encapsulate({
4949
+ # key_id: "KeyIdType", # required
4950
+ # encapsulation_algorithm: "ML_KEM", # required, accepts ML_KEM
4951
+ # grant_tokens: ["GrantTokenType"],
4952
+ # dry_run: false,
4953
+ # })
4954
+ #
4955
+ # @example Response structure
4956
+ #
4957
+ # resp.key_id #=> String
4958
+ # resp.shared_secret #=> String
4959
+ # resp.shared_secret_ciphertext_blob #=> String
4960
+ # resp.encapsulation_algorithm #=> String, one of "ML_KEM"
4961
+ #
4962
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/Encapsulate AWS API Documentation
4963
+ #
4964
+ # @overload encapsulate(params = {})
4965
+ # @param [Hash] params ({})
4966
+ def encapsulate(params = {}, options = {})
4967
+ req = build_request(:encapsulate, params)
4968
+ req.send_request(options)
4969
+ end
4970
+
4637
4971
  # Encrypts plaintext of up to 4,096 bytes using a KMS key. You can use a
4638
4972
  # symmetric or asymmetric KMS key with a `KeyUsage` of
4639
4973
  # `ENCRYPT_DECRYPT`.
@@ -5246,6 +5580,12 @@ module Aws::KMS
5246
5580
  # 5280][1]. The private key is a DER-encoded PKCS8 PrivateKeyInfo, as
5247
5581
  # specified in [RFC 5958][2].
5248
5582
  #
5583
+ # <note markdown="1"> For ML-KEM data key pairs, the DER-encoded PKCS8 PrivateKeyInfo
5584
+ # contains the private key in seed format. As a result, the length of
5585
+ # the private key is the same for all ML-KEM key pair specs.
5586
+ #
5587
+ # </note>
5588
+ #
5249
5589
  # `GenerateDataKeyPair` also supports [Amazon Web Services Nitro
5250
5590
  # Enclaves][3], which provide an isolated compute environment in Amazon
5251
5591
  # EC2. To call `GenerateDataKeyPair` for an Amazon Web Services Nitro
@@ -5363,7 +5703,8 @@ module Aws::KMS
5363
5703
  # that permits you to use ECC KMS keys only to sign and verify, and the
5364
5704
  # rule that permits you to use ML-DSA key pairs to sign and verify only
5365
5705
  # are not effective on data key pairs, which are used outside of KMS.
5366
- # The SM2 key spec is only available in China Regions.
5706
+ # The SM2 key spec is only available in China Regions. The ML-KEM key
5707
+ # specs are not available in China Regions.
5367
5708
  #
5368
5709
  # @option params [Array<String>] :grant_tokens
5369
5710
  # A list of grant tokens.
@@ -5492,7 +5833,7 @@ module Aws::KMS
5492
5833
  # "EncryptionContextKey" => "EncryptionContextValue",
5493
5834
  # },
5494
5835
  # key_id: "KeyIdType", # required
5495
- # key_pair_spec: "RSA_2048", # required, accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1, SM2, ECC_NIST_EDWARDS25519
5836
+ # key_pair_spec: "RSA_2048", # required, accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1, SM2, ECC_NIST_EDWARDS25519, ML_KEM_512, ML_KEM_768, ML_KEM_1024
5496
5837
  # grant_tokens: ["GrantTokenType"],
5497
5838
  # recipient: {
5498
5839
  # key_encryption_algorithm: "RSAES_OAEP_SHA_256", # accepts RSAES_OAEP_SHA_256
@@ -5507,7 +5848,7 @@ module Aws::KMS
5507
5848
  # resp.private_key_plaintext #=> String
5508
5849
  # resp.public_key #=> String
5509
5850
  # resp.key_id #=> String
5510
- # resp.key_pair_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SM2", "ECC_NIST_EDWARDS25519"
5851
+ # resp.key_pair_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SM2", "ECC_NIST_EDWARDS25519", "ML_KEM_512", "ML_KEM_768", "ML_KEM_1024"
5511
5852
  # resp.ciphertext_for_recipient #=> String
5512
5853
  # resp.key_material_id #=> String
5513
5854
  #
@@ -5551,6 +5892,12 @@ module Aws::KMS
5551
5892
  # a DER-encoded X.509 SubjectPublicKeyInfo, as specified in [RFC
5552
5893
  # 5280][1].
5553
5894
  #
5895
+ # <note markdown="1"> For ML-KEM data key pairs, the DER-encoded PKCS8 PrivateKeyInfo
5896
+ # contains the private key in seed format. As a result, the length of
5897
+ # the private key is the same for all ML-KEM key pair specs.
5898
+ #
5899
+ # </note>
5900
+ #
5554
5901
  # You can use an optional encryption context to add additional security
5555
5902
  # to the encryption operation. If you specify an `EncryptionContext`,
5556
5903
  # you must specify the same encryption context (a case-sensitive exact
@@ -5649,7 +5996,8 @@ module Aws::KMS
5649
5996
  # that permits you to use ECC KMS keys only to sign and verify, and the
5650
5997
  # rule that permits you to use ML-DSA key pairs to sign and verify only
5651
5998
  # are not effective on data key pairs, which are used outside of KMS.
5652
- # The SM2 key spec is only available in China Regions.
5999
+ # The SM2 key spec is only available in China Regions. The ML-KEM key
6000
+ # specs are not available in China Regions.
5653
6001
  #
5654
6002
  # @option params [Array<String>] :grant_tokens
5655
6003
  # A list of grant tokens.
@@ -5710,7 +6058,7 @@ module Aws::KMS
5710
6058
  # "EncryptionContextKey" => "EncryptionContextValue",
5711
6059
  # },
5712
6060
  # key_id: "KeyIdType", # required
5713
- # key_pair_spec: "RSA_2048", # required, accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1, SM2, ECC_NIST_EDWARDS25519
6061
+ # key_pair_spec: "RSA_2048", # required, accepts RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, ECC_SECG_P256K1, SM2, ECC_NIST_EDWARDS25519, ML_KEM_512, ML_KEM_768, ML_KEM_1024
5714
6062
  # grant_tokens: ["GrantTokenType"],
5715
6063
  # dry_run: false,
5716
6064
  # })
@@ -5720,7 +6068,7 @@ module Aws::KMS
5720
6068
  # resp.private_key_ciphertext_blob #=> String
5721
6069
  # resp.public_key #=> String
5722
6070
  # resp.key_id #=> String
5723
- # resp.key_pair_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SM2", "ECC_NIST_EDWARDS25519"
6071
+ # resp.key_pair_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SM2", "ECC_NIST_EDWARDS25519", "ML_KEM_512", "ML_KEM_768", "ML_KEM_1024"
5724
6072
  # resp.key_material_id #=> String
5725
6073
  #
5726
6074
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPairWithoutPlaintext AWS API Documentation
@@ -6283,7 +6631,8 @@ module Aws::KMS
6283
6631
  # CloudTrail for `DisabledException` entries, as there could be
6284
6632
  # infrequent workflows that are dependent on the key. By looking for
6285
6633
  # this exception, you can identify potential dependencies and workload
6286
- # failures before they occur.
6634
+ # failures before they occur. CloudTrail remains the authoritative
6635
+ # source for all API calls made to your key.
6287
6636
  #
6288
6637
  # </note>
6289
6638
  #
@@ -6364,7 +6713,7 @@ module Aws::KMS
6364
6713
  # @example Response structure
6365
6714
  #
6366
6715
  # resp.key_id #=> String
6367
- # resp.key_last_usage.operation #=> String, one of "Decrypt", "DeriveSharedSecret", "Encrypt", "GenerateDataKey", "GenerateDataKeyPair", "GenerateDataKeyPairWithoutPlaintext", "GenerateDataKeyWithoutPlaintext", "GenerateMac", "ReEncrypt", "Sign", "Verify", "VerifyMac"
6716
+ # resp.key_last_usage.operation #=> String, one of "Decrypt", "DeriveSharedSecret", "Encrypt", "GenerateDataKey", "GenerateDataKeyPair", "GenerateDataKeyPairWithoutPlaintext", "GenerateDataKeyWithoutPlaintext", "GenerateMac", "ReEncrypt", "Sign", "Verify", "VerifyMac", "Encapsulate", "Decapsulate"
6368
6717
  # resp.key_last_usage.timestamp #=> Time
6369
6718
  # resp.key_last_usage.cloud_trail_event_id #=> String
6370
6719
  # resp.key_last_usage.kms_request_id #=> String
@@ -6985,6 +7334,7 @@ module Aws::KMS
6985
7334
  # * {Types::GetPublicKeyResponse#encryption_algorithms #encryption_algorithms} => Array&lt;String&gt;
6986
7335
  # * {Types::GetPublicKeyResponse#signing_algorithms #signing_algorithms} => Array&lt;String&gt;
6987
7336
  # * {Types::GetPublicKeyResponse#key_agreement_algorithms #key_agreement_algorithms} => Array&lt;String&gt;
7337
+ # * {Types::GetPublicKeyResponse#encapsulation_algorithms #encapsulation_algorithms} => Array&lt;String&gt;
6988
7338
  #
6989
7339
  #
6990
7340
  # @example Example: To download the public key of an asymmetric KMS key
@@ -7021,14 +7371,16 @@ module Aws::KMS
7021
7371
  # resp.key_id #=> String
7022
7372
  # resp.public_key #=> String
7023
7373
  # resp.customer_master_key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2"
7024
- # resp.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2", "ML_DSA_44", "ML_DSA_65", "ML_DSA_87", "ECC_NIST_EDWARDS25519"
7025
- # resp.key_usage #=> String, one of "SIGN_VERIFY", "ENCRYPT_DECRYPT", "GENERATE_VERIFY_MAC", "KEY_AGREEMENT"
7374
+ # resp.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2", "ML_DSA_44", "ML_DSA_65", "ML_DSA_87", "ECC_NIST_EDWARDS25519", "ML_KEM_512", "ML_KEM_768", "ML_KEM_1024"
7375
+ # resp.key_usage #=> String, one of "SIGN_VERIFY", "ENCRYPT_DECRYPT", "GENERATE_VERIFY_MAC", "KEY_AGREEMENT", "ENCAPSULATE_DECAPSULATE"
7026
7376
  # resp.encryption_algorithms #=> Array
7027
7377
  # resp.encryption_algorithms[0] #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE"
7028
7378
  # resp.signing_algorithms #=> Array
7029
7379
  # resp.signing_algorithms[0] #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA", "ML_DSA_SHAKE_256", "ED25519_SHA_512", "ED25519_PH_SHA_512"
7030
7380
  # resp.key_agreement_algorithms #=> Array
7031
7381
  # resp.key_agreement_algorithms[0] #=> String, one of "ECDH"
7382
+ # resp.encapsulation_algorithms #=> Array
7383
+ # resp.encapsulation_algorithms[0] #=> String, one of "ML_KEM"
7032
7384
  #
7033
7385
  # @see http://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetPublicKey AWS API Documentation
7034
7386
  #
@@ -7772,7 +8124,7 @@ module Aws::KMS
7772
8124
  # resp.grants[0].retiring_principal #=> String
7773
8125
  # resp.grants[0].issuing_account #=> String
7774
8126
  # resp.grants[0].operations #=> Array
7775
- # resp.grants[0].operations[0] #=> String, one of "Decrypt", "Encrypt", "GenerateDataKey", "GenerateDataKeyWithoutPlaintext", "ReEncryptFrom", "ReEncryptTo", "Sign", "Verify", "GetPublicKey", "CreateGrant", "RetireGrant", "DescribeKey", "GenerateDataKeyPair", "GenerateDataKeyPairWithoutPlaintext", "GenerateMac", "VerifyMac", "DeriveSharedSecret"
8127
+ # resp.grants[0].operations[0] #=> String, one of "Decrypt", "Encrypt", "GenerateDataKey", "GenerateDataKeyWithoutPlaintext", "ReEncryptFrom", "ReEncryptTo", "Sign", "Verify", "GetPublicKey", "CreateGrant", "RetireGrant", "DescribeKey", "GenerateDataKeyPair", "GenerateDataKeyPairWithoutPlaintext", "GenerateMac", "VerifyMac", "DeriveSharedSecret", "Encapsulate", "Decapsulate"
7776
8128
  # resp.grants[0].constraints.encryption_context_subset #=> Hash
7777
8129
  # resp.grants[0].constraints.encryption_context_subset["EncryptionContextKey"] #=> String
7778
8130
  # resp.grants[0].constraints.encryption_context_equals #=> Hash
@@ -8468,7 +8820,7 @@ module Aws::KMS
8468
8820
  # resp.grants[0].retiring_principal #=> String
8469
8821
  # resp.grants[0].issuing_account #=> String
8470
8822
  # resp.grants[0].operations #=> Array
8471
- # resp.grants[0].operations[0] #=> String, one of "Decrypt", "Encrypt", "GenerateDataKey", "GenerateDataKeyWithoutPlaintext", "ReEncryptFrom", "ReEncryptTo", "Sign", "Verify", "GetPublicKey", "CreateGrant", "RetireGrant", "DescribeKey", "GenerateDataKeyPair", "GenerateDataKeyPairWithoutPlaintext", "GenerateMac", "VerifyMac", "DeriveSharedSecret"
8823
+ # resp.grants[0].operations[0] #=> String, one of "Decrypt", "Encrypt", "GenerateDataKey", "GenerateDataKeyWithoutPlaintext", "ReEncryptFrom", "ReEncryptTo", "Sign", "Verify", "GetPublicKey", "CreateGrant", "RetireGrant", "DescribeKey", "GenerateDataKeyPair", "GenerateDataKeyPairWithoutPlaintext", "GenerateMac", "VerifyMac", "DeriveSharedSecret", "Encapsulate", "Decapsulate"
8472
8824
  # resp.grants[0].constraints.encryption_context_subset #=> Hash
8473
8825
  # resp.grants[0].constraints.encryption_context_subset["EncryptionContextKey"] #=> String
8474
8826
  # resp.grants[0].constraints.encryption_context_equals #=> Hash
@@ -9353,7 +9705,7 @@ module Aws::KMS
9353
9705
  # resp.replica_key_metadata.creation_date #=> Time
9354
9706
  # resp.replica_key_metadata.enabled #=> Boolean
9355
9707
  # resp.replica_key_metadata.description #=> String
9356
- # resp.replica_key_metadata.key_usage #=> String, one of "SIGN_VERIFY", "ENCRYPT_DECRYPT", "GENERATE_VERIFY_MAC", "KEY_AGREEMENT"
9708
+ # resp.replica_key_metadata.key_usage #=> String, one of "SIGN_VERIFY", "ENCRYPT_DECRYPT", "GENERATE_VERIFY_MAC", "KEY_AGREEMENT", "ENCAPSULATE_DECAPSULATE"
9357
9709
  # resp.replica_key_metadata.key_state #=> String, one of "Creating", "Enabled", "Disabled", "PendingDeletion", "PendingImport", "PendingReplicaDeletion", "Unavailable", "Updating"
9358
9710
  # resp.replica_key_metadata.deletion_date #=> Time
9359
9711
  # resp.replica_key_metadata.valid_to #=> Time
@@ -9363,13 +9715,15 @@ module Aws::KMS
9363
9715
  # resp.replica_key_metadata.expiration_model #=> String, one of "KEY_MATERIAL_EXPIRES", "KEY_MATERIAL_DOES_NOT_EXPIRE"
9364
9716
  # resp.replica_key_metadata.key_manager #=> String, one of "AWS", "CUSTOMER"
9365
9717
  # resp.replica_key_metadata.customer_master_key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2"
9366
- # resp.replica_key_metadata.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2", "ML_DSA_44", "ML_DSA_65", "ML_DSA_87", "ECC_NIST_EDWARDS25519"
9718
+ # resp.replica_key_metadata.key_spec #=> String, one of "RSA_2048", "RSA_3072", "RSA_4096", "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", "ECC_SECG_P256K1", "SYMMETRIC_DEFAULT", "HMAC_224", "HMAC_256", "HMAC_384", "HMAC_512", "SM2", "ML_DSA_44", "ML_DSA_65", "ML_DSA_87", "ECC_NIST_EDWARDS25519", "ML_KEM_512", "ML_KEM_768", "ML_KEM_1024"
9367
9719
  # resp.replica_key_metadata.encryption_algorithms #=> Array
9368
9720
  # resp.replica_key_metadata.encryption_algorithms[0] #=> String, one of "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256", "SM2PKE"
9369
9721
  # resp.replica_key_metadata.signing_algorithms #=> Array
9370
9722
  # resp.replica_key_metadata.signing_algorithms[0] #=> String, one of "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512", "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", "ECDSA_SHA_512", "SM2DSA", "ML_DSA_SHAKE_256", "ED25519_SHA_512", "ED25519_PH_SHA_512"
9371
9723
  # resp.replica_key_metadata.key_agreement_algorithms #=> Array
9372
9724
  # resp.replica_key_metadata.key_agreement_algorithms[0] #=> String, one of "ECDH"
9725
+ # resp.replica_key_metadata.encapsulation_algorithms #=> Array
9726
+ # resp.replica_key_metadata.encapsulation_algorithms[0] #=> String, one of "ML_KEM"
9373
9727
  # resp.replica_key_metadata.multi_region #=> Boolean
9374
9728
  # resp.replica_key_metadata.multi_region_configuration.multi_region_key_type #=> String, one of "PRIMARY", "REPLICA"
9375
9729
  # resp.replica_key_metadata.multi_region_configuration.primary_key.arn #=> String
@@ -11562,7 +11916,7 @@ module Aws::KMS
11562
11916
  tracer: tracer
11563
11917
  )
11564
11918
  context[:gem_name] = 'aws-sdk-kms'
11565
- context[:gem_version] = '1.135.0'
11919
+ context[:gem_version] = '1.136.0'
11566
11920
  Seahorse::Client::Request.new(handlers, context)
11567
11921
  end
11568
11922