> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tensor9.com/llms.txt
> Use this file to discover all available pages before exploring further.

# KMS

> AWS KMS. Creates and stores encryption keys, and performs encrypt and decrypt calls without releasing the key material.

**On this page**

* [Coverage by target cloud](#coverage-by-target-cloud)
* [How the targets compare](#how-the-targets-compare)
  * [Max adaptation](#max-adaptation)
* [On Google Cloud](#on-google-cloud)
* [On Azure](#on-azure)
* [On OCI](#on-oci)
* [On Private Kubernetes](#on-private-kubernetes)

## Coverage by target cloud

| Target             | Available |
| ------------------ | --------- |
| Google Cloud       | ✓         |
| Azure              | ✓         |
| OCI                | ✓         |
| Private Kubernetes | ✓         |

## How the targets compare

Each row compares a capability of KMS with its adaptation on each target.
A dash means this row is not stated for that target.

### Max adaptation

| Capability                                                                         | KMS                                                                                 | Google Cloud                                                                                                                               | Azure                                                                                                                                                 | OCI                                                                                                                          | Private Kubernetes                                                                                                          |
| ---------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| Envelope encryption (GenerateDataKey) · a plaintext data key plus its wrapped copy | Yes - GenerateDataKey returns a plaintext data key and its wrapped copy in one call | Partial - synthesized: a random data key wrapped by the key's encrypt. There is no single native data-key op, but the envelope round-trips | Partial - served as RSA wrap-key: a random data key wrapped by an RSA key. The pair round-trips, but the wrapping key is RSA, not a symmetric AES key | Yes - native GenerateDataEncryptionKey: one call returns the plaintext data key and its wrapped copy, one data-key operation | Yes - native Transit datakey endpoint: one call returns the plaintext data key and its wrapped copy, one data-key operation |
| Encryption context (AAD) · additional authenticated data bound into the ciphertext | Yes - an encryption-context map bound as AAD; the same map is required to decrypt   | Yes - bound natively as Cloud KMS additional authenticated data                                                                            | No - RSA-OAEP binds no additional data, so the encryption context cannot bind on a standard vault; Managed HSM AES-GCM would provide it               | Yes - native OCI associated data                                                                                             | Yes - native Transit associated data                                                                                        |
| Symmetric AES · a symmetric encrypt/decrypt key                                    | Yes - a symmetric AES customer master key                                           | Yes - a symmetric encrypt/decrypt crypto key                                                                                               | No - a standard Key Vault holds RSA/EC keys only, so a symmetric AES key has no equivalent here; Managed HSM would provide it                         | Yes - a native AES key shape (software or HSM protection mode)                                                               | Yes - a native aes256-gcm96 Transit key                                                                                     |
| Asymmetric sign / verify · RSA / EC signing keys                                   | Yes - asymmetric Sign / Verify with RSA or EC keys                                  | Yes - asymmetric-sign, with verify served against the exported public key                                                                  | Yes - native Key Vault sign / verify on RSA or EC keys                                                                                                | Yes - native OCI Sign / Verify on RSA or ECDSA keys                                                                          | Yes - native Transit sign / verify on ed25519, ECDSA, or RSA keys                                                           |
| HMAC (MAC sign / verify) · a keyed message authentication code                     | Yes - GenerateMac / VerifyMac with an HMAC key                                      | Yes - native Cloud KMS mac-sign / mac-verify                                                                                               | No - no HMAC keys in this Standard mapping; other Azure configurations differ                                                                         | No - OCI KMS has no HMAC key type; its shapes are AES, RSA, and ECDSA                                                        | Yes - native Transit HMAC endpoint, the only self-hosted target of the four with a native HMAC                              |
| Key rotation · automatic and on-demand rotation                                    | Yes - automatic and on-demand key rotation                                          | Yes - the crypto key's rotation period, plus an on-demand new version                                                                      | Yes - the key's rotation policy, plus an on-demand rotate                                                                                             | Yes - the key's auto-rotation interval, plus an on-demand new key version                                                    | Yes - the key's auto-rotate period, plus a native on-demand rotate endpoint                                                 |
| Aliases · a mutable name pointing at a key                                         | Yes - a mutable alias pointing at a key id                                          | Yes - the adapter maintains the alias-to-key mapping, since Cloud KMS has no native alias object                                           | Yes - the adapter maintains the alias-to-key mapping, since Key Vault has no separate alias object                                                    | Yes - the adapter maintains the alias-to-key mapping, since OCI has no separate alias object                                 | Yes - the adapter maintains the alias-to-key mapping, since a Transit key has no separate alias object                      |
| API coverage                                                                       | full                                                                                | high                                                                                                                                       | partial                                                                                                                                               | high                                                                                                                         | high                                                                                                                        |

## On Google Cloud

| Operation                           | Area                  | Support      | Depth        | Notes                                                                                                                                                                            |
| ----------------------------------- | --------------------- | ------------ | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| CreateAlias                         | Aliases               | Supported    | Most usage   | the adapter maintains the alias-to-key mapping and resolves alias references, since Cloud KMS has no native alias object                                                         |
| DeleteAlias                         | Aliases               | Supported    | Full surface | removes an alias from the mapping                                                                                                                                                |
| ListAliases                         | Aliases               | Supported    | Most usage   | lists aliases retained in adapter state                                                                                                                                          |
| UpdateAlias                         | Aliases               | Supported    | Full surface | changes the key referenced by an alias in adapter state                                                                                                                          |
| DeriveSharedSecret                  | Asymmetric            | Out of scope | Full surface | elliptic-curve shared-secret derivation has no Cloud KMS equivalent op and is rejected                                                                                           |
| GetPublicKey                        | Asymmetric            | Supported    | Most usage   | exports the public half of an asymmetric key                                                                                                                                     |
| Sign                                | Asymmetric            | Supported    | Most usage   | signs a message or digest with an asymmetric key via Cloud KMS asymmetric-sign                                                                                                   |
| Verify                              | Asymmetric            | Supported    | Most usage   | served by verifying the signature against the key's exported public key, so a verify does not require an extra native op                                                         |
| GenerateDataKey                     | Envelope / data keys  | Partial      | Common       | Cloud KMS has no single data-key op, so the adapter synthesizes it: a fresh random data key is generated, wrapped by the key's encrypt, and returned alongside that wrapped copy |
| GenerateDataKeyPair                 | Envelope / data keys  | Partial      | Most usage   | an asymmetric data-key pair is generated and its private half wrapped by the key; there is no native data-key-pair op                                                            |
| GenerateDataKeyPairWithoutPlaintext | Envelope / data keys  | Partial      | Full surface | the same, returning only the wrapped private half                                                                                                                                |
| GenerateDataKeyWithoutPlaintext     | Envelope / data keys  | Partial      | Most usage   | the same synthesized path, returning only the wrapped data key for the deferred-decrypt pattern                                                                                  |
| CreateGrant                         | Grants                | Out of scope | Most usage   | authorization is governed by Cloud IAM bindings on the key rather than KMS grants, so a grant is rejected                                                                        |
| ListGrants                          | Grants                | Out of scope | Most usage   | there is no grant to list; access is a Cloud IAM binding                                                                                                                         |
| ListRetirableGrants                 | Grants                | Out of scope | Full surface | there is no grant to list                                                                                                                                                        |
| RetireGrant                         | Grants                | Out of scope | Full surface | there is no grant to retire                                                                                                                                                      |
| RevokeGrant                         | Grants                | Out of scope | Full surface | there is no grant to revoke                                                                                                                                                      |
| GenerateMac                         | HMAC                  | Supported    | Most usage   | computes an HMAC with a MAC key via Cloud KMS mac-sign                                                                                                                           |
| VerifyMac                           | HMAC                  | Supported    | Most usage   | verifies an HMAC via Cloud KMS mac-verify                                                                                                                                        |
| DeleteImportedKeyMaterial           | Imported key material | Out of scope | Full surface | there is no runtime imported-material lifecycle to drive                                                                                                                         |
| GetParametersForImport              | Imported key material | Out of scope | Full surface | imported key material is loaded through Cloud KMS's own import job at provisioning, not through the native import handshake, so the runtime import ops are rejected              |
| ImportKeyMaterial                   | Imported key material | Out of scope | Full surface | the import handshake is not served at runtime; material is imported at provisioning                                                                                              |
| CancelKeyDeletion                   | Key management        | Supported    | Full surface | cancels the adapter recovery window and leaves the key disabled until EnableKey                                                                                                  |
| CreateKey                           | Key management        | Supported    | Common       | the equivalent Cloud KMS key is created with the matching purpose and algorithm; the key usage and material spec translate to the crypto-key purpose and version algorithm       |
| DescribeKey                         | Key management        | Supported    | Common       | returns AWS key identity and lifecycle metadata from adapter state, with the configured target key purpose and algorithm                                                         |
| DisableKey                          | Key management        | Supported    | Most usage   | moves the primary key version to disabled                                                                                                                                        |
| EnableKey                           | Key management        | Supported    | Most usage   | moves the primary key version to enabled                                                                                                                                         |
| ListKeys                            | Key management        | Supported    | Common       | lists the keys in the key ring                                                                                                                                                   |
| ScheduleKeyDeletion                 | Key management        | Supported    | Most usage   | records a 7-30-day recovery window in adapter state; final target destruction follows Cloud KMS retention rules                                                                  |
| UpdateKeyDescription                | Key management        | Supported    | Full surface | updates the human label stored on the crypto key                                                                                                                                 |
| GetKeyPolicy                        | Key policy            | Out of scope | Most usage   | there is no per-key policy document to read                                                                                                                                      |
| ListKeyPolicies                     | Key policy            | Out of scope | Full surface | there is no per-key policy document to list                                                                                                                                      |
| PutKeyPolicy                        | Key policy            | Out of scope | Most usage   | access is governed by Cloud IAM rather than a per-key policy document, so a per-key policy is rejected                                                                           |
| ReplicateKey                        | Multi-region          | Out of scope | Full surface | Cloud KMS locality is the key ring's location; there is no shared-key-material multi-region replica, so a replica request is rejected                                            |
| UpdatePrimaryRegion                 | Multi-region          | Out of scope | Full surface | there is no multi-region key set whose primary can be moved                                                                                                                      |
| GenerateRandom                      | Random                | Supported    | Full surface | returns cryptographic random bytes from Cloud KMS; no key is involved                                                                                                            |
| DisableKeyRotation                  | Rotation              | Supported    | Full surface | clears the rotation period                                                                                                                                                       |
| EnableKeyRotation                   | Rotation              | Supported    | Most usage   | turns on automatic rotation via the crypto key's rotation period                                                                                                                 |
| GetKeyRotationStatus                | Rotation              | Supported    | Most usage   | reports whether rotation is on and the configured period                                                                                                                         |
| RotateKeyOnDemand                   | Rotation              | Supported    | Full surface | creates a new key version on demand and promotes it to primary                                                                                                                   |
| Decrypt                             | Symmetric crypto      | Supported    | Common       | decrypts and re-checks the encryption context; a mismatched context fails the decrypt, exactly as it does natively                                                               |
| Encrypt                             | Symmetric crypto      | Supported    | Common       | encrypts under a symmetric key; the encryption context binds as Cloud KMS additional authenticated data, so a matching context is required to decrypt                            |
| ReEncrypt                           | Symmetric crypto      | Partial      | Most usage   | there is no single re-encrypt op; the adapter serves it as a decrypt-then-encrypt across the two keys, and the plaintext is never returned to the caller                         |
| ListResourceTags                    | Tags                  | Supported    | Full surface | lists source tags from adapter state                                                                                                                                             |
| TagResource                         | Tags                  | Supported    | Full surface | retains source tags in adapter state; provider labels use their own format                                                                                                       |
| UntagResource                       | Tags                  | Supported    | Full surface | removes source tags from adapter state                                                                                                                                           |

#### How it works

Tensor9 runs a KMS adapter in the customer environment and sets `AWS_ENDPOINT_URL_KMS` to its loopback endpoint. The adapter accepts the application's AWS SDK calls, including `Encrypt`, `Decrypt`, and `GenerateDataKey`, and translates them to Google Cloud KMS. The service retains the wrapping key; data-key operations can return a plaintext data key for the application to use.

Cloud KMS groups versioned keys in location-specific key rings. It supports symmetric encryption, authenticated context, asymmetric signing, HMAC, and rotation. The adapter constructs `GenerateDataKey` using a locally generated random key and a Cloud KMS encrypt call. KMS key-policy and grant APIs have the restrictions listed below.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTkyIiB2aWV3Qm94PSIwIDAgODM2IDE5MiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgYWRhcHRlciB0cmFuc2xhdGVzIEFXUyBLTVMgcmVxdWVzdHMgdG8gR29vZ2xlIENsb3VkIEtNUy4iPjxzdHlsZT50ZXh0e2ZvbnQtZmFtaWx5OkludGVyLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCdTZWdvZSBVSScsUm9ib3RvLCdIZWx2ZXRpY2EgTmV1ZScsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiMzMzQxNTV9PC9zdHlsZT4KPGRlZnM+PG1hcmtlciBpZD0iZ2ttczEiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzk0YTNiOCIvPjwvbWFya2VyPjwvZGVmcz4KPHJlY3QgeD0iMTYiIHk9IjQ0IiB3aWR0aD0iMzg0IiBoZWlnaHQ9IjEzMCIgcng9IjE0IiBmaWxsPSIjZjhmYWZjIiBzdHJva2U9IiNjYmQ1ZTEiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtZGFzaGFycmF5PSI1IDUiLz4KPHRleHQgeD0iMzAiIHk9IjYyIiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDojOTRhM2I4Ij5PTiBBV1MgVE9EQVk8L3RleHQ+CjxyZWN0IHg9IjMwIiB5PSI4MiIgd2lkdGg9IjExMCIgaGVpZ2h0PSI2NiIgcng9IjExIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9Ijg1IiB5PSIxMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTIuNXB4Ij5Zb3VyIGFwcDwvdGV4dD4KPHRleHQgeD0iODUiIHk9IjEyOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZToxMHB4Ij5BV1MgS01TIFNESzwvdGV4dD4KPGxpbmUgeDE9IjE0MCIgeTE9IjExNSIgeDI9IjIxNiIgeTI9IjExNSIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjZ2ttczEpIi8+Cjx0ZXh0IHg9IjE3OCIgeT0iMTA2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjguNXB4Ij5FbmNyeXB0PC90ZXh0Pgo8dGV4dCB4PSIxNzgiIHk9IjEzMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZTo4LjVweCI+RGVjcnlwdDwvdGV4dD4KPHJlY3QgeD0iMjIwIiB5PSI4MCIgd2lkdGg9IjE2NCIgaGVpZ2h0PSI3MCIgcng9IjExIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjMwMiIgeT0iMTA4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzBmMTcyYTsgZm9udC1zaXplOjEyLjVweCI+QVdTIEtNUzwvdGV4dD4KPHRleHQgeD0iMzAyIiB5PSIxMjYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6MTBweCI+d3JhcHBpbmcga2V5IHN0YXlzIGluIHNlcnZpY2U8L3RleHQ+CjxsaW5lIHgxPSI0MTgiIHkxPSI0MCIgeDI9IjQxOCIgeTI9IjE2NCIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNCIvPgo8cmVjdCB4PSI0MzYiIHk9IjQ0IiB3aWR0aD0iMzg0IiBoZWlnaHQ9IjEzMCIgcng9IjE0IiBmaWxsPSIjZjhmYWZjIiBzdHJva2U9IiNjYmQ1ZTEiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtZGFzaGFycmF5PSI1IDUiLz4KPHRleHQgeD0iNDUwIiB5PSI2MiIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6IzA0Nzg1NyI+T04gVEhFIFRBUkdFVCBDTE9VRDwvdGV4dD4KPHJlY3QgeD0iNDQ4IiB5PSI4MiIgd2lkdGg9Ijg2IiBoZWlnaHQ9IjY2IiByeD0iMTEiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNDkxIiB5PSIxMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTJweCI+WW91ciBhcHA8L3RleHQ+Cjx0ZXh0IHg9IjQ5MSIgeT0iMTI4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjAwIDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNTk2NjkiPnNhbWUgU0RLPC90ZXh0Pgo8bGluZSB4MT0iNTM0IiB5MT0iMTE1IiB4Mj0iNTY0IiB5Mj0iMTE1IiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNna21zMSkiLz4KPHJlY3QgeD0iNTY4IiB5PSI3NiIgd2lkdGg9IjExOCIgaGVpZ2h0PSI4MiIgcng9IjExIiBmaWxsPSIjZWNmZGY1IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS43Ii8+Cjx0ZXh0IHg9IjYyNyIgeT0iMTAyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NzsgZm9udC1zaXplOjEycHgiPlRlbnNvcjk8L3RleHQ+Cjx0ZXh0IHg9IjYyNyIgeT0iMTE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3Ij5LTVMgQVBJPC90ZXh0Pgo8dGV4dCB4PSI2MjciIHk9IjEzMSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NyI+YWRhcHRlcjwvdGV4dD4KPGxpbmUgeDE9IjY4NiIgeTE9IjExNSIgeDI9IjcxMiIgeTI9IjExNSIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjZ2ttczEpIi8+CjxyZWN0IHg9IjcxNCIgeT0iNzYiIHdpZHRoPSIxMDIiIGhlaWdodD0iODIiIHJ4PSIxMSIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjNDI4NUY0IiBzdHJva2Utd2lkdGg9IjEuNiIvPgo8dGV4dCB4PSI3NjUiIHk9IjEwMSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6NzAwIDExcHggSW50ZXIsc2Fucy1zZXJpZjtmaWxsOiM0Mjg1RjQiPkNsb3VkIEtNUzwvdGV4dD4KPHRleHQgeD0iNzY1IiB5PSIxMTciIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6MTBweCI+eW91ciBjcnlwdG8ga2V5PC90ZXh0Pgo8dGV4dCB4PSI3NjUiIHk9IjEzMSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZTo5cHgiPmtleSByaW5nIMK3IHJlZ2lvbjwvdGV4dD4KPC9zdmc+" alt="The adapter translates AWS KMS requests to Google Cloud KMS." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTkyIiB2aWV3Qm94PSIwIDAgODM2IDE5MiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgYWRhcHRlciB0cmFuc2xhdGVzIEFXUyBLTVMgcmVxdWVzdHMgdG8gR29vZ2xlIENsb3VkIEtNUy4iPjxzdHlsZT50ZXh0e2ZvbnQtZmFtaWx5OkludGVyLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCdTZWdvZSBVSScsUm9ib3RvLCdIZWx2ZXRpY2EgTmV1ZScsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiNjYmQ1ZTF9PC9zdHlsZT4KPGRlZnM+PG1hcmtlciBpZD0iZ2ttczEiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzk0YTNiOCIvPjwvbWFya2VyPjwvZGVmcz4KPHJlY3QgeD0iMTYiIHk9IjQ0IiB3aWR0aD0iMzg0IiBoZWlnaHQ9IjEzMCIgcng9IjE0IiBmaWxsPSIjMWEyNjMxIiBzdHJva2U9IiMzZDRmNjYiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtZGFzaGFycmF5PSI1IDUiLz4KPHRleHQgeD0iMzAiIHk9IjYyIiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDogIzk0YTNiOCI+T04gQVdTIFRPREFZPC90ZXh0Pgo8cmVjdCB4PSIzMCIgeT0iODIiIHdpZHRoPSIxMTAiIGhlaWdodD0iNjYiIHJ4PSIxMSIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI4NSIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2VkODsgZm9udC1zaXplOjEyLjVweCI+WW91ciBhcHA8L3RleHQ+Cjx0ZXh0IHg9Ijg1IiB5PSIxMjgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6MTBweCI+QVdTIEtNUyBTREs8L3RleHQ+CjxsaW5lIHgxPSIxNDAiIHkxPSIxMTUiIHgyPSIyMTYiIHkyPSIxMTUiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2drbXMxKSIvPgo8dGV4dCB4PSIxNzgiIHk9IjEwNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZTo4LjVweCI+RW5jcnlwdDwvdGV4dD4KPHRleHQgeD0iMTc4IiB5PSIxMzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6OC41cHgiPkRlY3J5cHQ8L3RleHQ+CjxyZWN0IHg9IjIyMCIgeT0iODAiIHdpZHRoPSIxNjQiIGhlaWdodD0iNzAiIHJ4PSIxMSIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSIzMDIiIHk9IjEwOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNlZDg7IGZvbnQtc2l6ZToxMi41cHgiPkFXUyBLTVM8L3RleHQ+Cjx0ZXh0IHg9IjMwMiIgeT0iMTI2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjEwcHgiPndyYXBwaW5nIGtleSBzdGF5cyBpbiBzZXJ2aWNlPC90ZXh0Pgo8bGluZSB4MT0iNDE4IiB5MT0iNDAiIHgyPSI0MTgiIHkyPSIxNjQiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjQiLz4KPHJlY3QgeD0iNDM2IiB5PSI0NCIgd2lkdGg9IjM4NCIgaGVpZ2h0PSIxMzAiIHJ4PSIxNCIgZmlsbD0iIzFhMjYzMSIgc3Ryb2tlPSIjM2Q0ZjY2IiBzdHJva2Utd2lkdGg9IjEuNCIgc3Ryb2tlLWRhc2hhcnJheT0iNSA1Ii8+Cjx0ZXh0IHg9IjQ1MCIgeT0iNjIiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4OyBmaWxsOiAjOTBkZWM4Ij5PTiBUSEUgVEFSR0VUIENMT1VEPC90ZXh0Pgo8cmVjdCB4PSI0NDgiIHk9IjgyIiB3aWR0aD0iODYiIGhlaWdodD0iNjYiIHJ4PSIxMSIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI0OTEiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNlZDg7IGZvbnQtc2l6ZToxMnB4Ij5Zb3VyIGFwcDwvdGV4dD4KPHRleHQgeD0iNDkxIiB5PSIxMjgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2MDAgMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzkwZGVjNiI+c2FtZSBTREs8L3RleHQ+CjxsaW5lIHgxPSI1MzQiIHkxPSIxMTUiIHgyPSI1NjQiIHkyPSIxMTUiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2drbXMxKSIvPgo8cmVjdCB4PSI1NjgiIHk9Ijc2IiB3aWR0aD0iMTE4IiBoZWlnaHQ9IjgyIiByeD0iMTEiIGZpbGw9IiMxYTMxMjYiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIxLjciLz4KPHRleHQgeD0iNjI3IiB5PSIxMDIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4OyBmb250LXNpemU6MTJweCI+VGVuc29yOTwvdGV4dD4KPHRleHQgeD0iNjI3IiB5PSIxMTciIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzgiPktNUyBBUEk8L3RleHQ+Cjx0ZXh0IHg9IjYyNyIgeT0iMTMxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4Ij5hZGFwdGVyPC90ZXh0Pgo8bGluZSB4MT0iNjg2IiB5MT0iMTE1IiB4Mj0iNzEyIiB5Mj0iMTE1IiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNna21zMSkiLz4KPHJlY3QgeD0iNzE0IiB5PSI3NiIgd2lkdGg9IjEwMiIgaGVpZ2h0PSI4MiIgcng9IjExIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiM0Mjg1RjQiIHN0cm9rZS13aWR0aD0iMS42Ii8+Cjx0ZXh0IHg9Ijc2NSIgeT0iMTAxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDo3MDAgMTFweCBJbnRlcixzYW5zLXNlcmlmO2ZpbGw6ICM5MGFkZGUiPkNsb3VkIEtNUzwvdGV4dD4KPHRleHQgeD0iNzY1IiB5PSIxMTciIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6MTBweCI+eW91ciBjcnlwdG8ga2V5PC90ZXh0Pgo8dGV4dCB4PSI3NjUiIHk9IjEzMSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZTo5cHgiPmtleSByaW5nIMK3IHJlZ2lvbjwvdGV4dD4KPC9zdmc+" alt="The adapter translates AWS KMS requests to Google Cloud KMS." />
</div>

<p className="t9-caption">The adapter translates AWS KMS requests to Google Cloud KMS.</p>

#### Key identity and lifecycle

The adapter keeps durable records for AWS key identities, aliases, tags, and lifecycle state. Key creation provisions the corresponding target key. Later requests resolve the AWS identity to that key; the target service performs cryptographic operations and retains its wrapping key material.

An alias is a mutable reference in adapter state. Updating it changes which key subsequent alias-based requests select; it does not move key material or rewrite existing ciphertext. Back up adapter state and retain the target keys and versions needed to decrypt stored data.

Scheduled deletion records a recovery window of 7-30 days, with 30 days as the default. Cancelling the request returns the key to a disabled state; enable it explicitly before using it again. Final target destruction follows the target's retention rules, which may delay physical removal beyond the adapter's recovery window.

#### The key ring and its crypto keys

A Cloud KMS key belongs to a key ring in a location. Each key has immutable versions, with a primary version for symmetric encryption. The adapter resolves AWS key IDs to `google_kms_crypto_key` resources and maintains `alias/…` mappings because Cloud KMS has no native alias object.

The key ring's location controls where cryptographic operations run, for example `us-east1` or the `us` multi-region. Symmetric encryption uses the primary version; decryption uses the version recorded in the ciphertext. Signing, MAC, and public-key export operations address a specific version.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjg2IiB2aWV3Qm94PSIwIDAgODM2IDI4NiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJBIGxvY2F0aW9uLXNwZWNpZmljIGtleSByaW5nIGhvbGRzIHZlcnNpb25lZCBrZXlzLiBTeW1tZXRyaWMgZW5jcnlwdGlvbiB1c2VzIHRoZSBwcmltYXJ5IHZlcnNpb24uIj48c3R5bGU+dGV4dHtmb250LWZhbWlseTpJbnRlciwtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCwnU2Vnb2UgVUknLFJvYm90bywnSGVsdmV0aWNhIE5ldWUnLEFyaWFsLHNhbnMtc2VyaWY7ZmlsbDojMzM0MTU1fTwvc3R5bGU+CjxkZWZzPjxtYXJrZXIgaWQ9ImdrbXMyIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiM5NGEzYjgiLz48L21hcmtlcj48bWFya2VyIGlkPSJna21zMmciIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzA1OTY2OSIvPjwvbWFya2VyPjwvZGVmcz4KPHRleHQgeD0iMjYiIHk9IjI0IiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDojMzM0MTU1Ij5BIENSWVBUTyBLRVkgTElWRVMgSU4gQSBSRUdJT05BTCBLRVkgUklORyDCtyBJVFMgVkVSU0lPTlMgQVJFIElNTVVUQUJMRSDCtyBPTkUgSVMgUFJJTUFSWTwvdGV4dD4KPHJlY3QgeD0iMjQiIHk9IjUyIiB3aWR0aD0iMTg4IiBoZWlnaHQ9IjEwNCIgcng9IjEyIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjExOCIgeT0iOTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTIuNXB4Ij5BV1MgS01TIGtleTwvdGV4dD4KPHRleHQgeD0iMTE4IiB5PSIxMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6MTBweCI+a2V5IGlkICsgYWxpYXMvcGF5bWVudHM8L3RleHQ+Cjx0ZXh0IHg9IjExOCIgeT0iMTI2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjEwcHgiPm9uZSBmbGF0IGtleSBvYmplY3Q8L3RleHQ+CjxsaW5lIHgxPSIyMTIiIHkxPSIxMDQiIHgyPSIyNTIiIHkyPSIxMDQiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2drbXMyKSIvPgo8dGV4dCB4PSIyMzIiIHk9Ijk1IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjhweCI+cmVzb2x2ZXMgdG88L3RleHQ+CjxyZWN0IHg9IjI2MiIgeT0iNDQiIHdpZHRoPSI1NTAiIGhlaWdodD0iMjI0IiByeD0iMTMiIGZpbGw9IiNmOGZhZmMiIHN0cm9rZT0iIzQyODVGNCIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMjgwIiB5PSI2OCIgc3R5bGU9ImZvbnQ6NzAwIDExLjVweCBJbnRlcixzYW5zLXNlcmlmO2ZpbGw6IzQyODVGNCI+Q2xvdWQgS01TIGtleSByaW5nPHRzcGFuIHN0eWxlPSJmb250LWZhbWlseTp2YXIoLS1tb25vKTtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjEwcHg7ZmlsbDojNjQ3NDhiIj4gIMK3ICByZWdpb24gdXMtZWFzdDE8L3RzcGFuPjwvdGV4dD4KPHJlY3QgeD0iMjgwIiB5PSI4MCIgd2lkdGg9IjMzMCIgaGVpZ2h0PSIxNzIiIHJ4PSIxMCIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjY2JkNWUxIiBzdHJva2Utd2lkdGg9IjEuMyIvPgo8dGV4dCB4PSI0NDUiIHk9IjEwNCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6NzAwIDExLjVweCBJbnRlcixzYW5zLXNlcmlmO2ZpbGw6IzMzNDE1NSI+Y3J5cHRvIGtleSDCtyBwYXltZW50czwvdGV4dD4KPHRleHQgeD0iNDQ1IiB5PSIxMjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNDc1NTY5OyBmaWxsOiM2NDc0OGI7Zm9udC1zaXplOjEwcHgiPnB1cnBvc2UgRU5DUllQVF9ERUNSWVBUPC90ZXh0Pgo8cmVjdCB4PSIyOTYiIHk9IjE1MiIgd2lkdGg9Ijc4IiBoZWlnaHQ9IjM0IiByeD0iOCIgZmlsbD0iI2Y4ZmFmYyIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuMyIvPgo8dGV4dCB4PSIzMzUiIHk9IjE3NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM0NzU1Njk7IGZpbGw6IzQ3NTU2OSI+djE8L3RleHQ+CjxsaW5lIHgxPSIzNzQiIHkxPSIxNjkiIHgyPSIzODYiIHkyPSIxNjkiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIxLjYiIG1hcmtlci1lbmQ9InVybCgjZ2ttczIpIi8+CjxyZWN0IHg9IjM4OCIgeT0iMTUyIiB3aWR0aD0iNzgiIGhlaWdodD0iMzQiIHJ4PSI4IiBmaWxsPSIjZjhmYWZjIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS4zIi8+Cjx0ZXh0IHg9IjQyNyIgeT0iMTc0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzQ3NTU2OTsgZmlsbDojNDc1NTY5Ij52MjwvdGV4dD4KPGxpbmUgeDE9IjQ2NiIgeTE9IjE2OSIgeDI9IjQ3OCIgeTI9IjE2OSIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNna21zMmcpIi8+CjxyZWN0IHg9IjQ4MCIgeT0iMTUwIiB3aWR0aD0iMTEyIiBoZWlnaHQ9IjM4IiByeD0iOCIgZmlsbD0iI2VjZmRmNSIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNiIvPgo8dGV4dCB4PSI1MzYiIHk9IjE3NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM0NzU1Njk7IGZpbGw6IzA0Nzg1Nztmb250LXdlaWdodDo3MDAiPnYzIMK3IHByaW1hcnk8L3RleHQ+Cjx0ZXh0IHg9IjQ0NSIgeT0iMjE2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjEwcHgiPktleSBtYXRlcmlhbCBpcyBpbW11dGFibGUgd2l0aGluIGEgdmVyc2lvbi48L3RleHQ+Cjx0ZXh0IHg9IjQ0NSIgeT0iMjM0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjEwcHgiPk5ldyBlbmNyeXB0aW9uIHVzZXMgdGhlIHByaW1hcnkgdmVyc2lvbi48L3RleHQ+CjxyZWN0IHg9IjYyMiIgeT0iODAiIHdpZHRoPSIxNzgiIGhlaWdodD0iMTcyIiByeD0iMTAiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2NiZDVlMSIgc3Ryb2tlLXdpZHRoPSIxLjMiLz4KPHRleHQgeD0iNzExIiB5PSIxMjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OjcwMCAxMS41cHggSW50ZXIsc2Fucy1zZXJpZjtmaWxsOiMzMzQxNTUiPmNyeXB0byBrZXkgwrcgc2lnbmluZzwvdGV4dD4KPHRleHQgeD0iNzExIiB5PSIxMzgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNDc1NTY5OyBmaWxsOiM2NDc0OGI7Zm9udC1zaXplOjkuNXB4Ij5BU1lNTUVUUklDX1NJR048L3RleHQ+Cjx0ZXh0IHg9IjcxMSIgeT0iMTcyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjEwcHgiPml0cyBvd24gdmVyc2lvbnMsPC90ZXh0Pgo8dGV4dCB4PSI3MTEiIHk9IjE4OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZToxMHB4Ij5pdHMgb3duIHB1cnBvc2U8L3RleHQ+Cjwvc3ZnPg==" alt="A location-specific key ring holds versioned keys. Symmetric encryption uses the primary version." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjg2IiB2aWV3Qm94PSIwIDAgODM2IDI4NiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJBIGxvY2F0aW9uLXNwZWNpZmljIGtleSByaW5nIGhvbGRzIHZlcnNpb25lZCBrZXlzLiBTeW1tZXRyaWMgZW5jcnlwdGlvbiB1c2VzIHRoZSBwcmltYXJ5IHZlcnNpb24uIj48c3R5bGU+dGV4dHtmb250LWZhbWlseTpJbnRlciwtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCwnU2Vnb2UgVUknLFJvYm90bywnSGVsdmV0aWNhIE5ldWUnLEFyaWFsLHNhbnMtc2VyaWY7ZmlsbDojY2JkNWUxfTwvc3R5bGU+CjxkZWZzPjxtYXJrZXIgaWQ9ImdrbXMyIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiM5NGEzYjgiLz48L21hcmtlcj48bWFya2VyIGlkPSJna21zMmciIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzIwZjdiNCIvPjwvbWFya2VyPjwvZGVmcz4KPHRleHQgeD0iMjYiIHk9IjI0IiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDogI2M5Y2ZkOCI+QSBDUllQVE8gS0VZIExJVkVTIElOIEEgUkVHSU9OQUwgS0VZIFJJTkcgwrcgSVRTIFZFUlNJT05TIEFSRSBJTU1VVEFCTEUgwrcgT05FIElTIFBSSU1BUlk8L3RleHQ+CjxyZWN0IHg9IjI0IiB5PSI1MiIgd2lkdGg9IjE4OCIgaGVpZ2h0PSIxMDQiIHJ4PSIxMiIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSIxMTgiIHk9IjkwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2VkODsgZm9udC1zaXplOjEyLjVweCI+QVdTIEtNUyBrZXk8L3RleHQ+Cjx0ZXh0IHg9IjExOCIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjEwcHgiPmtleSBpZCArIGFsaWFzL3BheW1lbnRzPC90ZXh0Pgo8dGV4dCB4PSIxMTgiIHk9IjEyNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZToxMHB4Ij5vbmUgZmxhdCBrZXkgb2JqZWN0PC90ZXh0Pgo8bGluZSB4MT0iMjEyIiB5MT0iMTA0IiB4Mj0iMjUyIiB5Mj0iMTA0IiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNna21zMikiLz4KPHRleHQgeD0iMjMyIiB5PSI5NSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZTo4cHgiPnJlc29sdmVzIHRvPC90ZXh0Pgo8cmVjdCB4PSIyNjIiIHk9IjQ0IiB3aWR0aD0iNTUwIiBoZWlnaHQ9IjIyNCIgcng9IjEzIiBmaWxsPSIjMWEyNjMxIiBzdHJva2U9IiM0Mjg1RjQiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjI4MCIgeT0iNjgiIHN0eWxlPSJmb250OjcwMCAxMS41cHggSW50ZXIsc2Fucy1zZXJpZjtmaWxsOiAjOTBhZGRlIj5DbG91ZCBLTVMga2V5IHJpbmc8dHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OnZhcigtLW1vbm8pO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTBweDtmaWxsOiAjYzljZmQ4Ij4gIMK3ICByZWdpb24gdXMtZWFzdDE8L3RzcGFuPjwvdGV4dD4KPHJlY3QgeD0iMjgwIiB5PSI4MCIgd2lkdGg9IjMzMCIgaGVpZ2h0PSIxNzIiIHJ4PSIxMCIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZjY2IiBzdHJva2Utd2lkdGg9IjEuMyIvPgo8dGV4dCB4PSI0NDUiIHk9IjEwNCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6NzAwIDExLjVweCBJbnRlcixzYW5zLXNlcmlmO2ZpbGw6ICNjOWNmZDgiPmNyeXB0byBrZXkgwrcgcGF5bWVudHM8L3RleHQ+Cjx0ZXh0IHg9IjQ0NSIgeT0iMTIyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkODsgZmlsbDogI2M5Y2ZkODtmb250LXNpemU6MTBweCI+cHVycG9zZSBFTkNSWVBUX0RFQ1JZUFQ8L3RleHQ+CjxyZWN0IHg9IjI5NiIgeT0iMTUyIiB3aWR0aD0iNzgiIGhlaWdodD0iMzQiIHJ4PSI4IiBmaWxsPSIjMWEyNjMxIiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS4zIi8+Cjx0ZXh0IHg9IjMzNSIgeT0iMTc0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkODsgZmlsbDogI2M5Y2ZkOCI+djE8L3RleHQ+CjxsaW5lIHgxPSIzNzQiIHkxPSIxNjkiIHgyPSIzODYiIHkyPSIxNjkiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIxLjYiIG1hcmtlci1lbmQ9InVybCgjZ2ttczIpIi8+CjxyZWN0IHg9IjM4OCIgeT0iMTUyIiB3aWR0aD0iNzgiIGhlaWdodD0iMzQiIHJ4PSI4IiBmaWxsPSIjMWEyNjMxIiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS4zIi8+Cjx0ZXh0IHg9IjQyNyIgeT0iMTc0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkODsgZmlsbDogI2M5Y2ZkOCI+djI8L3RleHQ+CjxsaW5lIHgxPSI0NjYiIHkxPSIxNjkiIHgyPSI0NzgiIHkyPSIxNjkiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIxLjgiIG1hcmtlci1lbmQ9InVybCgjZ2ttczJnKSIvPgo8cmVjdCB4PSI0ODAiIHk9IjE1MCIgd2lkdGg9IjExMiIgaGVpZ2h0PSIzOCIgcng9IjgiIGZpbGw9IiMxYTMxMjYiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIxLjYiLz4KPHRleHQgeD0iNTM2IiB5PSIxNzQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4OyBmaWxsOiAjOTBkZWM4O2ZvbnQtd2VpZ2h0OjcwMCI+djMgwrcgcHJpbWFyeTwvdGV4dD4KPHRleHQgeD0iNDQ1IiB5PSIyMTYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6MTBweCI+S2V5IG1hdGVyaWFsIGlzIGltbXV0YWJsZSB3aXRoaW4gYSB2ZXJzaW9uLjwvdGV4dD4KPHRleHQgeD0iNDQ1IiB5PSIyMzQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6MTBweCI+TmV3IGVuY3J5cHRpb24gdXNlcyB0aGUgcHJpbWFyeSB2ZXJzaW9uLjwvdGV4dD4KPHJlY3QgeD0iNjIyIiB5PSI4MCIgd2lkdGg9IjE3OCIgaGVpZ2h0PSIxNzIiIHJ4PSIxMCIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZjY2IiBzdHJva2Utd2lkdGg9IjEuMyIvPgo8dGV4dCB4PSI3MTEiIHk9IjEyMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6NzAwIDExLjVweCBJbnRlcixzYW5zLXNlcmlmO2ZpbGw6ICNjOWNmZDgiPmNyeXB0byBrZXkgwrcgc2lnbmluZzwvdGV4dD4KPHRleHQgeD0iNzExIiB5PSIxMzgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4OyBmaWxsOiAjYzljZmQ4O2ZvbnQtc2l6ZTo5LjVweCI+QVNZTU1FVFJJQ19TSUdOPC90ZXh0Pgo8dGV4dCB4PSI3MTEiIHk9IjE3MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZToxMHB4Ij5pdHMgb3duIHZlcnNpb25zLDwvdGV4dD4KPHRleHQgeD0iNzExIiB5PSIxODgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6MTBweCI+aXRzIG93biBwdXJwb3NlPC90ZXh0Pgo8L3N2Zz4=" alt="A location-specific key ring holds versioned keys. Symmetric encryption uses the primary version." />
</div>

<p className="t9-caption">A location-specific key ring holds versioned keys. Symmetric encryption uses the primary version.</p>

#### One purpose per key: symmetric, asymmetric, and MAC

`CreateKey` translates AWS key usage and specification into a Cloud KMS `purpose` and `version_template.algorithm`. Symmetric `ENCRYPT_DECRYPT` uses `GOOGLE_SYMMETRIC_ENCRYPTION`; signing uses `ASYMMETRIC_SIGN` with an RSA or EC algorithm; HMAC uses `MAC`. Purpose is fixed at creation.

Symmetric keys use `cryptoKeys.encrypt` and `decrypt`. Signing uses `asymmetricSign`; verification checks the signature against the public key returned by `getPublicKey`. HMAC uses `macSign` and `macVerify`. A request incompatible with the key's purpose returns an error.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjUyIiB2aWV3Qm94PSIwIDAgODM2IDI1MiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJLZXkgcHVycG9zZSBzZWxlY3RzIGVuY3J5cHRpb24sIHNpZ25pbmcsIG9yIE1BQyBvcGVyYXRpb25zIGFuZCB0aGVpciBhbGdvcml0aG1zLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6IzMzNDE1NX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJna21zMyIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI4IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNyIgbWFya2VySGVpZ2h0PSI3IiBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSI+PHBhdGggZD0iTTAsMCBMMTAsNSBMMCwxMCB6IiBmaWxsPSIjOTRhM2I4Ii8+PC9tYXJrZXI+PC9kZWZzPgo8dGV4dCB4PSIyNiIgeT0iMjQiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4OyBmaWxsOiMzMzQxNTUiPk9ORSBDUllQVE8gS0VZID0gT05FIFBVUlBPU0UgwrcgQVdTIEtFWSBVU0FHRSBQSUNLUyBUSEUgUFVSUE9TRSArIFZFUlNJT04gQUxHT1JJVEhNPC90ZXh0Pgo8cmVjdCB4PSIyNCIgeT0iNDIiIHdpZHRoPSIyNTYiIGhlaWdodD0iMTk2IiByeD0iMTIiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMTUyIiB5PSI3MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6NzAwIDEzcHggSW50ZXIsc2Fucy1zZXJpZjtmaWxsOiMzMzQxNTUiPlN5bW1ldHJpYzwvdGV4dD4KPHJlY3QgeD0iNTIiIHk9IjgyIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjI4IiByeD0iNyIgZmlsbD0iI2Y4ZmFmYyIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuMiIvPgo8dGV4dCB4PSIxNTIiIHk9IjEwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM0NzU1Njk7IGZpbGw6IzQ3NTU2OTtmb250LXNpemU6OS41cHgiPkFXUyAgRU5DUllQVF9ERUNSWVBUIMK3IEFFUzwvdGV4dD4KPGxpbmUgeDE9IjE1MiIgeTE9IjExMiIgeDI9IjE1MiIgeTI9IjEzNCIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNna21zMykiLz4KPHJlY3QgeD0iNDAiIHk9IjEzOCIgd2lkdGg9IjIyNCIgaGVpZ2h0PSIzMCIgcng9IjgiIGZpbGw9IiNlZWY0ZmYiIHN0cm9rZT0iIzQyODVGNCIgc3Ryb2tlLXdpZHRoPSIxLjQiLz4KPHRleHQgeD0iMTUyIiB5PSIxNTciIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNDc1NTY5OyBmaWxsOiMxYTU2ZGI7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxMHB4Ij5wdXJwb3NlIEVOQ1JZUFRfREVDUllQVDwvdGV4dD4KPHRleHQgeD0iMTUyIiB5PSIxOTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNDc1NTY5OyBmaWxsOiM2NDc0OGI7Zm9udC1zaXplOjkuNXB4Ij5jcnlwdG9LZXlzLmVuY3J5cHQgLyBkZWNyeXB0PC90ZXh0Pgo8dGV4dCB4PSIxNTIiIHk9IjIxMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZToxMHB4Ij50aGUgZW52ZWxvcGUgKyBTU0UgcGF0aDwvdGV4dD4KPHJlY3QgeD0iMjkwIiB5PSI0MiIgd2lkdGg9IjI1NiIgaGVpZ2h0PSIxOTYiIHJ4PSIxMiIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI0MTgiIHk9IjcwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDo3MDAgMTNweCBJbnRlcixzYW5zLXNlcmlmO2ZpbGw6IzMzNDE1NSI+QXN5bW1ldHJpYzwvdGV4dD4KPHJlY3QgeD0iMzE4IiB5PSI4MiIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyOCIgcng9IjciIGZpbGw9IiNmOGZhZmMiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjIiLz4KPHRleHQgeD0iNDE4IiB5PSIxMDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNDc1NTY5OyBmaWxsOiM0NzU1Njk7Zm9udC1zaXplOjkuNXB4Ij5BV1MgIFNJR05fVkVSSUZZIMK3IFJTQSAvIEVDPC90ZXh0Pgo8bGluZSB4MT0iNDE4IiB5MT0iMTEyIiB4Mj0iNDE4IiB5Mj0iMTM0IiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2drbXMzKSIvPgo8cmVjdCB4PSIzMDYiIHk9IjEzOCIgd2lkdGg9IjIyNCIgaGVpZ2h0PSIzMCIgcng9IjgiIGZpbGw9IiNlZWY0ZmYiIHN0cm9rZT0iIzQyODVGNCIgc3Ryb2tlLXdpZHRoPSIxLjQiLz4KPHRleHQgeD0iNDE4IiB5PSIxNTciIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNDc1NTY5OyBmaWxsOiMxYTU2ZGI7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxMHB4Ij5wdXJwb3NlIEFTWU1NRVRSSUNfU0lHTjwvdGV4dD4KPHRleHQgeD0iNDE4IiB5PSIxOTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNDc1NTY5OyBmaWxsOiM2NDc0OGI7Zm9udC1zaXplOjkuNXB4Ij5hc3ltbWV0cmljU2lnbiArIHB1YmxpYyBrZXk8L3RleHQ+Cjx0ZXh0IHg9IjQxOCIgeT0iMjEyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjEwcHgiPnNpZ24gwrcgdmVyaWZ5IMK3IHB1YmxpYyBrZXk8L3RleHQ+CjxyZWN0IHg9IjU1NiIgeT0iNDIiIHdpZHRoPSIyNTYiIGhlaWdodD0iMTk2IiByeD0iMTIiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNjg0IiB5PSI3MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6NzAwIDEzcHggSW50ZXIsc2Fucy1zZXJpZjtmaWxsOiMzMzQxNTUiPk1BQzwvdGV4dD4KPHJlY3QgeD0iNTg0IiB5PSI4MiIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyOCIgcng9IjciIGZpbGw9IiNmOGZhZmMiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjIiLz4KPHRleHQgeD0iNjg0IiB5PSIxMDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNDc1NTY5OyBmaWxsOiM0NzU1Njk7Zm9udC1zaXplOjkuNXB4Ij5BV1MgIEdFTkVSQVRFX1ZFUklGWV9NQUM8L3RleHQ+CjxsaW5lIHgxPSI2ODQiIHkxPSIxMTIiIHgyPSI2ODQiIHkyPSIxMzQiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIxLjgiIG1hcmtlci1lbmQ9InVybCgjZ2ttczMpIi8+CjxyZWN0IHg9IjU3MiIgeT0iMTM4IiB3aWR0aD0iMjI0IiBoZWlnaHQ9IjMwIiByeD0iOCIgZmlsbD0iI2VlZjRmZiIgc3Ryb2tlPSIjNDI4NUY0IiBzdHJva2Utd2lkdGg9IjEuNCIvPgo8dGV4dCB4PSI2ODQiIHk9IjE1NyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM0NzU1Njk7IGZpbGw6IzFhNTZkYjtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjEwcHgiPnB1cnBvc2UgTUFDPC90ZXh0Pgo8dGV4dCB4PSI2ODQiIHk9IjE5MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM0NzU1Njk7IGZpbGw6IzY0NzQ4Yjtmb250LXNpemU6OS41cHgiPm1hY1NpZ24gLyBtYWNWZXJpZnk8L3RleHQ+Cjx0ZXh0IHg9IjY4NCIgeT0iMjEyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjEwcHgiPmEga2V5ZWQgSE1BQzwvdGV4dD4KPC9zdmc+" alt="Key purpose selects encryption, signing, or MAC operations and their algorithms." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjUyIiB2aWV3Qm94PSIwIDAgODM2IDI1MiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJLZXkgcHVycG9zZSBzZWxlY3RzIGVuY3J5cHRpb24sIHNpZ25pbmcsIG9yIE1BQyBvcGVyYXRpb25zIGFuZCB0aGVpciBhbGdvcml0aG1zLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6I2NiZDVlMX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJna21zMyIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI4IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNyIgbWFya2VySGVpZ2h0PSI3IiBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSI+PHBhdGggZD0iTTAsMCBMMTAsNSBMMCwxMCB6IiBmaWxsPSIjOTRhM2I4Ii8+PC9tYXJrZXI+PC9kZWZzPgo8dGV4dCB4PSIyNiIgeT0iMjQiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4OyBmaWxsOiAjYzljZmQ4Ij5PTkUgQ1JZUFRPIEtFWSA9IE9ORSBQVVJQT1NFIMK3IEFXUyBLRVkgVVNBR0UgUElDS1MgVEhFIFBVUlBPU0UgKyBWRVJTSU9OIEFMR09SSVRITTwvdGV4dD4KPHJlY3QgeD0iMjQiIHk9IjQyIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjE5NiIgcng9IjEyIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjE1MiIgeT0iNzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OjcwMCAxM3B4IEludGVyLHNhbnMtc2VyaWY7ZmlsbDogI2M5Y2ZkOCI+U3ltbWV0cmljPC90ZXh0Pgo8cmVjdCB4PSI1MiIgeT0iODIiIHdpZHRoPSIyMDAiIGhlaWdodD0iMjgiIHJ4PSI3IiBmaWxsPSIjMWEyNjMxIiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS4yIi8+Cjx0ZXh0IHg9IjE1MiIgeT0iMTAwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkODsgZmlsbDogI2M5Y2ZkODtmb250LXNpemU6OS41cHgiPkFXUyAgRU5DUllQVF9ERUNSWVBUIMK3IEFFUzwvdGV4dD4KPGxpbmUgeDE9IjE1MiIgeTE9IjExMiIgeDI9IjE1MiIgeTI9IjEzNCIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNna21zMykiLz4KPHJlY3QgeD0iNDAiIHk9IjEzOCIgd2lkdGg9IjIyNCIgaGVpZ2h0PSIzMCIgcng9IjgiIGZpbGw9IiMxYTIyMzEiIHN0cm9rZT0iIzQyODVGNCIgc3Ryb2tlLXdpZHRoPSIxLjQiLz4KPHRleHQgeD0iMTUyIiB5PSIxNTciIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4OyBmaWxsOiAjOTBhOGRlO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTBweCI+cHVycG9zZSBFTkNSWVBUX0RFQ1JZUFQ8L3RleHQ+Cjx0ZXh0IHg9IjE1MiIgeT0iMTkwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkODsgZmlsbDogI2M5Y2ZkODtmb250LXNpemU6OS41cHgiPmNyeXB0b0tleXMuZW5jcnlwdCAvIGRlY3J5cHQ8L3RleHQ+Cjx0ZXh0IHg9IjE1MiIgeT0iMjEyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjEwcHgiPnRoZSBlbnZlbG9wZSArIFNTRSBwYXRoPC90ZXh0Pgo8cmVjdCB4PSIyOTAiIHk9IjQyIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjE5NiIgcng9IjEyIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjQxOCIgeT0iNzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OjcwMCAxM3B4IEludGVyLHNhbnMtc2VyaWY7ZmlsbDogI2M5Y2ZkOCI+QXN5bW1ldHJpYzwvdGV4dD4KPHJlY3QgeD0iMzE4IiB5PSI4MiIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyOCIgcng9IjciIGZpbGw9IiMxYTI2MzEiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjIiLz4KPHRleHQgeD0iNDE4IiB5PSIxMDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4OyBmaWxsOiAjYzljZmQ4O2ZvbnQtc2l6ZTo5LjVweCI+QVdTICBTSUdOX1ZFUklGWSDCtyBSU0EgLyBFQzwvdGV4dD4KPGxpbmUgeDE9IjQxOCIgeTE9IjExMiIgeDI9IjQxOCIgeTI9IjEzNCIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNna21zMykiLz4KPHJlY3QgeD0iMzA2IiB5PSIxMzgiIHdpZHRoPSIyMjQiIGhlaWdodD0iMzAiIHJ4PSI4IiBmaWxsPSIjMWEyMjMxIiBzdHJva2U9IiM0Mjg1RjQiIHN0cm9rZS13aWR0aD0iMS40Ii8+Cjx0ZXh0IHg9IjQxOCIgeT0iMTU3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkODsgZmlsbDogIzkwYThkZTtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjEwcHgiPnB1cnBvc2UgQVNZTU1FVFJJQ19TSUdOPC90ZXh0Pgo8dGV4dCB4PSI0MTgiIHk9IjE5MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICNjOWNmZDg7IGZpbGw6ICNjOWNmZDg7Zm9udC1zaXplOjkuNXB4Ij5hc3ltbWV0cmljU2lnbiArIHB1YmxpYyBrZXk8L3RleHQ+Cjx0ZXh0IHg9IjQxOCIgeT0iMjEyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjEwcHgiPnNpZ24gwrcgdmVyaWZ5IMK3IHB1YmxpYyBrZXk8L3RleHQ+CjxyZWN0IHg9IjU1NiIgeT0iNDIiIHdpZHRoPSIyNTYiIGhlaWdodD0iMTk2IiByeD0iMTIiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNjg0IiB5PSI3MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6NzAwIDEzcHggSW50ZXIsc2Fucy1zZXJpZjtmaWxsOiAjYzljZmQ4Ij5NQUM8L3RleHQ+CjxyZWN0IHg9IjU4NCIgeT0iODIiIHdpZHRoPSIyMDAiIGhlaWdodD0iMjgiIHJ4PSI3IiBmaWxsPSIjMWEyNjMxIiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS4yIi8+Cjx0ZXh0IHg9IjY4NCIgeT0iMTAwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkODsgZmlsbDogI2M5Y2ZkODtmb250LXNpemU6OS41cHgiPkFXUyAgR0VORVJBVEVfVkVSSUZZX01BQzwvdGV4dD4KPGxpbmUgeDE9IjY4NCIgeTE9IjExMiIgeDI9IjY4NCIgeTI9IjEzNCIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNna21zMykiLz4KPHJlY3QgeD0iNTcyIiB5PSIxMzgiIHdpZHRoPSIyMjQiIGhlaWdodD0iMzAiIHJ4PSI4IiBmaWxsPSIjMWEyMjMxIiBzdHJva2U9IiM0Mjg1RjQiIHN0cm9rZS13aWR0aD0iMS40Ii8+Cjx0ZXh0IHg9IjY4NCIgeT0iMTU3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkODsgZmlsbDogIzkwYThkZTtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjEwcHgiPnB1cnBvc2UgTUFDPC90ZXh0Pgo8dGV4dCB4PSI2ODQiIHk9IjE5MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICNjOWNmZDg7IGZpbGw6ICNjOWNmZDg7Zm9udC1zaXplOjkuNXB4Ij5tYWNTaWduIC8gbWFjVmVyaWZ5PC90ZXh0Pgo8dGV4dCB4PSI2ODQiIHk9IjIxMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZToxMHB4Ij5hIGtleWVkIEhNQUM8L3RleHQ+Cjwvc3ZnPg==" alt="Key purpose selects encryption, signing, or MAC operations and their algorithms." />
</div>

<p className="t9-caption">Key purpose selects encryption, signing, or MAC operations and their algorithms.</p>

#### How GenerateDataKey works

`GenerateDataKey` returns a plaintext data key and an encrypted (wrapped) copy. The application uses the plaintext key to encrypt its data locally, then discards that key and stores the wrapped copy beside the encrypted data. To read the data later, it asks the key service to decrypt the wrapped key.

The adapter generates a random data key of the requested size and calls `cryptoKeys.encrypt` to wrap it. It returns the AWS-shaped `{Plaintext, CiphertextBlob}` pair and uses `cryptoKeys.decrypt` to unwrap it later. Both calls include the encryption context as AAD. The adapter includes key identity with Cloud KMS ciphertext so Decrypt can locate the key. Applications must treat this blob as opaque.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjk2IiB2aWV3Qm94PSIwIDAgODM2IDI5NiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgYWRhcHRlciBnZW5lcmF0ZXMgYSByYW5kb20gZGF0YSBrZXkgYW5kIHdyYXBzIGl0IHdpdGggY3J5cHRvS2V5cy5lbmNyeXB0LiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6IzMzNDE1NX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJna21zNCIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI4IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNyIgbWFya2VySGVpZ2h0PSI3IiBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSI+PHBhdGggZD0iTTAsMCBMMTAsNSBMMCwxMCB6IiBmaWxsPSIjOTRhM2I4Ii8+PC9tYXJrZXI+PG1hcmtlciBpZD0iZ2ttczRnIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiMwNTk2NjkiLz48L21hcmtlcj48L2RlZnM+Cjx0ZXh0IHg9IjI2IiB5PSIyMiIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6IzMzNDE1NSI+R2VuZXJhdGVEYXRhS2V5OiBnZW5lcmF0ZSwgdGhlbiB3cmFwPC90ZXh0Pgo8cmVjdCB4PSIyNCIgeT0iNDAiIHdpZHRoPSIyMTQiIGhlaWdodD0iNjYiIHJ4PSIxMSIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSIxMzEiIHk9IjcwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzBmMTcyYTsgZm9udC1zaXplOjEycHgiPuKRoCByYW5kb20gZGF0YSBrZXk8L3RleHQ+Cjx0ZXh0IHg9IjEzMSIgeT0iODgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6MTBweCI+cmVxdWVzdGVkIHNpemUsIGdlbmVyYXRlZCBsb2NhbGx5PC90ZXh0Pgo8bGluZSB4MT0iMjM4IiB5MT0iNzMiIHgyPSIyNzIiIHkyPSI3MyIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjZ2ttczQpIi8+Cjx0ZXh0IHg9IjI1NSIgeT0iNjUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6OHB4Ij53cmFwPC90ZXh0Pgo8cmVjdCB4PSIyNzYiIHk9IjQwIiB3aWR0aD0iMjE0IiBoZWlnaHQ9IjY2IiByeD0iMTEiIGZpbGw9IiNlZWY0ZmYiIHN0cm9rZT0iIzQyODVGNCIgc3Ryb2tlLXdpZHRoPSIxLjYiLz4KPHRleHQgeD0iMzgzIiB5PSI3MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6NzAwIDEycHggSW50ZXIsc2Fucy1zZXJpZjtmaWxsOiMxYTU2ZGIiPuKRoSBjcnlwdG9LZXlzLmVuY3J5cHQ8L3RleHQ+Cjx0ZXh0IHg9IjM4MyIgeT0iODgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6MTBweCI+dGhlIG9uZSBDbG91ZCBLTVMgY2FsbDwvdGV4dD4KPGxpbmUgeDE9IjQ5MCIgeTE9IjczIiB4Mj0iNTI0IiB5Mj0iNzMiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2drbXM0ZykiLz4KPHJlY3QgeD0iNTI4IiB5PSI0MCIgd2lkdGg9IjI4NCIgaGVpZ2h0PSI2NiIgcng9IjExIiBmaWxsPSIjZWNmZGY1IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS43Ii8+Cjx0ZXh0IHg9IjY3MCIgeT0iNzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3OyBmb250LXNpemU6MTJweCI+4pGiICYjMTIzOyBwbGFpbnRleHQgKyB3cmFwcGVkICYjMTI1OzwvdGV4dD4KPHRleHQgeD0iNjcwIiB5PSI4OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NzsgZm9udC1zaXplOjEwcHgiPkdlbmVyYXRlRGF0YUtleSByZXNwb25zZTwvdGV4dD4KPHRleHQgeD0iMjYiIHk9IjE0NiIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6IzA0Nzg1NyI+TEFURVIsIFRPIFJFQUQgVEhFIERBVEEgQkFDSzwvdGV4dD4KPHJlY3QgeD0iMjQiIHk9IjE2MCIgd2lkdGg9IjE3OCIgaGVpZ2h0PSI2MCIgcng9IjExIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjExMyIgeT0iMTg2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzBmMTcyYTsgZm9udC1zaXplOjExLjVweCI+d3JhcHBlZCBkYXRhIGtleTwvdGV4dD4KPHRleHQgeD0iMTEzIiB5PSIyMDMiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6OS41cHgiPmtlcHQgYmVzaWRlIHlvdXIgY2lwaGVydGV4dDwvdGV4dD4KPGxpbmUgeDE9IjIwMiIgeTE9IjE5MCIgeDI9IjIzOCIgeTI9IjE5MCIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjZ2ttczQpIi8+CjxyZWN0IHg9IjI0MiIgeT0iMTYwIiB3aWR0aD0iMTc2IiBoZWlnaHQ9IjYwIiByeD0iMTEiIGZpbGw9IiNlZWY0ZmYiIHN0cm9rZT0iIzQyODVGNCIgc3Ryb2tlLXdpZHRoPSIxLjYiLz4KPHRleHQgeD0iMzMwIiB5PSIxODYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OjcwMCAxMS41cHggSW50ZXIsc2Fucy1zZXJpZjtmaWxsOiMxYTU2ZGIiPmNyeXB0b0tleXMuZGVjcnlwdDwvdGV4dD4KPHRleHQgeD0iMzMwIiB5PSIyMDMiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6OS41cHgiPnVud3JhcHMgdGhlIGRhdGEga2V5PC90ZXh0Pgo8bGluZSB4MT0iNDE4IiB5MT0iMTkwIiB4Mj0iNDU0IiB5Mj0iMTkwIiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNna21zNCkiLz4KPHJlY3QgeD0iNDU4IiB5PSIxNjAiIHdpZHRoPSIxNjAiIGhlaWdodD0iNjAiIHJ4PSIxMSIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI1MzgiIHk9IjE4NiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMS41cHgiPnBsYWludGV4dCBkYXRhIGtleTwvdGV4dD4KPHRleHQgeD0iNTM4IiB5PSIyMDMiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6OS41cHgiPnVzZWQgb25jZSwgZGlzY2FyZGVkPC90ZXh0Pgo8bGluZSB4MT0iNjE4IiB5MT0iMTkwIiB4Mj0iNjU0IiB5Mj0iMTkwIiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNna21zNGcpIi8+CjxyZWN0IHg9IjY1OCIgeT0iMTYwIiB3aWR0aD0iMTU0IiBoZWlnaHQ9IjYwIiByeD0iMTEiIGZpbGw9IiNlY2ZkZjUiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIxLjciLz4KPHRleHQgeD0iNzM1IiB5PSIxODYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3OyBmb250LXNpemU6MTEuNXB4Ij55b3VyIGRhdGEsIHJlYWQ8L3RleHQ+Cjx0ZXh0IHg9IjczNSIgeT0iMjAzIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3OyBmb250LXNpemU6OS41cHgiPmRlY3J5cHRlZCBsb2NhbGx5PC90ZXh0Pgo8cmVjdCB4PSIyNCIgeT0iMjQ4IiB3aWR0aD0iNzg4IiBoZWlnaHQ9IjM0IiByeD0iOSIgZmlsbD0iI2Y4ZmFmYyIgc3Ryb2tlPSIjYTdmM2QwIiBzdHJva2Utd2lkdGg9IjEuMyIvPgo8dGV4dCB4PSI0MTgiIHk9IjI2OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NzsgZm9udC1zaXplOjEwLjVweCI+Q2xvdWQgS01TIGVuY3J5cHRzIGFuZCBkZWNyeXB0cyB0aGUgZ2VuZXJhdGVkIGRhdGEga2V5PC90ZXh0Pgo8L3N2Zz4=" alt="The adapter generates a random data key and wraps it with cryptoKeys.encrypt." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjk2IiB2aWV3Qm94PSIwIDAgODM2IDI5NiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgYWRhcHRlciBnZW5lcmF0ZXMgYSByYW5kb20gZGF0YSBrZXkgYW5kIHdyYXBzIGl0IHdpdGggY3J5cHRvS2V5cy5lbmNyeXB0LiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6I2NiZDVlMX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJna21zNCIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI4IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNyIgbWFya2VySGVpZ2h0PSI3IiBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSI+PHBhdGggZD0iTTAsMCBMMTAsNSBMMCwxMCB6IiBmaWxsPSIjOTRhM2I4Ii8+PC9tYXJrZXI+PG1hcmtlciBpZD0iZ2ttczRnIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiMyMGY3YjQiLz48L21hcmtlcj48L2RlZnM+Cjx0ZXh0IHg9IjI2IiB5PSIyMiIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6ICNjOWNmZDgiPkdlbmVyYXRlRGF0YUtleTogZ2VuZXJhdGUsIHRoZW4gd3JhcDwvdGV4dD4KPHJlY3QgeD0iMjQiIHk9IjQwIiB3aWR0aD0iMjE0IiBoZWlnaHQ9IjY2IiByeD0iMTEiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMTMxIiB5PSI3MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNlZDg7IGZvbnQtc2l6ZToxMnB4Ij7ikaAgcmFuZG9tIGRhdGEga2V5PC90ZXh0Pgo8dGV4dCB4PSIxMzEiIHk9Ijg4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjEwcHgiPnJlcXVlc3RlZCBzaXplLCBnZW5lcmF0ZWQgbG9jYWxseTwvdGV4dD4KPGxpbmUgeDE9IjIzOCIgeTE9IjczIiB4Mj0iMjcyIiB5Mj0iNzMiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2drbXM0KSIvPgo8dGV4dCB4PSIyNTUiIHk9IjY1IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjhweCI+d3JhcDwvdGV4dD4KPHJlY3QgeD0iMjc2IiB5PSI0MCIgd2lkdGg9IjIxNCIgaGVpZ2h0PSI2NiIgcng9IjExIiBmaWxsPSIjMWEyMjMxIiBzdHJva2U9IiM0Mjg1RjQiIHN0cm9rZS13aWR0aD0iMS42Ii8+Cjx0ZXh0IHg9IjM4MyIgeT0iNzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OjcwMCAxMnB4IEludGVyLHNhbnMtc2VyaWY7ZmlsbDogIzkwYThkZSI+4pGhIGNyeXB0b0tleXMuZW5jcnlwdDwvdGV4dD4KPHRleHQgeD0iMzgzIiB5PSI4OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZToxMHB4Ij50aGUgb25lIENsb3VkIEtNUyBjYWxsPC90ZXh0Pgo8bGluZSB4MT0iNDkwIiB5MT0iNzMiIHgyPSI1MjQiIHkyPSI3MyIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjZ2ttczRnKSIvPgo8cmVjdCB4PSI1MjgiIHk9IjQwIiB3aWR0aD0iMjg0IiBoZWlnaHQ9IjY2IiByeD0iMTEiIGZpbGw9IiMxYTMxMjYiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIxLjciLz4KPHRleHQgeD0iNjcwIiB5PSI3MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDcwMCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzg7IGZvbnQtc2l6ZToxMnB4Ij7ikaIgJiMxMjM7IHBsYWludGV4dCArIHdyYXBwZWQgJiMxMjU7PC90ZXh0Pgo8dGV4dCB4PSI2NzAiIHk9Ijg4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4OyBmb250LXNpemU6MTBweCI+R2VuZXJhdGVEYXRhS2V5IHJlc3BvbnNlPC90ZXh0Pgo8dGV4dCB4PSIyNiIgeT0iMTQ2IiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDogIzkwZGVjOCI+TEFURVIsIFRPIFJFQUQgVEhFIERBVEEgQkFDSzwvdGV4dD4KPHJlY3QgeD0iMjQiIHk9IjE2MCIgd2lkdGg9IjE3OCIgaGVpZ2h0PSI2MCIgcng9IjExIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjExMyIgeT0iMTg2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2VkODsgZm9udC1zaXplOjExLjVweCI+d3JhcHBlZCBkYXRhIGtleTwvdGV4dD4KPHRleHQgeD0iMTEzIiB5PSIyMDMiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6OS41cHgiPmtlcHQgYmVzaWRlIHlvdXIgY2lwaGVydGV4dDwvdGV4dD4KPGxpbmUgeDE9IjIwMiIgeTE9IjE5MCIgeDI9IjIzOCIgeTI9IjE5MCIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjZ2ttczQpIi8+CjxyZWN0IHg9IjI0MiIgeT0iMTYwIiB3aWR0aD0iMTc2IiBoZWlnaHQ9IjYwIiByeD0iMTEiIGZpbGw9IiMxYTIyMzEiIHN0cm9rZT0iIzQyODVGNCIgc3Ryb2tlLXdpZHRoPSIxLjYiLz4KPHRleHQgeD0iMzMwIiB5PSIxODYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OjcwMCAxMS41cHggSW50ZXIsc2Fucy1zZXJpZjtmaWxsOiAjOTBhOGRlIj5jcnlwdG9LZXlzLmRlY3J5cHQ8L3RleHQ+Cjx0ZXh0IHg9IjMzMCIgeT0iMjAzIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjkuNXB4Ij51bndyYXBzIHRoZSBkYXRhIGtleTwvdGV4dD4KPGxpbmUgeDE9IjQxOCIgeTE9IjE5MCIgeDI9IjQ1NCIgeTI9IjE5MCIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjZ2ttczQpIi8+CjxyZWN0IHg9IjQ1OCIgeT0iMTYwIiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjYwIiByeD0iMTEiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNTM4IiB5PSIxODYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTEuNXB4Ij5wbGFpbnRleHQgZGF0YSBrZXk8L3RleHQ+Cjx0ZXh0IHg9IjUzOCIgeT0iMjAzIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjkuNXB4Ij51c2VkIG9uY2UsIGRpc2NhcmRlZDwvdGV4dD4KPGxpbmUgeDE9IjYxOCIgeTE9IjE5MCIgeDI9IjY1NCIgeTI9IjE5MCIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjZ2ttczRnKSIvPgo8cmVjdCB4PSI2NTgiIHk9IjE2MCIgd2lkdGg9IjE1NCIgaGVpZ2h0PSI2MCIgcng9IjExIiBmaWxsPSIjMWEzMTI2IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS43Ii8+Cjx0ZXh0IHg9IjczNSIgeT0iMTg2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzkwZGVjODsgZm9udC1zaXplOjExLjVweCI+eW91ciBkYXRhLCByZWFkPC90ZXh0Pgo8dGV4dCB4PSI3MzUiIHk9IjIwMyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzkwZGVjODsgZm9udC1zaXplOjkuNXB4Ij5kZWNyeXB0ZWQgbG9jYWxseTwvdGV4dD4KPHJlY3QgeD0iMjQiIHk9IjI0OCIgd2lkdGg9Ijc4OCIgaGVpZ2h0PSIzNCIgcng9IjkiIGZpbGw9IiMxYTI2MzEiIHN0cm9rZT0iIzNkNjY1MyIgc3Ryb2tlLXdpZHRoPSIxLjMiLz4KPHRleHQgeD0iNDE4IiB5PSIyNjkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzg7IGZvbnQtc2l6ZToxMC41cHgiPkNsb3VkIEtNUyBlbmNyeXB0cyBhbmQgZGVjcnlwdHMgdGhlIGdlbmVyYXRlZCBkYXRhIGtleTwvdGV4dD4KPC9zdmc+" alt="The adapter generates a random data key and wraps it with cryptoKeys.encrypt." />
</div>

<p className="t9-caption">The adapter generates a random data key and wraps it with cryptoKeys.encrypt .</p>

#### Encryption context and authenticated data

An encryption context is a non-secret key/value map bound to ciphertext as additional authenticated data (AAD). Decryption requires the same context. Applications can use it to bind encrypted values to a tenant or purpose.

Cloud KMS accepts up to 64 KiB of `additionalAuthenticatedData`. The adapter serializes the context map into a stable byte encoding so map insertion order does not affect decryption. It supplies the same encoding for direct encryption and data-key wrapping. A different context causes decryption to fail.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjYyIiB2aWV3Qm94PSIwIDAgODM2IDI2MiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgYWRhcHRlciBlbmNvZGVzIHRoZSBlbmNyeXB0aW9uIGNvbnRleHQgYXMgYWRkaXRpb25hbEF1dGhlbnRpY2F0ZWREYXRhLiBEZWNyeXB0aW9uIHJlcXVpcmVzIHRoZSBzYW1lIGNvbnRleHQuIj48c3R5bGU+dGV4dHtmb250LWZhbWlseTpJbnRlciwtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCwnU2Vnb2UgVUknLFJvYm90bywnSGVsdmV0aWNhIE5ldWUnLEFyaWFsLHNhbnMtc2VyaWY7ZmlsbDojMzM0MTU1fTwvc3R5bGU+CjxkZWZzPjxtYXJrZXIgaWQ9ImdrbXM1ZyIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI4IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNyIgbWFya2VySGVpZ2h0PSI3IiBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSI+PHBhdGggZD0iTTAsMCBMMTAsNSBMMCwxMCB6IiBmaWxsPSIjMDU5NjY5Ii8+PC9tYXJrZXI+PG1hcmtlciBpZD0iZ2ttczVyIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiNkYzI2MjYiLz48L21hcmtlcj48L2RlZnM+Cjx0ZXh0IHg9IjI2IiB5PSIyNCIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6IzMzNDE1NSI+QU4gRU5DUllQVElPTi1DT05URVhUIE1BUCBJUyBCT1VORCBJTlRPIFRIRSBDSVBIRVJURVhUIEFTIGFkZGl0aW9uYWxBdXRoZW50aWNhdGVkRGF0YTwvdGV4dD4KPHJlY3QgeD0iMjQiIHk9IjQ0IiB3aWR0aD0iMjI0IiBoZWlnaHQ9Ijk4IiByeD0iMTEiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMTM2IiB5PSI2NiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMnB4Ij5FbmNyeXB0IMK3IGNvbnRleHQgbWFwPC90ZXh0Pgo8cmVjdCB4PSI0MCIgeT0iNzgiIHdpZHRoPSIxOTIiIGhlaWdodD0iNDgiIHJ4PSI4IiBmaWxsPSIjZjhmYWZjIiBzdHJva2U9IiNlMmU4ZjAiLz4KPHRleHQgeD0iMTM2IiB5PSI5OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM0NzU1Njk7IGZpbGw6IzQ3NTU2OTtmb250LXNpemU6MTBweCI+dGVuYW50ID0gYWNtZTwvdGV4dD4KPHRleHQgeD0iMTM2IiB5PSIxMTUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNDc1NTY5OyBmaWxsOiM0NzU1Njk7Zm9udC1zaXplOjEwcHgiPnB1cnBvc2UgPSBwYXltZW50czwvdGV4dD4KPGxpbmUgeDE9IjI0OCIgeTE9IjkzIiB4Mj0iMjg2IiB5Mj0iOTMiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2drbXM1ZykiLz4KPHRleHQgeD0iMjY3IiB5PSI4NSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZTo4cHgiPmJpbmQ8L3RleHQ+CjxyZWN0IHg9IjI5MCIgeT0iNjgiIHdpZHRoPSIxNjgiIGhlaWdodD0iNTIiIHJ4PSIxMCIgZmlsbD0iI2VjZmRmNSIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNiIvPgo8dGV4dCB4PSIzNzQiIHk9IjkwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NzsgZm9udC1zaXplOjExLjVweCI+Q2lwaGVydGV4dDwvdGV4dD4KPHRleHQgeD0iMzc0IiB5PSIxMDciIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNDc4NTc7IGZvbnQtc2l6ZTo5LjVweCI+Ym91bmQgdG8gdGhhdCBjb250ZXh0PC90ZXh0Pgo8bGluZSB4MT0iNDU4IiB5MT0iODIiIHgyPSI0OTYiIHkyPSI3MiIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNna21zNWcpIi8+CjxsaW5lIHgxPSI0NTgiIHkxPSIxMDYiIHgyPSI0OTYiIHkyPSIxMjAiIHN0cm9rZT0iI2RjMjYyNiIgc3Ryb2tlLXdpZHRoPSIxLjgiIG1hcmtlci1lbmQ9InVybCgjZ2ttczVyKSIvPgo8cmVjdCB4PSI1MDAiIHk9IjUyIiB3aWR0aD0iMzEyIiBoZWlnaHQ9IjQ0IiByeD0iMTAiIGZpbGw9IiNlY2ZkZjUiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNTE4IiB5PSI3MiIgc3R5bGU9ImZvbnQ6IDcwMCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNDc4NTc7IGZvbnQtc2l6ZToxMS41cHgiPkRlY3J5cHQgwrcgc2FtZSBjb250ZXh0PC90ZXh0Pgo8dGV4dCB4PSI1MTgiIHk9Ijg4IiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3OyBmb250LXNpemU6OS41cHgiPuKckyByZXR1cm5zIHRoZSBwbGFpbnRleHQ8L3RleHQ+CjxyZWN0IHg9IjUwMCIgeT0iMTA0IiB3aWR0aD0iMzEyIiBoZWlnaHQ9IjQ0IiByeD0iMTAiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2ZlY2FjYSIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNTE4IiB5PSIxMjQiIHN0eWxlPSJmb250OjcwMCAxMS41cHggSW50ZXIsc2Fucy1zZXJpZjtmaWxsOiNkYzI2MjYiPkRlY3J5cHQgwrcgZGlmZmVyZW50IGNvbnRleHQ8L3RleHQ+Cjx0ZXh0IHg9IjUxOCIgeT0iMTQwIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjkuNXB4O2ZpbGw6I2I5MWMxYyI+4pyXIGZhaWxzOyB0aGUgd3JvbmcgY29udGV4dCBjYW5ub3QgcmVhZCBpdDwvdGV4dD4KPHRleHQgeD0iMjYiIHk9IjE4MiIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6IzA0Nzg1NyI+SE9XIENMT1VEIEtNUyBCSU5EUyBJVDwvdGV4dD4KPHJlY3QgeD0iMjQiIHk9IjE5NCIgd2lkdGg9IjI1NiIgaGVpZ2h0PSI1NiIgcng9IjEwIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS40Ii8+Cjx0ZXh0IHg9IjE1MiIgeT0iMjE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDo3MDAgMTFweCBJbnRlcixzYW5zLXNlcmlmO2ZpbGw6IzMzNDE1NSI+Qm91bmQgbmF0aXZlbHk8L3RleHQ+Cjx0ZXh0IHg9IjE1MiIgeT0iMjM0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzQ3NTU2OTsgZmlsbDojNjQ3NDhiO2ZvbnQtc2l6ZTo5cHgiPmFkZGl0aW9uYWxBdXRoZW50aWNhdGVkRGF0YTwvdGV4dD4KPHJlY3QgeD0iMjkwIiB5PSIxOTQiIHdpZHRoPSIyNTYiIGhlaWdodD0iNTYiIHJ4PSIxMCIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNCIvPgo8dGV4dCB4PSI0MTgiIHk9IjIxNyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6NzAwIDExcHggSW50ZXIsc2Fucy1zZXJpZjtmaWxsOiMzMzQxNTUiPkNhbm9uaWNhbGl6ZWQgbWFwPC90ZXh0Pgo8dGV4dCB4PSI0MTgiIHk9IjIzNCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZTo5LjVweCI+c3RhYmxlIGJ5dGUgb3JkZXIsIHNvIHdyYXAgPSB1bndyYXA8L3RleHQ+CjxyZWN0IHg9IjU1NiIgeT0iMTk0IiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjU2IiByeD0iMTAiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjQiLz4KPHRleHQgeD0iNjg0IiB5PSIyMTciIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OjcwMCAxMXB4IEludGVyLHNhbnMtc2VyaWY7ZmlsbDojMzM0MTU1Ij5VcCB0byA2NCBLaUI8L3RleHQ+Cjx0ZXh0IHg9IjY4NCIgeT0iMjM0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjkuNXB4Ij5hbHNvIGJvdW5kIGludG8gdGhlIGRhdGEta2V5IHdyYXA8L3RleHQ+Cjwvc3ZnPg==" alt="The adapter encodes the encryption context as additionalAuthenticatedData. Decryption requires the same context." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjYyIiB2aWV3Qm94PSIwIDAgODM2IDI2MiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgYWRhcHRlciBlbmNvZGVzIHRoZSBlbmNyeXB0aW9uIGNvbnRleHQgYXMgYWRkaXRpb25hbEF1dGhlbnRpY2F0ZWREYXRhLiBEZWNyeXB0aW9uIHJlcXVpcmVzIHRoZSBzYW1lIGNvbnRleHQuIj48c3R5bGU+dGV4dHtmb250LWZhbWlseTpJbnRlciwtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCwnU2Vnb2UgVUknLFJvYm90bywnSGVsdmV0aWNhIE5ldWUnLEFyaWFsLHNhbnMtc2VyaWY7ZmlsbDojY2JkNWUxfTwvc3R5bGU+CjxkZWZzPjxtYXJrZXIgaWQ9ImdrbXM1ZyIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI4IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNyIgbWFya2VySGVpZ2h0PSI3IiBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSI+PHBhdGggZD0iTTAsMCBMMTAsNSBMMCwxMCB6IiBmaWxsPSIjMjBmN2I0Ii8+PC9tYXJrZXI+PG1hcmtlciBpZD0iZ2ttczVyIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiNkYzI2MjYiLz48L21hcmtlcj48L2RlZnM+Cjx0ZXh0IHg9IjI2IiB5PSIyNCIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6ICNjOWNmZDgiPkFOIEVOQ1JZUFRJT04tQ09OVEVYVCBNQVAgSVMgQk9VTkQgSU5UTyBUSEUgQ0lQSEVSVEVYVCBBUyBhZGRpdGlvbmFsQXV0aGVudGljYXRlZERhdGE8L3RleHQ+CjxyZWN0IHg9IjI0IiB5PSI0NCIgd2lkdGg9IjIyNCIgaGVpZ2h0PSI5OCIgcng9IjExIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjEzNiIgeT0iNjYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTJweCI+RW5jcnlwdCDCtyBjb250ZXh0IG1hcDwvdGV4dD4KPHJlY3QgeD0iNDAiIHk9Ijc4IiB3aWR0aD0iMTkyIiBoZWlnaHQ9IjQ4IiByeD0iOCIgZmlsbD0iIzFhMjYzMSIgc3Ryb2tlPSIjM2Q0ZTY2Ii8+Cjx0ZXh0IHg9IjEzNiIgeT0iOTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4OyBmaWxsOiAjYzljZmQ4O2ZvbnQtc2l6ZToxMHB4Ij50ZW5hbnQgPSBhY21lPC90ZXh0Pgo8dGV4dCB4PSIxMzYiIHk9IjExNSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICNjOWNmZDg7IGZpbGw6ICNjOWNmZDg7Zm9udC1zaXplOjEwcHgiPnB1cnBvc2UgPSBwYXltZW50czwvdGV4dD4KPGxpbmUgeDE9IjI0OCIgeTE9IjkzIiB4Mj0iMjg2IiB5Mj0iOTMiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2drbXM1ZykiLz4KPHRleHQgeD0iMjY3IiB5PSI4NSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZTo4cHgiPmJpbmQ8L3RleHQ+CjxyZWN0IHg9IjI5MCIgeT0iNjgiIHdpZHRoPSIxNjgiIGhlaWdodD0iNTIiIHJ4PSIxMCIgZmlsbD0iIzFhMzEyNiIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNiIvPgo8dGV4dCB4PSIzNzQiIHk9IjkwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzkwZGVjODsgZm9udC1zaXplOjExLjVweCI+Q2lwaGVydGV4dDwvdGV4dD4KPHRleHQgeD0iMzc0IiB5PSIxMDciIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzg7IGZvbnQtc2l6ZTo5LjVweCI+Ym91bmQgdG8gdGhhdCBjb250ZXh0PC90ZXh0Pgo8bGluZSB4MT0iNDU4IiB5MT0iODIiIHgyPSI0OTYiIHkyPSI3MiIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNna21zNWcpIi8+CjxsaW5lIHgxPSI0NTgiIHkxPSIxMDYiIHgyPSI0OTYiIHkyPSIxMjAiIHN0cm9rZT0iI2RjMjYyNiIgc3Ryb2tlLXdpZHRoPSIxLjgiIG1hcmtlci1lbmQ9InVybCgjZ2ttczVyKSIvPgo8cmVjdCB4PSI1MDAiIHk9IjUyIiB3aWR0aD0iMzEyIiBoZWlnaHQ9IjQ0IiByeD0iMTAiIGZpbGw9IiMxYTMxMjYiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNTE4IiB5PSI3MiIgc3R5bGU9ImZvbnQ6IDcwMCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzg7IGZvbnQtc2l6ZToxMS41cHgiPkRlY3J5cHQgwrcgc2FtZSBjb250ZXh0PC90ZXh0Pgo8dGV4dCB4PSI1MTgiIHk9Ijg4IiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4OyBmb250LXNpemU6OS41cHgiPuKckyByZXR1cm5zIHRoZSBwbGFpbnRleHQ8L3RleHQ+CjxyZWN0IHg9IjUwMCIgeT0iMTA0IiB3aWR0aD0iMzEyIiBoZWlnaHQ9IjQ0IiByeD0iMTAiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzY2M2QzZCIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNTE4IiB5PSIxMjQiIHN0eWxlPSJmb250OjcwMCAxMS41cHggSW50ZXIsc2Fucy1zZXJpZjtmaWxsOiAjZGU5MDkwIj5EZWNyeXB0IMK3IGRpZmZlcmVudCBjb250ZXh0PC90ZXh0Pgo8dGV4dCB4PSI1MTgiIHk9IjE0MCIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZTo5LjVweDtmaWxsOiAjZGU5MDkwIj7inJcgZmFpbHM7IHRoZSB3cm9uZyBjb250ZXh0IGNhbm5vdCByZWFkIGl0PC90ZXh0Pgo8dGV4dCB4PSIyNiIgeT0iMTgyIiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDogIzkwZGVjOCI+SE9XIENMT1VEIEtNUyBCSU5EUyBJVDwvdGV4dD4KPHJlY3QgeD0iMjQiIHk9IjE5NCIgd2lkdGg9IjI1NiIgaGVpZ2h0PSI1NiIgcng9IjEwIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS40Ii8+Cjx0ZXh0IHg9IjE1MiIgeT0iMjE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDo3MDAgMTFweCBJbnRlcixzYW5zLXNlcmlmO2ZpbGw6ICNjOWNmZDgiPkJvdW5kIG5hdGl2ZWx5PC90ZXh0Pgo8dGV4dCB4PSIxNTIiIHk9IjIzNCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICNjOWNmZDg7IGZpbGw6ICNjOWNmZDg7Zm9udC1zaXplOjlweCI+YWRkaXRpb25hbEF1dGhlbnRpY2F0ZWREYXRhPC90ZXh0Pgo8cmVjdCB4PSIyOTAiIHk9IjE5NCIgd2lkdGg9IjI1NiIgaGVpZ2h0PSI1NiIgcng9IjEwIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS40Ii8+Cjx0ZXh0IHg9IjQxOCIgeT0iMjE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDo3MDAgMTFweCBJbnRlcixzYW5zLXNlcmlmO2ZpbGw6ICNjOWNmZDgiPkNhbm9uaWNhbGl6ZWQgbWFwPC90ZXh0Pgo8dGV4dCB4PSI0MTgiIHk9IjIzNCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZTo5LjVweCI+c3RhYmxlIGJ5dGUgb3JkZXIsIHNvIHdyYXAgPSB1bndyYXA8L3RleHQ+CjxyZWN0IHg9IjU1NiIgeT0iMTk0IiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjU2IiByeD0iMTAiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjQiLz4KPHRleHQgeD0iNjg0IiB5PSIyMTciIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OjcwMCAxMXB4IEludGVyLHNhbnMtc2VyaWY7ZmlsbDogI2M5Y2ZkOCI+VXAgdG8gNjQgS2lCPC90ZXh0Pgo8dGV4dCB4PSI2ODQiIHk9IjIzNCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZTo5LjVweCI+YWxzbyBib3VuZCBpbnRvIHRoZSBkYXRhLWtleSB3cmFwPC90ZXh0Pgo8L3N2Zz4=" alt="The adapter encodes the encryption context as additionalAuthenticatedData. Decryption requires the same context." />
</div>

<p className="t9-caption">The adapter encodes the encryption context as additionalAuthenticatedData . Decryption requires the same context.</p>

#### Rotation without breaking old ciphertexts

Key rotation creates a new version for subsequent encryption. Retained, enabled older versions remain available to decrypt existing ciphertext.

`rotation_period` schedules new key versions and promotes each to `primary`. `RotateKeyOnDemand` creates and promotes a version immediately; `GetKeyRotationStatus` reports whether a rotation period is configured. Previous enabled versions remain usable until disabled or destroyed.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjYyIiB2aWV3Qm94PSIwIDAgODM2IDI2MiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJSb3RhdGlvbiBjcmVhdGVzIGEgcHJpbWFyeSB2ZXJzaW9uIGZvciBuZXcgZW5jcnlwdGlvbi4gRWFybGllciBlbmFibGVkIHZlcnNpb25zIGNhbiBzdGlsbCBkZWNyeXB0IGV4aXN0aW5nIGRhdGEuIj48c3R5bGU+dGV4dHtmb250LWZhbWlseTpJbnRlciwtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCwnU2Vnb2UgVUknLFJvYm90bywnSGVsdmV0aWNhIE5ldWUnLEFyaWFsLHNhbnMtc2VyaWY7ZmlsbDojMzM0MTU1fTwvc3R5bGU+CjxkZWZzPjxtYXJrZXIgaWQ9ImdrbXM2IiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiM5NGEzYjgiLz48L21hcmtlcj48bWFya2VyIGlkPSJna21zNmciIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzA1OTY2OSIvPjwvbWFya2VyPjwvZGVmcz4KPHRleHQgeD0iMjYiIHk9IjI0IiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDojMzM0MTU1Ij5BIE5FVyBWRVJTSU9OIEJFQ09NRVMgUFJJTUFSWSDCtyBPTERFUiBWRVJTSU9OUyBTVEFZIEVOQUJMRUQsIFNPIE9MRCBDSVBIRVJURVhUUyBTVElMTCBERUNSWVBUPC90ZXh0Pgo8cmVjdCB4PSI2MCIgeT0iNDYiIHdpZHRoPSIxNTAiIGhlaWdodD0iNDAiIHJ4PSI5IiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS40Ii8+Cjx0ZXh0IHg9IjEzNSIgeT0iNzEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNDc1NTY5OyBmaWxsOiM0NzU1NjkiPnZlcnNpb24gdjE8L3RleHQ+CjxsaW5lIHgxPSIyMTAiIHkxPSI2NiIgeDI9IjI1MiIgeTI9IjY2IiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2drbXM2KSIvPgo8cmVjdCB4PSIyNTYiIHk9IjQ2IiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjQwIiByeD0iOSIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNCIvPgo8dGV4dCB4PSIzMzEiIHk9IjcxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzQ3NTU2OTsgZmlsbDojNDc1NTY5Ij52ZXJzaW9uIHYyPC90ZXh0Pgo8bGluZSB4MT0iNDA2IiB5MT0iNjYiIHgyPSI0NDgiIHkyPSI2NiIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNna21zNmcpIi8+CjxyZWN0IHg9IjQ1MiIgeT0iNDYiIHdpZHRoPSIxODIiIGhlaWdodD0iNDAiIHJ4PSI5IiBmaWxsPSIjZWNmZGY1IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS42Ii8+Cjx0ZXh0IHg9IjU0MyIgeT0iNzEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNDc1NTY5OyBmaWxsOiMwNDc4NTc7Zm9udC13ZWlnaHQ6NzAwIj52MyDCtyBuZXcgcHJpbWFyeTwvdGV4dD4KPGxpbmUgeDE9IjU0MyIgeTE9Ijg2IiB4Mj0iNTQzIiB5Mj0iOTgiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIxLjQiIG1hcmtlci1lbmQ9InVybCgjZ2ttczZnKSIvPgo8dGV4dCB4PSI1NDMiIHk9IjExMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZTo5cHgiPm5ldyBlbmNyeXB0cyB1c2UgdGhlIHByaW1hcnkgdmVyc2lvbjwvdGV4dD4KPHJlY3QgeD0iNjAiIHk9IjEzMCIgd2lkdGg9IjIxMCIgaGVpZ2h0PSI0NiIgcng9IjEwIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS40Ii8+Cjx0ZXh0IHg9IjE2NSIgeT0iMTUxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzBmMTcyYTsgZm9udC1zaXplOjExcHgiPk9sZCBjaXBoZXJ0ZXh0PC90ZXh0Pgo8dGV4dCB4PSIxNjUiIHk9IjE2NyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZTo5LjVweCI+d3JhcHBlZCB1bmRlciB2MTwvdGV4dD4KPGxpbmUgeDE9IjI3MCIgeTE9IjE1MyIgeDI9IjMzMCIgeTI9IjE1MyIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjZ2ttczZnKSIvPgo8dGV4dCB4PSIzMDIiIHk9IjE0NSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZTo4cHgiPmRlY3J5cHQg4oaSIHYxPC90ZXh0Pgo8cmVjdCB4PSIzMzQiIHk9IjEzMCIgd2lkdGg9IjMwMCIgaGVpZ2h0PSI0NiIgcng9IjEwIiBmaWxsPSIjZWNmZGY1IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjQ4NCIgeT0iMTUxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NzsgZm9udC1zaXplOjExcHgiPlN0aWxsIHJlYWRhYmxlPC90ZXh0Pgo8dGV4dCB4PSI0ODQiIHk9IjE2NyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NzsgZm9udC1zaXplOjkuNXB4Ij5WZXJzaW9uIDEgcmVtYWlucyBlbmFibGVkIGZvciBkZWNyeXB0aW9uPC90ZXh0Pgo8dGV4dCB4PSIyNiIgeT0iMjAwIiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDojMDQ3ODU3Ij5IT1cgQ0xPVUQgS01TIFJPVEFURVM8L3RleHQ+CjxyZWN0IHg9IjI0IiB5PSIyMTAiIHdpZHRoPSIyNTYiIGhlaWdodD0iNDYiIHJ4PSIxMCIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuMyIvPgo8dGV4dCB4PSIxNTIiIHk9IjIzMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6NzAwIDEwLjVweCB2YXIoLS1tb25vKTtmaWxsOiMzMzQxNTUiPnJvdGF0aW9uX3BlcmlvZDwvdGV4dD4KPHRleHQgeD0iMTUyIiB5PSIyNDYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6OS41cHgiPnNldHMgdGhlIGF1dG9tYXRpYyBjYWRlbmNlPC90ZXh0Pgo8cmVjdCB4PSIyOTAiIHk9IjIxMCIgd2lkdGg9IjI1NiIgaGVpZ2h0PSI0NiIgcng9IjEwIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS4zIi8+Cjx0ZXh0IHg9IjQxOCIgeT0iMjMwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDo3MDAgMTFweCBJbnRlcixzYW5zLXNlcmlmO2ZpbGw6IzMzNDE1NSI+YSBuZXcgdmVyc2lvbiDihpIgcHJpbWFyeTwvdGV4dD4KPHRleHQgeD0iNDE4IiB5PSIyNDYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6OS41cHgiPm9sZGVyIHZlcnNpb25zIHN0YXkgRU5BQkxFRDwvdGV4dD4KPHJlY3QgeD0iNTU2IiB5PSIyMTAiIHdpZHRoPSIyNTYiIGhlaWdodD0iNDYiIHJ4PSIxMCIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuMyIvPgo8dGV4dCB4PSI2ODQiIHk9IjIzMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6NzAwIDExcHggSW50ZXIsc2Fucy1zZXJpZjtmaWxsOiMzMzQxNTUiPm9uLWRlbWFuZCByb3RhdGlvbjwvdGV4dD4KPHRleHQgeD0iNjg0IiB5PSIyNDYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6OS41cHgiPlJvdGF0ZUtleU9uRGVtYW5kIGFkZHMgYSB2ZXJzaW9uPC90ZXh0Pgo8L3N2Zz4=" alt="Rotation creates a primary version for new encryption. Earlier enabled versions can still decrypt existing data." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjYyIiB2aWV3Qm94PSIwIDAgODM2IDI2MiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJSb3RhdGlvbiBjcmVhdGVzIGEgcHJpbWFyeSB2ZXJzaW9uIGZvciBuZXcgZW5jcnlwdGlvbi4gRWFybGllciBlbmFibGVkIHZlcnNpb25zIGNhbiBzdGlsbCBkZWNyeXB0IGV4aXN0aW5nIGRhdGEuIj48c3R5bGU+dGV4dHtmb250LWZhbWlseTpJbnRlciwtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCwnU2Vnb2UgVUknLFJvYm90bywnSGVsdmV0aWNhIE5ldWUnLEFyaWFsLHNhbnMtc2VyaWY7ZmlsbDojY2JkNWUxfTwvc3R5bGU+CjxkZWZzPjxtYXJrZXIgaWQ9ImdrbXM2IiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiM5NGEzYjgiLz48L21hcmtlcj48bWFya2VyIGlkPSJna21zNmciIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzIwZjdiNCIvPjwvbWFya2VyPjwvZGVmcz4KPHRleHQgeD0iMjYiIHk9IjI0IiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDogI2M5Y2ZkOCI+QSBORVcgVkVSU0lPTiBCRUNPTUVTIFBSSU1BUlkgwrcgT0xERVIgVkVSU0lPTlMgU1RBWSBFTkFCTEVELCBTTyBPTEQgQ0lQSEVSVEVYVFMgU1RJTEwgREVDUllQVDwvdGV4dD4KPHJlY3QgeD0iNjAiIHk9IjQ2IiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjQwIiByeD0iOSIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNCIvPgo8dGV4dCB4PSIxMzUiIHk9IjcxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkODsgZmlsbDogI2M5Y2ZkOCI+dmVyc2lvbiB2MTwvdGV4dD4KPGxpbmUgeDE9IjIxMCIgeTE9IjY2IiB4Mj0iMjUyIiB5Mj0iNjYiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIxLjgiIG1hcmtlci1lbmQ9InVybCgjZ2ttczYpIi8+CjxyZWN0IHg9IjI1NiIgeT0iNDYiIHdpZHRoPSIxNTAiIGhlaWdodD0iNDAiIHJ4PSI5IiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS40Ii8+Cjx0ZXh0IHg9IjMzMSIgeT0iNzEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4OyBmaWxsOiAjYzljZmQ4Ij52ZXJzaW9uIHYyPC90ZXh0Pgo8bGluZSB4MT0iNDA2IiB5MT0iNjYiIHgyPSI0NDgiIHkyPSI2NiIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNna21zNmcpIi8+CjxyZWN0IHg9IjQ1MiIgeT0iNDYiIHdpZHRoPSIxODIiIGhlaWdodD0iNDAiIHJ4PSI5IiBmaWxsPSIjMWEzMTI2IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS42Ii8+Cjx0ZXh0IHg9IjU0MyIgeT0iNzEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4OyBmaWxsOiAjOTBkZWM4O2ZvbnQtd2VpZ2h0OjcwMCI+djMgwrcgbmV3IHByaW1hcnk8L3RleHQ+CjxsaW5lIHgxPSI1NDMiIHkxPSI4NiIgeDI9IjU0MyIgeTI9Ijk4IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS40IiBtYXJrZXItZW5kPSJ1cmwoI2drbXM2ZykiLz4KPHRleHQgeD0iNTQzIiB5PSIxMTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6OXB4Ij5uZXcgZW5jcnlwdHMgdXNlIHRoZSBwcmltYXJ5IHZlcnNpb248L3RleHQ+CjxyZWN0IHg9IjYwIiB5PSIxMzAiIHdpZHRoPSIyMTAiIGhlaWdodD0iNDYiIHJ4PSIxMCIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNCIvPgo8dGV4dCB4PSIxNjUiIHk9IjE1MSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNlZDg7IGZvbnQtc2l6ZToxMXB4Ij5PbGQgY2lwaGVydGV4dDwvdGV4dD4KPHRleHQgeD0iMTY1IiB5PSIxNjciIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6OS41cHgiPndyYXBwZWQgdW5kZXIgdjE8L3RleHQ+CjxsaW5lIHgxPSIyNzAiIHkxPSIxNTMiIHgyPSIzMzAiIHkyPSIxNTMiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2drbXM2ZykiLz4KPHRleHQgeD0iMzAyIiB5PSIxNDUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6OHB4Ij5kZWNyeXB0IOKGkiB2MTwvdGV4dD4KPHJlY3QgeD0iMzM0IiB5PSIxMzAiIHdpZHRoPSIzMDAiIGhlaWdodD0iNDYiIHJ4PSIxMCIgZmlsbD0iIzFhMzEyNiIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI0ODQiIHk9IjE1MSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDcwMCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzg7IGZvbnQtc2l6ZToxMXB4Ij5TdGlsbCByZWFkYWJsZTwvdGV4dD4KPHRleHQgeD0iNDg0IiB5PSIxNjciIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzg7IGZvbnQtc2l6ZTo5LjVweCI+VmVyc2lvbiAxIHJlbWFpbnMgZW5hYmxlZCBmb3IgZGVjcnlwdGlvbjwvdGV4dD4KPHRleHQgeD0iMjYiIHk9IjIwMCIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6ICM5MGRlYzgiPkhPVyBDTE9VRCBLTVMgUk9UQVRFUzwvdGV4dD4KPHJlY3QgeD0iMjQiIHk9IjIxMCIgd2lkdGg9IjI1NiIgaGVpZ2h0PSI0NiIgcng9IjEwIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS4zIi8+Cjx0ZXh0IHg9IjE1MiIgeT0iMjMwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDo3MDAgMTAuNXB4IHZhcigtLW1vbm8pO2ZpbGw6ICNjOWNmZDgiPnJvdGF0aW9uX3BlcmlvZDwvdGV4dD4KPHRleHQgeD0iMTUyIiB5PSIyNDYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6OS41cHgiPnNldHMgdGhlIGF1dG9tYXRpYyBjYWRlbmNlPC90ZXh0Pgo8cmVjdCB4PSIyOTAiIHk9IjIxMCIgd2lkdGg9IjI1NiIgaGVpZ2h0PSI0NiIgcng9IjEwIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS4zIi8+Cjx0ZXh0IHg9IjQxOCIgeT0iMjMwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDo3MDAgMTFweCBJbnRlcixzYW5zLXNlcmlmO2ZpbGw6ICNjOWNmZDgiPmEgbmV3IHZlcnNpb24g4oaSIHByaW1hcnk8L3RleHQ+Cjx0ZXh0IHg9IjQxOCIgeT0iMjQ2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjkuNXB4Ij5vbGRlciB2ZXJzaW9ucyBzdGF5IEVOQUJMRUQ8L3RleHQ+CjxyZWN0IHg9IjU1NiIgeT0iMjEwIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjQ2IiByeD0iMTAiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjMiLz4KPHRleHQgeD0iNjg0IiB5PSIyMzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OjcwMCAxMXB4IEludGVyLHNhbnMtc2VyaWY7ZmlsbDogI2M5Y2ZkOCI+b24tZGVtYW5kIHJvdGF0aW9uPC90ZXh0Pgo8dGV4dCB4PSI2ODQiIHk9IjI0NiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZTo5LjVweCI+Um90YXRlS2V5T25EZW1hbmQgYWRkcyBhIHZlcnNpb248L3RleHQ+Cjwvc3ZnPg==" alt="Rotation creates a primary version for new encryption. Earlier enabled versions can still decrypt existing data." />
</div>

<p className="t9-caption">Rotation creates a primary version for new encryption. Earlier enabled versions can still decrypt existing data.</p>

#### Limitations

**Access policies and grants.** The mapping uses Google IAM for target-key access and does not reproduce AWS key-policy or grant APIs. Constrained grants are rejected; encryption-context authentication alone does not replace a grant that limits permitted callers or contexts.

**Ciphertext format.** The adapter wraps Cloud KMS ciphertext with the key identity needed for a later Decrypt request. Treat CiphertextBlob as opaque. Existing AWS ciphertext is not directly decryptable with a new Google key.

**Import and regions.** Import material through the configured Cloud KMS import job. AWS runtime import-handshake APIs are outside this mapping. A key-ring location does not provide independently addressable AWS multi-region replica keys.

**Composed operations.** GenerateDataKey generates a random key and wraps it with Cloud KMS. ReEncrypt decrypts and encrypts under the destination key; plaintext exists temporarily in the adapter but is not returned to the caller. DeriveSharedSecret is outside this mapping.

#### Other considerations

**Configure access and protection.** Grant the deployment identity the required Cloud KMS operations at the appropriate key or key-ring scope. Workload identity supplies credentials. Google operates the key service; choose software or HSM protection for the required keys.

**Keep data recoverable.** Retain old key versions while ciphertext requires them. Preserve adapter identity and alias records alongside the target-key inventory. Test disable, cancellation, rotation, and recovery before changing production key state.

**Migrate ciphertext.** Use the old AWS key to decrypt ciphertext or unwrap data keys, then encrypt or wrap under the target key. Keep AWS available until migration and target decryption are verified. Provisioning a key does not transform stored ciphertext.

## On Azure

| Operation                           | Area                  | Support      | Depth        | Notes                                                                                                                                                                                                                   |
| ----------------------------------- | --------------------- | ------------ | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| CreateAlias                         | Aliases               | Supported    | Most usage   | the adapter maintains the alias-to-key mapping and resolves alias references, since Key Vault addresses a key by name with no separate alias object                                                                     |
| DeleteAlias                         | Aliases               | Supported    | Full surface | removes an alias from the mapping                                                                                                                                                                                       |
| ListAliases                         | Aliases               | Supported    | Most usage   | lists aliases retained in adapter state                                                                                                                                                                                 |
| UpdateAlias                         | Aliases               | Supported    | Full surface | changes the key referenced by an alias in adapter state                                                                                                                                                                 |
| DeriveSharedSecret                  | Asymmetric            | Out of scope | Full surface | elliptic-curve shared-secret derivation has no Key Vault equivalent op and is rejected                                                                                                                                  |
| GetPublicKey                        | Asymmetric            | Supported    | Most usage   | returns the public half of the RSA or EC key                                                                                                                                                                            |
| Sign                                | Asymmetric            | Supported    | Most usage   | signs natively with an RSA or EC key via Key Vault sign                                                                                                                                                                 |
| Verify                              | Asymmetric            | Supported    | Most usage   | verifies natively via Key Vault verify                                                                                                                                                                                  |
| GenerateDataKey                     | Envelope / data keys  | Partial      | Common       | the envelope is served as wrap-key: a fresh random data key is generated and wrapped by an RSA key (RSA-OAEP); the returned pair round-trips, but the wrapping key is RSA, not a symmetric AES key                      |
| GenerateDataKeyPair                 | Envelope / data keys  | Partial      | Most usage   | an asymmetric data-key pair is generated and its private half wrapped by an RSA key                                                                                                                                     |
| GenerateDataKeyPairWithoutPlaintext | Envelope / data keys  | Partial      | Full surface | the same, returning only the wrapped private half                                                                                                                                                                       |
| GenerateDataKeyWithoutPlaintext     | Envelope / data keys  | Partial      | Most usage   | the same wrap-key path, returning only the wrapped data key                                                                                                                                                             |
| CreateGrant                         | Grants                | Out of scope | Most usage   | authorization is governed by Azure role assignments rather than KMS grants, so a grant is rejected                                                                                                                      |
| ListGrants                          | Grants                | Out of scope | Most usage   | there is no grant to list; access is an Azure role assignment                                                                                                                                                           |
| ListRetirableGrants                 | Grants                | Out of scope | Full surface | there is no grant to list                                                                                                                                                                                               |
| RetireGrant                         | Grants                | Out of scope | Full surface | there is no grant to retire                                                                                                                                                                                             |
| RevokeGrant                         | Grants                | Out of scope | Full surface | there is no grant to revoke                                                                                                                                                                                             |
| GenerateMac                         | HMAC                  | Out of scope | Most usage   | Key Vault Standard has no HMAC keys; Managed HSM and Premium oct-HSM preview use separate configurations                                                                                                                |
| VerifyMac                           | HMAC                  | Out of scope | Most usage   | there is no HMAC key on a standard vault to verify against                                                                                                                                                              |
| DeleteImportedKeyMaterial           | Imported key material | Out of scope | Full surface | there is no runtime imported-material lifecycle to drive                                                                                                                                                                |
| GetParametersForImport              | Imported key material | Out of scope | Full surface | imported key material is loaded through Key Vault's own key-import flow at provisioning, not through the native import handshake, so the runtime import ops are rejected                                                |
| ImportKeyMaterial                   | Imported key material | Out of scope | Full surface | the import handshake is not served at runtime; material is imported at provisioning                                                                                                                                     |
| CancelKeyDeletion                   | Key management        | Supported    | Full surface | cancels pending deletion in adapter state; native recovery also applies if target deletion has begun                                                                                                                    |
| CreateKey                           | Key management        | Partial      | Common       | an RSA or EC key is created natively; symmetric AES keys require a separate Azure configuration and are outside this Standard mapping                                                                                   |
| DescribeKey                         | Key management        | Supported    | Common       | returns the key metadata: identifier, type, size or curve, operations, and enabled/validity attributes                                                                                                                  |
| DisableKey                          | Key management        | Supported    | Most usage   | clears the key's enabled attribute                                                                                                                                                                                      |
| EnableKey                           | Key management        | Supported    | Most usage   | sets the key's enabled attribute                                                                                                                                                                                        |
| ListKeys                            | Key management        | Supported    | Common       | lists the keys in the vault                                                                                                                                                                                             |
| ScheduleKeyDeletion                 | Key management        | Partial      | Most usage   | records the adapter recovery window; vault retention and purge protection govern final target removal                                                                                                                   |
| UpdateKeyDescription                | Key management        | Partial      | Full surface | a Key Vault key has no description field, so the label is stored as a tag                                                                                                                                               |
| GetKeyPolicy                        | Key policy            | Out of scope | Most usage   | there is no per-key policy document to read                                                                                                                                                                             |
| ListKeyPolicies                     | Key policy            | Out of scope | Full surface | there is no per-key policy document to list                                                                                                                                                                             |
| PutKeyPolicy                        | Key policy            | Out of scope | Most usage   | access is governed by Azure role assignments rather than a per-key policy document, so a per-key policy is rejected                                                                                                     |
| ReplicateKey                        | Multi-region          | Out of scope | Full surface | a key lives in a single vault and region; cross-region key replication is rejected                                                                                                                                      |
| UpdatePrimaryRegion                 | Multi-region          | Out of scope | Full surface | there is no multi-region key set whose primary can be moved                                                                                                                                                             |
| GenerateRandom                      | Random                | Supported    | Full surface | cryptographic random bytes are generated by the adapter; no key is touched                                                                                                                                              |
| DisableKeyRotation                  | Rotation              | Supported    | Full surface | clears the rotation policy                                                                                                                                                                                              |
| EnableKeyRotation                   | Rotation              | Supported    | Most usage   | turns on rotation via the key's rotation policy                                                                                                                                                                         |
| GetKeyRotationStatus                | Rotation              | Supported    | Most usage   | reads the key's rotation policy                                                                                                                                                                                         |
| RotateKeyOnDemand                   | Rotation              | Supported    | Full surface | rotates the key on demand, creating a new version                                                                                                                                                                       |
| Decrypt                             | Symmetric crypto      | Partial      | Common       | served as RSA-OAEP decrypt on the RSA key                                                                                                                                                                               |
| Encrypt                             | Symmetric crypto      | Partial      | Common       | a standard Key Vault holds RSA/EC keys only, so encrypt is served as RSA-OAEP on an RSA key rather than symmetric AES; the payload is bounded by the RSA modulus, and symmetric AES uses a separate Azure configuration |
| ReEncrypt                           | Symmetric crypto      | Partial      | Most usage   | served as a decrypt-then-encrypt across the two RSA keys under the adapter; the plaintext is never returned to the caller                                                                                               |
| ListResourceTags                    | Tags                  | Supported    | Full surface | lists the tags on the key                                                                                                                                                                                               |
| TagResource                         | Tags                  | Supported    | Full surface | attaches key/value tags to the key                                                                                                                                                                                      |
| UntagResource                       | Tags                  | Supported    | Full surface | removes tags                                                                                                                                                                                                            |

#### How it works

Tensor9 runs a KMS adapter in the customer environment and sets `AWS_ENDPOINT_URL_KMS` to its loopback endpoint. The adapter accepts the application's AWS SDK calls, including `Encrypt`, `Decrypt`, and `GenerateDataKey`, and translates them to Azure Key Vault. The service retains the wrapping key; data-key operations can return a plaintext data key for the application to use.

A standard Key Vault supports RSA and EC keys. It handles asymmetric signing and RSA encryption, but has no symmetric AES or HMAC key type. The adapter implements data-key generation with RSA wrapping. Requests with an encryption context are rejected because this RSA path cannot bind AAD. Azure Managed HSM is a separate symmetric-key service. Key Vault Premium also offers oct-HSM AES/HMAC in public preview. Neither is part of this Standard RSA/EC mapping.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTk0IiB2aWV3Qm94PSIwIDAgODM2IDE5NCIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgYWRhcHRlciB0cmFuc2xhdGVzIEFXUyBLTVMgcmVxdWVzdHMgdG8gYW4gQXp1cmUgS2V5IFZhdWx0IGtleS4iPjxzdHlsZT50ZXh0e2ZvbnQtZmFtaWx5OkludGVyLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCdTZWdvZSBVSScsUm9ib3RvLCdIZWx2ZXRpY2EgTmV1ZScsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiMzMzQxNTV9PC9zdHlsZT4KPGRlZnM+PG1hcmtlciBpZD0ia3YxIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiM5NGEzYjgiLz48L21hcmtlcj48L2RlZnM+CjxyZWN0IHg9IjE2IiB5PSI0NCIgd2lkdGg9IjM4NCIgaGVpZ2h0PSIxMzIiIHJ4PSIxNCIgZmlsbD0iI2Y4ZmFmYyIgc3Ryb2tlPSIjY2JkNWUxIiBzdHJva2Utd2lkdGg9IjEuNCIgc3Ryb2tlLWRhc2hhcnJheT0iNSA1Ii8+Cjx0ZXh0IHg9IjMwIiB5PSI2MiIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6Izk0YTNiOCI+T04gQVdTIFRPREFZPC90ZXh0Pgo8cmVjdCB4PSIzMCIgeT0iODIiIHdpZHRoPSIxMTAiIGhlaWdodD0iNjYiIHJ4PSIxMSIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI4NSIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzBmMTcyYTsgZm9udC1zaXplOjEyLjVweCI+WW91ciBhcHA8L3RleHQ+Cjx0ZXh0IHg9Ijg1IiB5PSIxMjgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6MTBweCI+QVdTIEtNUyBTREs8L3RleHQ+CjxsaW5lIHgxPSIxNDAiIHkxPSIxMTUiIHgyPSIyMTYiIHkyPSIxMTUiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2t2MSkiLz4KPHRleHQgeD0iMTc4IiB5PSIxMDYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6OC41cHgiPkVuY3J5cHQ8L3RleHQ+Cjx0ZXh0IHg9IjE3OCIgeT0iMTMwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjguNXB4Ij5EZWNyeXB0PC90ZXh0Pgo8cmVjdCB4PSIyMjAiIHk9IjgwIiB3aWR0aD0iMTY0IiBoZWlnaHQ9IjcwIiByeD0iMTEiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMzAyIiB5PSIxMDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTIuNXB4Ij5BV1MgS01TPC90ZXh0Pgo8dGV4dCB4PSIzMDIiIHk9IjEyNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZToxMHB4Ij53cmFwcGluZyBrZXkgc3RheXMgaW4gc2VydmljZTwvdGV4dD4KPGxpbmUgeDE9IjQxOCIgeTE9IjQwIiB4Mj0iNDE4IiB5Mj0iMTY2IiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS40Ii8+CjxyZWN0IHg9IjQzNiIgeT0iNDQiIHdpZHRoPSIzODQiIGhlaWdodD0iMTMyIiByeD0iMTQiIGZpbGw9IiNmOGZhZmMiIHN0cm9rZT0iI2NiZDVlMSIgc3Ryb2tlLXdpZHRoPSIxLjQiIHN0cm9rZS1kYXNoYXJyYXk9IjUgNSIvPgo8dGV4dCB4PSI0NTAiIHk9IjYyIiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDojMDQ3ODU3Ij5PTiBBWlVSRTwvdGV4dD4KPHJlY3QgeD0iNDQ4IiB5PSI4MiIgd2lkdGg9Ijg2IiBoZWlnaHQ9IjY2IiByeD0iMTEiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNDkxIiB5PSIxMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTJweCI+WW91ciBhcHA8L3RleHQ+Cjx0ZXh0IHg9IjQ5MSIgeT0iMTI4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjAwIDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNTk2NjkiPnNhbWUgU0RLPC90ZXh0Pgo8bGluZSB4MT0iNTM0IiB5MT0iMTE1IiB4Mj0iNTY0IiB5Mj0iMTE1IiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNrdjEpIi8+CjxyZWN0IHg9IjU2OCIgeT0iNzYiIHdpZHRoPSIxMTgiIGhlaWdodD0iODIiIHJ4PSIxMSIgZmlsbD0iI2VjZmRmNSIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNyIvPgo8dGV4dCB4PSI2MjciIHk9IjEwMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDcwMCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNDc4NTc7IGZvbnQtc2l6ZToxMnB4Ij5UZW5zb3I5PC90ZXh0Pgo8dGV4dCB4PSI2MjciIHk9IjExNyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NyI+S01TIEFQSTwvdGV4dD4KPHRleHQgeD0iNjI3IiB5PSIxMzEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNDc4NTciPmFkYXB0ZXI8L3RleHQ+CjxsaW5lIHgxPSI2ODYiIHkxPSIxMTUiIHgyPSI3MTIiIHkyPSIxMTUiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2t2MSkiLz4KPHJlY3QgeD0iNzE0IiB5PSI4MiIgd2lkdGg9IjEwMiIgaGVpZ2h0PSI2NiIgcng9IjExIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9Ijc2NSIgeT0iMTA2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzBmMTcyYTsgZm9udC1zaXplOjEwLjVweCI+QXp1cmUgS2V5IFZhdWx0PC90ZXh0Pgo8dGV4dCB4PSI3NjUiIHk9IjEyNCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZToxMHB4Ij5hbiBSU0EgLyBFQyBrZXk8L3RleHQ+Cjwvc3ZnPg==" alt="The adapter translates AWS KMS requests to an Azure Key Vault key." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTk0IiB2aWV3Qm94PSIwIDAgODM2IDE5NCIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgYWRhcHRlciB0cmFuc2xhdGVzIEFXUyBLTVMgcmVxdWVzdHMgdG8gYW4gQXp1cmUgS2V5IFZhdWx0IGtleS4iPjxzdHlsZT50ZXh0e2ZvbnQtZmFtaWx5OkludGVyLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCdTZWdvZSBVSScsUm9ib3RvLCdIZWx2ZXRpY2EgTmV1ZScsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiNjYmQ1ZTF9PC9zdHlsZT4KPGRlZnM+PG1hcmtlciBpZD0ia3YxIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiM5NGEzYjgiLz48L21hcmtlcj48L2RlZnM+CjxyZWN0IHg9IjE2IiB5PSI0NCIgd2lkdGg9IjM4NCIgaGVpZ2h0PSIxMzIiIHJ4PSIxNCIgZmlsbD0iIzFhMjYzMSIgc3Ryb2tlPSIjM2Q0ZjY2IiBzdHJva2Utd2lkdGg9IjEuNCIgc3Ryb2tlLWRhc2hhcnJheT0iNSA1Ii8+Cjx0ZXh0IHg9IjMwIiB5PSI2MiIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6ICM5NGEzYjgiPk9OIEFXUyBUT0RBWTwvdGV4dD4KPHJlY3QgeD0iMzAiIHk9IjgyIiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjY2IiByeD0iMTEiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iODUiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNlZDg7IGZvbnQtc2l6ZToxMi41cHgiPllvdXIgYXBwPC90ZXh0Pgo8dGV4dCB4PSI4NSIgeT0iMTI4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjEwcHgiPkFXUyBLTVMgU0RLPC90ZXh0Pgo8bGluZSB4MT0iMTQwIiB5MT0iMTE1IiB4Mj0iMjE2IiB5Mj0iMTE1IiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNrdjEpIi8+Cjx0ZXh0IHg9IjE3OCIgeT0iMTA2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjguNXB4Ij5FbmNyeXB0PC90ZXh0Pgo8dGV4dCB4PSIxNzgiIHk9IjEzMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZTo4LjVweCI+RGVjcnlwdDwvdGV4dD4KPHJlY3QgeD0iMjIwIiB5PSI4MCIgd2lkdGg9IjE2NCIgaGVpZ2h0PSI3MCIgcng9IjExIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjMwMiIgeT0iMTA4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2VkODsgZm9udC1zaXplOjEyLjVweCI+QVdTIEtNUzwvdGV4dD4KPHRleHQgeD0iMzAyIiB5PSIxMjYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6MTBweCI+d3JhcHBpbmcga2V5IHN0YXlzIGluIHNlcnZpY2U8L3RleHQ+CjxsaW5lIHgxPSI0MTgiIHkxPSI0MCIgeDI9IjQxOCIgeTI9IjE2NiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNCIvPgo8cmVjdCB4PSI0MzYiIHk9IjQ0IiB3aWR0aD0iMzg0IiBoZWlnaHQ9IjEzMiIgcng9IjE0IiBmaWxsPSIjMWEyNjMxIiBzdHJva2U9IiMzZDRmNjYiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtZGFzaGFycmF5PSI1IDUiLz4KPHRleHQgeD0iNDUwIiB5PSI2MiIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6ICM5MGRlYzgiPk9OIEFaVVJFPC90ZXh0Pgo8cmVjdCB4PSI0NDgiIHk9IjgyIiB3aWR0aD0iODYiIGhlaWdodD0iNjYiIHJ4PSIxMSIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI0OTEiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNlZDg7IGZvbnQtc2l6ZToxMnB4Ij5Zb3VyIGFwcDwvdGV4dD4KPHRleHQgeD0iNDkxIiB5PSIxMjgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2MDAgMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzkwZGVjNiI+c2FtZSBTREs8L3RleHQ+CjxsaW5lIHgxPSI1MzQiIHkxPSIxMTUiIHgyPSI1NjQiIHkyPSIxMTUiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2t2MSkiLz4KPHJlY3QgeD0iNTY4IiB5PSI3NiIgd2lkdGg9IjExOCIgaGVpZ2h0PSI4MiIgcng9IjExIiBmaWxsPSIjMWEzMTI2IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS43Ii8+Cjx0ZXh0IHg9IjYyNyIgeT0iMTAyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzkwZGVjODsgZm9udC1zaXplOjEycHgiPlRlbnNvcjk8L3RleHQ+Cjx0ZXh0IHg9IjYyNyIgeT0iMTE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4Ij5LTVMgQVBJPC90ZXh0Pgo8dGV4dCB4PSI2MjciIHk9IjEzMSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzkwZGVjOCI+YWRhcHRlcjwvdGV4dD4KPGxpbmUgeDE9IjY4NiIgeTE9IjExNSIgeDI9IjcxMiIgeTI9IjExNSIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgja3YxKSIvPgo8cmVjdCB4PSI3MTQiIHk9IjgyIiB3aWR0aD0iMTAyIiBoZWlnaHQ9IjY2IiByeD0iMTEiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNzY1IiB5PSIxMDYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTAuNXB4Ij5BenVyZSBLZXkgVmF1bHQ8L3RleHQ+Cjx0ZXh0IHg9Ijc2NSIgeT0iMTI0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjEwcHgiPmFuIFJTQSAvIEVDIGtleTwvdGV4dD4KPC9zdmc+" alt="The adapter translates AWS KMS requests to an Azure Key Vault key." />
</div>

<p className="t9-caption">The adapter translates AWS KMS requests to an Azure Key Vault key.</p>

#### Key identity and lifecycle

The adapter keeps durable records for AWS key identities, aliases, tags, and lifecycle state. Key creation provisions the corresponding target key. Later requests resolve the AWS identity to that key; the target service performs cryptographic operations and retains its wrapping key material.

An alias is a mutable reference in adapter state. Updating it changes which key subsequent alias-based requests select; it does not move key material or rewrite existing ciphertext. Back up adapter state and retain the target keys and versions needed to decrypt stored data.

Scheduled deletion records a recovery window of 7-30 days, with 30 days as the default. Cancelling the request returns the key to a disabled state; enable it explicitly before using it again. Final target destruction follows the target's retention rules, which may delay physical removal beyond the adapter's recovery window.

#### RSA and EC keys

The adapter uses an `azurerm_key_vault_key`. `CreateKey` selects an RSA key size or EC curve through `key_type`, `key_size`, and `curve`. The `key_opts` list restricts the key to operations such as `encrypt`, `decrypt`, `wrapKey`, `unwrapKey`, `sign`, and `verify`. Requests for symmetric AES keys are rejected.

`DescribeKey` uses Get Key to report identifier, type, size or curve, permitted operations, and validity. `EnableKey` and `DisableKey` update the enabled attribute. The adapter stores the AWS key description as a tag and maintains `alias/…` mappings. Key Vault retains immutable key versions.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjU2IiB2aWV3Qm94PSIwIDAgODM2IDI1NiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJrZXlfb3B0cyByZXN0cmljdHMgb3BlcmF0aW9ucyBvbiB0aGUgUlNBIG9yIEVDIGtleS4gU3RhbmRhcmQgdmF1bHRzIGRvIG5vdCBzdXBwb3J0IHN5bW1ldHJpYyBBRVMga2V5cy4iPjxzdHlsZT50ZXh0e2ZvbnQtZmFtaWx5OkludGVyLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCdTZWdvZSBVSScsUm9ib3RvLCdIZWx2ZXRpY2EgTmV1ZScsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiMzMzQxNTV9PC9zdHlsZT4KPGRlZnM+PG1hcmtlciBpZD0ia3YyIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiM5NGEzYjgiLz48L21hcmtlcj48bWFya2VyIGlkPSJrdjJiIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiMwMDc4RDQiLz48L21hcmtlcj48L2RlZnM+Cjx0ZXh0IHg9IjI2IiB5PSIyNiIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6IzMzNDE1NSI+VEhFIENSWVBUTyBJUyBTRVJWRUQgT04gT05FIFJTQSAvIEVDIEtFWSDCtyBrZXlfb3B0cyBERUNMQVJFUyBUSEUgT1BTIElUIFBFUk1JVFM8L3RleHQ+CjxyZWN0IHg9IjI2IiB5PSIxMDQiIHdpZHRoPSIxMDQiIGhlaWdodD0iODYiIHJ4PSIxMSIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI3OCIgeT0iMTQyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzBmMTcyYTsgZm9udC1zaXplOjEycHgiPllvdXIgYXBwPC90ZXh0Pgo8dGV4dCB4PSI3OCIgeT0iMTYwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjEwcHgiPkFXUyBLTVMgU0RLPC90ZXh0Pgo8bGluZSB4MT0iMTM0IiB5MT0iMTMwIiB4Mj0iMjY0IiB5Mj0iMTMwIiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNrdjIpIi8+Cjx0ZXh0IHg9IjE5OSIgeT0iMTIyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjhweCI+Q3JlYXRlS2V5IMK3IEVuY3J5cHQgwrcgU2lnbjwvdGV4dD4KPGxpbmUgeDE9IjI2NCIgeTE9IjE2NCIgeDI9IjEzNCIgeTI9IjE2NCIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgja3YyKSIvPgo8dGV4dCB4PSIxOTkiIHk9IjE3OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZTo4cHgiPkRlc2NyaWJlS2V5IOKGkiBnZXRLZXk8L3RleHQ+CjxyZWN0IHg9IjI3MiIgeT0iNDYiIHdpZHRoPSI1MzgiIGhlaWdodD0iMTk4IiByeD0iMTMiIGZpbGw9IiNmN2ZiZmYiIHN0cm9rZT0iIzAwNzhENCIgc3Ryb2tlLXdpZHRoPSIxLjYiLz4KPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjg4LDU2KSI+PHBhdGggZD0iTTQgOCBWNiBhNSA1IDAgMCAxIDEwIDAgVjgiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwNzhENCIgc3Ryb2tlLXdpZHRoPSIxLjciLz48cmVjdCB4PSIyIiB5PSI4IiB3aWR0aD0iMTQiIGhlaWdodD0iMTEiIHJ4PSIyLjIiIGZpbGw9IiMwMDc4RDQiLz48Y2lyY2xlIGN4PSI5IiBjeT0iMTIuNSIgcj0iMS43IiBmaWxsPSIjZmZmIi8+PHJlY3QgeD0iOC4yIiB5PSIxMyIgd2lkdGg9IjEuNiIgaGVpZ2h0PSIzLjYiIHJ4PSIwLjgiIGZpbGw9IiNmZmYiLz48L2c+Cjx0ZXh0IHg9IjMxMiIgeT0iNzAiIHRleHQtYW5jaG9yPSJzdGFydCIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMnB4O2ZpbGw6IzAwNzhENCI+QXp1cmUgS2V5IFZhdWx0PC90ZXh0Pgo8dGV4dCB4PSI3OTQiIHk9IjcwIiB0ZXh0LWFuY2hvcj0iZW5kIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjlweCI+YXp1cmVybV9rZXlfdmF1bHRfa2V5PC90ZXh0Pgo8cmVjdCB4PSIyODgiIHk9IjgyIiB3aWR0aD0iNTA2IiBoZWlnaHQ9IjcyIiByeD0iMTAiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2RiZWFmZSIgc3Ryb2tlLXdpZHRoPSIxLjQiLz4KPHRleHQgeD0iMzA0IiB5PSIxMDYiIHRleHQtYW5jaG9yPSJzdGFydCIgc3R5bGU9ImZvbnQ6IDExcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM0NzU1Njk7IGZpbGw6IzMzNDE1NTtmb250LXNpemU6MTFweCI+a2V5X3R5cGU6IDx0c3BhbiBzdHlsZT0iZmlsbDojMDA3OEQ0Ij5SU0EtMjA0ODwvdHNwYW4+ICAgwrcgICBvciBFQyDCtyA8dHNwYW4gc3R5bGU9ImZpbGw6IzAwNzhENCI+UC0yNTY8L3RzcGFuPjwvdGV4dD4KPHRleHQgeD0iMzA0IiB5PSIxMzQiIHRleHQtYW5jaG9yPSJzdGFydCIgc3R5bGU9ImZvbnQ6IDExcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM0NzU1Njk7IGZpbGw6IzQ3NTU2OTtmb250LXNpemU6MTBweCI+a2V5X29wdHM6IFtlbmNyeXB0LCBkZWNyeXB0LCB3cmFwS2V5LCB1bndyYXBLZXksIHNpZ24sIHZlcmlmeV08L3RleHQ+Cjx0ZXh0IHg9IjMwNCIgeT0iMTc2IiB0ZXh0LWFuY2hvcj0ic3RhcnQiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6OXB4Ij5pbW11dGFibGUgdmVyc2lvbnM7IHJvdGF0aW9uIGFkZHMgYSBuZXcgY3VycmVudCBvbmU8L3RleHQ+CjxyZWN0IHg9IjMwNCIgeT0iMTg2IiB3aWR0aD0iMTA0IiBoZWlnaHQ9IjQyIiByeD0iOSIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuMyIvPgo8dGV4dCB4PSIzNTYiIHk9IjIwNyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM0NzU1Njk7IGZpbGw6IzY0NzQ4YiI+djE8L3RleHQ+Cjx0ZXh0IHg9IjM1NiIgeT0iMjIxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjlweCI+cmV0YWluZWQ8L3RleHQ+CjxsaW5lIHgxPSI0MTAiIHkxPSIyMDciIHgyPSI0MjYiIHkyPSIyMDciIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIxLjYiIG1hcmtlci1lbmQ9InVybCgja3YyKSIvPgo8cmVjdCB4PSI0MjgiIHk9IjE4NiIgd2lkdGg9IjEwNCIgaGVpZ2h0PSI0MiIgcng9IjkiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjMiLz4KPHRleHQgeD0iNDgwIiB5PSIyMDciIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNDc1NTY5OyBmaWxsOiM2NDc0OGIiPnYyPC90ZXh0Pgo8dGV4dCB4PSI0ODAiIHk9IjIyMSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZTo5cHgiPnJldGFpbmVkPC90ZXh0Pgo8bGluZSB4MT0iNTM0IiB5MT0iMjA3IiB4Mj0iNTUwIiB5Mj0iMjA3IiBzdHJva2U9IiMwMDc4RDQiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2t2MmIpIi8+CjxyZWN0IHg9IjU1MiIgeT0iMTgyIiB3aWR0aD0iMTIwIiBoZWlnaHQ9IjUwIiByeD0iOSIgZmlsbD0iI2VmZjZmZiIgc3Ryb2tlPSIjMDA3OEQ0IiBzdHJva2Utd2lkdGg9IjEuNyIvPgo8dGV4dCB4PSI2MTIiIHk9IjIwMyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM0NzU1Njk7IGZpbGw6IzBjNWFhNjtmb250LXdlaWdodDo3MDAiPnYzIMK3IGN1cnJlbnQ8L3RleHQ+Cjx0ZXh0IHg9IjYxMiIgeT0iMjE5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDo3MDAgOXB4IEludGVyLHNhbnMtc2VyaWY7ZmlsbDojMDA3OEQ0Ij5uZXcgb3BzIHVzZSBpdDwvdGV4dD4KPHRleHQgeD0iNjkwIiB5PSIyMDAiIHRleHQtYW5jaG9yPSJzdGFydCIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZTo5cHg7ZmlsbDojNjQ3NDhiIj5hIHN5bW1ldHJpYyBBRVM8L3RleHQ+Cjx0ZXh0IHg9IjY5MCIgeT0iMjEzIiB0ZXh0LWFuY2hvcj0ic3RhcnQiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6OXB4O2ZpbGw6IzY0NzQ4YiI+a2V5IHNwZWMgaXM8L3RleHQ+Cjx0ZXh0IHg9IjY5MCIgeT0iMjI2IiB0ZXh0LWFuY2hvcj0ic3RhcnQiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6OXB4O2ZpbGw6I2I0NTMwOSI+cmVmdXNlZCBoZXJlPC90ZXh0Pgo8L3N2Zz4=" alt="key_opts restricts operations on the RSA or EC key. Standard vaults do not support symmetric AES keys." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjU2IiB2aWV3Qm94PSIwIDAgODM2IDI1NiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJrZXlfb3B0cyByZXN0cmljdHMgb3BlcmF0aW9ucyBvbiB0aGUgUlNBIG9yIEVDIGtleS4gU3RhbmRhcmQgdmF1bHRzIGRvIG5vdCBzdXBwb3J0IHN5bW1ldHJpYyBBRVMga2V5cy4iPjxzdHlsZT50ZXh0e2ZvbnQtZmFtaWx5OkludGVyLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCdTZWdvZSBVSScsUm9ib3RvLCdIZWx2ZXRpY2EgTmV1ZScsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiNjYmQ1ZTF9PC9zdHlsZT4KPGRlZnM+PG1hcmtlciBpZD0ia3YyIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiM5NGEzYjgiLz48L21hcmtlcj48bWFya2VyIGlkPSJrdjJiIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiMwMDc4RDQiLz48L21hcmtlcj48L2RlZnM+Cjx0ZXh0IHg9IjI2IiB5PSIyNiIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6ICNjOWNmZDgiPlRIRSBDUllQVE8gSVMgU0VSVkVEIE9OIE9ORSBSU0EgLyBFQyBLRVkgwrcga2V5X29wdHMgREVDTEFSRVMgVEhFIE9QUyBJVCBQRVJNSVRTPC90ZXh0Pgo8cmVjdCB4PSIyNiIgeT0iMTA0IiB3aWR0aD0iMTA0IiBoZWlnaHQ9Ijg2IiByeD0iMTEiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNzgiIHk9IjE0MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNlZDg7IGZvbnQtc2l6ZToxMnB4Ij5Zb3VyIGFwcDwvdGV4dD4KPHRleHQgeD0iNzgiIHk9IjE2MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZToxMHB4Ij5BV1MgS01TIFNESzwvdGV4dD4KPGxpbmUgeDE9IjEzNCIgeTE9IjEzMCIgeDI9IjI2NCIgeTI9IjEzMCIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgja3YyKSIvPgo8dGV4dCB4PSIxOTkiIHk9IjEyMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZTo4cHgiPkNyZWF0ZUtleSDCtyBFbmNyeXB0IMK3IFNpZ248L3RleHQ+CjxsaW5lIHgxPSIyNjQiIHkxPSIxNjQiIHgyPSIxMzQiIHkyPSIxNjQiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2t2MikiLz4KPHRleHQgeD0iMTk5IiB5PSIxNzgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6OHB4Ij5EZXNjcmliZUtleSDihpIgZ2V0S2V5PC90ZXh0Pgo8cmVjdCB4PSIyNzIiIHk9IjQ2IiB3aWR0aD0iNTM4IiBoZWlnaHQ9IjE5OCIgcng9IjEzIiBmaWxsPSIjMWEyNjMxIiBzdHJva2U9IiMwMDc4RDQiIHN0cm9rZS13aWR0aD0iMS42Ii8+CjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI4OCw1NikiPjxwYXRoIGQ9Ik00IDggVjYgYTUgNSAwIDAgMSAxMCAwIFY4IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDc4RDQiIHN0cm9rZS13aWR0aD0iMS43Ii8+PHJlY3QgeD0iMiIgeT0iOCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjExIiByeD0iMi4yIiBmaWxsPSIjMDA3OEQ0Ii8+PGNpcmNsZSBjeD0iOSIgY3k9IjEyLjUiIHI9IjEuNyIgZmlsbD0iIzI2MjYyNiIvPjxyZWN0IHg9IjguMiIgeT0iMTMiIHdpZHRoPSIxLjYiIGhlaWdodD0iMy42IiByeD0iMC44IiBmaWxsPSIjMjYyNjI2Ii8+PC9nPgo8dGV4dCB4PSIzMTIiIHk9IjcwIiB0ZXh0LWFuY2hvcj0ic3RhcnQiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTJweDtmaWxsOiAjOTBiY2RlIj5BenVyZSBLZXkgVmF1bHQ8L3RleHQ+Cjx0ZXh0IHg9Ijc5NCIgeT0iNzAiIHRleHQtYW5jaG9yPSJlbmQiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6OXB4Ij5henVyZXJtX2tleV92YXVsdF9rZXk8L3RleHQ+CjxyZWN0IHg9IjI4OCIgeT0iODIiIHdpZHRoPSI1MDYiIGhlaWdodD0iNzIiIHJ4PSIxMCIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNCIvPgo8dGV4dCB4PSIzMDQiIHk9IjEwNiIgdGV4dC1hbmNob3I9InN0YXJ0IiBzdHlsZT0iZm9udDogMTFweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkODsgZmlsbDogI2M5Y2ZkODtmb250LXNpemU6MTFweCI+a2V5X3R5cGU6IDx0c3BhbiBzdHlsZT0iZmlsbDogIzkwYmNkZSI+UlNBLTIwNDg8L3RzcGFuPiAgIMK3ICAgb3IgRUMgwrcgPHRzcGFuIHN0eWxlPSJmaWxsOiAjOTBiY2RlIj5QLTI1NjwvdHNwYW4+PC90ZXh0Pgo8dGV4dCB4PSIzMDQiIHk9IjEzNCIgdGV4dC1hbmNob3I9InN0YXJ0IiBzdHlsZT0iZm9udDogMTFweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkODsgZmlsbDogI2M5Y2ZkODtmb250LXNpemU6MTBweCI+a2V5X29wdHM6IFtlbmNyeXB0LCBkZWNyeXB0LCB3cmFwS2V5LCB1bndyYXBLZXksIHNpZ24sIHZlcmlmeV08L3RleHQ+Cjx0ZXh0IHg9IjMwNCIgeT0iMTc2IiB0ZXh0LWFuY2hvcj0ic3RhcnQiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6OXB4Ij5pbW11dGFibGUgdmVyc2lvbnM7IHJvdGF0aW9uIGFkZHMgYSBuZXcgY3VycmVudCBvbmU8L3RleHQ+CjxyZWN0IHg9IjMwNCIgeT0iMTg2IiB3aWR0aD0iMTA0IiBoZWlnaHQ9IjQyIiByeD0iOSIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuMyIvPgo8dGV4dCB4PSIzNTYiIHk9IjIwNyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICNjOWNmZDg7IGZpbGw6ICNjOWNmZDgiPnYxPC90ZXh0Pgo8dGV4dCB4PSIzNTYiIHk9IjIyMSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZTo5cHgiPnJldGFpbmVkPC90ZXh0Pgo8bGluZSB4MT0iNDEwIiB5MT0iMjA3IiB4Mj0iNDI2IiB5Mj0iMjA3IiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMS42IiBtYXJrZXItZW5kPSJ1cmwoI2t2MikiLz4KPHJlY3QgeD0iNDI4IiB5PSIxODYiIHdpZHRoPSIxMDQiIGhlaWdodD0iNDIiIHJ4PSI5IiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS4zIi8+Cjx0ZXh0IHg9IjQ4MCIgeT0iMjA3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkODsgZmlsbDogI2M5Y2ZkOCI+djI8L3RleHQ+Cjx0ZXh0IHg9IjQ4MCIgeT0iMjIxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjlweCI+cmV0YWluZWQ8L3RleHQ+CjxsaW5lIHgxPSI1MzQiIHkxPSIyMDciIHgyPSI1NTAiIHkyPSIyMDciIHN0cm9rZT0iIzAwNzhENCIgc3Ryb2tlLXdpZHRoPSIxLjgiIG1hcmtlci1lbmQ9InVybCgja3YyYikiLz4KPHJlY3QgeD0iNTUyIiB5PSIxODIiIHdpZHRoPSIxMjAiIGhlaWdodD0iNTAiIHJ4PSI5IiBmaWxsPSIjMWEyNDMxIiBzdHJva2U9IiMwMDc4RDQiIHN0cm9rZS13aWR0aD0iMS43Ii8+Cjx0ZXh0IHg9IjYxMiIgeT0iMjAzIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkODsgZmlsbDogIzkwYjhkZTtmb250LXdlaWdodDo3MDAiPnYzIMK3IGN1cnJlbnQ8L3RleHQ+Cjx0ZXh0IHg9IjYxMiIgeT0iMjE5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDo3MDAgOXB4IEludGVyLHNhbnMtc2VyaWY7ZmlsbDogIzkwYmNkZSI+bmV3IG9wcyB1c2UgaXQ8L3RleHQ+Cjx0ZXh0IHg9IjY5MCIgeT0iMjAwIiB0ZXh0LWFuY2hvcj0ic3RhcnQiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6OXB4O2ZpbGw6ICNjOWNmZDgiPmEgc3ltbWV0cmljIEFFUzwvdGV4dD4KPHRleHQgeD0iNjkwIiB5PSIyMTMiIHRleHQtYW5jaG9yPSJzdGFydCIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZTo5cHg7ZmlsbDogI2M5Y2ZkOCI+a2V5IHNwZWMgaXM8L3RleHQ+Cjx0ZXh0IHg9IjY5MCIgeT0iMjI2IiB0ZXh0LWFuY2hvcj0ic3RhcnQiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6OXB4O2ZpbGw6ICNkZWIyOTAiPnJlZnVzZWQgaGVyZTwvdGV4dD4KPC9zdmc+" alt="key_opts restricts operations on the RSA or EC key. Standard vaults do not support symmetric AES keys." />
</div>

<p className="t9-caption">key\_opts restricts operations on the RSA or EC key. Standard vaults do not support symmetric AES keys.</p>

#### Envelope encryption via wrapKey / unwrapKey

`GenerateDataKey` returns a plaintext data key and an encrypted (wrapped) copy. The application uses the plaintext key to encrypt its data locally, then discards that key and stores the wrapped copy beside the encrypted data. To read the data later, it asks the key service to decrypt the wrapped key.

The adapter generates a random data key, wraps it through RSA-OAEP `wrapKey`, and returns plaintext and encrypted copies. `unwrapKey` recovers it later. This uses an RSA wrapping key; it does not provide a symmetric AES KMS key.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjg4IiB2aWV3Qm94PSIwIDAgODM2IDI4OCIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgYWRhcHRlciBnZW5lcmF0ZXMgYSBkYXRhIGtleSwgdXNlcyBSU0Egd3JhcEtleSB0byBlbmNyeXB0IGl0LCBhbmQgdXNlcyB1bndyYXBLZXkgdG8gcmVjb3ZlciBpdC4iPjxzdHlsZT50ZXh0e2ZvbnQtZmFtaWx5OkludGVyLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCdTZWdvZSBVSScsUm9ib3RvLCdIZWx2ZXRpY2EgTmV1ZScsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiMzMzQxNTV9PC9zdHlsZT4KPGRlZnM+PG1hcmtlciBpZD0ia3YzIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiM5NGEzYjgiLz48L21hcmtlcj48bWFya2VyIGlkPSJrdjNnIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiMwNTk2NjkiLz48L21hcmtlcj48bWFya2VyIGlkPSJrdjNiIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiMwMDc4RDQiLz48L21hcmtlcj48L2RlZnM+Cjx0ZXh0IHg9IjI2IiB5PSIyNiIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZpbGw6IzMzNDE1NSI+R2VuZXJhdGVEYXRhS2V5IElTIFNFUlZFRCBBUyB3cmFwS2V5IMK3IFlPVVIgUlNBIEtFWSBXUkFQUyBBIFNNQUxMIERBVEEgS0VZPC90ZXh0Pgo8cmVjdCB4PSIyNCIgeT0iNDYiIHdpZHRoPSIxNzYiIGhlaWdodD0iNjQiIHJ4PSIxMSIgZmlsbD0iI2Y3ZmJmZiIgc3Ryb2tlPSIjMDA3OEQ0IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSIxMTIiIHk9Ijc0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzBmMTcyYTsgZm9udC1zaXplOjEycHg7ZmlsbDojMDA3OEQ0Ij5Zb3VyIFJTQSBrZXk8L3RleHQ+Cjx0ZXh0IHg9IjExMiIgeT0iOTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6OS41cHgiPndyYXBLZXkgLyB1bndyYXBLZXkgb25seTwvdGV4dD4KPGxpbmUgeDE9IjIwMCIgeTE9Ijc4IiB4Mj0iMjMyIiB5Mj0iNzgiIHN0cm9rZT0iIzAwNzhENCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2t2M2IpIi8+Cjx0ZXh0IHg9IjIxNiIgeT0iNjkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6OHB4Ij53cmFwczwvdGV4dD4KPHJlY3QgeD0iMjM2IiB5PSI0NiIgd2lkdGg9IjE3NiIgaGVpZ2h0PSI2NCIgcng9IjExIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjMyNCIgeT0iNzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTJweCI+UmFuZG9tIGRhdGEga2V5PC90ZXh0Pgo8dGV4dCB4PSIzMjQiIHk9Ijg4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjkuNXB4Ij5wbGFpbnRleHQgKyB3cmFwcGVkIGNvcHk8L3RleHQ+CjxsaW5lIHgxPSI0MTIiIHkxPSI3OCIgeDI9IjQ0NCIgeTI9Ijc4IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNrdjNnKSIvPgo8dGV4dCB4PSI0MjgiIHk9IjY5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjhweCI+ZW5jcnlwdHM8L3RleHQ+CjxyZWN0IHg9IjQ0OCIgeT0iNDYiIHdpZHRoPSIxNjQiIGhlaWdodD0iNjQiIHJ4PSIxMSIgZmlsbD0iI2VjZmRmNSIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNiIvPgo8dGV4dCB4PSI1MzAiIHk9IjcwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NzsgZm9udC1zaXplOjEycHgiPllvdXIgY2lwaGVydGV4dDwvdGV4dD4KPHRleHQgeD0iNTMwIiB5PSI4OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NzsgZm9udC1zaXplOjkuNXB4Ij5lbmNyeXB0ZWQgd2l0aCB0aGUgZGF0YSBrZXk8L3RleHQ+CjxsaW5lIHgxPSI2MTIiIHkxPSI3OCIgeDI9IjY0NCIgeTI9Ijc4IiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNrdjMpIi8+CjxyZWN0IHg9IjY0OCIgeT0iNDYiIHdpZHRoPSIxNjQiIGhlaWdodD0iNjQiIHJ4PSIxMSIgZmlsbD0iI2Y4ZmFmYyIgc3Ryb2tlPSIjY2JkNWUxIiBzdHJva2Utd2lkdGg9IjEuNCIgc3Ryb2tlLWRhc2hhcnJheT0iNSA1Ii8+Cjx0ZXh0IHg9IjczMCIgeT0iNzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTEuNXB4Ij5LZXB0IHRvZ2V0aGVyPC90ZXh0Pgo8dGV4dCB4PSI3MzAiIHk9Ijg4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjkuNXB4Ij5jaXBoZXJ0ZXh0ICsgd3JhcHBlZCBrZXk8L3RleHQ+Cjx0ZXh0IHg9IjQxOCIgeT0iMTMyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjkuNXB4Ij50aGUgcGxhaW50ZXh0IGRhdGEga2V5IGlzIHVzZWQgb25jZSBhbmQgZGlzY2FyZGVkOyB5b3VyIFJTQSBrZXkgb25seSBldmVyIHdyYXBzIHRoZSBzbWFsbCBkYXRhIGtleSwgbmV2ZXIgeW91ciBidWxrIGRhdGE8L3RleHQ+CjxsaW5lIHgxPSIyNiIgeTE9IjE1MiIgeDI9IjgxMCIgeTI9IjE1MiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuMyIvPgo8dGV4dCB4PSIyNiIgeT0iMTc4IiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDojMDQ3ODU3Ij5UTyBSRUFEIElUIEJBQ0sgwrcgdW53cmFwS2V5IFJFQ09WRVJTIFRIRSBEQVRBIEtFWTwvdGV4dD4KPHJlY3QgeD0iMjQiIHk9IjE5MiIgd2lkdGg9IjE4OCIgaGVpZ2h0PSI1MiIgcng9IjEwIiBmaWxsPSIjZjhmYWZjIiBzdHJva2U9IiNjYmQ1ZTEiIHN0cm9rZS13aWR0aD0iMS40Ii8+Cjx0ZXh0IHg9IjExOCIgeT0iMjE0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzBmMTcyYTsgZm9udC1zaXplOjExcHgiPldyYXBwZWQgZGF0YSBrZXk8L3RleHQ+Cjx0ZXh0IHg9IjExOCIgeT0iMjMwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjkuNXB4Ij5zdG9yZWQgYmVzaWRlIHRoZSBjaXBoZXJ0ZXh0PC90ZXh0Pgo8bGluZSB4MT0iMjEyIiB5MT0iMjE4IiB4Mj0iMjUyIiB5Mj0iMjE4IiBzdHJva2U9IiMwMDc4RDQiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNrdjNiKSIvPgo8dGV4dCB4PSIyMzIiIHk9IjIwOSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZTo4cHgiPnVud3JhcEtleTwvdGV4dD4KPHJlY3QgeD0iMjU2IiB5PSIxOTIiIHdpZHRoPSIxNzYiIGhlaWdodD0iNTIiIHJ4PSIxMCIgZmlsbD0iI2Y3ZmJmZiIgc3Ryb2tlPSIjMDA3OEQ0IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSIzNDQiIHk9IjIxNCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMXB4O2ZpbGw6IzAwNzhENCI+UGxhaW50ZXh0IGRhdGEga2V5PC90ZXh0Pgo8dGV4dCB4PSIzNDQiIHk9IjIzMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZTo5LjVweCI+cmVjb3ZlcmVkIGJ5IHlvdXIgUlNBIGtleTwvdGV4dD4KPGxpbmUgeDE9IjQzMiIgeTE9IjIxOCIgeDI9IjQ3MiIgeTI9IjIxOCIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgja3YzZykiLz4KPHRleHQgeD0iNDUyIiB5PSIyMDkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6OHB4Ij5kZWNyeXB0czwvdGV4dD4KPHJlY3QgeD0iNDc2IiB5PSIxOTIiIHdpZHRoPSIxNzYiIGhlaWdodD0iNTIiIHJ4PSIxMCIgZmlsbD0iI2VjZmRmNSIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI1NjQiIHk9IjIxNCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDcwMCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNDc4NTc7IGZvbnQtc2l6ZToxMXB4Ij5Zb3VyIHBsYWludGV4dDwvdGV4dD4KPHRleHQgeD0iNTY0IiB5PSIyMzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNDc4NTc7IGZvbnQtc2l6ZTo5LjVweCI+ZGF0YSByZWNvdmVyZWQ8L3RleHQ+CjxyZWN0IHg9IjY2OCIgeT0iMTg4IiB3aWR0aD0iMTQ0IiBoZWlnaHQ9IjYwIiByeD0iMTAiIGZpbGw9IiNmZmZiZWIiIHN0cm9rZT0iI2ZkZTY4YSIgc3Ryb2tlLXdpZHRoPSIxLjQiLz4KPHRleHQgeD0iNzQwIiB5PSIyMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OjcwMCAxMHB4IEludGVyLHNhbnMtc2VyaWY7ZmlsbDojYjQ1MzA5Ij5ubyBuYXRpdmUgZGF0YS1rZXkgb3A7PC90ZXh0Pgo8dGV4dCB4PSI3NDAiIHk9IjIyNSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZTo5LjVweDtmaWxsOiNiNDUzMDkiPnRoZSB3cmFwcGluZyBrZXkgaXMgUlNBLDwvdGV4dD4KPHRleHQgeD0iNzQwIiB5PSIyMzgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6OS41cHg7ZmlsbDojYjQ1MzA5Ij5ub3QgYSBzeW1tZXRyaWMgQUVTIGtleTwvdGV4dD4KPC9zdmc+" alt="The adapter generates a data key, uses RSA wrapKey to encrypt it, and uses unwrapKey to recover it." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjg4IiB2aWV3Qm94PSIwIDAgODM2IDI4OCIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgYWRhcHRlciBnZW5lcmF0ZXMgYSBkYXRhIGtleSwgdXNlcyBSU0Egd3JhcEtleSB0byBlbmNyeXB0IGl0LCBhbmQgdXNlcyB1bndyYXBLZXkgdG8gcmVjb3ZlciBpdC4iPjxzdHlsZT50ZXh0e2ZvbnQtZmFtaWx5OkludGVyLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCdTZWdvZSBVSScsUm9ib3RvLCdIZWx2ZXRpY2EgTmV1ZScsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiNjYmQ1ZTF9PC9zdHlsZT4KPGRlZnM+PG1hcmtlciBpZD0ia3YzIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiM5NGEzYjgiLz48L21hcmtlcj48bWFya2VyIGlkPSJrdjNnIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiMyMGY3YjQiLz48L21hcmtlcj48bWFya2VyIGlkPSJrdjNiIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiMwMDc4RDQiLz48L21hcmtlcj48L2RlZnM+Cjx0ZXh0IHg9IjI2IiB5PSIyNiIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZpbGw6ICNjOWNmZDgiPkdlbmVyYXRlRGF0YUtleSBJUyBTRVJWRUQgQVMgd3JhcEtleSDCtyBZT1VSIFJTQSBLRVkgV1JBUFMgQSBTTUFMTCBEQVRBIEtFWTwvdGV4dD4KPHJlY3QgeD0iMjQiIHk9IjQ2IiB3aWR0aD0iMTc2IiBoZWlnaHQ9IjY0IiByeD0iMTEiIGZpbGw9IiMxYTI2MzEiIHN0cm9rZT0iIzAwNzhENCIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMTEyIiB5PSI3NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNlZDg7IGZvbnQtc2l6ZToxMnB4O2ZpbGw6ICM5MGJjZGUiPllvdXIgUlNBIGtleTwvdGV4dD4KPHRleHQgeD0iMTEyIiB5PSI5MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZTo5LjVweCI+d3JhcEtleSAvIHVud3JhcEtleSBvbmx5PC90ZXh0Pgo8bGluZSB4MT0iMjAwIiB5MT0iNzgiIHgyPSIyMzIiIHkyPSI3OCIgc3Ryb2tlPSIjMDA3OEQ0IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgja3YzYikiLz4KPHRleHQgeD0iMjE2IiB5PSI2OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZTo4cHgiPndyYXBzPC90ZXh0Pgo8cmVjdCB4PSIyMzYiIHk9IjQ2IiB3aWR0aD0iMTc2IiBoZWlnaHQ9IjY0IiByeD0iMTEiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMzI0IiB5PSI3MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNlZDg7IGZvbnQtc2l6ZToxMnB4Ij5SYW5kb20gZGF0YSBrZXk8L3RleHQ+Cjx0ZXh0IHg9IjMyNCIgeT0iODgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6OS41cHgiPnBsYWludGV4dCArIHdyYXBwZWQgY29weTwvdGV4dD4KPGxpbmUgeDE9IjQxMiIgeTE9Ijc4IiB4Mj0iNDQ0IiB5Mj0iNzgiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2t2M2cpIi8+Cjx0ZXh0IHg9IjQyOCIgeT0iNjkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6OHB4Ij5lbmNyeXB0czwvdGV4dD4KPHJlY3QgeD0iNDQ4IiB5PSI0NiIgd2lkdGg9IjE2NCIgaGVpZ2h0PSI2NCIgcng9IjExIiBmaWxsPSIjMWEzMTI2IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS42Ii8+Cjx0ZXh0IHg9IjUzMCIgeT0iNzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4OyBmb250LXNpemU6MTJweCI+WW91ciBjaXBoZXJ0ZXh0PC90ZXh0Pgo8dGV4dCB4PSI1MzAiIHk9Ijg4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4OyBmb250LXNpemU6OS41cHgiPmVuY3J5cHRlZCB3aXRoIHRoZSBkYXRhIGtleTwvdGV4dD4KPGxpbmUgeDE9IjYxMiIgeTE9Ijc4IiB4Mj0iNjQ0IiB5Mj0iNzgiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2t2MykiLz4KPHJlY3QgeD0iNjQ4IiB5PSI0NiIgd2lkdGg9IjE2NCIgaGVpZ2h0PSI2NCIgcng9IjExIiBmaWxsPSIjMWEyNjMxIiBzdHJva2U9IiMzZDRmNjYiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtZGFzaGFycmF5PSI1IDUiLz4KPHRleHQgeD0iNzMwIiB5PSI3MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNlZDg7IGZvbnQtc2l6ZToxMS41cHgiPktlcHQgdG9nZXRoZXI8L3RleHQ+Cjx0ZXh0IHg9IjczMCIgeT0iODgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6OS41cHgiPmNpcGhlcnRleHQgKyB3cmFwcGVkIGtleTwvdGV4dD4KPHRleHQgeD0iNDE4IiB5PSIxMzIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6OS41cHgiPnRoZSBwbGFpbnRleHQgZGF0YSBrZXkgaXMgdXNlZCBvbmNlIGFuZCBkaXNjYXJkZWQ7IHlvdXIgUlNBIGtleSBvbmx5IGV2ZXIgd3JhcHMgdGhlIHNtYWxsIGRhdGEga2V5LCBuZXZlciB5b3VyIGJ1bGsgZGF0YTwvdGV4dD4KPGxpbmUgeDE9IjI2IiB5MT0iMTUyIiB4Mj0iODEwIiB5Mj0iMTUyIiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS4zIi8+Cjx0ZXh0IHg9IjI2IiB5PSIxNzgiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4OyBmaWxsOiAjOTBkZWM4Ij5UTyBSRUFEIElUIEJBQ0sgwrcgdW53cmFwS2V5IFJFQ09WRVJTIFRIRSBEQVRBIEtFWTwvdGV4dD4KPHJlY3QgeD0iMjQiIHk9IjE5MiIgd2lkdGg9IjE4OCIgaGVpZ2h0PSI1MiIgcng9IjEwIiBmaWxsPSIjMWEyNjMxIiBzdHJva2U9IiMzZDRmNjYiIHN0cm9rZS13aWR0aD0iMS40Ii8+Cjx0ZXh0IHg9IjExOCIgeT0iMjE0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2VkODsgZm9udC1zaXplOjExcHgiPldyYXBwZWQgZGF0YSBrZXk8L3RleHQ+Cjx0ZXh0IHg9IjExOCIgeT0iMjMwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjkuNXB4Ij5zdG9yZWQgYmVzaWRlIHRoZSBjaXBoZXJ0ZXh0PC90ZXh0Pgo8bGluZSB4MT0iMjEyIiB5MT0iMjE4IiB4Mj0iMjUyIiB5Mj0iMjE4IiBzdHJva2U9IiMwMDc4RDQiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNrdjNiKSIvPgo8dGV4dCB4PSIyMzIiIHk9IjIwOSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZTo4cHgiPnVud3JhcEtleTwvdGV4dD4KPHJlY3QgeD0iMjU2IiB5PSIxOTIiIHdpZHRoPSIxNzYiIGhlaWdodD0iNTIiIHJ4PSIxMCIgZmlsbD0iIzFhMjYzMSIgc3Ryb2tlPSIjMDA3OEQ0IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSIzNDQiIHk9IjIxNCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNlZDg7IGZvbnQtc2l6ZToxMXB4O2ZpbGw6ICM5MGJjZGUiPlBsYWludGV4dCBkYXRhIGtleTwvdGV4dD4KPHRleHQgeD0iMzQ0IiB5PSIyMzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6OS41cHgiPnJlY292ZXJlZCBieSB5b3VyIFJTQSBrZXk8L3RleHQ+CjxsaW5lIHgxPSI0MzIiIHkxPSIyMTgiIHgyPSI0NzIiIHkyPSIyMTgiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2t2M2cpIi8+Cjx0ZXh0IHg9IjQ1MiIgeT0iMjA5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjhweCI+ZGVjcnlwdHM8L3RleHQ+CjxyZWN0IHg9IjQ3NiIgeT0iMTkyIiB3aWR0aD0iMTc2IiBoZWlnaHQ9IjUyIiByeD0iMTAiIGZpbGw9IiMxYTMxMjYiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNTY0IiB5PSIyMTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4OyBmb250LXNpemU6MTFweCI+WW91ciBwbGFpbnRleHQ8L3RleHQ+Cjx0ZXh0IHg9IjU2NCIgeT0iMjMwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4OyBmb250LXNpemU6OS41cHgiPmRhdGEgcmVjb3ZlcmVkPC90ZXh0Pgo8cmVjdCB4PSI2NjgiIHk9IjE4OCIgd2lkdGg9IjE0NCIgaGVpZ2h0PSI2MCIgcng9IjEwIiBmaWxsPSIjMzEyZDFhIiBzdHJva2U9IiM2NjVkM2QiIHN0cm9rZS13aWR0aD0iMS40Ii8+Cjx0ZXh0IHg9Ijc0MCIgeT0iMjEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDo3MDAgMTBweCBJbnRlcixzYW5zLXNlcmlmO2ZpbGw6ICNkZWIyOTAiPm5vIG5hdGl2ZSBkYXRhLWtleSBvcDs8L3RleHQ+Cjx0ZXh0IHg9Ijc0MCIgeT0iMjI1IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjkuNXB4O2ZpbGw6ICNkZWIyOTAiPnRoZSB3cmFwcGluZyBrZXkgaXMgUlNBLDwvdGV4dD4KPHRleHQgeD0iNzQwIiB5PSIyMzgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6OS41cHg7ZmlsbDogI2RlYjI5MCI+bm90IGEgc3ltbWV0cmljIEFFUyBrZXk8L3RleHQ+Cjwvc3ZnPg==" alt="The adapter generates a data key, uses RSA wrapKey to encrypt it, and uses unwrapKey to recover it." />
</div>

<p className="t9-caption">The adapter generates a data key, uses RSA wrapKey to encrypt it, and uses unwrapKey to recover it.</p>

#### Encryption-context limitations

An encryption context is a non-secret key/value map bound to ciphertext as additional authenticated data (AAD). Decryption requires the same context. Applications can use it to bind encrypted values to a tenant or purpose.

The standard-vault RSA-OAEP path has no AAD parameter for an AWS encryption context. Context-bearing requests return errors. Applications that require context binding need a supported AES-GCM service, such as the separate Azure Managed HSM service.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjU4IiB2aWV3Qm94PSIwIDAgODM2IDI1OCIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgc3RhbmRhcmQtdmF1bHQgUlNBIHBhdGggY2Fubm90IGJpbmQgYW4gZW5jcnlwdGlvbiBjb250ZXh0LCBzbyBjb250ZXh0LWJlYXJpbmcgcmVxdWVzdHMgYXJlIHJlamVjdGVkLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6IzMzNDE1NX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJrdjQiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzk0YTNiOCIvPjwvbWFya2VyPjxtYXJrZXIgaWQ9Imt2NGciIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzA1OTY2OSIvPjwvbWFya2VyPjxtYXJrZXIgaWQ9Imt2NGEiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iI2I0NTMwOSIvPjwvbWFya2VyPjwvZGVmcz4KPHRleHQgeD0iMjYiIHk9IjI2IiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDojMzM0MTU1Ij5BTiBFTkNSWVBUSU9OIENPTlRFWFQgSVMgQURESVRJT05BTCBBVVRIRU5USUNBVEVEIERBVEEgwrcgQSBTVEFOREFSRCBSU0EgS0VZIEhBUyBOT1dIRVJFIFRPIEJJTkQgSVQ8L3RleHQ+CjxyZWN0IHg9IjI0IiB5PSI0NiIgd2lkdGg9IjIxNCIgaGVpZ2h0PSIxMDAiIHJ4PSIxMSIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSIxMzEiIHk9IjY4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzBmMTcyYTsgZm9udC1zaXplOjEycHgiPkVuY3J5cHQgwrcgd2l0aCBhIGNvbnRleHQ8L3RleHQ+CjxyZWN0IHg9IjQwIiB5PSI4MCIgd2lkdGg9IjE4MiIgaGVpZ2h0PSI1MCIgcng9IjgiIGZpbGw9IiNmOGZhZmMiIHN0cm9rZT0iI2UyZThmMCIvPgo8dGV4dCB4PSIxMzEiIHk9IjEwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQtZmFtaWx5OnZhcigtLW1vbm8pO2ZvbnQtc2l6ZToxMHB4O2ZpbGw6IzQ3NTU2OSI+dGVuYW50ID0gYWNtZTwvdGV4dD4KPHRleHQgeD0iMTMxIiB5PSIxMTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250LWZhbWlseTp2YXIoLS1tb25vKTtmb250LXNpemU6MTBweDtmaWxsOiM0NzU1NjkiPnB1cnBvc2UgPSBwYXltZW50czwvdGV4dD4KPGxpbmUgeDE9IjIzOCIgeTE9Ijk2IiB4Mj0iMjcwIiB5Mj0iOTYiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2t2NCkiLz4KPHJlY3QgeD0iMjc0IiB5PSI3MCIgd2lkdGg9IjE2OCIgaGVpZ2h0PSI1MiIgcng9IjEwIiBmaWxsPSIjZjdmYmZmIiBzdHJva2U9IiMwMDc4RDQiIHN0cm9rZS13aWR0aD0iMS42Ii8+Cjx0ZXh0IHg9IjM1OCIgeT0iOTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTFweDtmaWxsOiMwMDc4RDQiPlN0YW5kYXJkIHZhdWx0IMK3IFJTQS1PQUVQPC90ZXh0Pgo8dGV4dCB4PSIzNTgiIHk9IjEwNyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZTo5LjVweDtmaWxsOiNiNDUzMDkiPm5vIGFkZGl0aW9uYWwtZGF0YSBzbG90PC90ZXh0Pgo8bGluZSB4MT0iNDQyIiB5MT0iODQiIHgyPSI0ODIiIHkyPSI3MCIgc3Ryb2tlPSIjYjQ1MzA5IiBzdHJva2Utd2lkdGg9IjEuNyIgc3Ryb2tlLWRhc2hhcnJheT0iNCAzIiBtYXJrZXItZW5kPSJ1cmwoI2t2NGEpIi8+CjxsaW5lIHgxPSI0NDIiIHkxPSIxMDgiIHgyPSI0ODIiIHkyPSIxNTAiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2t2NGcpIi8+CjxyZWN0IHg9IjQ4NiIgeT0iNDQiIHdpZHRoPSIzMjYiIGhlaWdodD0iNTIiIHJ4PSIxMCIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZmVjYWNhIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI1MDIiIHk9IjY0IiB0ZXh0LWFuY2hvcj0ic3RhcnQiIHN0eWxlPSJmb250OjcwMCAxMXB4IEludGVyLHNhbnMtc2VyaWY7ZmlsbDojZGMyNjI2Ij5SU0EtT0FFUCBoYXMgbm8gQUFEIHBhcmFtZXRlcjwvdGV4dD4KPHRleHQgeD0iNTAyIiB5PSI4MiIgdGV4dC1hbmNob3I9InN0YXJ0IiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjkuNXB4O2ZpbGw6I2I5MWMxYyI+VGhlIHJlcXVlc3RlZCBjb250ZXh0IHdvdWxkIG5vdCBiZSBhdXRoZW50aWNhdGVkPC90ZXh0Pgo8cmVjdCB4PSI0ODYiIHk9IjEyOCIgd2lkdGg9IjMyNiIgaGVpZ2h0PSI1NiIgcng9IjEwIiBmaWxsPSIjZWNmZGY1IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS42Ii8+Cjx0ZXh0IHg9IjUwMiIgeT0iMTQ5IiB0ZXh0LWFuY2hvcj0ic3RhcnQiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3OyBmb250LXNpemU6MTEuNXB4Ij5Db250ZXh0LWJlYXJpbmcgcmVxdWVzdHMgZmFpbDwvdGV4dD4KPHRleHQgeD0iNTAyIiB5PSIxNjciIHRleHQtYW5jaG9yPSJzdGFydCIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NzsgZm9udC1zaXplOjkuNXB4Ij5Db250ZXh0LWJlYXJpbmcgcmVxdWVzdHMgcmV0dXJuIGFuIGVycm9yPC90ZXh0Pgo8cmVjdCB4PSIyNCIgeT0iMjA0IiB3aWR0aD0iNzg4IiBoZWlnaHQ9IjM0IiByeD0iOSIgZmlsbD0iI2Y3ZmJmZiIgc3Ryb2tlPSIjZGJlYWZlIiBzdHJva2Utd2lkdGg9IjEuMyIvPgo8dGV4dCB4PSI0MTgiIHk9IjIyNSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZToxMHB4O2ZpbGw6IzBjNWFhNiI+TWFuYWdlZCBIU00gQUVTLUdDTSBzdXBwb3J0cyBhdXRoZW50aWNhdGVkIGNvbnRleHQ8L3RleHQ+Cjwvc3ZnPg==" alt="The standard-vault RSA path cannot bind an encryption context, so context-bearing requests are rejected." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjU4IiB2aWV3Qm94PSIwIDAgODM2IDI1OCIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgc3RhbmRhcmQtdmF1bHQgUlNBIHBhdGggY2Fubm90IGJpbmQgYW4gZW5jcnlwdGlvbiBjb250ZXh0LCBzbyBjb250ZXh0LWJlYXJpbmcgcmVxdWVzdHMgYXJlIHJlamVjdGVkLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6I2NiZDVlMX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJrdjQiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzk0YTNiOCIvPjwvbWFya2VyPjxtYXJrZXIgaWQ9Imt2NGciIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzIwZjdiNCIvPjwvbWFya2VyPjxtYXJrZXIgaWQ9Imt2NGEiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iI2I0NTMwOSIvPjwvbWFya2VyPjwvZGVmcz4KPHRleHQgeD0iMjYiIHk9IjI2IiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDogI2M5Y2ZkOCI+QU4gRU5DUllQVElPTiBDT05URVhUIElTIEFERElUSU9OQUwgQVVUSEVOVElDQVRFRCBEQVRBIMK3IEEgU1RBTkRBUkQgUlNBIEtFWSBIQVMgTk9XSEVSRSBUTyBCSU5EIElUPC90ZXh0Pgo8cmVjdCB4PSIyNCIgeT0iNDYiIHdpZHRoPSIyMTQiIGhlaWdodD0iMTAwIiByeD0iMTEiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMTMxIiB5PSI2OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNlZDg7IGZvbnQtc2l6ZToxMnB4Ij5FbmNyeXB0IMK3IHdpdGggYSBjb250ZXh0PC90ZXh0Pgo8cmVjdCB4PSI0MCIgeT0iODAiIHdpZHRoPSIxODIiIGhlaWdodD0iNTAiIHJ4PSI4IiBmaWxsPSIjMWEyNjMxIiBzdHJva2U9IiMzZDRlNjYiLz4KPHRleHQgeD0iMTMxIiB5PSIxMDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250LWZhbWlseTp2YXIoLS1tb25vKTtmb250LXNpemU6MTBweDtmaWxsOiAjYzljZmQ4Ij50ZW5hbnQgPSBhY21lPC90ZXh0Pgo8dGV4dCB4PSIxMzEiIHk9IjExOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQtZmFtaWx5OnZhcigtLW1vbm8pO2ZvbnQtc2l6ZToxMHB4O2ZpbGw6ICNjOWNmZDgiPnB1cnBvc2UgPSBwYXltZW50czwvdGV4dD4KPGxpbmUgeDE9IjIzOCIgeTE9Ijk2IiB4Mj0iMjcwIiB5Mj0iOTYiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2t2NCkiLz4KPHJlY3QgeD0iMjc0IiB5PSI3MCIgd2lkdGg9IjE2OCIgaGVpZ2h0PSI1MiIgcng9IjEwIiBmaWxsPSIjMWEyNjMxIiBzdHJva2U9IiMwMDc4RDQiIHN0cm9rZS13aWR0aD0iMS42Ii8+Cjx0ZXh0IHg9IjM1OCIgeT0iOTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTFweDtmaWxsOiAjOTBiY2RlIj5TdGFuZGFyZCB2YXVsdCDCtyBSU0EtT0FFUDwvdGV4dD4KPHRleHQgeD0iMzU4IiB5PSIxMDciIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6OS41cHg7ZmlsbDogI2RlYjI5MCI+bm8gYWRkaXRpb25hbC1kYXRhIHNsb3Q8L3RleHQ+CjxsaW5lIHgxPSI0NDIiIHkxPSI4NCIgeDI9IjQ4MiIgeTI9IjcwIiBzdHJva2U9IiNiNDUzMDkiIHN0cm9rZS13aWR0aD0iMS43IiBzdHJva2UtZGFzaGFycmF5PSI0IDMiIG1hcmtlci1lbmQ9InVybCgja3Y0YSkiLz4KPGxpbmUgeDE9IjQ0MiIgeTE9IjEwOCIgeDI9IjQ4MiIgeTI9IjE1MCIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgja3Y0ZykiLz4KPHJlY3QgeD0iNDg2IiB5PSI0NCIgd2lkdGg9IjMyNiIgaGVpZ2h0PSI1MiIgcng9IjEwIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiM2NjNkM2QiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjUwMiIgeT0iNjQiIHRleHQtYW5jaG9yPSJzdGFydCIgc3R5bGU9ImZvbnQ6NzAwIDExcHggSW50ZXIsc2Fucy1zZXJpZjtmaWxsOiAjZGU5MDkwIj5SU0EtT0FFUCBoYXMgbm8gQUFEIHBhcmFtZXRlcjwvdGV4dD4KPHRleHQgeD0iNTAyIiB5PSI4MiIgdGV4dC1hbmNob3I9InN0YXJ0IiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjkuNXB4O2ZpbGw6ICNkZTkwOTAiPlRoZSByZXF1ZXN0ZWQgY29udGV4dCB3b3VsZCBub3QgYmUgYXV0aGVudGljYXRlZDwvdGV4dD4KPHJlY3QgeD0iNDg2IiB5PSIxMjgiIHdpZHRoPSIzMjYiIGhlaWdodD0iNTYiIHJ4PSIxMCIgZmlsbD0iIzFhMzEyNiIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNiIvPgo8dGV4dCB4PSI1MDIiIHk9IjE0OSIgdGV4dC1hbmNob3I9InN0YXJ0IiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzkwZGVjODsgZm9udC1zaXplOjExLjVweCI+Q29udGV4dC1iZWFyaW5nIHJlcXVlc3RzIGZhaWw8L3RleHQ+Cjx0ZXh0IHg9IjUwMiIgeT0iMTY3IiB0ZXh0LWFuY2hvcj0ic3RhcnQiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzg7IGZvbnQtc2l6ZTo5LjVweCI+Q29udGV4dC1iZWFyaW5nIHJlcXVlc3RzIHJldHVybiBhbiBlcnJvcjwvdGV4dD4KPHJlY3QgeD0iMjQiIHk9IjIwNCIgd2lkdGg9Ijc4OCIgaGVpZ2h0PSIzNCIgcng9IjkiIGZpbGw9IiMxYTI2MzEiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjMiLz4KPHRleHQgeD0iNDE4IiB5PSIyMjUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6MTBweDtmaWxsOiAjOTBiOGRlIj5NYW5hZ2VkIEhTTSBBRVMtR0NNIHN1cHBvcnRzIGF1dGhlbnRpY2F0ZWQgY29udGV4dDwvdGV4dD4KPC9zdmc+" alt="The standard-vault RSA path cannot bind an encryption context, so context-bearing requests are rejected." />
</div>

<p className="t9-caption">The standard-vault RSA path cannot bind an encryption context, so context-bearing requests are rejected.</p>

#### Supported key types

AWS KMS distinguishes symmetric encryption keys, asymmetric RSA or EC keys, and HMAC keys. Standard Azure Key Vault supports the asymmetric family. Its RSA key size limits the amount of data that can be encrypted in one operation.

`Sign`, `Verify`, `GetPublicKey`, and RSA `Encrypt`/`Decrypt` use Key Vault operations. Data keys use RSA wrapping. Symmetric AES key creation, encryption-context binding, and `GenerateMac`/`VerifyMac` are unsupported on this standard-vault path.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjM4IiB2aWV3Qm94PSIwIDAgODM2IDIzOCIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJLZXkgVmF1bHQgU3RhbmRhcmQgc3VwcG9ydHMgUlNBIGFuZCBFQyBrZXlzLiBTeW1tZXRyaWMta2V5IG9wdGlvbnMgdXNlIG90aGVyIEF6dXJlIGNvbmZpZ3VyYXRpb25zLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6IzMzNDE1NX08L3N0eWxlPgo8dGV4dCB4PSIyNiIgeT0iMjYiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4OyBmaWxsOiMzMzQxNTUiPktFWSBWQVVMVCBTVEFOREFSRCBSU0EvRUMgwrcgT1RIRVIgT1BUSU9OUyBVU0UgRElGRkVSRU5UIENPTkZJR1VSQVRJT05TPC90ZXh0Pgo8cmVjdCB4PSIyNCIgeT0iNDIiIHdpZHRoPSIzOTIiIGhlaWdodD0iMTg0IiByeD0iMTMiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNDQsNTgpIj48cGF0aCBkPSJNNCA4IFY2IGE1IDUgMCAwIDEgMTAgMCBWOCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDA3OEQ0IiBzdHJva2Utd2lkdGg9IjEuNyIvPjxyZWN0IHg9IjIiIHk9IjgiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxMSIgcng9IjIuMiIgZmlsbD0iIzAwNzhENCIvPjxjaXJjbGUgY3g9IjkiIGN5PSIxMi41IiByPSIxLjciIGZpbGw9IiNmZmYiLz48cmVjdCB4PSI4LjIiIHk9IjEzIiB3aWR0aD0iMS42IiBoZWlnaHQ9IjMuNiIgcng9IjAuOCIgZmlsbD0iI2ZmZiIvPjwvZz4KPHRleHQgeD0iNjgiIHk9IjcyIiB0ZXh0LWFuY2hvcj0ic3RhcnQiIHN0eWxlPSJmb250OjcwMCAxMi41cHggSW50ZXIsc2Fucy1zZXJpZjtmaWxsOiMwMDc4RDQiPlN0YW5kYXJkIEtleSBWYXVsdCDCtyB0aGUgZGVmYXVsdDwvdGV4dD4KPHRleHQgeD0iNDQiIHk9IjkwIiB0ZXh0LWFuY2hvcj0ic3RhcnQiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6MTBweCI+aG9sZHMgUlNBIC8gRUMgKGFzeW1tZXRyaWMpIGtleXM6IHNlcnZlZCBuYXRpdmVseTwvdGV4dD4KPHJlY3QgeD0iNDAiIHk9IjEwMiIgd2lkdGg9IjM2MCIgaGVpZ2h0PSIyNiIgcng9IjYiIGZpbGw9IiNlY2ZkZjUiIHN0cm9rZT0iI2E3ZjNkMCIvPgo8Y2lyY2xlIGN4PSI1NiIgY3k9IjExNSIgcj0iNSIgZmlsbD0iIzA1OTY2OSIvPgo8cGF0aCBkPSJNNTMuNCAxMTUgbDIgMiBsMy40IC0zLjgiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIxLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8dGV4dCB4PSI3MiIgeT0iMTE5IiB0ZXh0LWFuY2hvcj0ic3RhcnQiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6MTBweDtmaWxsOiMzMzQxNTUiPlNpZ24gLyBWZXJpZnkgwrcgUlNBIEVuY3J5cHQgLyBEZWNyeXB0IMK3IFB1YmxpYyBrZXk8L3RleHQ+CjxyZWN0IHg9IjQwIiB5PSIxMzQiIHdpZHRoPSIzNjAiIGhlaWdodD0iMjYiIHJ4PSI2IiBmaWxsPSIjZWNmZGY1IiBzdHJva2U9IiNhN2YzZDAiLz4KPGNpcmNsZSBjeD0iNTYiIGN5PSIxNDciIHI9IjUiIGZpbGw9IiMwNTk2NjkiLz4KPHBhdGggZD0iTTUzLjQgMTQ3IGwyIDIgbDMuNCAtMy44IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHRleHQgeD0iNzIiIHk9IjE1MSIgdGV4dC1hbmNob3I9InN0YXJ0IiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjEwcHg7ZmlsbDojMzM0MTU1Ij5FbnZlbG9wZTogR2VuZXJhdGVEYXRhS2V5IHNlcnZlZCBhcyBSU0Egd3JhcEtleTwvdGV4dD4KPHJlY3QgeD0iNDAiIHk9IjE2NiIgd2lkdGg9IjM2MCIgaGVpZ2h0PSI0NiIgcng9IjYiIGZpbGw9IiNmOGZhZmMiIHN0cm9rZT0iI2YxZjVmOSIvPgo8dGV4dCB4PSIyMjAiIHk9IjE4NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZTo5LjVweDtmaWxsOiM2NDc0OGIiPlJTQS1PQUVQIGVuY3J5cHQgaXMgYm91bmRlZCBieSB0aGUgUlNBIG1vZHVsdXMsPC90ZXh0Pgo8dGV4dCB4PSIyMjAiIHk9IjE5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZTo5LjVweDtmaWxsOiM2NDc0OGIiPmFuZCBiaW5kcyBubyBhZGRpdGlvbmFsIGF1dGhlbnRpY2F0ZWQgZGF0YTwvdGV4dD4KPHJlY3QgeD0iNDI0IiB5PSI0MiIgd2lkdGg9IjM5MiIgaGVpZ2h0PSIxODQiIHJ4PSIxMyIgZmlsbD0iI2ZmZmJlYiIgc3Ryb2tlPSIjZmRlNjhhIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0NDQsNTgpIj48cGF0aCBkPSJNNCA4IFY2IGE1IDUgMCAwIDEgMTAgMCBWOCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYjQ1MzA5IiBzdHJva2Utd2lkdGg9IjEuNyIvPjxyZWN0IHg9IjIiIHk9IjgiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxMSIgcng9IjIuMiIgZmlsbD0iI2I0NTMwOSIvPjxjaXJjbGUgY3g9IjkiIGN5PSIxMi41IiByPSIxLjciIGZpbGw9IiNmZmZiZWIiLz48cmVjdCB4PSI4LjIiIHk9IjEzIiB3aWR0aD0iMS42IiBoZWlnaHQ9IjMuNiIgcng9IjAuOCIgZmlsbD0iI2ZmZmJlYiIvPjwvZz4KPHRleHQgeD0iNDY4IiB5PSI3MiIgdGV4dC1hbmNob3I9InN0YXJ0IiBzdHlsZT0iZm9udDo3MDAgMTIuNXB4IEludGVyLHNhbnMtc2VyaWY7ZmlsbDojYjQ1MzA5Ij5NYW5hZ2VkIEhTTSDCtyBzZXBhcmF0ZSBjb25maWd1cmF0aW9uPC90ZXh0Pgo8dGV4dCB4PSI0NDQiIHk9IjkwIiB0ZXh0LWFuY2hvcj0ic3RhcnQiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6MTBweDtmaWxsOiNiNDUzMDkiPnRoZSBzeW1tZXRyaWMgc3VyZmFjZSBhIHN0YW5kYXJkIHZhdWx0IGRvZXMgbm90IGhvbGQ8L3RleHQ+CjxyZWN0IHg9IjQ0MCIgeT0iMTAyIiB3aWR0aD0iMzYwIiBoZWlnaHQ9IjI2IiByeD0iNiIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZmRlNjhhIi8+Cjx0ZXh0IHg9IjQ1NiIgeT0iMTE5IiB0ZXh0LWFuY2hvcj0ic3RhcnQiIHN0eWxlPSJmb250OjcwMCAxMHB4IEludGVyLHNhbnMtc2VyaWY7ZmlsbDojMzM0MTU1Ij5TeW1tZXRyaWMgQUVTIGtleTwvdGV4dD4KPHRleHQgeD0iNzg4IiB5PSIxMTkiIHRleHQtYW5jaG9yPSJlbmQiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6MTBweDtmaWxsOiNiNDUzMDkiPnN0YW5kYXJkIHZhdWx0OiBub25lPC90ZXh0Pgo8cmVjdCB4PSI0NDAiIHk9IjEzNCIgd2lkdGg9IjM2MCIgaGVpZ2h0PSIyNiIgcng9IjYiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2ZkZTY4YSIvPgo8dGV4dCB4PSI0NTYiIHk9IjE1MSIgdGV4dC1hbmNob3I9InN0YXJ0IiBzdHlsZT0iZm9udDo3MDAgMTBweCBJbnRlcixzYW5zLXNlcmlmO2ZpbGw6IzMzNDE1NSI+RW5jcnlwdGlvbiBjb250ZXh0IChBQUQpPC90ZXh0Pgo8dGV4dCB4PSI3ODgiIHk9IjE1MSIgdGV4dC1hbmNob3I9ImVuZCIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZToxMHB4O2ZpbGw6I2I0NTMwOSI+QUVTLUdDTSBvbmx5PC90ZXh0Pgo8cmVjdCB4PSI0NDAiIHk9IjE2NiIgd2lkdGg9IjM2MCIgaGVpZ2h0PSIyNiIgcng9IjYiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2ZkZTY4YSIvPgo8dGV4dCB4PSI0NTYiIHk9IjE4MyIgdGV4dC1hbmNob3I9InN0YXJ0IiBzdHlsZT0iZm9udDo3MDAgMTBweCBJbnRlcixzYW5zLXNlcmlmO2ZpbGw6IzMzNDE1NSI+SE1BQzogR2VuZXJhdGVNYWMgLyBWZXJpZnlNYWM8L3RleHQ+Cjx0ZXh0IHg9Ijc4OCIgeT0iMTgzIiB0ZXh0LWFuY2hvcj0iZW5kIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjEwcHg7ZmlsbDojYjQ1MzA5Ij5vdGhlciBjb25maWd1cmF0aW9uczwvdGV4dD4KPHRleHQgeD0iNjIwIiB5PSIyMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6OXB4O2ZpbGw6I2I0NTMwOSI+YSBzeW1tZXRyaWMgb3IgSE1BQyBjYWxsIHRvIGEgc3RhbmRhcmQgdmF1bHQgaXMgcmVmdXNlZCwgbm90IGFwcHJveGltYXRlZDwvdGV4dD4KPC9zdmc+" alt="Key Vault Standard supports RSA and EC keys. Symmetric-key options use other Azure configurations." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjM4IiB2aWV3Qm94PSIwIDAgODM2IDIzOCIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJLZXkgVmF1bHQgU3RhbmRhcmQgc3VwcG9ydHMgUlNBIGFuZCBFQyBrZXlzLiBTeW1tZXRyaWMta2V5IG9wdGlvbnMgdXNlIG90aGVyIEF6dXJlIGNvbmZpZ3VyYXRpb25zLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6I2NiZDVlMX08L3N0eWxlPgo8dGV4dCB4PSIyNiIgeT0iMjYiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4OyBmaWxsOiAjYzljZmQ4Ij5LRVkgVkFVTFQgU1RBTkRBUkQgUlNBL0VDIMK3IE9USEVSIE9QVElPTlMgVVNFIERJRkZFUkVOVCBDT05GSUdVUkFUSU9OUzwvdGV4dD4KPHJlY3QgeD0iMjQiIHk9IjQyIiB3aWR0aD0iMzkyIiBoZWlnaHQ9IjE4NCIgcng9IjEzIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+CjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQ0LDU4KSI+PHBhdGggZD0iTTQgOCBWNiBhNSA1IDAgMCAxIDEwIDAgVjgiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwNzhENCIgc3Ryb2tlLXdpZHRoPSIxLjciLz48cmVjdCB4PSIyIiB5PSI4IiB3aWR0aD0iMTQiIGhlaWdodD0iMTEiIHJ4PSIyLjIiIGZpbGw9IiMwMDc4RDQiLz48Y2lyY2xlIGN4PSI5IiBjeT0iMTIuNSIgcj0iMS43IiBmaWxsPSIjMjYyNjI2Ii8+PHJlY3QgeD0iOC4yIiB5PSIxMyIgd2lkdGg9IjEuNiIgaGVpZ2h0PSIzLjYiIHJ4PSIwLjgiIGZpbGw9IiMyNjI2MjYiLz48L2c+Cjx0ZXh0IHg9IjY4IiB5PSI3MiIgdGV4dC1hbmNob3I9InN0YXJ0IiBzdHlsZT0iZm9udDo3MDAgMTIuNXB4IEludGVyLHNhbnMtc2VyaWY7ZmlsbDogIzkwYmNkZSI+U3RhbmRhcmQgS2V5IFZhdWx0IMK3IHRoZSBkZWZhdWx0PC90ZXh0Pgo8dGV4dCB4PSI0NCIgeT0iOTAiIHRleHQtYW5jaG9yPSJzdGFydCIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZToxMHB4Ij5ob2xkcyBSU0EgLyBFQyAoYXN5bW1ldHJpYykga2V5czogc2VydmVkIG5hdGl2ZWx5PC90ZXh0Pgo8cmVjdCB4PSI0MCIgeT0iMTAyIiB3aWR0aD0iMzYwIiBoZWlnaHQ9IjI2IiByeD0iNiIgZmlsbD0iIzFhMzEyNiIgc3Ryb2tlPSIjM2Q2NjUzIi8+CjxjaXJjbGUgY3g9IjU2IiBjeT0iMTE1IiByPSI1IiBmaWxsPSIjMDU5NjY5Ii8+CjxwYXRoIGQ9Ik01My40IDExNSBsMiAyIGwzLjQgLTMuOCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjNTE1MTUxIiBzdHJva2Utd2lkdGg9IjEuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjx0ZXh0IHg9IjcyIiB5PSIxMTkiIHRleHQtYW5jaG9yPSJzdGFydCIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZToxMHB4O2ZpbGw6ICNjOWNmZDgiPlNpZ24gLyBWZXJpZnkgwrcgUlNBIEVuY3J5cHQgLyBEZWNyeXB0IMK3IFB1YmxpYyBrZXk8L3RleHQ+CjxyZWN0IHg9IjQwIiB5PSIxMzQiIHdpZHRoPSIzNjAiIGhlaWdodD0iMjYiIHJ4PSI2IiBmaWxsPSIjMWEzMTI2IiBzdHJva2U9IiMzZDY2NTMiLz4KPGNpcmNsZSBjeD0iNTYiIGN5PSIxNDciIHI9IjUiIGZpbGw9IiMwNTk2NjkiLz4KPHBhdGggZD0iTTUzLjQgMTQ3IGwyIDIgbDMuNCAtMy44IiBmaWxsPSJub25lIiBzdHJva2U9IiM1MTUxNTEiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHRleHQgeD0iNzIiIHk9IjE1MSIgdGV4dC1hbmNob3I9InN0YXJ0IiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjEwcHg7ZmlsbDogI2M5Y2ZkOCI+RW52ZWxvcGU6IEdlbmVyYXRlRGF0YUtleSBzZXJ2ZWQgYXMgUlNBIHdyYXBLZXk8L3RleHQ+CjxyZWN0IHg9IjQwIiB5PSIxNjYiIHdpZHRoPSIzNjAiIGhlaWdodD0iNDYiIHJ4PSI2IiBmaWxsPSIjMWEyNjMxIiBzdHJva2U9IiMzZDUxNjYiLz4KPHRleHQgeD0iMjIwIiB5PSIxODQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6OS41cHg7ZmlsbDogI2M5Y2ZkOCI+UlNBLU9BRVAgZW5jcnlwdCBpcyBib3VuZGVkIGJ5IHRoZSBSU0EgbW9kdWx1cyw8L3RleHQ+Cjx0ZXh0IHg9IjIyMCIgeT0iMTk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjkuNXB4O2ZpbGw6ICNjOWNmZDgiPmFuZCBiaW5kcyBubyBhZGRpdGlvbmFsIGF1dGhlbnRpY2F0ZWQgZGF0YTwvdGV4dD4KPHJlY3QgeD0iNDI0IiB5PSI0MiIgd2lkdGg9IjM5MiIgaGVpZ2h0PSIxODQiIHJ4PSIxMyIgZmlsbD0iIzMxMmQxYSIgc3Ryb2tlPSIjNjY1ZDNkIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0NDQsNTgpIj48cGF0aCBkPSJNNCA4IFY2IGE1IDUgMCAwIDEgMTAgMCBWOCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYjQ1MzA5IiBzdHJva2Utd2lkdGg9IjEuNyIvPjxyZWN0IHg9IjIiIHk9IjgiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxMSIgcng9IjIuMiIgZmlsbD0iI2I0NTMwOSIvPjxjaXJjbGUgY3g9IjkiIGN5PSIxMi41IiByPSIxLjciIGZpbGw9IiMzMTJkMWEiLz48cmVjdCB4PSI4LjIiIHk9IjEzIiB3aWR0aD0iMS42IiBoZWlnaHQ9IjMuNiIgcng9IjAuOCIgZmlsbD0iIzMxMmQxYSIvPjwvZz4KPHRleHQgeD0iNDY4IiB5PSI3MiIgdGV4dC1hbmNob3I9InN0YXJ0IiBzdHlsZT0iZm9udDo3MDAgMTIuNXB4IEludGVyLHNhbnMtc2VyaWY7ZmlsbDogI2RlYjI5MCI+TWFuYWdlZCBIU00gwrcgc2VwYXJhdGUgY29uZmlndXJhdGlvbjwvdGV4dD4KPHRleHQgeD0iNDQ0IiB5PSI5MCIgdGV4dC1hbmNob3I9InN0YXJ0IiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjEwcHg7ZmlsbDogI2RlYjI5MCI+dGhlIHN5bW1ldHJpYyBzdXJmYWNlIGEgc3RhbmRhcmQgdmF1bHQgZG9lcyBub3QgaG9sZDwvdGV4dD4KPHJlY3QgeD0iNDQwIiB5PSIxMDIiIHdpZHRoPSIzNjAiIGhlaWdodD0iMjYiIHJ4PSI2IiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiM2NjVkM2QiLz4KPHRleHQgeD0iNDU2IiB5PSIxMTkiIHRleHQtYW5jaG9yPSJzdGFydCIgc3R5bGU9ImZvbnQ6NzAwIDEwcHggSW50ZXIsc2Fucy1zZXJpZjtmaWxsOiAjYzljZmQ4Ij5TeW1tZXRyaWMgQUVTIGtleTwvdGV4dD4KPHRleHQgeD0iNzg4IiB5PSIxMTkiIHRleHQtYW5jaG9yPSJlbmQiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6MTBweDtmaWxsOiAjZGViMjkwIj5zdGFuZGFyZCB2YXVsdDogbm9uZTwvdGV4dD4KPHJlY3QgeD0iNDQwIiB5PSIxMzQiIHdpZHRoPSIzNjAiIGhlaWdodD0iMjYiIHJ4PSI2IiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiM2NjVkM2QiLz4KPHRleHQgeD0iNDU2IiB5PSIxNTEiIHRleHQtYW5jaG9yPSJzdGFydCIgc3R5bGU9ImZvbnQ6NzAwIDEwcHggSW50ZXIsc2Fucy1zZXJpZjtmaWxsOiAjYzljZmQ4Ij5FbmNyeXB0aW9uIGNvbnRleHQgKEFBRCk8L3RleHQ+Cjx0ZXh0IHg9Ijc4OCIgeT0iMTUxIiB0ZXh0LWFuY2hvcj0iZW5kIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjEwcHg7ZmlsbDogI2RlYjI5MCI+QUVTLUdDTSBvbmx5PC90ZXh0Pgo8cmVjdCB4PSI0NDAiIHk9IjE2NiIgd2lkdGg9IjM2MCIgaGVpZ2h0PSIyNiIgcng9IjYiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzY2NWQzZCIvPgo8dGV4dCB4PSI0NTYiIHk9IjE4MyIgdGV4dC1hbmNob3I9InN0YXJ0IiBzdHlsZT0iZm9udDo3MDAgMTBweCBJbnRlcixzYW5zLXNlcmlmO2ZpbGw6ICNjOWNmZDgiPkhNQUM6IEdlbmVyYXRlTWFjIC8gVmVyaWZ5TWFjPC90ZXh0Pgo8dGV4dCB4PSI3ODgiIHk9IjE4MyIgdGV4dC1hbmNob3I9ImVuZCIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZToxMHB4O2ZpbGw6ICNkZWIyOTAiPm90aGVyIGNvbmZpZ3VyYXRpb25zPC90ZXh0Pgo8dGV4dCB4PSI2MjAiIHk9IjIxMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZTo5cHg7ZmlsbDogI2RlYjI5MCI+YSBzeW1tZXRyaWMgb3IgSE1BQyBjYWxsIHRvIGEgc3RhbmRhcmQgdmF1bHQgaXMgcmVmdXNlZCwgbm90IGFwcHJveGltYXRlZDwvdGV4dD4KPC9zdmc+" alt="Key Vault Standard supports RSA and EC keys. Symmetric-key options use other Azure configurations." />
</div>

<p className="t9-caption">Key Vault Standard supports RSA and EC keys. Symmetric-key options use other Azure configurations.</p>

#### Rotation via a key rotation policy

Key rotation creates a new version for subsequent encryption. Retained, enabled older versions remain available to decrypt existing ciphertext.

The key's rotation policy sets `expire_after` and a `time_after_creation` or `time_before_expiry` trigger. `EnableKeyRotation` configures it, `GetKeyRotationStatus` reads it, and `RotateKeyOnDemand` creates a new version immediately. Previous usable versions remain available for decryption. Removing access to an old key prevents decryption of data encrypted under it.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjUwIiB2aWV3Qm94PSIwIDAgODM2IDI1MCIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJSb3RhdGlvbiBjcmVhdGVzIGEga2V5IHZlcnNpb24gd2hpbGUgcmV0YWluaW5nIG9sZGVyIHZlcnNpb25zIGZvciBleGlzdGluZyBjaXBoZXJ0ZXh0LiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6IzMzNDE1NX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJrdjYiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzk0YTNiOCIvPjwvbWFya2VyPjxtYXJrZXIgaWQ9Imt2NmciIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzA1OTY2OSIvPjwvbWFya2VyPjxtYXJrZXIgaWQ9Imt2NmIiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzAwNzhENCIvPjwvbWFya2VyPjwvZGVmcz4KPHRleHQgeD0iMjYiIHk9IjI2IiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDojMzM0MTU1Ij5ST1RBVElPTiBBRERTIEEgTkVXIFZFUlNJT04gwrcgT0xEIFZFUlNJT05TIFNUQVksIFNPIE9MRCBDSVBIRVJURVhUUyBTVElMTCBERUNSWVBUPC90ZXh0Pgo8cmVjdCB4PSI2MCIgeT0iNDYiIHdpZHRoPSIxNTAiIGhlaWdodD0iNDAiIHJ4PSI5IiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS40Ii8+Cjx0ZXh0IHg9IjEzNSIgeT0iNzEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250LWZhbWlseTp2YXIoLS1tb25vKTtmb250LXNpemU6MTFweDtmaWxsOiM0NzU1NjkiPmtleSB2MTwvdGV4dD4KPGxpbmUgeDE9IjIxMCIgeTE9IjY2IiB4Mj0iMjUyIiB5Mj0iNjYiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIxLjgiIG1hcmtlci1lbmQ9InVybCgja3Y2KSIvPgo8cmVjdCB4PSIyNTYiIHk9IjQ2IiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjQwIiByeD0iOSIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNCIvPgo8dGV4dCB4PSIzMzEiIHk9IjcxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udC1mYW1pbHk6dmFyKC0tbW9ubyk7Zm9udC1zaXplOjExcHg7ZmlsbDojNDc1NTY5Ij5rZXkgdjI8L3RleHQ+CjxsaW5lIHgxPSI0MDYiIHkxPSI2NiIgeDI9IjQ0OCIgeTI9IjY2IiBzdHJva2U9IiMwMDc4RDQiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2t2NmIpIi8+CjxyZWN0IHg9IjQ1MiIgeT0iNDYiIHdpZHRoPSIxODgiIGhlaWdodD0iNDAiIHJ4PSI5IiBmaWxsPSIjZWZmNmZmIiBzdHJva2U9IiMwMDc4RDQiIHN0cm9rZS13aWR0aD0iMS43Ii8+Cjx0ZXh0IHg9IjU0NiIgeT0iNzEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250LWZhbWlseTp2YXIoLS1tb25vKTtmb250LXNpemU6MTFweDtmaWxsOiMwYzVhYTYiPmtleSB2MyDCtyBjdXJyZW50PC90ZXh0Pgo8cmVjdCB4PSI2NjQiIHk9IjQyIiB3aWR0aD0iMTQ4IiBoZWlnaHQ9IjQ4IiByeD0iMTAiIGZpbGw9IiNmN2ZiZmYiIHN0cm9rZT0iI2RiZWFmZSIgc3Ryb2tlLXdpZHRoPSIxLjMiLz4KPHRleHQgeD0iNzM4IiB5PSI2MSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM0NzU1Njk7IGZpbGw6IzBjNWFhNjtmb250LXNpemU6OS41cHgiPnJvdGF0aW9uX3BvbGljeTwvdGV4dD4KPHRleHQgeD0iNzM4IiB5PSI3NyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZTo4LjVweCI+ZXhwaXJlX2FmdGVyIMK3IGF1dG9tYXRpYzwvdGV4dD4KPHRleHQgeD0iNTQ2IiB5PSIxMDYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6OXB4Ij5uZXcgd3JhcHMgYW5kIGVuY3J5cHRzIHVzZSB0aGUgY3VycmVudCB2ZXJzaW9uPC90ZXh0Pgo8bGluZSB4MT0iNTQ2IiB5MT0iODYiIHgyPSI1NDYiIHkyPSIxMDAiIHN0cm9rZT0iIzAwNzhENCIgc3Ryb2tlLXdpZHRoPSIxLjQiIG1hcmtlci1lbmQ9InVybCgja3Y2YikiLz4KPHJlY3QgeD0iNjAiIHk9IjEyOCIgd2lkdGg9IjE5NiIgaGVpZ2h0PSI0NCIgcng9IjEwIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS40Ii8+Cjx0ZXh0IHg9IjE1OCIgeT0iMTQ5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzBmMTcyYTsgZm9udC1zaXplOjExcHgiPk9sZCB3cmFwcGVkIGRhdGEga2V5PC90ZXh0Pgo8dGV4dCB4PSIxNTgiIHk9IjE2NSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZTo5LjVweCI+d3JhcHBlZCB1bmRlciB2MTwvdGV4dD4KPGxpbmUgeDE9IjI1NiIgeTE9IjE1MCIgeDI9IjMzMCIgeTI9IjE1MCIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgja3Y2ZykiLz4KPHRleHQgeD0iMjkzIiB5PSIxNDEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6OC41cHgiPnVud3JhcEtleTwvdGV4dD4KPHJlY3QgeD0iMzM0IiB5PSIxMjgiIHdpZHRoPSIzMDYiIGhlaWdodD0iNDQiIHJ4PSIxMCIgZmlsbD0iI2VjZmRmNSIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI0ODciIHk9IjE0OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDcwMCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNDc4NTc7IGZvbnQtc2l6ZToxMXB4Ij5TdGlsbCBkZWNyeXB0YWJsZTwvdGV4dD4KPHRleHQgeD0iNDg3IiB5PSIxNjUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNDc4NTc7IGZvbnQtc2l6ZTo5LjVweCI+djEgaXMgcmV0YWluZWQ7IHJldGFpbiB2ZXJzaW9ucyBuZWVkZWQgYnkgY2lwaGVydGV4dDwvdGV4dD4KPHJlY3QgeD0iNjAiIHk9IjE5MiIgd2lkdGg9Ijc1MiIgaGVpZ2h0PSI0NCIgcng9IjEwIiBmaWxsPSIjZjhmYWZjIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS4zIi8+Cjx0ZXh0IHg9IjgwIiB5PSIyMTIiIHRleHQtYW5jaG9yPSJzdGFydCIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZToxMHB4O2ZpbGw6IzQ3NTU2OSI+PHRzcGFuIHN0eWxlPSJmb250LXdlaWdodDo3MDA7ZmlsbDojMDA3OEQ0Ij5FbmFibGVLZXlSb3RhdGlvbjwvdHNwYW4+IHNldHMgdGhlIHBvbGljeSDCtyA8dHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OjcwMDtmaWxsOiMwMDc4RDQiPlJvdGF0ZUtleU9uRGVtYW5kPC90c3Bhbj4gcm90YXRlcyBub3csIGNyZWF0aW5nIGEgbmV3IHZlcnNpb248L3RleHQ+Cjx0ZXh0IHg9IjgwIiB5PSIyMjgiIHRleHQtYW5jaG9yPSJzdGFydCIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZTo5LjVweDtmaWxsOiM2NDc0OGIiPktlZXAgb2xkIGtleSB2ZXJzaW9ucyBhY2Nlc3NpYmxlIHdoaWxlIHRoZWlyIGNpcGhlcnRleHQgaXMgbmVlZGVkPC90ZXh0Pgo8L3N2Zz4=" alt="Rotation creates a key version while retaining older versions for existing ciphertext." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjUwIiB2aWV3Qm94PSIwIDAgODM2IDI1MCIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJSb3RhdGlvbiBjcmVhdGVzIGEga2V5IHZlcnNpb24gd2hpbGUgcmV0YWluaW5nIG9sZGVyIHZlcnNpb25zIGZvciBleGlzdGluZyBjaXBoZXJ0ZXh0LiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6I2NiZDVlMX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJrdjYiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzk0YTNiOCIvPjwvbWFya2VyPjxtYXJrZXIgaWQ9Imt2NmciIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzIwZjdiNCIvPjwvbWFya2VyPjxtYXJrZXIgaWQ9Imt2NmIiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzAwNzhENCIvPjwvbWFya2VyPjwvZGVmcz4KPHRleHQgeD0iMjYiIHk9IjI2IiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDogI2M5Y2ZkOCI+Uk9UQVRJT04gQUREUyBBIE5FVyBWRVJTSU9OIMK3IE9MRCBWRVJTSU9OUyBTVEFZLCBTTyBPTEQgQ0lQSEVSVEVYVFMgU1RJTEwgREVDUllQVDwvdGV4dD4KPHJlY3QgeD0iNjAiIHk9IjQ2IiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjQwIiByeD0iOSIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNCIvPgo8dGV4dCB4PSIxMzUiIHk9IjcxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udC1mYW1pbHk6dmFyKC0tbW9ubyk7Zm9udC1zaXplOjExcHg7ZmlsbDogI2M5Y2ZkOCI+a2V5IHYxPC90ZXh0Pgo8bGluZSB4MT0iMjEwIiB5MT0iNjYiIHgyPSIyNTIiIHkyPSI2NiIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNrdjYpIi8+CjxyZWN0IHg9IjI1NiIgeT0iNDYiIHdpZHRoPSIxNTAiIGhlaWdodD0iNDAiIHJ4PSI5IiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS40Ii8+Cjx0ZXh0IHg9IjMzMSIgeT0iNzEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250LWZhbWlseTp2YXIoLS1tb25vKTtmb250LXNpemU6MTFweDtmaWxsOiAjYzljZmQ4Ij5rZXkgdjI8L3RleHQ+CjxsaW5lIHgxPSI0MDYiIHkxPSI2NiIgeDI9IjQ0OCIgeTI9IjY2IiBzdHJva2U9IiMwMDc4RDQiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2t2NmIpIi8+CjxyZWN0IHg9IjQ1MiIgeT0iNDYiIHdpZHRoPSIxODgiIGhlaWdodD0iNDAiIHJ4PSI5IiBmaWxsPSIjMWEyNDMxIiBzdHJva2U9IiMwMDc4RDQiIHN0cm9rZS13aWR0aD0iMS43Ii8+Cjx0ZXh0IHg9IjU0NiIgeT0iNzEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250LWZhbWlseTp2YXIoLS1tb25vKTtmb250LXNpemU6MTFweDtmaWxsOiAjOTBiOGRlIj5rZXkgdjMgwrcgY3VycmVudDwvdGV4dD4KPHJlY3QgeD0iNjY0IiB5PSI0MiIgd2lkdGg9IjE0OCIgaGVpZ2h0PSI0OCIgcng9IjEwIiBmaWxsPSIjMWEyNjMxIiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS4zIi8+Cjx0ZXh0IHg9IjczOCIgeT0iNjEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4OyBmaWxsOiAjOTBiOGRlO2ZvbnQtc2l6ZTo5LjVweCI+cm90YXRpb25fcG9saWN5PC90ZXh0Pgo8dGV4dCB4PSI3MzgiIHk9Ijc3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjguNXB4Ij5leHBpcmVfYWZ0ZXIgwrcgYXV0b21hdGljPC90ZXh0Pgo8dGV4dCB4PSI1NDYiIHk9IjEwNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZTo5cHgiPm5ldyB3cmFwcyBhbmQgZW5jcnlwdHMgdXNlIHRoZSBjdXJyZW50IHZlcnNpb248L3RleHQ+CjxsaW5lIHgxPSI1NDYiIHkxPSI4NiIgeDI9IjU0NiIgeTI9IjEwMCIgc3Ryb2tlPSIjMDA3OEQ0IiBzdHJva2Utd2lkdGg9IjEuNCIgbWFya2VyLWVuZD0idXJsKCNrdjZiKSIvPgo8cmVjdCB4PSI2MCIgeT0iMTI4IiB3aWR0aD0iMTk2IiBoZWlnaHQ9IjQ0IiByeD0iMTAiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjQiLz4KPHRleHQgeD0iMTU4IiB5PSIxNDkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTFweCI+T2xkIHdyYXBwZWQgZGF0YSBrZXk8L3RleHQ+Cjx0ZXh0IHg9IjE1OCIgeT0iMTY1IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjkuNXB4Ij53cmFwcGVkIHVuZGVyIHYxPC90ZXh0Pgo8bGluZSB4MT0iMjU2IiB5MT0iMTUwIiB4Mj0iMzMwIiB5Mj0iMTUwIiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNrdjZnKSIvPgo8dGV4dCB4PSIyOTMiIHk9IjE0MSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZTo4LjVweCI+dW53cmFwS2V5PC90ZXh0Pgo8cmVjdCB4PSIzMzQiIHk9IjEyOCIgd2lkdGg9IjMwNiIgaGVpZ2h0PSI0NCIgcng9IjEwIiBmaWxsPSIjMWEzMTI2IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjQ4NyIgeT0iMTQ5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzkwZGVjODsgZm9udC1zaXplOjExcHgiPlN0aWxsIGRlY3J5cHRhYmxlPC90ZXh0Pgo8dGV4dCB4PSI0ODciIHk9IjE2NSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzkwZGVjODsgZm9udC1zaXplOjkuNXB4Ij52MSBpcyByZXRhaW5lZDsgcmV0YWluIHZlcnNpb25zIG5lZWRlZCBieSBjaXBoZXJ0ZXh0PC90ZXh0Pgo8cmVjdCB4PSI2MCIgeT0iMTkyIiB3aWR0aD0iNzUyIiBoZWlnaHQ9IjQ0IiByeD0iMTAiIGZpbGw9IiMxYTI2MzEiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjMiLz4KPHRleHQgeD0iODAiIHk9IjIxMiIgdGV4dC1hbmNob3I9InN0YXJ0IiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjEwcHg7ZmlsbDogI2M5Y2ZkOCI+PHRzcGFuIHN0eWxlPSJmb250LXdlaWdodDo3MDA7ZmlsbDogIzkwYmNkZSI+RW5hYmxlS2V5Um90YXRpb248L3RzcGFuPiBzZXRzIHRoZSBwb2xpY3kgwrcgPHRzcGFuIHN0eWxlPSJmb250LXdlaWdodDo3MDA7ZmlsbDogIzkwYmNkZSI+Um90YXRlS2V5T25EZW1hbmQ8L3RzcGFuPiByb3RhdGVzIG5vdywgY3JlYXRpbmcgYSBuZXcgdmVyc2lvbjwvdGV4dD4KPHRleHQgeD0iODAiIHk9IjIyOCIgdGV4dC1hbmNob3I9InN0YXJ0IiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjkuNXB4O2ZpbGw6ICNjOWNmZDgiPktlZXAgb2xkIGtleSB2ZXJzaW9ucyBhY2Nlc3NpYmxlIHdoaWxlIHRoZWlyIGNpcGhlcnRleHQgaXMgbmVlZGVkPC90ZXh0Pgo8L3N2Zz4=" alt="Rotation creates a key version while retaining older versions for existing ciphertext." />
</div>

<p className="t9-caption">Rotation creates a key version while retaining older versions for existing ciphertext.</p>

#### Limitations

**Standard-vault algorithms.** This mapping uses RSA and EC keys in Key Vault Standard. RSA encryption has a payload limit determined by its modulus and padding. Data-key generation uses RSA wrapping; the wrapping key is not a symmetric AES key.

**Authenticated context and HMAC.** The mapped RSA-OAEP operations cannot authenticate an AWS encryption context and reject context-bearing requests. Standard vaults have no HMAC key type. Azure Managed HSM supports symmetric keys; Key Vault Premium also offers oct-HSM AES/HMAC in public preview, outside this Standard mapping.

**Authorization and import.** AWS grant and key-policy APIs are not recreated. Use Azure role assignments for target access. Imported material uses the provider key-import procedure; the AWS runtime import handshake is outside this mapping.

**Regions and retention.** This mapping does not create shared-material AWS multi-region replica keys. The adapter recovery window and the vault's native soft-delete retention are distinct; native retention and purge protection can delay final removal.

#### Other considerations

**Choose key protection.** Key Vault Premium can protect RSA and EC keys with an HSM; Managed HSM is a separate service. The Standard RSA/EC profile described here does not claim their additional symmetric-key capabilities.

**Grant access.** Use the deployment's Azure identity and narrowly scoped role assignments. Separate permission to manage keys from permission to decrypt or unwrap data keys.

**Retain and migrate.** Keep old key versions available while ciphertext requires them. Decrypt or unwrap AWS values with the old key and encrypt or wrap under the new key before retiring AWS access. Test context requirements early: this RSA mapping cannot preserve them.

## On OCI

| Operation                           | Area                  | Support      | Depth        | Notes                                                                                                                                                                                         |
| ----------------------------------- | --------------------- | ------------ | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| CreateAlias                         | Aliases               | Supported    | Most usage   | the adapter maintains the alias-to-key mapping and resolves alias references, since OCI has no separate alias object                                                                          |
| DeleteAlias                         | Aliases               | Supported    | Full surface | removes an alias from the mapping                                                                                                                                                             |
| ListAliases                         | Aliases               | Supported    | Most usage   | lists aliases retained in adapter state                                                                                                                                                       |
| UpdateAlias                         | Aliases               | Supported    | Full surface | changes the key referenced by an alias in adapter state                                                                                                                                       |
| DeriveSharedSecret                  | Asymmetric            | Out of scope | Full surface | elliptic-curve shared-secret derivation has no OCI KMS equivalent op and is rejected                                                                                                          |
| GetPublicKey                        | Asymmetric            | Supported    | Most usage   | returns the public half from the key version                                                                                                                                                  |
| Sign                                | Asymmetric            | Supported    | Most usage   | signs a message or digest with an RSA or ECDSA key via OCI Sign                                                                                                                               |
| Verify                              | Asymmetric            | Supported    | Most usage   | verifies natively via OCI Verify                                                                                                                                                              |
| GenerateDataKey                     | Envelope / data keys  | Supported    | Common       | served natively by OCI's GenerateDataEncryptionKey with the plaintext key included: one call returns the plaintext data key alongside its wrapped copy, one data-key operation                |
| GenerateDataKeyPair                 | Envelope / data keys  | Partial      | Most usage   | the native data-key op is symmetric; an asymmetric data-key pair is generated and its private half wrapped by the key, with no native data-key-pair op                                        |
| GenerateDataKeyPairWithoutPlaintext | Envelope / data keys  | Partial      | Full surface | the same, returning only the wrapped private half                                                                                                                                             |
| GenerateDataKeyWithoutPlaintext     | Envelope / data keys  | Supported    | Most usage   | the same native op with the plaintext key excluded, returning only the wrapped data key                                                                                                       |
| CreateGrant                         | Grants                | Out of scope | Most usage   | authorization is governed by OCI IAM policies on the compartment rather than KMS grants, so a grant is rejected                                                                               |
| ListGrants                          | Grants                | Out of scope | Most usage   | there is no grant to list; access is an OCI IAM policy                                                                                                                                        |
| ListRetirableGrants                 | Grants                | Out of scope | Full surface | there is no grant to list                                                                                                                                                                     |
| RetireGrant                         | Grants                | Out of scope | Full surface | there is no grant to retire                                                                                                                                                                   |
| RevokeGrant                         | Grants                | Out of scope | Full surface | there is no grant to revoke                                                                                                                                                                   |
| GenerateMac                         | HMAC                  | Out of scope | Most usage   | OCI KMS has no HMAC key type (its key shapes are AES, RSA, and ECDSA), so a MAC request is rejected                                                                                           |
| VerifyMac                           | HMAC                  | Out of scope | Most usage   | there is no HMAC key to verify against                                                                                                                                                        |
| DeleteImportedKeyMaterial           | Imported key material | Out of scope | Full surface | there is no runtime imported-material lifecycle to drive                                                                                                                                      |
| GetParametersForImport              | Imported key material | Out of scope | Full surface | material is imported through OCI wrapping-key and key-import operations at provisioning; EXTERNAL key-manager references are separate                                                         |
| ImportKeyMaterial                   | Imported key material | Out of scope | Full surface | the AWS runtime import handshake is outside this mapping; material uses the OCI import workflow at provisioning                                                                               |
| CancelKeyDeletion                   | Key management        | Supported    | Full surface | cancels the scheduled deletion and leaves the adapter key disabled until EnableKey                                                                                                            |
| CreateKey                           | Key management        | Supported    | Common       | the equivalent OCI key is created with the matching key shape (AES, RSA, or ECDSA) and protection mode; the key usage and material spec translate to the shape's algorithm, length, and curve |
| DescribeKey                         | Key management        | Supported    | Common       | reads the key metadata off the key: identifier, shape, protection mode, state, and rotation                                                                                                   |
| DisableKey                          | Key management        | Supported    | Most usage   | sets the key's desired state to disabled                                                                                                                                                      |
| EnableKey                           | Key management        | Supported    | Most usage   | sets the key's desired state to enabled                                                                                                                                                       |
| ListKeys                            | Key management        | Supported    | Common       | lists the keys in the vault                                                                                                                                                                   |
| ScheduleKeyDeletion                 | Key management        | Partial      | Most usage   | schedules deletion at an absolute time-of-deletion within the same 7-30-day window as AWS KMS, rather than a relative pending-window duration                                                 |
| UpdateKeyDescription                | Key management        | Supported    | Full surface | updates the key's display name                                                                                                                                                                |
| GetKeyPolicy                        | Key policy            | Out of scope | Most usage   | there is no per-key policy document to read                                                                                                                                                   |
| ListKeyPolicies                     | Key policy            | Out of scope | Full surface | there is no per-key policy document to list                                                                                                                                                   |
| PutKeyPolicy                        | Key policy            | Out of scope | Most usage   | access is governed by OCI IAM rather than a per-key policy document, so a per-key policy is rejected                                                                                          |
| ReplicateKey                        | Multi-region          | Partial      | Full surface | multi-region is served by vault replication, which replicates the whole vault rather than a single key, so the scope differs from a per-key replica                                           |
| UpdatePrimaryRegion                 | Multi-region          | Out of scope | Full surface | replication is whole-vault, so there is no per-key primary region to move                                                                                                                     |
| GenerateRandom                      | Random                | Supported    | Full surface | cryptographic random bytes are generated by the adapter; no key is touched                                                                                                                    |
| DisableKeyRotation                  | Rotation              | Supported    | Full surface | turns off automatic rotation                                                                                                                                                                  |
| EnableKeyRotation                   | Rotation              | Supported    | Most usage   | turns on automatic rotation via the key's auto-rotation setting                                                                                                                               |
| GetKeyRotationStatus                | Rotation              | Supported    | Most usage   | reports whether rotation is on and the configured interval                                                                                                                                    |
| RotateKeyOnDemand                   | Rotation              | Supported    | Full surface | rotates the key on demand, creating a new key version                                                                                                                                         |
| Decrypt                             | Symmetric crypto      | Supported    | Common       | decrypts and re-checks the associated data; a mismatch fails the decrypt, exactly as it does natively                                                                                         |
| Encrypt                             | Symmetric crypto      | Supported    | Common       | encrypts under a symmetric AES key via the vault's crypto endpoint; the encryption context is passed as OCI associated data, so a matching context is required to decrypt                     |
| ReEncrypt                           | Symmetric crypto      | Partial      | Most usage   | there is no single re-encrypt op; the adapter serves it as a decrypt-then-encrypt across the two keys, and the plaintext is never returned to the caller                                      |
| ListResourceTags                    | Tags                  | Supported    | Full surface | lists the tags on the key                                                                                                                                                                     |
| TagResource                         | Tags                  | Supported    | Full surface | attaches key/value tags (as freeform or defined tags)                                                                                                                                         |
| UntagResource                       | Tags                  | Supported    | Full surface | removes tags                                                                                                                                                                                  |

#### How it works

Tensor9 runs a KMS adapter in the customer environment and sets `AWS_ENDPOINT_URL_KMS` to its loopback endpoint. The adapter accepts the application's AWS SDK calls, including `Encrypt`, `Decrypt`, and `GenerateDataKey`, and translates them to OCI KMS. The service retains the wrapping key; data-key operations can return a plaintext data key for the application to use.

OCI KMS supports symmetric AES keys, authenticated encryption context, asymmetric signing, and a native data-key generation operation. HMAC and AWS key-policy and grant APIs are unsupported; key access uses OCI IAM.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTkyIiB2aWV3Qm94PSIwIDAgODM2IDE5MiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgYWRhcHRlciB0cmFuc2xhdGVzIEFXUyBLTVMgcmVxdWVzdHMgdG8gT0NJIEtNUy4iPjxzdHlsZT50ZXh0e2ZvbnQtZmFtaWx5OkludGVyLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCdTZWdvZSBVSScsUm9ib3RvLCdIZWx2ZXRpY2EgTmV1ZScsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiMzMzQxNTV9PC9zdHlsZT4KPGRlZnM+PG1hcmtlciBpZD0ia21zb2NpMSIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI4IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNyIgbWFya2VySGVpZ2h0PSI3IiBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSI+PHBhdGggZD0iTTAsMCBMMTAsNSBMMCwxMCB6IiBmaWxsPSIjOTRhM2I4Ii8+PC9tYXJrZXI+PC9kZWZzPgo8cmVjdCB4PSIxNiIgeT0iNDQiIHdpZHRoPSIzODQiIGhlaWdodD0iMTMwIiByeD0iMTQiIGZpbGw9IiNmOGZhZmMiIHN0cm9rZT0iI2NiZDVlMSIgc3Ryb2tlLXdpZHRoPSIxLjQiIHN0cm9rZS1kYXNoYXJyYXk9IjUgNSIvPgo8dGV4dCB4PSIzMCIgeT0iNjIiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4OyBmaWxsOiM5NGEzYjgiPk9OIEFXUyBUT0RBWTwvdGV4dD4KPHJlY3QgeD0iMzAiIHk9IjgyIiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjY2IiByeD0iMTEiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iODUiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMi41cHgiPllvdXIgYXBwPC90ZXh0Pgo8dGV4dCB4PSI4NSIgeT0iMTI4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjEwcHgiPkFXUyBLTVMgU0RLPC90ZXh0Pgo8bGluZSB4MT0iMTQwIiB5MT0iMTE1IiB4Mj0iMjE2IiB5Mj0iMTE1IiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNrbXNvY2kxKSIvPgo8dGV4dCB4PSIxNzgiIHk9IjEwNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZTo4LjVweCI+RW5jcnlwdDwvdGV4dD4KPHRleHQgeD0iMTc4IiB5PSIxMzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6OC41cHgiPkRlY3J5cHQ8L3RleHQ+CjxyZWN0IHg9IjIyMCIgeT0iODAiIHdpZHRoPSIxNjQiIGhlaWdodD0iNzAiIHJ4PSIxMSIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSIzMDIiIHk9IjEwOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMi41cHgiPkFXUyBLTVM8L3RleHQ+Cjx0ZXh0IHg9IjMwMiIgeT0iMTI2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjEwcHgiPndyYXBwaW5nIGtleSBzdGF5cyBpbiBzZXJ2aWNlPC90ZXh0Pgo8bGluZSB4MT0iNDE4IiB5MT0iNDAiIHgyPSI0MTgiIHkyPSIxNjQiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjQiLz4KPHJlY3QgeD0iNDM2IiB5PSI0NCIgd2lkdGg9IjM4NCIgaGVpZ2h0PSIxMzAiIHJ4PSIxNCIgZmlsbD0iI2Y4ZmFmYyIgc3Ryb2tlPSIjY2JkNWUxIiBzdHJva2Utd2lkdGg9IjEuNCIgc3Ryb2tlLWRhc2hhcnJheT0iNSA1Ii8+Cjx0ZXh0IHg9IjQ1MCIgeT0iNjIiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4OyBmaWxsOiMwNDc4NTciPk9OIFRIRSBUQVJHRVQgQ0xPVUQ8L3RleHQ+CjxyZWN0IHg9IjQ0OCIgeT0iODIiIHdpZHRoPSI4NiIgaGVpZ2h0PSI2NiIgcng9IjExIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjQ5MSIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzBmMTcyYTsgZm9udC1zaXplOjEycHgiPllvdXIgYXBwPC90ZXh0Pgo8dGV4dCB4PSI0OTEiIHk9IjEyOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDYwMCAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDU5NjY5Ij5zYW1lIFNESzwvdGV4dD4KPGxpbmUgeDE9IjUzNCIgeTE9IjExNSIgeDI9IjU2NCIgeTI9IjExNSIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgja21zb2NpMSkiLz4KPHJlY3QgeD0iNTY4IiB5PSI3NiIgd2lkdGg9IjExOCIgaGVpZ2h0PSI4MiIgcng9IjExIiBmaWxsPSIjZWNmZGY1IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS43Ii8+Cjx0ZXh0IHg9IjYyNyIgeT0iMTAyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NzsgZm9udC1zaXplOjEycHgiPlRlbnNvcjk8L3RleHQ+Cjx0ZXh0IHg9IjYyNyIgeT0iMTE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3Ij5LTVMgQVBJPC90ZXh0Pgo8dGV4dCB4PSI2MjciIHk9IjEzMSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NyI+YWRhcHRlcjwvdGV4dD4KPGxpbmUgeDE9IjY4NiIgeTE9IjExNSIgeDI9IjcxMiIgeTI9IjExNSIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgja21zb2NpMSkiLz4KPHJlY3QgeD0iNzE0IiB5PSI3NiIgd2lkdGg9IjEwMiIgaGVpZ2h0PSI4MiIgcng9IjExIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNDNzQ2MzQiIHN0cm9rZS13aWR0aD0iMS42Ii8+Cjx0ZXh0IHg9Ijc2NSIgeT0iMTAxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDo3MDAgMTFweCBJbnRlcixzYW5zLXNlcmlmO2ZpbGw6I0M3NDYzNCI+T0NJIEtNUzwvdGV4dD4KPHRleHQgeD0iNzY1IiB5PSIxMTciIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6MTBweCI+YSBWYXVsdCBvZjwvdGV4dD4KPHRleHQgeD0iNzY1IiB5PSIxMzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6OXB4Ij5tYXN0ZXIga2V5czwvdGV4dD4KPC9zdmc+" alt="The adapter translates AWS KMS requests to OCI KMS." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTkyIiB2aWV3Qm94PSIwIDAgODM2IDE5MiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgYWRhcHRlciB0cmFuc2xhdGVzIEFXUyBLTVMgcmVxdWVzdHMgdG8gT0NJIEtNUy4iPjxzdHlsZT50ZXh0e2ZvbnQtZmFtaWx5OkludGVyLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCdTZWdvZSBVSScsUm9ib3RvLCdIZWx2ZXRpY2EgTmV1ZScsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiNjYmQ1ZTF9PC9zdHlsZT4KPGRlZnM+PG1hcmtlciBpZD0ia21zb2NpMSIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI4IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNyIgbWFya2VySGVpZ2h0PSI3IiBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSI+PHBhdGggZD0iTTAsMCBMMTAsNSBMMCwxMCB6IiBmaWxsPSIjOTRhM2I4Ii8+PC9tYXJrZXI+PC9kZWZzPgo8cmVjdCB4PSIxNiIgeT0iNDQiIHdpZHRoPSIzODQiIGhlaWdodD0iMTMwIiByeD0iMTQiIGZpbGw9IiMxYTI2MzEiIHN0cm9rZT0iIzNkNGY2NiIgc3Ryb2tlLXdpZHRoPSIxLjQiIHN0cm9rZS1kYXNoYXJyYXk9IjUgNSIvPgo8dGV4dCB4PSIzMCIgeT0iNjIiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4OyBmaWxsOiAjOTRhM2I4Ij5PTiBBV1MgVE9EQVk8L3RleHQ+CjxyZWN0IHg9IjMwIiB5PSI4MiIgd2lkdGg9IjExMCIgaGVpZ2h0PSI2NiIgcng9IjExIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9Ijg1IiB5PSIxMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTIuNXB4Ij5Zb3VyIGFwcDwvdGV4dD4KPHRleHQgeD0iODUiIHk9IjEyOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZToxMHB4Ij5BV1MgS01TIFNESzwvdGV4dD4KPGxpbmUgeDE9IjE0MCIgeTE9IjExNSIgeDI9IjIxNiIgeTI9IjExNSIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgja21zb2NpMSkiLz4KPHRleHQgeD0iMTc4IiB5PSIxMDYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6OC41cHgiPkVuY3J5cHQ8L3RleHQ+Cjx0ZXh0IHg9IjE3OCIgeT0iMTMwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjguNXB4Ij5EZWNyeXB0PC90ZXh0Pgo8cmVjdCB4PSIyMjAiIHk9IjgwIiB3aWR0aD0iMTY0IiBoZWlnaHQ9IjcwIiByeD0iMTEiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMzAyIiB5PSIxMDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTIuNXB4Ij5BV1MgS01TPC90ZXh0Pgo8dGV4dCB4PSIzMDIiIHk9IjEyNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZToxMHB4Ij53cmFwcGluZyBrZXkgc3RheXMgaW4gc2VydmljZTwvdGV4dD4KPGxpbmUgeDE9IjQxOCIgeTE9IjQwIiB4Mj0iNDE4IiB5Mj0iMTY0IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS40Ii8+CjxyZWN0IHg9IjQzNiIgeT0iNDQiIHdpZHRoPSIzODQiIGhlaWdodD0iMTMwIiByeD0iMTQiIGZpbGw9IiMxYTI2MzEiIHN0cm9rZT0iIzNkNGY2NiIgc3Ryb2tlLXdpZHRoPSIxLjQiIHN0cm9rZS1kYXNoYXJyYXk9IjUgNSIvPgo8dGV4dCB4PSI0NTAiIHk9IjYyIiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDogIzkwZGVjOCI+T04gVEhFIFRBUkdFVCBDTE9VRDwvdGV4dD4KPHJlY3QgeD0iNDQ4IiB5PSI4MiIgd2lkdGg9Ijg2IiBoZWlnaHQ9IjY2IiByeD0iMTEiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNDkxIiB5PSIxMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTJweCI+WW91ciBhcHA8L3RleHQ+Cjx0ZXh0IHg9IjQ5MSIgeT0iMTI4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjAwIDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzYiPnNhbWUgU0RLPC90ZXh0Pgo8bGluZSB4MT0iNTM0IiB5MT0iMTE1IiB4Mj0iNTY0IiB5Mj0iMTE1IiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNrbXNvY2kxKSIvPgo8cmVjdCB4PSI1NjgiIHk9Ijc2IiB3aWR0aD0iMTE4IiBoZWlnaHQ9IjgyIiByeD0iMTEiIGZpbGw9IiMxYTMxMjYiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIxLjciLz4KPHRleHQgeD0iNjI3IiB5PSIxMDIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4OyBmb250LXNpemU6MTJweCI+VGVuc29yOTwvdGV4dD4KPHRleHQgeD0iNjI3IiB5PSIxMTciIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzgiPktNUyBBUEk8L3RleHQ+Cjx0ZXh0IHg9IjYyNyIgeT0iMTMxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4Ij5hZGFwdGVyPC90ZXh0Pgo8bGluZSB4MT0iNjg2IiB5MT0iMTE1IiB4Mj0iNzEyIiB5Mj0iMTE1IiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNrbXNvY2kxKSIvPgo8cmVjdCB4PSI3MTQiIHk9Ijc2IiB3aWR0aD0iMTAyIiBoZWlnaHQ9IjgyIiByeD0iMTEiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iI0M3NDYzNCIgc3Ryb2tlLXdpZHRoPSIxLjYiLz4KPHRleHQgeD0iNzY1IiB5PSIxMDEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OjcwMCAxMXB4IEludGVyLHNhbnMtc2VyaWY7ZmlsbDogI2Q4Y2JjOSI+T0NJIEtNUzwvdGV4dD4KPHRleHQgeD0iNzY1IiB5PSIxMTciIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6MTBweCI+YSBWYXVsdCBvZjwvdGV4dD4KPHRleHQgeD0iNzY1IiB5PSIxMzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6OXB4Ij5tYXN0ZXIga2V5czwvdGV4dD4KPC9zdmc+" alt="The adapter translates AWS KMS requests to OCI KMS." />
</div>

<p className="t9-caption">The adapter translates AWS KMS requests to OCI KMS.</p>

#### Key identity and lifecycle

The adapter keeps durable records for AWS key identities, aliases, tags, and lifecycle state. Key creation provisions the corresponding target key. Later requests resolve the AWS identity to that key; the target service performs cryptographic operations and retains its wrapping key material.

An alias is a mutable reference in adapter state. Updating it changes which key subsequent alias-based requests select; it does not move key material or rewrite existing ciphertext. Back up adapter state and retain the target keys and versions needed to decrypt stored data.

Scheduled deletion records a recovery window of 7-30 days, with 30 days as the default. Cancelling the request returns the key to a disabled state; enable it explicitly before using it again. Final target destruction follows the target's retention rules, which may delay physical removal beyond the adapter's recovery window.

#### The Vault and its master keys

An OCI Vault holds master encryption keys. `protection_mode` selects `SOFTWARE`, `HSM` (a hardware security module), or `EXTERNAL` (a reference to an external key manager). `DEFAULT` vaults share an HSM partition; `VIRTUAL_PRIVATE` vaults have a dedicated partition.

The adapter uses two OCI clients. Cryptographic requests, including encryption, decryption, data-key generation, and signing, use `crypto_endpoint`. Key creation, rotation configuration, and scheduled deletion use `management_endpoint`.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjY4IiB2aWV3Qm94PSIwIDAgODM2IDI2OCIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJDcnlwdG9ncmFwaGljIHJlcXVlc3RzIHVzZSBjcnlwdG9fZW5kcG9pbnQ7IGtleSBtYW5hZ2VtZW50IHVzZXMgbWFuYWdlbWVudF9lbmRwb2ludC4iPjxzdHlsZT50ZXh0e2ZvbnQtZmFtaWx5OkludGVyLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCdTZWdvZSBVSScsUm9ib3RvLCdIZWx2ZXRpY2EgTmV1ZScsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiMzMzQxNTV9PC9zdHlsZT4KPGRlZnM+PG1hcmtlciBpZD0ia21zb2NpMmciIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzA1OTY2OSIvPjwvbWFya2VyPjxtYXJrZXIgaWQ9Imttc29jaTJyIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiNDNzQ2MzQiLz48L21hcmtlcj48L2RlZnM+Cjx0ZXh0IHg9IjI2IiB5PSIyNiIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6IzMzNDE1NSI+QSBLRVkgSVMgQSBNQVNURVIgRU5DUllQVElPTiBLRVkgSEVMRCBJTiBBIFZBVUxUIMK3IFNPRlRXQVJFLSBPUiBIU00tUFJPVEVDVEVEPC90ZXh0Pgo8cmVjdCB4PSIyNCIgeT0iNDAiIHdpZHRoPSI3ODgiIGhlaWdodD0iOTgiIHJ4PSIxMyIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjQzc0NjM0IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI0NCIgeT0iNjIiIHN0eWxlPSJmb250OjcwMCAxMS41cHggSW50ZXIsc2Fucy1zZXJpZjtmaWxsOiNDNzQ2MzQiPlRoZSBPQ0kgVmF1bHQ6IGEga2V5c3RvcmUgb2YgbWFzdGVyIGVuY3J5cHRpb24ga2V5czwvdGV4dD4KPHRleHQgeD0iNDQiIHk9Ijc5IiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjEwcHgiPnZhdWx0X3R5cGU6IERFRkFVTFQgKHNoYXJlZCBIU00gcGFydGl0aW9uKSDCtyBvciBWSVJUVUFMX1BSSVZBVEUgKGEgZGVkaWNhdGVkIHBhcnRpdGlvbik8L3RleHQ+CjxyZWN0IHg9IjQ0IiB5PSI5MiIgd2lkdGg9IjIzNiIgaGVpZ2h0PSIzNCIgcng9IjgiIGZpbGw9IiNmOGZhZmMiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjMiLz4KPGNpcmNsZSBjeD0iNjQiIGN5PSIxMDkiIHI9IjQuNSIgZmlsbD0iIzA1OTY2OSIvPgo8dGV4dCB4PSI3OCIgeT0iMTA2IiBzdHlsZT0iZm9udDo3MDAgMTBweCB2YXIoLS1tb25vKTtmaWxsOiM0NzU1NjkiPmtleSDCtyBBRVM8L3RleHQ+Cjx0ZXh0IHg9Ijc4IiB5PSIxMTkiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6OXB4Ij5wcm90ZWN0aW9uX21vZGUgU09GVFdBUkU8L3RleHQ+CjxyZWN0IHg9IjI5MiIgeT0iOTIiIHdpZHRoPSIyMzYiIGhlaWdodD0iMzQiIHJ4PSI4IiBmaWxsPSIjZjhmYWZjIiBzdHJva2U9IiNDNzQ2MzQiIHN0cm9rZS13aWR0aD0iMS40Ii8+CjxjaXJjbGUgY3g9IjMxMiIgY3k9IjEwOSIgcj0iNC41IiBmaWxsPSIjQzc0NjM0Ii8+Cjx0ZXh0IHg9IjMyNiIgeT0iMTA2IiBzdHlsZT0iZm9udDo3MDAgMTBweCB2YXIoLS1tb25vKTtmaWxsOiM0NzU1NjkiPmtleSDCtyBSU0E8L3RleHQ+Cjx0ZXh0IHg9IjMyNiIgeT0iMTE5IiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjlweCI+cHJvdGVjdGlvbl9tb2RlIEhTTSDCtyBpbiBoYXJkd2FyZTwvdGV4dD4KPHJlY3QgeD0iNTQwIiB5PSI5MiIgd2lkdGg9IjI0OCIgaGVpZ2h0PSIzNCIgcng9IjgiIGZpbGw9IiNmOGZhZmMiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjMiLz4KPGNpcmNsZSBjeD0iNTYwIiBjeT0iMTA5IiByPSI0LjUiIGZpbGw9IiM5NGEzYjgiLz4KPHRleHQgeD0iNTc0IiB5PSIxMDYiIHN0eWxlPSJmb250OjcwMCAxMHB4IHZhcigtLW1vbm8pO2ZpbGw6IzQ3NTU2OSI+a2V5IMK3IEVYVEVSTkFMPC90ZXh0Pgo8dGV4dCB4PSI1NzQiIHk9IjExOSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZTo5cHgiPmhlbGQgaW4geW91ciBvd24ga2V5IG1hbmFnZXI8L3RleHQ+Cjx0ZXh0IHg9IjI2IiB5PSIxNjYiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4OyBmaWxsOiMwNDc4NTciPk9ORSBWQVVMVCwgVFdPIEVORFBPSU5UUyDCtyBDUllQVE9HUkFQSElDIEFORCBNQU5BR0VNRU5UIFJFUVVFU1RTPC90ZXh0Pgo8cmVjdCB4PSIyNCIgeT0iMTc4IiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjM0IiByeD0iOCIgZmlsbD0iI2VjZmRmNSIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNCIvPgo8dGV4dCB4PSI5OSIgeT0iMTk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NzsgZm9udC1zaXplOjExcHgiPmNyeXB0bzwvdGV4dD4KPGxpbmUgeDE9IjE3NCIgeTE9IjE5NSIgeDI9IjIwNCIgeTI9IjE5NSIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgja21zb2NpMmcpIi8+CjxyZWN0IHg9IjIwOCIgeT0iMTc4IiB3aWR0aD0iNjA0IiBoZWlnaHQ9IjM0IiByeD0iOCIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuMyIvPgo8dGV4dCB4PSIyMjQiIHk9IjE5MyIgc3R5bGU9ImZvbnQ6NzAwIDEwLjVweCB2YXIoLS1tb25vKTtmaWxsOiMwNDc4NTciPmNyeXB0b19lbmRwb2ludCDCtyBkYXRhIHBsYW5lPC90ZXh0Pgo8dGV4dCB4PSI3OTYiIHk9IjE5OSIgdGV4dC1hbmNob3I9ImVuZCIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZTo5LjVweCI+RW5jcnlwdCDCtyBEZWNyeXB0IMK3IEdlbmVyYXRlRGF0YUVuY3J5cHRpb25LZXkgwrcgU2lnbiDCtyBWZXJpZnk8L3RleHQ+CjxyZWN0IHg9IjI0IiB5PSIyMTgiIHdpZHRoPSIxNTAiIGhlaWdodD0iMzQiIHJ4PSI4IiBmaWxsPSIjZmZmIiBzdHJva2U9IiNDNzQ2MzQiIHN0cm9rZS13aWR0aD0iMS40Ii8+Cjx0ZXh0IHg9Ijk5IiB5PSIyMzkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OjcwMCAxMXB4IEludGVyLHNhbnMtc2VyaWY7ZmlsbDojQzc0NjM0Ij5tYW5hZ2VtZW50PC90ZXh0Pgo8bGluZSB4MT0iMTc0IiB5MT0iMjM1IiB4Mj0iMjA0IiB5Mj0iMjM1IiBzdHJva2U9IiNDNzQ2MzQiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNrbXNvY2kycikiLz4KPHJlY3QgeD0iMjA4IiB5PSIyMTgiIHdpZHRoPSI2MDQiIGhlaWdodD0iMzQiIHJ4PSI4IiBmaWxsPSIjZmZmIiBzdHJva2U9IiNjYmQ1ZTEiIHN0cm9rZS13aWR0aD0iMS4zIi8+Cjx0ZXh0IHg9IjIyNCIgeT0iMjMzIiBzdHlsZT0iZm9udDo3MDAgMTAuNXB4IHZhcigtLW1vbm8pO2ZpbGw6IzQ3NTU2OSI+bWFuYWdlbWVudF9lbmRwb2ludCDCtyBjb250cm9sIHBsYW5lPC90ZXh0Pgo8dGV4dCB4PSI3OTYiIHk9IjIzOSIgdGV4dC1hbmNob3I9ImVuZCIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZTo5LjVweCI+Y3JlYXRlIGtleSDCtyB0dXJuIG9uIHJvdGF0aW9uIMK3IHNjaGVkdWxlIGRlbGV0aW9uPC90ZXh0Pgo8L3N2Zz4=" alt="Cryptographic requests use crypto_endpoint; key management uses management_endpoint." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjY4IiB2aWV3Qm94PSIwIDAgODM2IDI2OCIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJDcnlwdG9ncmFwaGljIHJlcXVlc3RzIHVzZSBjcnlwdG9fZW5kcG9pbnQ7IGtleSBtYW5hZ2VtZW50IHVzZXMgbWFuYWdlbWVudF9lbmRwb2ludC4iPjxzdHlsZT50ZXh0e2ZvbnQtZmFtaWx5OkludGVyLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCdTZWdvZSBVSScsUm9ib3RvLCdIZWx2ZXRpY2EgTmV1ZScsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiNjYmQ1ZTF9PC9zdHlsZT4KPGRlZnM+PG1hcmtlciBpZD0ia21zb2NpMmciIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzIwZjdiNCIvPjwvbWFya2VyPjxtYXJrZXIgaWQ9Imttc29jaTJyIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiNDNzQ2MzQiLz48L21hcmtlcj48L2RlZnM+Cjx0ZXh0IHg9IjI2IiB5PSIyNiIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6ICNjOWNmZDgiPkEgS0VZIElTIEEgTUFTVEVSIEVOQ1JZUFRJT04gS0VZIEhFTEQgSU4gQSBWQVVMVCDCtyBTT0ZUV0FSRS0gT1IgSFNNLVBST1RFQ1RFRDwvdGV4dD4KPHJlY3QgeD0iMjQiIHk9IjQwIiB3aWR0aD0iNzg4IiBoZWlnaHQ9Ijk4IiByeD0iMTMiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iI0M3NDYzNCIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNDQiIHk9IjYyIiBzdHlsZT0iZm9udDo3MDAgMTEuNXB4IEludGVyLHNhbnMtc2VyaWY7ZmlsbDogI2Q4Y2JjOSI+VGhlIE9DSSBWYXVsdDogYSBrZXlzdG9yZSBvZiBtYXN0ZXIgZW5jcnlwdGlvbiBrZXlzPC90ZXh0Pgo8dGV4dCB4PSI0NCIgeT0iNzkiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6MTBweCI+dmF1bHRfdHlwZTogREVGQVVMVCAoc2hhcmVkIEhTTSBwYXJ0aXRpb24pIMK3IG9yIFZJUlRVQUxfUFJJVkFURSAoYSBkZWRpY2F0ZWQgcGFydGl0aW9uKTwvdGV4dD4KPHJlY3QgeD0iNDQiIHk9IjkyIiB3aWR0aD0iMjM2IiBoZWlnaHQ9IjM0IiByeD0iOCIgZmlsbD0iIzFhMjYzMSIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuMyIvPgo8Y2lyY2xlIGN4PSI2NCIgY3k9IjEwOSIgcj0iNC41IiBmaWxsPSIjMDU5NjY5Ii8+Cjx0ZXh0IHg9Ijc4IiB5PSIxMDYiIHN0eWxlPSJmb250OjcwMCAxMHB4IHZhcigtLW1vbm8pO2ZpbGw6ICNjOWNmZDgiPmtleSDCtyBBRVM8L3RleHQ+Cjx0ZXh0IHg9Ijc4IiB5PSIxMTkiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6OXB4Ij5wcm90ZWN0aW9uX21vZGUgU09GVFdBUkU8L3RleHQ+CjxyZWN0IHg9IjI5MiIgeT0iOTIiIHdpZHRoPSIyMzYiIGhlaWdodD0iMzQiIHJ4PSI4IiBmaWxsPSIjMWEyNjMxIiBzdHJva2U9IiNDNzQ2MzQiIHN0cm9rZS13aWR0aD0iMS40Ii8+CjxjaXJjbGUgY3g9IjMxMiIgY3k9IjEwOSIgcj0iNC41IiBmaWxsPSIjQzc0NjM0Ii8+Cjx0ZXh0IHg9IjMyNiIgeT0iMTA2IiBzdHlsZT0iZm9udDo3MDAgMTBweCB2YXIoLS1tb25vKTtmaWxsOiAjYzljZmQ4Ij5rZXkgwrcgUlNBPC90ZXh0Pgo8dGV4dCB4PSIzMjYiIHk9IjExOSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZTo5cHgiPnByb3RlY3Rpb25fbW9kZSBIU00gwrcgaW4gaGFyZHdhcmU8L3RleHQ+CjxyZWN0IHg9IjU0MCIgeT0iOTIiIHdpZHRoPSIyNDgiIGhlaWdodD0iMzQiIHJ4PSI4IiBmaWxsPSIjMWEyNjMxIiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS4zIi8+CjxjaXJjbGUgY3g9IjU2MCIgY3k9IjEwOSIgcj0iNC41IiBmaWxsPSIjMWUyNDJkIi8+Cjx0ZXh0IHg9IjU3NCIgeT0iMTA2IiBzdHlsZT0iZm9udDo3MDAgMTBweCB2YXIoLS1tb25vKTtmaWxsOiAjYzljZmQ4Ij5rZXkgwrcgRVhURVJOQUw8L3RleHQ+Cjx0ZXh0IHg9IjU3NCIgeT0iMTE5IiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjlweCI+aGVsZCBpbiB5b3VyIG93biBrZXkgbWFuYWdlcjwvdGV4dD4KPHRleHQgeD0iMjYiIHk9IjE2NiIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6ICM5MGRlYzgiPk9ORSBWQVVMVCwgVFdPIEVORFBPSU5UUyDCtyBDUllQVE9HUkFQSElDIEFORCBNQU5BR0VNRU5UIFJFUVVFU1RTPC90ZXh0Pgo8cmVjdCB4PSIyNCIgeT0iMTc4IiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjM0IiByeD0iOCIgZmlsbD0iIzFhMzEyNiIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNCIvPgo8dGV4dCB4PSI5OSIgeT0iMTk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzkwZGVjODsgZm9udC1zaXplOjExcHgiPmNyeXB0bzwvdGV4dD4KPGxpbmUgeDE9IjE3NCIgeTE9IjE5NSIgeDI9IjIwNCIgeTI9IjE5NSIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgja21zb2NpMmcpIi8+CjxyZWN0IHg9IjIwOCIgeT0iMTc4IiB3aWR0aD0iNjA0IiBoZWlnaHQ9IjM0IiByeD0iOCIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuMyIvPgo8dGV4dCB4PSIyMjQiIHk9IjE5MyIgc3R5bGU9ImZvbnQ6NzAwIDEwLjVweCB2YXIoLS1tb25vKTtmaWxsOiAjOTBkZWM4Ij5jcnlwdG9fZW5kcG9pbnQgwrcgZGF0YSBwbGFuZTwvdGV4dD4KPHRleHQgeD0iNzk2IiB5PSIxOTkiIHRleHQtYW5jaG9yPSJlbmQiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6OS41cHgiPkVuY3J5cHQgwrcgRGVjcnlwdCDCtyBHZW5lcmF0ZURhdGFFbmNyeXB0aW9uS2V5IMK3IFNpZ24gwrcgVmVyaWZ5PC90ZXh0Pgo8cmVjdCB4PSIyNCIgeT0iMjE4IiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjM0IiByeD0iOCIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjQzc0NjM0IiBzdHJva2Utd2lkdGg9IjEuNCIvPgo8dGV4dCB4PSI5OSIgeT0iMjM5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDo3MDAgMTFweCBJbnRlcixzYW5zLXNlcmlmO2ZpbGw6ICNkOGNiYzkiPm1hbmFnZW1lbnQ8L3RleHQ+CjxsaW5lIHgxPSIxNzQiIHkxPSIyMzUiIHgyPSIyMDQiIHkyPSIyMzUiIHN0cm9rZT0iI0M3NDYzNCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2ttc29jaTJyKSIvPgo8cmVjdCB4PSIyMDgiIHk9IjIxOCIgd2lkdGg9IjYwNCIgaGVpZ2h0PSIzNCIgcng9IjgiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzNkNGY2NiIgc3Ryb2tlLXdpZHRoPSIxLjMiLz4KPHRleHQgeD0iMjI0IiB5PSIyMzMiIHN0eWxlPSJmb250OjcwMCAxMC41cHggdmFyKC0tbW9ubyk7ZmlsbDogI2M5Y2ZkOCI+bWFuYWdlbWVudF9lbmRwb2ludCDCtyBjb250cm9sIHBsYW5lPC90ZXh0Pgo8dGV4dCB4PSI3OTYiIHk9IjIzOSIgdGV4dC1hbmNob3I9ImVuZCIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZTo5LjVweCI+Y3JlYXRlIGtleSDCtyB0dXJuIG9uIHJvdGF0aW9uIMK3IHNjaGVkdWxlIGRlbGV0aW9uPC90ZXh0Pgo8L3N2Zz4=" alt="Cryptographic requests use crypto_endpoint; key management uses management_endpoint." />
</div>

<p className="t9-caption">Cryptographic requests use crypto\_endpoint ; key management uses management\_endpoint .</p>

#### The native single-call envelope

`GenerateDataKey` returns a plaintext data key and an encrypted (wrapped) copy. The application uses the plaintext key to encrypt its data locally, then discards that key and stores the wrapped copy beside the encrypted data. To read the data later, it asks the key service to decrypt the wrapped key.

`GenerateDataEncryptionKey` returns both `plaintext` and `ciphertext` when `include_plaintext_key` is true. With it false, the call returns only the wrapped key, corresponding to `GenerateDataKeyWithoutPlaintext`. The adapter translates these results to AWS response fields without generating the data key locally.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjg4IiB2aWV3Qm94PSIwIDAgODM2IDI4OCIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJHZW5lcmF0ZURhdGFFbmNyeXB0aW9uS2V5IHJldHVybnMgYSBwbGFpbnRleHQgZGF0YSBrZXkgYW5kIGl0cyBlbmNyeXB0ZWQgY29weSBpbiBvbmUgY2FsbC4iPjxzdHlsZT50ZXh0e2ZvbnQtZmFtaWx5OkludGVyLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCdTZWdvZSBVSScsUm9ib3RvLCdIZWx2ZXRpY2EgTmV1ZScsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiMzMzQxNTV9PC9zdHlsZT4KPGRlZnM+PG1hcmtlciBpZD0ia21zb2NpMyIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI4IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNyIgbWFya2VySGVpZ2h0PSI3IiBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSI+PHBhdGggZD0iTTAsMCBMMTAsNSBMMCwxMCB6IiBmaWxsPSIjOTRhM2I4Ii8+PC9tYXJrZXI+PG1hcmtlciBpZD0ia21zb2NpM2ciIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzA1OTY2OSIvPjwvbWFya2VyPjwvZGVmcz4KPHRleHQgeD0iMjYiIHk9IjI2IiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDojMzM0MTU1Ij5PTkUgQ0FMTCBUTyBHZW5lcmF0ZURhdGFFbmNyeXB0aW9uS2V5IFJFVFVSTlMgVEhFIERBVEEgS0VZIFRXSUNFPC90ZXh0Pgo8cmVjdCB4PSIyNCIgeT0iNDQiIHdpZHRoPSIxNTAiIGhlaWdodD0iNjQiIHJ4PSIxMSIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjQzc0NjM0IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI5OSIgeT0iNzIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTEuNXB4Ij5Zb3VyIG1hc3RlciBrZXk8L3RleHQ+Cjx0ZXh0IHg9Ijk5IiB5PSI5MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZTo5LjVweCI+d3JhcHMgJmFtcDsgdW53cmFwcyBvbmx5PC90ZXh0Pgo8bGluZSB4MT0iMTc0IiB5MT0iNzYiIHgyPSIyMDYiIHkyPSI3NiIgc3Ryb2tlPSIjQzc0NjM0IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgja21zb2NpMykiLz4KPHJlY3QgeD0iMjEwIiB5PSI0MCIgd2lkdGg9IjE5NiIgaGVpZ2h0PSI3MiIgcng9IjExIiBmaWxsPSIjZWNmZGY1IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS43Ii8+Cjx0ZXh0IHg9IjMwOCIgeT0iNjYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3OyBmb250LXNpemU6MTEuNXB4Ij5HZW5lcmF0ZURhdGFFbmNyeXB0aW9uS2V5PC90ZXh0Pgo8dGV4dCB4PSIzMDgiIHk9IjgzIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3OyBmb250LXNpemU6OXB4Ij5vbmUgbmF0aXZlIGNhbGwgwrcgaW5jbHVkZV9wbGFpbnRleHRfa2V5PC90ZXh0Pgo8dGV4dCB4PSIzMDgiIHk9Ijk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3OyBmb250LXNpemU6OXB4Ij5yZXR1cm5zICYjMTIzOyBwbGFpbnRleHQsIGNpcGhlcnRleHQgJiMxMjU7PC90ZXh0Pgo8bGluZSB4MT0iNDA2IiB5MT0iNjIiIHgyPSI0NDYiIHkyPSI1MiIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNrbXNvY2kzZykiLz4KPGxpbmUgeDE9IjQwNiIgeTE9IjkwIiB4Mj0iNDQ2IiB5Mj0iMTAwIiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2ttc29jaTMpIi8+CjxyZWN0IHg9IjQ1MCIgeT0iMzQiIHdpZHRoPSIxNzYiIGhlaWdodD0iNDIiIHJ4PSIxMCIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNCIvPgo8dGV4dCB4PSI1MzgiIHk9IjUyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDo3MDAgMTAuNXB4IHZhcigtLW1vbm8pO2ZpbGw6IzA0Nzg1NyI+cGxhaW50ZXh0IGRhdGEga2V5PC90ZXh0Pgo8dGV4dCB4PSI1MzgiIHk9IjY4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjlweCI+ZW5jcnlwdHMgeW91ciBidWxrIGRhdGEsIHRoZW4gZGlzY2FyZGVkPC90ZXh0Pgo8cmVjdCB4PSI0NTAiIHk9Ijg0IiB3aWR0aD0iMTc2IiBoZWlnaHQ9IjQyIiByeD0iMTAiIGZpbGw9IiNmOGZhZmMiIHN0cm9rZT0iI2NiZDVlMSIgc3Ryb2tlLXdpZHRoPSIxLjMiLz4KPHRleHQgeD0iNTM4IiB5PSIxMDIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OjcwMCAxMC41cHggdmFyKC0tbW9ubyk7ZmlsbDojNDc1NTY5Ij53cmFwcGVkIGRhdGEga2V5PC90ZXh0Pgo8dGV4dCB4PSI1MzgiIHk9IjExOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZTo5cHgiPmtlcHQgYmVzaWRlIHRoZSBjaXBoZXJ0ZXh0PC90ZXh0Pgo8bGluZSB4MT0iNjI2IiB5MT0iNTUiIHgyPSI2NTgiIHkyPSI1NSIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgja21zb2NpM2cpIi8+CjxsaW5lIHgxPSI2MjYiIHkxPSIxMDUiIHgyPSI2NTgiIHkyPSIxMDUiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2ttc29jaTMpIi8+CjxyZWN0IHg9IjY2MiIgeT0iNDAiIHdpZHRoPSIxNTAiIGhlaWdodD0iNzIiIHJ4PSIxMSIgZmlsbD0iI2Y4ZmFmYyIgc3Ryb2tlPSIjY2JkNWUxIiBzdHJva2Utd2lkdGg9IjEuNCIgc3Ryb2tlLWRhc2hhcnJheT0iNSA1Ii8+Cjx0ZXh0IHg9IjczNyIgeT0iNzIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTFweCI+S2VwdCB0b2dldGhlcjwvdGV4dD4KPHRleHQgeD0iNzM3IiB5PSI5MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZTo5cHgiPmNpcGhlcnRleHQgKyB3cmFwcGVkIGtleTwvdGV4dD4KPHRleHQgeD0iNDE4IiB5PSIxNDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6OS41cHgiPnRoZSBwbGFpbnRleHQgZGF0YSBrZXkgaXMgdXNlZCBvbmNlIGFuZCB0aHJvd24gYXdheSDCtyB5b3VyIG1hc3RlciBrZXkgb25seSBldmVyIHdyYXBzIHRoZSBzbWFsbCBkYXRhIGtleSwgbmV2ZXIgeW91ciBidWxrIGRhdGE8L3RleHQ+Cjx0ZXh0IHg9IjI2IiB5PSIxNzYiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4OyBmaWxsOiMwNDc4NTciPkdlbmVyYXRlRGF0YUVuY3J5cHRpb25LZXkgcmV0dXJucyBib3RoIGtleSBjb3BpZXM8L3RleHQ+CjxyZWN0IHg9IjI0IiB5PSIxODgiIHdpZHRoPSIzODQiIGhlaWdodD0iODAiIHJ4PSIxMSIgZmlsbD0iI2VjZmRmNSIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSIyMTYiIHk9IjIxMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDcwMCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNDc4NTc7IGZvbnQtc2l6ZToxMS41cHgiPk9DSSBLTVM6IG9uZSByb3VuZCB0cmlwPC90ZXh0Pgo8cmVjdCB4PSIzOCIgeT0iMjIyIiB3aWR0aD0iMzU2IiBoZWlnaHQ9IjMwIiByeD0iNyIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjYTdmM2QwIiBzdHJva2Utd2lkdGg9IjEuMiIvPgo8dGV4dCB4PSIyMTYiIHk9IjI0MSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6MTBweCB2YXIoLS1tb25vKTtmaWxsOiMwNDc4NTciPkdlbmVyYXRlRGF0YUVuY3J5cHRpb25LZXkg4oaSICYjMTIzO3BsYWludGV4dCwgY2lwaGVydGV4dCYjMTI1OzwvdGV4dD4KPHJlY3QgeD0iNDI0IiB5PSIxODgiIHdpZHRoPSIzODgiIGhlaWdodD0iODAiIHJ4PSIxMSIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNCIvPgo8dGV4dCB4PSI2MTgiIHk9IjIxMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMS41cHgiPkEgc2VydmljZSB3aXRob3V0IGEgZGF0YS1rZXkgb3A6IHR3byBzdGVwczwvdGV4dD4KPHJlY3QgeD0iNDQyIiB5PSIyMjIiIHdpZHRoPSIxNjgiIGhlaWdodD0iMzAiIHJ4PSI3IiBmaWxsPSIjZjhmYWZjIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS4yIi8+Cjx0ZXh0IHg9IjUyNiIgeT0iMjQxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDoxMHB4IHZhcigtLW1vbm8pO2ZpbGw6IzY0NzQ4YiI+MSDCtyBtYWtlIGEga2V5IGxvY2FsbHk8L3RleHQ+CjxyZWN0IHg9IjYyNiIgeT0iMjIyIiB3aWR0aD0iMTY4IiBoZWlnaHQ9IjMwIiByeD0iNyIgZmlsbD0iI2Y4ZmFmYyIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuMiIvPgo8dGV4dCB4PSI3MTAiIHk9IjI0MSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6MTBweCB2YXIoLS1tb25vKTtmaWxsOiM2NDc0OGIiPjIgwrcgY2FsbCBlbmNyeXB0IHRvIHdyYXAgaXQ8L3RleHQ+Cjwvc3ZnPg==" alt="GenerateDataEncryptionKey returns a plaintext data key and its encrypted copy in one call." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjg4IiB2aWV3Qm94PSIwIDAgODM2IDI4OCIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJHZW5lcmF0ZURhdGFFbmNyeXB0aW9uS2V5IHJldHVybnMgYSBwbGFpbnRleHQgZGF0YSBrZXkgYW5kIGl0cyBlbmNyeXB0ZWQgY29weSBpbiBvbmUgY2FsbC4iPjxzdHlsZT50ZXh0e2ZvbnQtZmFtaWx5OkludGVyLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCdTZWdvZSBVSScsUm9ib3RvLCdIZWx2ZXRpY2EgTmV1ZScsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiNjYmQ1ZTF9PC9zdHlsZT4KPGRlZnM+PG1hcmtlciBpZD0ia21zb2NpMyIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI4IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNyIgbWFya2VySGVpZ2h0PSI3IiBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSI+PHBhdGggZD0iTTAsMCBMMTAsNSBMMCwxMCB6IiBmaWxsPSIjOTRhM2I4Ii8+PC9tYXJrZXI+PG1hcmtlciBpZD0ia21zb2NpM2ciIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzIwZjdiNCIvPjwvbWFya2VyPjwvZGVmcz4KPHRleHQgeD0iMjYiIHk9IjI2IiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDogI2M5Y2ZkOCI+T05FIENBTEwgVE8gR2VuZXJhdGVEYXRhRW5jcnlwdGlvbktleSBSRVRVUk5TIFRIRSBEQVRBIEtFWSBUV0lDRTwvdGV4dD4KPHJlY3QgeD0iMjQiIHk9IjQ0IiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjY0IiByeD0iMTEiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iI0M3NDYzNCIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iOTkiIHk9IjcyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2VkODsgZm9udC1zaXplOjExLjVweCI+WW91ciBtYXN0ZXIga2V5PC90ZXh0Pgo8dGV4dCB4PSI5OSIgeT0iOTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6OS41cHgiPndyYXBzICZhbXA7IHVud3JhcHMgb25seTwvdGV4dD4KPGxpbmUgeDE9IjE3NCIgeTE9Ijc2IiB4Mj0iMjA2IiB5Mj0iNzYiIHN0cm9rZT0iI0M3NDYzNCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2ttc29jaTMpIi8+CjxyZWN0IHg9IjIxMCIgeT0iNDAiIHdpZHRoPSIxOTYiIGhlaWdodD0iNzIiIHJ4PSIxMSIgZmlsbD0iIzFhMzEyNiIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNyIvPgo8dGV4dCB4PSIzMDgiIHk9IjY2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzkwZGVjODsgZm9udC1zaXplOjExLjVweCI+R2VuZXJhdGVEYXRhRW5jcnlwdGlvbktleTwvdGV4dD4KPHRleHQgeD0iMzA4IiB5PSI4MyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzkwZGVjODsgZm9udC1zaXplOjlweCI+b25lIG5hdGl2ZSBjYWxsIMK3IGluY2x1ZGVfcGxhaW50ZXh0X2tleTwvdGV4dD4KPHRleHQgeD0iMzA4IiB5PSI5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzkwZGVjODsgZm9udC1zaXplOjlweCI+cmV0dXJucyAmIzEyMzsgcGxhaW50ZXh0LCBjaXBoZXJ0ZXh0ICYjMTI1OzwvdGV4dD4KPGxpbmUgeDE9IjQwNiIgeTE9IjYyIiB4Mj0iNDQ2IiB5Mj0iNTIiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIxLjgiIG1hcmtlci1lbmQ9InVybCgja21zb2NpM2cpIi8+CjxsaW5lIHgxPSI0MDYiIHkxPSI5MCIgeDI9IjQ0NiIgeTI9IjEwMCIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCNrbXNvY2kzKSIvPgo8cmVjdCB4PSI0NTAiIHk9IjM0IiB3aWR0aD0iMTc2IiBoZWlnaHQ9IjQyIiByeD0iMTAiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIxLjQiLz4KPHRleHQgeD0iNTM4IiB5PSI1MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6NzAwIDEwLjVweCB2YXIoLS1tb25vKTtmaWxsOiAjOTBkZWM4Ij5wbGFpbnRleHQgZGF0YSBrZXk8L3RleHQ+Cjx0ZXh0IHg9IjUzOCIgeT0iNjgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6OXB4Ij5lbmNyeXB0cyB5b3VyIGJ1bGsgZGF0YSwgdGhlbiBkaXNjYXJkZWQ8L3RleHQ+CjxyZWN0IHg9IjQ1MCIgeT0iODQiIHdpZHRoPSIxNzYiIGhlaWdodD0iNDIiIHJ4PSIxMCIgZmlsbD0iIzFhMjYzMSIgc3Ryb2tlPSIjM2Q0ZjY2IiBzdHJva2Utd2lkdGg9IjEuMyIvPgo8dGV4dCB4PSI1MzgiIHk9IjEwMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6NzAwIDEwLjVweCB2YXIoLS1tb25vKTtmaWxsOiAjYzljZmQ4Ij53cmFwcGVkIGRhdGEga2V5PC90ZXh0Pgo8dGV4dCB4PSI1MzgiIHk9IjExOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZTo5cHgiPmtlcHQgYmVzaWRlIHRoZSBjaXBoZXJ0ZXh0PC90ZXh0Pgo8bGluZSB4MT0iNjI2IiB5MT0iNTUiIHgyPSI2NTgiIHkyPSI1NSIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgja21zb2NpM2cpIi8+CjxsaW5lIHgxPSI2MjYiIHkxPSIxMDUiIHgyPSI2NTgiIHkyPSIxMDUiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2ttc29jaTMpIi8+CjxyZWN0IHg9IjY2MiIgeT0iNDAiIHdpZHRoPSIxNTAiIGhlaWdodD0iNzIiIHJ4PSIxMSIgZmlsbD0iIzFhMjYzMSIgc3Ryb2tlPSIjM2Q0ZjY2IiBzdHJva2Utd2lkdGg9IjEuNCIgc3Ryb2tlLWRhc2hhcnJheT0iNSA1Ii8+Cjx0ZXh0IHg9IjczNyIgeT0iNzIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTFweCI+S2VwdCB0b2dldGhlcjwvdGV4dD4KPHRleHQgeD0iNzM3IiB5PSI5MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZTo5cHgiPmNpcGhlcnRleHQgKyB3cmFwcGVkIGtleTwvdGV4dD4KPHRleHQgeD0iNDE4IiB5PSIxNDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6OS41cHgiPnRoZSBwbGFpbnRleHQgZGF0YSBrZXkgaXMgdXNlZCBvbmNlIGFuZCB0aHJvd24gYXdheSDCtyB5b3VyIG1hc3RlciBrZXkgb25seSBldmVyIHdyYXBzIHRoZSBzbWFsbCBkYXRhIGtleSwgbmV2ZXIgeW91ciBidWxrIGRhdGE8L3RleHQ+Cjx0ZXh0IHg9IjI2IiB5PSIxNzYiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4OyBmaWxsOiAjOTBkZWM4Ij5HZW5lcmF0ZURhdGFFbmNyeXB0aW9uS2V5IHJldHVybnMgYm90aCBrZXkgY29waWVzPC90ZXh0Pgo8cmVjdCB4PSIyNCIgeT0iMTg4IiB3aWR0aD0iMzg0IiBoZWlnaHQ9IjgwIiByeD0iMTEiIGZpbGw9IiMxYTMxMjYiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMjE2IiB5PSIyMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4OyBmb250LXNpemU6MTEuNXB4Ij5PQ0kgS01TOiBvbmUgcm91bmQgdHJpcDwvdGV4dD4KPHJlY3QgeD0iMzgiIHk9IjIyMiIgd2lkdGg9IjM1NiIgaGVpZ2h0PSIzMCIgcng9IjciIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzNkNjY1MyIgc3Ryb2tlLXdpZHRoPSIxLjIiLz4KPHRleHQgeD0iMjE2IiB5PSIyNDEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OjEwcHggdmFyKC0tbW9ubyk7ZmlsbDogIzkwZGVjOCI+R2VuZXJhdGVEYXRhRW5jcnlwdGlvbktleSDihpIgJiMxMjM7cGxhaW50ZXh0LCBjaXBoZXJ0ZXh0JiMxMjU7PC90ZXh0Pgo8cmVjdCB4PSI0MjQiIHk9IjE4OCIgd2lkdGg9IjM4OCIgaGVpZ2h0PSI4MCIgcng9IjExIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS40Ii8+Cjx0ZXh0IHg9IjYxOCIgeT0iMjEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2VkODsgZm9udC1zaXplOjExLjVweCI+QSBzZXJ2aWNlIHdpdGhvdXQgYSBkYXRhLWtleSBvcDogdHdvIHN0ZXBzPC90ZXh0Pgo8cmVjdCB4PSI0NDIiIHk9IjIyMiIgd2lkdGg9IjE2OCIgaGVpZ2h0PSIzMCIgcng9IjciIGZpbGw9IiMxYTI2MzEiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjIiLz4KPHRleHQgeD0iNTI2IiB5PSIyNDEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OjEwcHggdmFyKC0tbW9ubyk7ZmlsbDogI2M5Y2ZkOCI+MSDCtyBtYWtlIGEga2V5IGxvY2FsbHk8L3RleHQ+CjxyZWN0IHg9IjYyNiIgeT0iMjIyIiB3aWR0aD0iMTY4IiBoZWlnaHQ9IjMwIiByeD0iNyIgZmlsbD0iIzFhMjYzMSIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuMiIvPgo8dGV4dCB4PSI3MTAiIHk9IjI0MSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6MTBweCB2YXIoLS1tb25vKTtmaWxsOiAjYzljZmQ4Ij4yIMK3IGNhbGwgZW5jcnlwdCB0byB3cmFwIGl0PC90ZXh0Pgo8L3N2Zz4=" alt="GenerateDataEncryptionKey returns a plaintext data key and its encrypted copy in one call." />
</div>

<p className="t9-caption">GenerateDataEncryptionKey returns a plaintext data key and its encrypted copy in one call.</p>

#### The encryption context, bound as associated data

An encryption context is a non-secret key/value map bound to ciphertext as additional authenticated data (AAD). Decryption requires the same context. Applications can use it to bind encrypted values to a tenant or purpose.

The adapter sends the encryption context as OCI `associatedData`. AES-GCM authenticates it with the ciphertext. Decryption with different associated data fails authentication.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjA4IiB2aWV3Qm94PSIwIDAgODM2IDIwOCIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJPQ0kgYXV0aGVudGljYXRlcyBhc3NvY2lhdGVkRGF0YSB3aXRoIHRoZSBjaXBoZXJ0ZXh0LiBBIGRpZmZlcmVudCBjb250ZXh0IGNhdXNlcyBkZWNyeXB0aW9uIHRvIGZhaWwuIj48c3R5bGU+dGV4dHtmb250LWZhbWlseTpJbnRlciwtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCwnU2Vnb2UgVUknLFJvYm90bywnSGVsdmV0aWNhIE5ldWUnLEFyaWFsLHNhbnMtc2VyaWY7ZmlsbDojMzM0MTU1fTwvc3R5bGU+CjxkZWZzPjxtYXJrZXIgaWQ9Imttc29jaTRnIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiMwNTk2NjkiLz48L21hcmtlcj48bWFya2VyIGlkPSJrbXNvY2k0ciIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI4IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNyIgbWFya2VySGVpZ2h0PSI3IiBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSI+PHBhdGggZD0iTTAsMCBMMTAsNSBMMCwxMCB6IiBmaWxsPSIjZGMyNjI2Ii8+PC9tYXJrZXI+PC9kZWZzPgo8dGV4dCB4PSIyNiIgeT0iMjYiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4OyBmaWxsOiMzMzQxNTUiPkEgS0VZL1ZBTFVFIE1BUCBCT1VORCBJTlRPIFRIRSBDSVBIRVJURVhUIEFTIE9DSSBhc3NvY2lhdGVkRGF0YSDCtyBUSEUgU0FNRSBNQVAgSVMgUkVRVUlSRUQgVE8gREVDUllQVDwvdGV4dD4KPHJlY3QgeD0iMjQiIHk9IjQyIiB3aWR0aD0iMjE0IiBoZWlnaHQ9Ijk2IiByeD0iMTEiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMTMxIiB5PSI2NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMnB4Ij5FbmNyeXB0PC90ZXh0Pgo8cmVjdCB4PSI0MCIgeT0iNzYiIHdpZHRoPSIxODIiIGhlaWdodD0iNDYiIHJ4PSI4IiBmaWxsPSIjZjhmYWZjIiBzdHJva2U9IiNlMmU4ZjAiLz4KPHRleHQgeD0iMTMxIiB5PSI5NSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQtZmFtaWx5OnZhcigtLW1vbm8pO2ZvbnQtc2l6ZToxMHB4O2ZpbGw6IzQ3NTU2OSI+dGVuYW50ID0gYWNtZTwvdGV4dD4KPHRleHQgeD0iMTMxIiB5PSIxMTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250LWZhbWlseTp2YXIoLS1tb25vKTtmb250LXNpemU6MTBweDtmaWxsOiM0NzU1NjkiPnB1cnBvc2UgPSBwYXltZW50czwvdGV4dD4KPGxpbmUgeDE9IjIzOCIgeTE9IjkwIiB4Mj0iMjcyIiB5Mj0iOTAiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2ttc29jaTRnKSIvPgo8dGV4dCB4PSIyNTUiIHk9IjgxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjhweCI+Ym91bmQ8L3RleHQ+CjxyZWN0IHg9IjI3NiIgeT0iNjQiIHdpZHRoPSIxNjQiIGhlaWdodD0iNTIiIHJ4PSIxMCIgZmlsbD0iI2VjZmRmNSIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNiIvPgo8dGV4dCB4PSIzNTgiIHk9Ijg4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NzsgZm9udC1zaXplOjExLjVweCI+Q2lwaGVydGV4dDwvdGV4dD4KPHRleHQgeD0iMzU4IiB5PSIxMDUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNDc4NTc7IGZvbnQtc2l6ZTo5cHgiPmF1dGhlbnRpY2F0ZWQgYnkgdGhlIEdDTSB0YWc8L3RleHQ+CjxsaW5lIHgxPSI0NDAiIHkxPSI3OCIgeDI9IjQ3OCIgeTI9IjY4IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2ttc29jaTRnKSIvPgo8bGluZSB4MT0iNDQwIiB5MT0iMTAyIiB4Mj0iNDc4IiB5Mj0iMTE2IiBzdHJva2U9IiNkYzI2MjYiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2ttc29jaTRyKSIvPgo8cmVjdCB4PSI0ODIiIHk9IjQ4IiB3aWR0aD0iMzMwIiBoZWlnaHQ9IjQ0IiByeD0iMTAiIGZpbGw9IiNlY2ZkZjUiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNTAwIiB5PSI2OCIgc3R5bGU9ImZvbnQ6IDcwMCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNDc4NTc7IGZvbnQtc2l6ZToxMS41cHgiPkRlY3J5cHQgwrcgc2FtZSBjb250ZXh0PC90ZXh0Pgo8dGV4dCB4PSI1MDAiIHk9Ijg0IiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3OyBmb250LXNpemU6OS41cHgiPuKckyByZXR1cm5zIHRoZSBwbGFpbnRleHQ8L3RleHQ+CjxyZWN0IHg9IjQ4MiIgeT0iMTAwIiB3aWR0aD0iMzMwIiBoZWlnaHQ9IjQ0IiByeD0iMTAiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2ZlY2FjYSIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNTAwIiB5PSIxMjAiIHN0eWxlPSJmb250OjcwMCAxMS41cHggSW50ZXIsc2Fucy1zZXJpZjtmaWxsOiNkYzI2MjYiPkRlY3J5cHQgwrcgZGlmZmVyZW50IGNvbnRleHQ8L3RleHQ+Cjx0ZXh0IHg9IjUwMCIgeT0iMTM2IiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjkuNXB4O2ZpbGw6I2I5MWMxYyI+4pyXIGZhaWxzOyB0aGUgd3JvbmcgY29udGV4dCBjYW5ub3QgcmVhZCBpdDwvdGV4dD4KPHJlY3QgeD0iMjQiIHk9IjE1OCIgd2lkdGg9Ijc4OCIgaGVpZ2h0PSIzNCIgcng9IjkiIGZpbGw9IiNmOGZhZmMiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjMiLz4KPHRleHQgeD0iNDE4IiB5PSIxNzkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6MTBweCI+b24gT0NJIHRoZSBtYXAgZ29lcyBpbiBhcyA8dHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OnZhcigtLW1vbm8pO2ZpbGw6I0M3NDYzNCI+YXNzb2NpYXRlZERhdGE8L3RzcGFuPjogdGhlIGFkZGl0aW9uYWwgYXV0aGVudGljYXRlZCBkYXRhIEFXUyBjYWxscyB0aGUgZW5jcnlwdGlvbiBjb250ZXh0PC90ZXh0Pgo8L3N2Zz4=" alt="OCI authenticates associatedData with the ciphertext. A different context causes decryption to fail." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjA4IiB2aWV3Qm94PSIwIDAgODM2IDIwOCIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJPQ0kgYXV0aGVudGljYXRlcyBhc3NvY2lhdGVkRGF0YSB3aXRoIHRoZSBjaXBoZXJ0ZXh0LiBBIGRpZmZlcmVudCBjb250ZXh0IGNhdXNlcyBkZWNyeXB0aW9uIHRvIGZhaWwuIj48c3R5bGU+dGV4dHtmb250LWZhbWlseTpJbnRlciwtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCwnU2Vnb2UgVUknLFJvYm90bywnSGVsdmV0aWNhIE5ldWUnLEFyaWFsLHNhbnMtc2VyaWY7ZmlsbDojY2JkNWUxfTwvc3R5bGU+CjxkZWZzPjxtYXJrZXIgaWQ9Imttc29jaTRnIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiMyMGY3YjQiLz48L21hcmtlcj48bWFya2VyIGlkPSJrbXNvY2k0ciIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI4IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNyIgbWFya2VySGVpZ2h0PSI3IiBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSI+PHBhdGggZD0iTTAsMCBMMTAsNSBMMCwxMCB6IiBmaWxsPSIjZGMyNjI2Ii8+PC9tYXJrZXI+PC9kZWZzPgo8dGV4dCB4PSIyNiIgeT0iMjYiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4OyBmaWxsOiAjYzljZmQ4Ij5BIEtFWS9WQUxVRSBNQVAgQk9VTkQgSU5UTyBUSEUgQ0lQSEVSVEVYVCBBUyBPQ0kgYXNzb2NpYXRlZERhdGEgwrcgVEhFIFNBTUUgTUFQIElTIFJFUVVJUkVEIFRPIERFQ1JZUFQ8L3RleHQ+CjxyZWN0IHg9IjI0IiB5PSI0MiIgd2lkdGg9IjIxNCIgaGVpZ2h0PSI5NiIgcng9IjExIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjEzMSIgeT0iNjQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTJweCI+RW5jcnlwdDwvdGV4dD4KPHJlY3QgeD0iNDAiIHk9Ijc2IiB3aWR0aD0iMTgyIiBoZWlnaHQ9IjQ2IiByeD0iOCIgZmlsbD0iIzFhMjYzMSIgc3Ryb2tlPSIjM2Q0ZTY2Ii8+Cjx0ZXh0IHg9IjEzMSIgeT0iOTUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250LWZhbWlseTp2YXIoLS1tb25vKTtmb250LXNpemU6MTBweDtmaWxsOiAjYzljZmQ4Ij50ZW5hbnQgPSBhY21lPC90ZXh0Pgo8dGV4dCB4PSIxMzEiIHk9IjExMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQtZmFtaWx5OnZhcigtLW1vbm8pO2ZvbnQtc2l6ZToxMHB4O2ZpbGw6ICNjOWNmZDgiPnB1cnBvc2UgPSBwYXltZW50czwvdGV4dD4KPGxpbmUgeDE9IjIzOCIgeTE9IjkwIiB4Mj0iMjcyIiB5Mj0iOTAiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2ttc29jaTRnKSIvPgo8dGV4dCB4PSIyNTUiIHk9IjgxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjhweCI+Ym91bmQ8L3RleHQ+CjxyZWN0IHg9IjI3NiIgeT0iNjQiIHdpZHRoPSIxNjQiIGhlaWdodD0iNTIiIHJ4PSIxMCIgZmlsbD0iIzFhMzEyNiIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNiIvPgo8dGV4dCB4PSIzNTgiIHk9Ijg4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzkwZGVjODsgZm9udC1zaXplOjExLjVweCI+Q2lwaGVydGV4dDwvdGV4dD4KPHRleHQgeD0iMzU4IiB5PSIxMDUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzg7IGZvbnQtc2l6ZTo5cHgiPmF1dGhlbnRpY2F0ZWQgYnkgdGhlIEdDTSB0YWc8L3RleHQ+CjxsaW5lIHgxPSI0NDAiIHkxPSI3OCIgeDI9IjQ3OCIgeTI9IjY4IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2ttc29jaTRnKSIvPgo8bGluZSB4MT0iNDQwIiB5MT0iMTAyIiB4Mj0iNDc4IiB5Mj0iMTE2IiBzdHJva2U9IiNkYzI2MjYiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2ttc29jaTRyKSIvPgo8cmVjdCB4PSI0ODIiIHk9IjQ4IiB3aWR0aD0iMzMwIiBoZWlnaHQ9IjQ0IiByeD0iMTAiIGZpbGw9IiMxYTMxMjYiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNTAwIiB5PSI2OCIgc3R5bGU9ImZvbnQ6IDcwMCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzg7IGZvbnQtc2l6ZToxMS41cHgiPkRlY3J5cHQgwrcgc2FtZSBjb250ZXh0PC90ZXh0Pgo8dGV4dCB4PSI1MDAiIHk9Ijg0IiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4OyBmb250LXNpemU6OS41cHgiPuKckyByZXR1cm5zIHRoZSBwbGFpbnRleHQ8L3RleHQ+CjxyZWN0IHg9IjQ4MiIgeT0iMTAwIiB3aWR0aD0iMzMwIiBoZWlnaHQ9IjQ0IiByeD0iMTAiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzY2M2QzZCIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNTAwIiB5PSIxMjAiIHN0eWxlPSJmb250OjcwMCAxMS41cHggSW50ZXIsc2Fucy1zZXJpZjtmaWxsOiAjZGU5MDkwIj5EZWNyeXB0IMK3IGRpZmZlcmVudCBjb250ZXh0PC90ZXh0Pgo8dGV4dCB4PSI1MDAiIHk9IjEzNiIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZTo5LjVweDtmaWxsOiAjZGU5MDkwIj7inJcgZmFpbHM7IHRoZSB3cm9uZyBjb250ZXh0IGNhbm5vdCByZWFkIGl0PC90ZXh0Pgo8cmVjdCB4PSIyNCIgeT0iMTU4IiB3aWR0aD0iNzg4IiBoZWlnaHQ9IjM0IiByeD0iOSIgZmlsbD0iIzFhMjYzMSIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuMyIvPgo8dGV4dCB4PSI0MTgiIHk9IjE3OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZToxMHB4Ij5vbiBPQ0kgdGhlIG1hcCBnb2VzIGluIGFzIDx0c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6dmFyKC0tbW9ubyk7ZmlsbDogI2Q4Y2JjOSI+YXNzb2NpYXRlZERhdGE8L3RzcGFuPjogdGhlIGFkZGl0aW9uYWwgYXV0aGVudGljYXRlZCBkYXRhIEFXUyBjYWxscyB0aGUgZW5jcnlwdGlvbiBjb250ZXh0PC90ZXh0Pgo8L3N2Zz4=" alt="OCI authenticates associatedData with the ciphertext. A different context causes decryption to fail." />
</div>

<p className="t9-caption">OCI authenticates associatedData with the ciphertext. A different context causes decryption to fail.</p>

#### Symmetric and asymmetric keys

An OCI key's `key_shape` specifies `algorithm` (`AES`, `RSA`, or `ECDSA`), `length`, and a `curve_id` where applicable. These correspond to AWS symmetric encryption and asymmetric key families.

AES keys support `Encrypt`, `Decrypt`, and `GenerateDataEncryptionKey`. RSA and ECDSA keys support signing, verification, and public-key export. OCI has no HMAC key type, so `GenerateMac` and `VerifyMac` return unsupported-operation errors.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjI0IiB2aWV3Qm94PSIwIDAgODM2IDIyNCIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJPQ0kgc3VwcG9ydHMgQUVTLCBSU0EsIGFuZCBFQ0RTQSBrZXkgdHlwZXMuIEhNQUMgaXMgdW5zdXBwb3J0ZWQuIj48c3R5bGU+dGV4dHtmb250LWZhbWlseTpJbnRlciwtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCwnU2Vnb2UgVUknLFJvYm90bywnSGVsdmV0aWNhIE5ldWUnLEFyaWFsLHNhbnMtc2VyaWY7ZmlsbDojMzM0MTU1fTwvc3R5bGU+Cjx0ZXh0IHg9IjI2IiB5PSIyNiIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6IzMzNDE1NSI+T0NJIGtleSB0eXBlczwvdGV4dD4KPHJlY3QgeD0iMjQiIHk9IjQyIiB3aWR0aD0iMzkyIiBoZWlnaHQ9IjExOCIgcng9IjEzIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjQ0IiB5PSI2NiIgc3R5bGU9ImZvbnQ6NzAwIDEyLjVweCBJbnRlcixzYW5zLXNlcmlmO2ZpbGw6IzMzNDE1NSI+U3ltbWV0cmljIMK3IDx0c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6dmFyKC0tbW9ubyk7ZmlsbDojNDc1NTY5Ij5rZXlfc2hhcGUgQUVTPC90c3Bhbj48L3RleHQ+Cjx0ZXh0IHg9IjQ0IiB5PSI4MyIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZToxMHB4Ij5lbmNyeXB0IC8gZGVjcnlwdCDCtyB0aGUgZW52ZWxvcGUgZGF0YSBrZXk8L3RleHQ+CjxyZWN0IHg9IjQwIiB5PSI5NiIgd2lkdGg9IjM2MCIgaGVpZ2h0PSIyNCIgcng9IjYiIGZpbGw9IiNmOGZhZmMiIHN0cm9rZT0iI2YxZjVmOSIvPgo8Y2lyY2xlIGN4PSI1OCIgY3k9IjEwOCIgcj0iNSIgZmlsbD0iIzA1OTY2OSIvPgo8dGV4dCB4PSI3NCIgeT0iMTEyIiBzdHlsZT0iZm9udDo3MDAgMTAuNXB4IEludGVyLHNhbnMtc2VyaWY7ZmlsbDojQzc0NjM0Ij5PQ0kgS01TPC90ZXh0Pgo8dGV4dCB4PSIzODgiIHk9IjExMiIgdGV4dC1hbmNob3I9ImVuZCIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZToxMHB4Ij5BRVMgwrcgcHJvdGVjdGlvbiBTT0ZUV0FSRSBvciBIU008L3RleHQ+CjxyZWN0IHg9IjQwIiB5PSIxMjYiIHdpZHRoPSIzNjAiIGhlaWdodD0iMjQiIHJ4PSI2IiBmaWxsPSIjZmZmIiBzdHJva2U9IiNmMWY1ZjkiLz4KPGNpcmNsZSBjeD0iNTgiIGN5PSIxMzgiIHI9IjUiIGZpbGw9IiMwNTk2NjkiLz4KPHRleHQgeD0iNzQiIHk9IjE0MiIgc3R5bGU9ImZvbnQ6NjAwIDEwLjVweCBJbnRlcixzYW5zLXNlcmlmO2ZpbGw6IzQ3NTU2OSI+dXNlZCBmb3I8L3RleHQ+Cjx0ZXh0IHg9IjM4OCIgeT0iMTQyIiB0ZXh0LWFuY2hvcj0iZW5kIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjEwcHgiPkVuY3J5cHQgwrcgRGVjcnlwdCDCtyBHZW5lcmF0ZURhdGFFbmNyeXB0aW9uS2V5PC90ZXh0Pgo8cmVjdCB4PSI0MjQiIHk9IjQyIiB3aWR0aD0iMzg4IiBoZWlnaHQ9IjExOCIgcng9IjEzIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjQ0NCIgeT0iNjYiIHN0eWxlPSJmb250OjcwMCAxMi41cHggSW50ZXIsc2Fucy1zZXJpZjtmaWxsOiMzMzQxNTUiPkFzeW1tZXRyaWMgwrcgPHRzcGFuIHN0eWxlPSJmb250LWZhbWlseTp2YXIoLS1tb25vKTtmaWxsOiM0NzU1NjkiPmtleV9zaGFwZSBSU0EgLyBFQ0RTQTwvdHNwYW4+PC90ZXh0Pgo8dGV4dCB4PSI0NDQiIHk9IjgzIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjEwcHgiPnNpZ24gLyB2ZXJpZnkgwrcgcHVibGljLWtleSBleHBvcnQ8L3RleHQ+CjxyZWN0IHg9IjQ0MCIgeT0iOTYiIHdpZHRoPSIzNTYiIGhlaWdodD0iMjQiIHJ4PSI2IiBmaWxsPSIjZjhmYWZjIiBzdHJva2U9IiNmMWY1ZjkiLz4KPGNpcmNsZSBjeD0iNDU4IiBjeT0iMTA4IiByPSI1IiBmaWxsPSIjMDU5NjY5Ii8+Cjx0ZXh0IHg9IjQ3NCIgeT0iMTEyIiBzdHlsZT0iZm9udDo3MDAgMTAuNXB4IEludGVyLHNhbnMtc2VyaWY7ZmlsbDojQzc0NjM0Ij5PQ0kgS01TPC90ZXh0Pgo8dGV4dCB4PSI3ODQiIHk9IjExMiIgdGV4dC1hbmNob3I9ImVuZCIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZToxMHB4Ij5SU0EgwrcgRUNEU0EgKGEgY3VydmUpPC90ZXh0Pgo8cmVjdCB4PSI0NDAiIHk9IjEyNiIgd2lkdGg9IjM1NiIgaGVpZ2h0PSIyNCIgcng9IjYiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2YxZjVmOSIvPgo8Y2lyY2xlIGN4PSI0NTgiIGN5PSIxMzgiIHI9IjUiIGZpbGw9IiMwNTk2NjkiLz4KPHRleHQgeD0iNDc0IiB5PSIxNDIiIHN0eWxlPSJmb250OjYwMCAxMC41cHggSW50ZXIsc2Fucy1zZXJpZjtmaWxsOiM0NzU1NjkiPnVzZWQgZm9yPC90ZXh0Pgo8dGV4dCB4PSI3ODQiIHk9IjE0MiIgdGV4dC1hbmNob3I9ImVuZCIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZToxMHB4Ij5TaWduIMK3IFZlcmlmeSDCtyBHZXRQdWJsaWNLZXk8L3RleHQ+CjxyZWN0IHg9IjI0IiB5PSIxNzQiIHdpZHRoPSI3ODgiIGhlaWdodD0iMzgiIHJ4PSIxMCIgZmlsbD0iI2ZmZmJlYiIgc3Ryb2tlPSIjZmRlNjhhIiBzdHJva2Utd2lkdGg9IjEuNCIvPgo8dGV4dCB4PSI0NCIgeT0iMTk3IiBzdHlsZT0iZm9udDo3MDAgMTAuNXB4IEludGVyLHNhbnMtc2VyaWY7ZmlsbDojYjQ1MzA5Ij5ITUFDIGlzIHVuc3VwcG9ydGVkPC90ZXh0Pgo8dGV4dCB4PSI3ODQiIHk9IjE5NyIgdGV4dC1hbmNob3I9ImVuZCIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZToxMHB4O2ZpbGw6I2I0NTMwOSI+T0NJIGtleSBzaGFwZXMgYXJlIEFFUywgUlNBLCBhbmQgRUNEU0Egb25seTsgdGhlcmUgaXMgbm8gSE1BQyBrZXkgdHlwZSwgc28gYSBNQUMgY2FsbCBpcyByZWZ1c2VkPC90ZXh0Pgo8L3N2Zz4=" alt="OCI supports AES, RSA, and ECDSA key types. HMAC is unsupported." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjI0IiB2aWV3Qm94PSIwIDAgODM2IDIyNCIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJPQ0kgc3VwcG9ydHMgQUVTLCBSU0EsIGFuZCBFQ0RTQSBrZXkgdHlwZXMuIEhNQUMgaXMgdW5zdXBwb3J0ZWQuIj48c3R5bGU+dGV4dHtmb250LWZhbWlseTpJbnRlciwtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCwnU2Vnb2UgVUknLFJvYm90bywnSGVsdmV0aWNhIE5ldWUnLEFyaWFsLHNhbnMtc2VyaWY7ZmlsbDojY2JkNWUxfTwvc3R5bGU+Cjx0ZXh0IHg9IjI2IiB5PSIyNiIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6ICNjOWNmZDgiPk9DSSBrZXkgdHlwZXM8L3RleHQ+CjxyZWN0IHg9IjI0IiB5PSI0MiIgd2lkdGg9IjM5MiIgaGVpZ2h0PSIxMTgiIHJ4PSIxMyIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI0NCIgeT0iNjYiIHN0eWxlPSJmb250OjcwMCAxMi41cHggSW50ZXIsc2Fucy1zZXJpZjtmaWxsOiAjYzljZmQ4Ij5TeW1tZXRyaWMgwrcgPHRzcGFuIHN0eWxlPSJmb250LWZhbWlseTp2YXIoLS1tb25vKTtmaWxsOiAjYzljZmQ4Ij5rZXlfc2hhcGUgQUVTPC90c3Bhbj48L3RleHQ+Cjx0ZXh0IHg9IjQ0IiB5PSI4MyIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZToxMHB4Ij5lbmNyeXB0IC8gZGVjcnlwdCDCtyB0aGUgZW52ZWxvcGUgZGF0YSBrZXk8L3RleHQ+CjxyZWN0IHg9IjQwIiB5PSI5NiIgd2lkdGg9IjM2MCIgaGVpZ2h0PSIyNCIgcng9IjYiIGZpbGw9IiMxYTI2MzEiIHN0cm9rZT0iIzNkNTE2NiIvPgo8Y2lyY2xlIGN4PSI1OCIgY3k9IjEwOCIgcj0iNSIgZmlsbD0iIzA1OTY2OSIvPgo8dGV4dCB4PSI3NCIgeT0iMTEyIiBzdHlsZT0iZm9udDo3MDAgMTAuNXB4IEludGVyLHNhbnMtc2VyaWY7ZmlsbDogI2Q4Y2JjOSI+T0NJIEtNUzwvdGV4dD4KPHRleHQgeD0iMzg4IiB5PSIxMTIiIHRleHQtYW5jaG9yPSJlbmQiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6MTBweCI+QUVTIMK3IHByb3RlY3Rpb24gU09GVFdBUkUgb3IgSFNNPC90ZXh0Pgo8cmVjdCB4PSI0MCIgeT0iMTI2IiB3aWR0aD0iMzYwIiBoZWlnaHQ9IjI0IiByeD0iNiIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q1MTY2Ii8+CjxjaXJjbGUgY3g9IjU4IiBjeT0iMTM4IiByPSI1IiBmaWxsPSIjMDU5NjY5Ii8+Cjx0ZXh0IHg9Ijc0IiB5PSIxNDIiIHN0eWxlPSJmb250OjYwMCAxMC41cHggSW50ZXIsc2Fucy1zZXJpZjtmaWxsOiAjYzljZmQ4Ij51c2VkIGZvcjwvdGV4dD4KPHRleHQgeD0iMzg4IiB5PSIxNDIiIHRleHQtYW5jaG9yPSJlbmQiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6MTBweCI+RW5jcnlwdCDCtyBEZWNyeXB0IMK3IEdlbmVyYXRlRGF0YUVuY3J5cHRpb25LZXk8L3RleHQ+CjxyZWN0IHg9IjQyNCIgeT0iNDIiIHdpZHRoPSIzODgiIGhlaWdodD0iMTE4IiByeD0iMTMiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNDQ0IiB5PSI2NiIgc3R5bGU9ImZvbnQ6NzAwIDEyLjVweCBJbnRlcixzYW5zLXNlcmlmO2ZpbGw6ICNjOWNmZDgiPkFzeW1tZXRyaWMgwrcgPHRzcGFuIHN0eWxlPSJmb250LWZhbWlseTp2YXIoLS1tb25vKTtmaWxsOiAjYzljZmQ4Ij5rZXlfc2hhcGUgUlNBIC8gRUNEU0E8L3RzcGFuPjwvdGV4dD4KPHRleHQgeD0iNDQ0IiB5PSI4MyIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZToxMHB4Ij5zaWduIC8gdmVyaWZ5IMK3IHB1YmxpYy1rZXkgZXhwb3J0PC90ZXh0Pgo8cmVjdCB4PSI0NDAiIHk9Ijk2IiB3aWR0aD0iMzU2IiBoZWlnaHQ9IjI0IiByeD0iNiIgZmlsbD0iIzFhMjYzMSIgc3Ryb2tlPSIjM2Q1MTY2Ii8+CjxjaXJjbGUgY3g9IjQ1OCIgY3k9IjEwOCIgcj0iNSIgZmlsbD0iIzA1OTY2OSIvPgo8dGV4dCB4PSI0NzQiIHk9IjExMiIgc3R5bGU9ImZvbnQ6NzAwIDEwLjVweCBJbnRlcixzYW5zLXNlcmlmO2ZpbGw6ICNkOGNiYzkiPk9DSSBLTVM8L3RleHQ+Cjx0ZXh0IHg9Ijc4NCIgeT0iMTEyIiB0ZXh0LWFuY2hvcj0iZW5kIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjEwcHgiPlJTQSDCtyBFQ0RTQSAoYSBjdXJ2ZSk8L3RleHQ+CjxyZWN0IHg9IjQ0MCIgeT0iMTI2IiB3aWR0aD0iMzU2IiBoZWlnaHQ9IjI0IiByeD0iNiIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q1MTY2Ii8+CjxjaXJjbGUgY3g9IjQ1OCIgY3k9IjEzOCIgcj0iNSIgZmlsbD0iIzA1OTY2OSIvPgo8dGV4dCB4PSI0NzQiIHk9IjE0MiIgc3R5bGU9ImZvbnQ6NjAwIDEwLjVweCBJbnRlcixzYW5zLXNlcmlmO2ZpbGw6ICNjOWNmZDgiPnVzZWQgZm9yPC90ZXh0Pgo8dGV4dCB4PSI3ODQiIHk9IjE0MiIgdGV4dC1hbmNob3I9ImVuZCIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZToxMHB4Ij5TaWduIMK3IFZlcmlmeSDCtyBHZXRQdWJsaWNLZXk8L3RleHQ+CjxyZWN0IHg9IjI0IiB5PSIxNzQiIHdpZHRoPSI3ODgiIGhlaWdodD0iMzgiIHJ4PSIxMCIgZmlsbD0iIzMxMmQxYSIgc3Ryb2tlPSIjNjY1ZDNkIiBzdHJva2Utd2lkdGg9IjEuNCIvPgo8dGV4dCB4PSI0NCIgeT0iMTk3IiBzdHlsZT0iZm9udDo3MDAgMTAuNXB4IEludGVyLHNhbnMtc2VyaWY7ZmlsbDogI2RlYjI5MCI+SE1BQyBpcyB1bnN1cHBvcnRlZDwvdGV4dD4KPHRleHQgeD0iNzg0IiB5PSIxOTciIHRleHQtYW5jaG9yPSJlbmQiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6MTBweDtmaWxsOiAjZGViMjkwIj5PQ0kga2V5IHNoYXBlcyBhcmUgQUVTLCBSU0EsIGFuZCBFQ0RTQSBvbmx5OyB0aGVyZSBpcyBubyBITUFDIGtleSB0eXBlLCBzbyBhIE1BQyBjYWxsIGlzIHJlZnVzZWQ8L3RleHQ+Cjwvc3ZnPg==" alt="OCI supports AES, RSA, and ECDSA key types. HMAC is unsupported." />
</div>

<p className="t9-caption">OCI supports AES, RSA, and ECDSA key types. HMAC is unsupported.</p>

#### Rotation

Key rotation creates a new version for subsequent encryption. Retained, enabled older versions remain available to decrypt existing ciphertext.

`is_auto_rotation_enabled` and `rotation_interval_in_days` configure automatic rotation. `RotateKeyOnDemand` creates a version immediately. New encryption uses the new version; decryption of existing ciphertext uses its recorded version. Both AWS and OCI express the rotation interval in days.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjcyIiB2aWV3Qm94PSIwIDAgODM2IDI3MiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJBdXRvbWF0aWMgb3Igb24tZGVtYW5kIHJvdGF0aW9uIGNyZWF0ZXMgYSB2ZXJzaW9uIGZvciBuZXcgZW5jcnlwdGlvbiBhbmQgcmV0YWlucyBwcmV2aW91cyB2ZXJzaW9ucy4iPjxzdHlsZT50ZXh0e2ZvbnQtZmFtaWx5OkludGVyLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCdTZWdvZSBVSScsUm9ib3RvLCdIZWx2ZXRpY2EgTmV1ZScsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiMzMzQxNTV9PC9zdHlsZT4KPGRlZnM+PG1hcmtlciBpZD0ia21zb2NpNiIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI4IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNyIgbWFya2VySGVpZ2h0PSI3IiBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSI+PHBhdGggZD0iTTAsMCBMMTAsNSBMMCwxMCB6IiBmaWxsPSIjOTRhM2I4Ii8+PC9tYXJrZXI+PG1hcmtlciBpZD0ia21zb2NpNmciIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzA1OTY2OSIvPjwvbWFya2VyPjwvZGVmcz4KPHRleHQgeD0iMjYiIHk9IjI2IiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDojMzM0MTU1Ij5ST1RBVElPTiBBRERTIEEgS0VZIFZFUlNJT04gwrcgT0xEIFZFUlNJT05TIFNUQVksIFNPIE9MRCBDSVBIRVJURVhUUyBTVElMTCBERUNSWVBUPC90ZXh0Pgo8cmVjdCB4PSI2MCIgeT0iNDQiIHdpZHRoPSIxNTAiIGhlaWdodD0iNDAiIHJ4PSI5IiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS40Ii8+Cjx0ZXh0IHg9IjEzNSIgeT0iNjkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250LWZhbWlseTp2YXIoLS1tb25vKTtmb250LXNpemU6MTFweDtmaWxsOiM0NzU1NjkiPmtleSB2ZXJzaW9uIDE8L3RleHQ+CjxsaW5lIHgxPSIyMTAiIHkxPSI2NCIgeDI9IjI1MiIgeTI9IjY0IiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2ttc29jaTYpIi8+CjxyZWN0IHg9IjI1NiIgeT0iNDQiIHdpZHRoPSIxNTAiIGhlaWdodD0iNDAiIHJ4PSI5IiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS40Ii8+Cjx0ZXh0IHg9IjMzMSIgeT0iNjkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250LWZhbWlseTp2YXIoLS1tb25vKTtmb250LXNpemU6MTFweDtmaWxsOiM0NzU1NjkiPmtleSB2ZXJzaW9uIDI8L3RleHQ+CjxsaW5lIHgxPSI0MDYiIHkxPSI2NCIgeDI9IjQ0OCIgeTI9IjY0IiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2ttc29jaTYpIi8+CjxyZWN0IHg9IjQ1MiIgeT0iNDQiIHdpZHRoPSIxOTAiIGhlaWdodD0iNDAiIHJ4PSI5IiBmaWxsPSIjZWNmZGY1IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS42Ii8+Cjx0ZXh0IHg9IjU0NyIgeT0iNjkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250LWZhbWlseTp2YXIoLS1tb25vKTtmb250LXNpemU6MTFweDtmaWxsOiMwNDc4NTciPmtleSB2ZXJzaW9uIDMgwrcgY3VycmVudDwvdGV4dD4KPHRleHQgeD0iNTQ3IiB5PSIxMDIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6OXB4Ij5uZXcgZW5jcnlwdHMgdXNlIHRoZSBjdXJyZW50IHZlcnNpb248L3RleHQ+CjxsaW5lIHgxPSI1NDciIHkxPSI4NCIgeDI9IjU0NyIgeTI9Ijk2IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS40IiBtYXJrZXItZW5kPSJ1cmwoI2ttc29jaTZnKSIvPgo8cmVjdCB4PSI2MCIgeT0iMTIwIiB3aWR0aD0iMTk2IiBoZWlnaHQ9IjQyIiByeD0iMTAiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjQiLz4KPHRleHQgeD0iMTU4IiB5PSIxNDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTFweCI+T2xkIGNpcGhlcnRleHQ8L3RleHQ+Cjx0ZXh0IHg9IjE1OCIgeT0iMTU2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjkuNXB4Ij53cmFwcGVkIHVuZGVyIHZlcnNpb24gMTwvdGV4dD4KPGxpbmUgeDE9IjI1NiIgeTE9IjE0MSIgeDI9IjMzMCIgeTI9IjE0MSIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgja21zb2NpNmcpIi8+Cjx0ZXh0IHg9IjI5MyIgeT0iMTMyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjguNXB4Ij5kZWNyeXB0PC90ZXh0Pgo8cmVjdCB4PSIzMzQiIHk9IjEyMCIgd2lkdGg9IjMwOCIgaGVpZ2h0PSI0MiIgcng9IjEwIiBmaWxsPSIjZWNmZGY1IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjQ4OCIgeT0iMTQwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NzsgZm9udC1zaXplOjExcHgiPlN0aWxsIHJlYWRhYmxlPC90ZXh0Pgo8dGV4dCB4PSI0ODgiIHk9IjE1NiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NzsgZm9udC1zaXplOjkuNXB4Ij5WZXJzaW9uIDEgcmVtYWlucyBhdmFpbGFibGUgZm9yIGRlY3J5cHRpb248L3RleHQ+Cjx0ZXh0IHg9IjI2IiB5PSIxOTAiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4OyBmaWxsOiMwNDc4NTciPlRXTyBXQVlTIFRPIFJPVEFURSBPTiBPQ0kgwrcgQk9USCBLRUVQIFRIRSBPTEQgVkVSU0lPTlM8L3RleHQ+CjxyZWN0IHg9IjI0IiB5PSIyMDIiIHdpZHRoPSI3ODgiIGhlaWdodD0iMjgiIHJ4PSI3IiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS4zIi8+CjxjaXJjbGUgY3g9IjQ0IiBjeT0iMjE2IiByPSI0LjUiIGZpbGw9IiNDNzQ2MzQiLz4KPHRleHQgeD0iNjAiIHk9IjIyMCIgc3R5bGU9ImZvbnQ6NzAwIDEwLjVweCBJbnRlcixzYW5zLXNlcmlmO2ZpbGw6IzQ3NTU2OSI+b24gYSBzY2hlZHVsZTwvdGV4dD4KPHRleHQgeD0iNzk2IiB5PSIyMjAiIHRleHQtYW5jaG9yPSJlbmQiIHN0eWxlPSJmb250OjEwLjVweCB2YXIoLS1tb25vKTtmaWxsOiM2NDc0OGIiPmlzX2F1dG9fcm90YXRpb25fZW5hYmxlZCDCtyByb3RhdGlvbl9pbnRlcnZhbF9pbl9kYXlzPC90ZXh0Pgo8cmVjdCB4PSIyNCIgeT0iMjM2IiB3aWR0aD0iNzg4IiBoZWlnaHQ9IjI4IiByeD0iNyIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuMyIvPgo8Y2lyY2xlIGN4PSI0NCIgY3k9IjI1MCIgcj0iNC41IiBmaWxsPSIjQzc0NjM0Ii8+Cjx0ZXh0IHg9IjYwIiB5PSIyNTQiIHN0eWxlPSJmb250OjcwMCAxMC41cHggSW50ZXIsc2Fucy1zZXJpZjtmaWxsOiM0NzU1NjkiPm9uY2UsIG5vdzwvdGV4dD4KPHRleHQgeD0iNzk2IiB5PSIyNTQiIHRleHQtYW5jaG9yPSJlbmQiIHN0eWxlPSJmb250OjEwLjVweCB2YXIoLS1tb25vKTtmaWxsOiM2NDc0OGIiPlJvdGF0ZUtleU9uRGVtYW5kIOKGkiBhIG5ldyBrZXkgdmVyc2lvbjwvdGV4dD4KPC9zdmc+" alt="Automatic or on-demand rotation creates a version for new encryption and retains previous versions." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjcyIiB2aWV3Qm94PSIwIDAgODM2IDI3MiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJBdXRvbWF0aWMgb3Igb24tZGVtYW5kIHJvdGF0aW9uIGNyZWF0ZXMgYSB2ZXJzaW9uIGZvciBuZXcgZW5jcnlwdGlvbiBhbmQgcmV0YWlucyBwcmV2aW91cyB2ZXJzaW9ucy4iPjxzdHlsZT50ZXh0e2ZvbnQtZmFtaWx5OkludGVyLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCdTZWdvZSBVSScsUm9ib3RvLCdIZWx2ZXRpY2EgTmV1ZScsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiNjYmQ1ZTF9PC9zdHlsZT4KPGRlZnM+PG1hcmtlciBpZD0ia21zb2NpNiIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI4IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNyIgbWFya2VySGVpZ2h0PSI3IiBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSI+PHBhdGggZD0iTTAsMCBMMTAsNSBMMCwxMCB6IiBmaWxsPSIjOTRhM2I4Ii8+PC9tYXJrZXI+PG1hcmtlciBpZD0ia21zb2NpNmciIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzIwZjdiNCIvPjwvbWFya2VyPjwvZGVmcz4KPHRleHQgeD0iMjYiIHk9IjI2IiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDogI2M5Y2ZkOCI+Uk9UQVRJT04gQUREUyBBIEtFWSBWRVJTSU9OIMK3IE9MRCBWRVJTSU9OUyBTVEFZLCBTTyBPTEQgQ0lQSEVSVEVYVFMgU1RJTEwgREVDUllQVDwvdGV4dD4KPHJlY3QgeD0iNjAiIHk9IjQ0IiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjQwIiByeD0iOSIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNCIvPgo8dGV4dCB4PSIxMzUiIHk9IjY5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udC1mYW1pbHk6dmFyKC0tbW9ubyk7Zm9udC1zaXplOjExcHg7ZmlsbDogI2M5Y2ZkOCI+a2V5IHZlcnNpb24gMTwvdGV4dD4KPGxpbmUgeDE9IjIxMCIgeTE9IjY0IiB4Mj0iMjUyIiB5Mj0iNjQiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIxLjgiIG1hcmtlci1lbmQ9InVybCgja21zb2NpNikiLz4KPHJlY3QgeD0iMjU2IiB5PSI0NCIgd2lkdGg9IjE1MCIgaGVpZ2h0PSI0MCIgcng9IjkiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjQiLz4KPHRleHQgeD0iMzMxIiB5PSI2OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQtZmFtaWx5OnZhcigtLW1vbm8pO2ZvbnQtc2l6ZToxMXB4O2ZpbGw6ICNjOWNmZDgiPmtleSB2ZXJzaW9uIDI8L3RleHQ+CjxsaW5lIHgxPSI0MDYiIHkxPSI2NCIgeDI9IjQ0OCIgeTI9IjY0IiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI2ttc29jaTYpIi8+CjxyZWN0IHg9IjQ1MiIgeT0iNDQiIHdpZHRoPSIxOTAiIGhlaWdodD0iNDAiIHJ4PSI5IiBmaWxsPSIjMWEzMTI2IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS42Ii8+Cjx0ZXh0IHg9IjU0NyIgeT0iNjkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250LWZhbWlseTp2YXIoLS1tb25vKTtmb250LXNpemU6MTFweDtmaWxsOiAjOTBkZWM4Ij5rZXkgdmVyc2lvbiAzIMK3IGN1cnJlbnQ8L3RleHQ+Cjx0ZXh0IHg9IjU0NyIgeT0iMTAyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjlweCI+bmV3IGVuY3J5cHRzIHVzZSB0aGUgY3VycmVudCB2ZXJzaW9uPC90ZXh0Pgo8bGluZSB4MT0iNTQ3IiB5MT0iODQiIHgyPSI1NDciIHkyPSI5NiIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNCIgbWFya2VyLWVuZD0idXJsKCNrbXNvY2k2ZykiLz4KPHJlY3QgeD0iNjAiIHk9IjEyMCIgd2lkdGg9IjE5NiIgaGVpZ2h0PSI0MiIgcng9IjEwIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS40Ii8+Cjx0ZXh0IHg9IjE1OCIgeT0iMTQwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2VkODsgZm9udC1zaXplOjExcHgiPk9sZCBjaXBoZXJ0ZXh0PC90ZXh0Pgo8dGV4dCB4PSIxNTgiIHk9IjE1NiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZTo5LjVweCI+d3JhcHBlZCB1bmRlciB2ZXJzaW9uIDE8L3RleHQ+CjxsaW5lIHgxPSIyNTYiIHkxPSIxNDEiIHgyPSIzMzAiIHkyPSIxNDEiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2ttc29jaTZnKSIvPgo8dGV4dCB4PSIyOTMiIHk9IjEzMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZTo4LjVweCI+ZGVjcnlwdDwvdGV4dD4KPHJlY3QgeD0iMzM0IiB5PSIxMjAiIHdpZHRoPSIzMDgiIGhlaWdodD0iNDIiIHJ4PSIxMCIgZmlsbD0iIzFhMzEyNiIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI0ODgiIHk9IjE0MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDcwMCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzg7IGZvbnQtc2l6ZToxMXB4Ij5TdGlsbCByZWFkYWJsZTwvdGV4dD4KPHRleHQgeD0iNDg4IiB5PSIxNTYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzg7IGZvbnQtc2l6ZTo5LjVweCI+VmVyc2lvbiAxIHJlbWFpbnMgYXZhaWxhYmxlIGZvciBkZWNyeXB0aW9uPC90ZXh0Pgo8dGV4dCB4PSIyNiIgeT0iMTkwIiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDogIzkwZGVjOCI+VFdPIFdBWVMgVE8gUk9UQVRFIE9OIE9DSSDCtyBCT1RIIEtFRVAgVEhFIE9MRCBWRVJTSU9OUzwvdGV4dD4KPHJlY3QgeD0iMjQiIHk9IjIwMiIgd2lkdGg9Ijc4OCIgaGVpZ2h0PSIyOCIgcng9IjciIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjMiLz4KPGNpcmNsZSBjeD0iNDQiIGN5PSIyMTYiIHI9IjQuNSIgZmlsbD0iI0M3NDYzNCIvPgo8dGV4dCB4PSI2MCIgeT0iMjIwIiBzdHlsZT0iZm9udDo3MDAgMTAuNXB4IEludGVyLHNhbnMtc2VyaWY7ZmlsbDogI2M5Y2ZkOCI+b24gYSBzY2hlZHVsZTwvdGV4dD4KPHRleHQgeD0iNzk2IiB5PSIyMjAiIHRleHQtYW5jaG9yPSJlbmQiIHN0eWxlPSJmb250OjEwLjVweCB2YXIoLS1tb25vKTtmaWxsOiAjYzljZmQ4Ij5pc19hdXRvX3JvdGF0aW9uX2VuYWJsZWQgwrcgcm90YXRpb25faW50ZXJ2YWxfaW5fZGF5czwvdGV4dD4KPHJlY3QgeD0iMjQiIHk9IjIzNiIgd2lkdGg9Ijc4OCIgaGVpZ2h0PSIyOCIgcng9IjciIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjMiLz4KPGNpcmNsZSBjeD0iNDQiIGN5PSIyNTAiIHI9IjQuNSIgZmlsbD0iI0M3NDYzNCIvPgo8dGV4dCB4PSI2MCIgeT0iMjU0IiBzdHlsZT0iZm9udDo3MDAgMTAuNXB4IEludGVyLHNhbnMtc2VyaWY7ZmlsbDogI2M5Y2ZkOCI+b25jZSwgbm93PC90ZXh0Pgo8dGV4dCB4PSI3OTYiIHk9IjI1NCIgdGV4dC1hbmNob3I9ImVuZCIgc3R5bGU9ImZvbnQ6MTAuNXB4IHZhcigtLW1vbm8pO2ZpbGw6ICNjOWNmZDgiPlJvdGF0ZUtleU9uRGVtYW5kIOKGkiBhIG5ldyBrZXkgdmVyc2lvbjwvdGV4dD4KPC9zdmc+" alt="Automatic or on-demand rotation creates a version for new encryption and retains previous versions." />
</div>

<p className="t9-caption">Automatic or on-demand rotation creates a version for new encryption and retains previous versions.</p>

#### Limitations

**Authorization and HMAC.** Target access uses OCI IAM; AWS key-policy and grant APIs are not recreated. OCI key shapes in this mapping are AES, RSA, and ECDSA, without an HMAC key type.

**Replication scope.** OCI vault replication copies a vault rather than one independently managed key. ReplicateKey therefore has broader scope; UpdatePrimaryRegion does not move an individual key's primary region.

**Deletion timing.** The adapter records the requested 7-30-day recovery window and translates the date to OCI's time\_of\_deletion. Retain the keys and versions required by existing ciphertext before scheduling destruction.

**Imported material.** OCI imports externally generated material through its wrapping-key and key-import workflow. That differs from protection\_mode=EXTERNAL, which references a key manager outside OCI. The AWS runtime import handshake is outside this mapping.

#### Other considerations

**Configure custody and access.** Choose the vault and each key's software, HSM, or external protection configuration. Oracle operates the managed service; the customer configures keys, compartment permissions, and deployment identity.

**Retain versions.** Rotation creates a version for new encryption. Existing ciphertext needs its original version. Plan recovery and replication for the vault holding those versions, and verify access from the destination environment.

**Migrate ciphertext.** Decrypt AWS ciphertext or unwrap its data keys with the old key, then encrypt or wrap through the target adapter. Keep AWS available until migration and target decryption are verified. Creating an OCI key does not transfer AWS material or ciphertext.

## On Private Kubernetes

| Operation                           | Area                  | Support      | Depth        | Notes                                                                                                                                                                        |
| ----------------------------------- | --------------------- | ------------ | ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| CreateAlias                         | Aliases               | Supported    | Most usage   | the adapter maintains the alias-to-key mapping and resolves alias references, since a Transit key is addressed by name with no separate alias object                         |
| DeleteAlias                         | Aliases               | Supported    | Full surface | removes an alias from the mapping                                                                                                                                            |
| ListAliases                         | Aliases               | Supported    | Most usage   | lists aliases retained in adapter state                                                                                                                                      |
| UpdateAlias                         | Aliases               | Supported    | Full surface | changes the key referenced by an alias in adapter state                                                                                                                      |
| DeriveSharedSecret                  | Asymmetric            | Out of scope | Full surface | elliptic-curve shared-secret derivation has no Transit equivalent endpoint and is rejected                                                                                   |
| GetPublicKey                        | Asymmetric            | Supported    | Most usage   | returns the public half of an asymmetric key from the Transit key read                                                                                                       |
| Sign                                | Asymmetric            | Supported    | Most usage   | signs server-side with an ed25519, ECDSA, or RSA key via the Transit sign endpoint                                                                                           |
| Verify                              | Asymmetric            | Supported    | Most usage   | verifies natively via the Transit verify endpoint                                                                                                                            |
| GenerateDataKey                     | Envelope / data keys  | Supported    | Common       | served natively by the Transit plaintext-datakey endpoint: one call returns the plaintext data key alongside its wrapped copy, one data-key operation                        |
| GenerateDataKeyPair                 | Envelope / data keys  | Partial      | Most usage   | the native datakey endpoint is symmetric; an asymmetric data-key pair is generated and its private half wrapped by the key, with no native data-key-pair endpoint            |
| GenerateDataKeyPairWithoutPlaintext | Envelope / data keys  | Partial      | Full surface | the same, returning only the wrapped private half                                                                                                                            |
| GenerateDataKeyWithoutPlaintext     | Envelope / data keys  | Supported    | Most usage   | served natively by the Transit wrapped-datakey endpoint, returning only the wrapped data key                                                                                 |
| CreateGrant                         | Grants                | Out of scope | Most usage   | authorization is governed by Vault ACL policies rather than KMS grants, so a grant is rejected                                                                               |
| ListGrants                          | Grants                | Out of scope | Most usage   | there is no grant to list; access is a Vault ACL policy                                                                                                                      |
| ListRetirableGrants                 | Grants                | Out of scope | Full surface | there is no grant to list                                                                                                                                                    |
| RetireGrant                         | Grants                | Out of scope | Full surface | there is no grant to retire                                                                                                                                                  |
| RevokeGrant                         | Grants                | Out of scope | Full surface | there is no grant to revoke                                                                                                                                                  |
| GenerateMac                         | HMAC                  | Supported    | Most usage   | computes an HMAC server-side via the Transit HMAC endpoint; Transit computes the HMAC within Vault                                                                           |
| VerifyMac                           | HMAC                  | Supported    | Most usage   | verifies an HMAC via the Transit verify endpoint                                                                                                                             |
| DeleteImportedKeyMaterial           | Imported key material | Out of scope | Full surface | there is no runtime imported-material lifecycle to drive                                                                                                                     |
| GetParametersForImport              | Imported key material | Out of scope | Full surface | key material is loaded through Transit's own key-import flow at provisioning, not through the native import handshake, so the runtime import ops are rejected                |
| ImportKeyMaterial                   | Imported key material | Out of scope | Full surface | the import handshake is not served at runtime; material is imported at provisioning                                                                                          |
| CancelKeyDeletion                   | Key management        | Partial      | Full surface | cancels the recovery window the adapter holds, before the delete is applied to Transit                                                                                       |
| CreateKey                           | Key management        | Supported    | Common       | the equivalent Transit key is created with the matching type (aes256-gcm96, RSA, ECDSA, ed25519, or hmac); the key usage and material spec translate to the Transit key type |
| DescribeKey                         | Key management        | Supported    | Common       | returns the key metadata held on the Transit key: type, versions, rotation, and configuration                                                                                |
| DisableKey                          | Key management        | Partial      | Most usage   | requires adapter state and Vault access controls; minimum-version settings alone do not disable every operation                                                              |
| EnableKey                           | Key management        | Partial      | Most usage   | restores permitted adapter operations with the required Vault access; version thresholds govern version selection separately                                                 |
| ListKeys                            | Key management        | Supported    | Common       | lists the Transit keys in the mount                                                                                                                                          |
| ScheduleKeyDeletion                 | Key management        | Partial      | Most usage   | Transit deletes immediately once deletion is allowed; the 7-30-day recovery window is held as state by the adapter, not by Transit                                           |
| UpdateKeyDescription                | Key management        | Partial      | Full surface | a Transit key has no description field, so the label is held as metadata by the adapter                                                                                      |
| GetKeyPolicy                        | Key policy            | Out of scope | Most usage   | there is no per-key policy document to read                                                                                                                                  |
| ListKeyPolicies                     | Key policy            | Out of scope | Full surface | there is no per-key policy document to list                                                                                                                                  |
| PutKeyPolicy                        | Key policy            | Out of scope | Most usage   | access is governed by Vault ACL policies rather than a per-key policy document, so a per-key policy is rejected                                                              |
| ReplicateKey                        | Multi-region          | Out of scope | Full surface | a Transit key lives in a single cluster; cross-region key replication is rejected                                                                                            |
| UpdatePrimaryRegion                 | Multi-region          | Out of scope | Full surface | there is no multi-region key set whose primary can be moved                                                                                                                  |
| GenerateRandom                      | Random                | Supported    | Full surface | returns cryptographic random bytes from Vault's random endpoint; no key is involved                                                                                          |
| DisableKeyRotation                  | Rotation              | Supported    | Full surface | clears the auto-rotate period                                                                                                                                                |
| EnableKeyRotation                   | Rotation              | Supported    | Most usage   | turns on automatic rotation via the key's auto-rotate period                                                                                                                 |
| GetKeyRotationStatus                | Rotation              | Supported    | Most usage   | reports whether rotation is on and the configured period                                                                                                                     |
| RotateKeyOnDemand                   | Rotation              | Supported    | Full surface | served natively by the Transit key-rotate endpoint, creating a new key version                                                                                               |
| Decrypt                             | Symmetric crypto      | Supported    | Common       | decrypts server-side and re-checks the associated data; a mismatch fails the decrypt, exactly as it does natively                                                            |
| Encrypt                             | Symmetric crypto      | Supported    | Common       | encrypts server-side via the Transit encrypt endpoint; the encryption context is supplied as Transit associated data, so a matching context is required to decrypt           |
| ReEncrypt                           | Symmetric crypto      | Supported    | Most usage   | same-key rotation uses Transit rewrap; a different key or changed context uses adapter decrypt-then-encrypt without returning plaintext to the caller                        |
| ListResourceTags                    | Tags                  | Partial      | Full surface | lists tags retained in adapter state                                                                                                                                         |
| TagResource                         | Tags                  | Partial      | Full surface | a Transit key has no native tag map, so tags are held as key metadata by the adapter                                                                                         |
| UntagResource                       | Tags                  | Partial      | Full surface | removes a tag from adapter metadata                                                                                                                                          |

#### How it works

Tensor9 runs a KMS adapter in the customer environment and sets `AWS_ENDPOINT_URL_KMS` to its loopback endpoint. The adapter accepts the application's AWS SDK calls, including `Encrypt`, `Decrypt`, and `GenerateDataKey`, and translates them to HashiCorp Vault Transit. The service retains the wrapping key; data-key operations can return a plaintext data key for the application to use.

Vault Transit performs cryptographic operations within Vault and retains its wrapping keys there. It supports data-key generation, rewrapping, signing, verification, and HMAC. You operate the Vault cluster, including storage, unsealing, authentication, and the Transit mount; Tensor9 operates the KMS adapter.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTkyIiB2aWV3Qm94PSIwIDAgODM2IDE5MiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgYWRhcHRlciBzZXJ2ZXMgdGhlIEFXUyBLTVMgQVBJIHVzaW5nIFZhdWx0IFRyYW5zaXQgaW4gdGhlIGN1c3RvbWVyIGVudmlyb25tZW50LiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6IzMzNDE1NX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJ2dDEiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzk0YTNiOCIvPjwvbWFya2VyPjwvZGVmcz4KPHJlY3QgeD0iMTYiIHk9IjQ0IiB3aWR0aD0iMzg0IiBoZWlnaHQ9IjEzMCIgcng9IjE0IiBmaWxsPSIjZjhmYWZjIiBzdHJva2U9IiNjYmQ1ZTEiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtZGFzaGFycmF5PSI1IDUiLz4KPHRleHQgeD0iMzAiIHk9IjYyIiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDojOTRhM2I4Ij5PTiBBV1MgVE9EQVk8L3RleHQ+CjxyZWN0IHg9IjMwIiB5PSI4MiIgd2lkdGg9IjExMCIgaGVpZ2h0PSI2NiIgcng9IjExIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9Ijg1IiB5PSIxMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTIuNXB4Ij5Zb3VyIGFwcDwvdGV4dD4KPHRleHQgeD0iODUiIHk9IjEyOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZToxMHB4Ij5BV1MgS01TIFNESzwvdGV4dD4KPGxpbmUgeDE9IjE0MCIgeTE9IjExNSIgeDI9IjIxNiIgeTI9IjExNSIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjdnQxKSIvPgo8dGV4dCB4PSIxNzgiIHk9IjEwNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZTo4LjVweCI+RW5jcnlwdDwvdGV4dD4KPHRleHQgeD0iMTc4IiB5PSIxMzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6OC41cHgiPkRlY3J5cHQ8L3RleHQ+CjxyZWN0IHg9IjIyMCIgeT0iODAiIHdpZHRoPSIxNjQiIGhlaWdodD0iNzAiIHJ4PSIxMSIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSIzMDIiIHk9IjEwOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMi41cHgiPkFXUyBLTVM8L3RleHQ+Cjx0ZXh0IHg9IjMwMiIgeT0iMTI2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjEwcHgiPndyYXBwaW5nIGtleSBzdGF5cyBpbiBzZXJ2aWNlPC90ZXh0Pgo8bGluZSB4MT0iNDE4IiB5MT0iNDAiIHgyPSI0MTgiIHkyPSIxNjQiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjQiLz4KPHJlY3QgeD0iNDM2IiB5PSI0NCIgd2lkdGg9IjM4NCIgaGVpZ2h0PSIxMzAiIHJ4PSIxNCIgZmlsbD0iI2Y4ZmFmYyIgc3Ryb2tlPSIjY2JkNWUxIiBzdHJva2Utd2lkdGg9IjEuNCIgc3Ryb2tlLWRhc2hhcnJheT0iNSA1Ii8+Cjx0ZXh0IHg9IjQ1MCIgeT0iNjIiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4OyBmaWxsOiMwNDc4NTciPk9OIFRIRSBUQVJHRVQgQ0xPVUQ8L3RleHQ+CjxyZWN0IHg9IjQ0OCIgeT0iODIiIHdpZHRoPSI4MiIgaGVpZ2h0PSI2NiIgcng9IjExIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjQ4OSIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzBmMTcyYTsgZm9udC1zaXplOjEycHgiPllvdXIgYXBwPC90ZXh0Pgo8dGV4dCB4PSI0ODkiIHk9IjEyOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDYwMCAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDU5NjY5Ij5zYW1lIFNESzwvdGV4dD4KPGxpbmUgeDE9IjUzMCIgeTE9IjExNSIgeDI9IjU1OCIgeTI9IjExNSIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjdnQxKSIvPgo8cmVjdCB4PSI1NjIiIHk9Ijc2IiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjgyIiByeD0iMTEiIGZpbGw9IiNlY2ZkZjUiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIxLjciLz4KPHRleHQgeD0iNjE3IiB5PSIxMDIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3OyBmb250LXNpemU6MTJweCI+VGVuc29yOTwvdGV4dD4KPHRleHQgeD0iNjE3IiB5PSIxMTciIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNDc4NTciPktNUyBBUEk8L3RleHQ+Cjx0ZXh0IHg9IjYxNyIgeT0iMTMxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3Ij5hZGFwdGVyPC90ZXh0Pgo8bGluZSB4MT0iNjcyIiB5MT0iMTE1IiB4Mj0iNzAwIiB5Mj0iMTE1IiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCN2dDEpIi8+CjxyZWN0IHg9IjcwNCIgeT0iODIiIHdpZHRoPSIxMTIiIGhlaWdodD0iNjYiIHJ4PSIxMSIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3MTQsOTApIj48cGF0aCBkPSJNNCA4IFY2IGE1IDUgMCAwIDEgMTAgMCBWOCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMWYyOTM3IiBzdHJva2Utd2lkdGg9IjEuNyIvPjxyZWN0IHg9IjIiIHk9IjgiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxMSIgcng9IjIuMiIgZmlsbD0iIzFmMjkzNyIvPjxjaXJjbGUgY3g9IjkiIGN5PSIxMi41IiByPSIxLjciIGZpbGw9IiNGRkNGMjUiLz48cmVjdCB4PSI4LjIiIHk9IjEzIiB3aWR0aD0iMS42IiBoZWlnaHQ9IjMuNiIgcng9IjAuOCIgZmlsbD0iI0ZGQ0YyNSIvPjwvZz4KPHRleHQgeD0iNzY2IiB5PSIxMDYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTAuNXB4O2ZpbGw6IzFmMjkzNyI+VmF1bHQgVHJhbnNpdDwvdGV4dD4KPHRleHQgeD0iNzYwIiB5PSIxMjQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6OS41cHgiPnlvdSBydW4gaXQgwrcgaW4tY2x1c3RlcjwvdGV4dD4KPC9zdmc+" alt="The adapter serves the AWS KMS API using Vault Transit in the customer environment." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTkyIiB2aWV3Qm94PSIwIDAgODM2IDE5MiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgYWRhcHRlciBzZXJ2ZXMgdGhlIEFXUyBLTVMgQVBJIHVzaW5nIFZhdWx0IFRyYW5zaXQgaW4gdGhlIGN1c3RvbWVyIGVudmlyb25tZW50LiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6I2NiZDVlMX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJ2dDEiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzk0YTNiOCIvPjwvbWFya2VyPjwvZGVmcz4KPHJlY3QgeD0iMTYiIHk9IjQ0IiB3aWR0aD0iMzg0IiBoZWlnaHQ9IjEzMCIgcng9IjE0IiBmaWxsPSIjMWEyNjMxIiBzdHJva2U9IiMzZDRmNjYiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtZGFzaGFycmF5PSI1IDUiLz4KPHRleHQgeD0iMzAiIHk9IjYyIiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDogIzk0YTNiOCI+T04gQVdTIFRPREFZPC90ZXh0Pgo8cmVjdCB4PSIzMCIgeT0iODIiIHdpZHRoPSIxMTAiIGhlaWdodD0iNjYiIHJ4PSIxMSIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI4NSIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2VkODsgZm9udC1zaXplOjEyLjVweCI+WW91ciBhcHA8L3RleHQ+Cjx0ZXh0IHg9Ijg1IiB5PSIxMjgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6MTBweCI+QVdTIEtNUyBTREs8L3RleHQ+CjxsaW5lIHgxPSIxNDAiIHkxPSIxMTUiIHgyPSIyMTYiIHkyPSIxMTUiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI3Z0MSkiLz4KPHRleHQgeD0iMTc4IiB5PSIxMDYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6OC41cHgiPkVuY3J5cHQ8L3RleHQ+Cjx0ZXh0IHg9IjE3OCIgeT0iMTMwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjguNXB4Ij5EZWNyeXB0PC90ZXh0Pgo8cmVjdCB4PSIyMjAiIHk9IjgwIiB3aWR0aD0iMTY0IiBoZWlnaHQ9IjcwIiByeD0iMTEiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMzAyIiB5PSIxMDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTIuNXB4Ij5BV1MgS01TPC90ZXh0Pgo8dGV4dCB4PSIzMDIiIHk9IjEyNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZToxMHB4Ij53cmFwcGluZyBrZXkgc3RheXMgaW4gc2VydmljZTwvdGV4dD4KPGxpbmUgeDE9IjQxOCIgeTE9IjQwIiB4Mj0iNDE4IiB5Mj0iMTY0IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS40Ii8+CjxyZWN0IHg9IjQzNiIgeT0iNDQiIHdpZHRoPSIzODQiIGhlaWdodD0iMTMwIiByeD0iMTQiIGZpbGw9IiMxYTI2MzEiIHN0cm9rZT0iIzNkNGY2NiIgc3Ryb2tlLXdpZHRoPSIxLjQiIHN0cm9rZS1kYXNoYXJyYXk9IjUgNSIvPgo8dGV4dCB4PSI0NTAiIHk9IjYyIiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDogIzkwZGVjOCI+T04gVEhFIFRBUkdFVCBDTE9VRDwvdGV4dD4KPHJlY3QgeD0iNDQ4IiB5PSI4MiIgd2lkdGg9IjgyIiBoZWlnaHQ9IjY2IiByeD0iMTEiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNDg5IiB5PSIxMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTJweCI+WW91ciBhcHA8L3RleHQ+Cjx0ZXh0IHg9IjQ4OSIgeT0iMTI4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjAwIDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzYiPnNhbWUgU0RLPC90ZXh0Pgo8bGluZSB4MT0iNTMwIiB5MT0iMTE1IiB4Mj0iNTU4IiB5Mj0iMTE1IiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCN2dDEpIi8+CjxyZWN0IHg9IjU2MiIgeT0iNzYiIHdpZHRoPSIxMTAiIGhlaWdodD0iODIiIHJ4PSIxMSIgZmlsbD0iIzFhMzEyNiIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNyIvPgo8dGV4dCB4PSI2MTciIHk9IjEwMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDcwMCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzg7IGZvbnQtc2l6ZToxMnB4Ij5UZW5zb3I5PC90ZXh0Pgo8dGV4dCB4PSI2MTciIHk9IjExNyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzkwZGVjOCI+S01TIEFQSTwvdGV4dD4KPHRleHQgeD0iNjE3IiB5PSIxMzEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzgiPmFkYXB0ZXI8L3RleHQ+CjxsaW5lIHgxPSI2NzIiIHkxPSIxMTUiIHgyPSI3MDAiIHkyPSIxMTUiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI3Z0MSkiLz4KPHJlY3QgeD0iNzA0IiB5PSI4MiIgd2lkdGg9IjExMiIgaGVpZ2h0PSI2NiIgcng9IjExIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+CjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDcxNCw5MCkiPjxwYXRoIGQ9Ik00IDggVjYgYTUgNSAwIDAgMSAxMCAwIFY4IiBmaWxsPSJub25lIiBzdHJva2U9IiMxZjI5MzciIHN0cm9rZS13aWR0aD0iMS43Ii8+PHJlY3QgeD0iMiIgeT0iOCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjExIiByeD0iMi4yIiBmaWxsPSIjMWYyOTM3Ii8+PGNpcmNsZSBjeD0iOSIgY3k9IjEyLjUiIHI9IjEuNyIgZmlsbD0iI0ZGQ0YyNSIvPjxyZWN0IHg9IjguMiIgeT0iMTMiIHdpZHRoPSIxLjYiIGhlaWdodD0iMy42IiByeD0iMC44IiBmaWxsPSIjRkZDRjI1Ii8+PC9nPgo8dGV4dCB4PSI3NjYiIHk9IjEwNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNlZDg7IGZvbnQtc2l6ZToxMC41cHg7ZmlsbDogI2M5Y2ZkOCI+VmF1bHQgVHJhbnNpdDwvdGV4dD4KPHRleHQgeD0iNzYwIiB5PSIxMjQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6OS41cHgiPnlvdSBydW4gaXQgwrcgaW4tY2x1c3RlcjwvdGV4dD4KPC9zdmc+" alt="The adapter serves the AWS KMS API using Vault Transit in the customer environment." />
</div>

<p className="t9-caption">The adapter serves the AWS KMS API using Vault Transit in the customer environment.</p>

#### Key identity and lifecycle

The adapter keeps durable records for AWS key identities, aliases, tags, and lifecycle state. Key creation provisions the corresponding target key. Later requests resolve the AWS identity to that key; the target service performs cryptographic operations and retains its wrapping key material.

An alias is a mutable reference in adapter state. Updating it changes which key subsequent alias-based requests select; it does not move key material or rewrite existing ciphertext. Back up adapter state and retain the target keys and versions needed to decrypt stored data.

Scheduled deletion records a recovery window of 7-30 days, with 30 days as the default. Cancelling the request returns the key to a disabled state; enable it explicitly before using it again. Final target destruction follows the target's retention rules, which may delay physical removal beyond the adapter's recovery window.

#### The Transit engine and its versioned keys

Transit receives plaintext or ciphertext and returns the result of the requested operation. Encryption and wrapping keys remain in Vault; generated plaintext data keys can be returned to applications.

Rotating a Transit key creates a version for new encryption and retains older versions. The `rewrap` operation updates ciphertext to the latest version; `min_decryption_version` controls which older versions may still decrypt.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjM2IiB2aWV3Qm94PSIwIDAgODM2IDIzNiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUcmFuc2l0IHBlcmZvcm1zIGNyeXB0b2dyYXBoaWMgb3BlcmF0aW9ucyBpbiBWYXVsdCBhbmQgcmV0YWlucyB2ZXJzaW9uZWQgd3JhcHBpbmcga2V5cyB0aGVyZS4iPjxzdHlsZT50ZXh0e2ZvbnQtZmFtaWx5OkludGVyLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCdTZWdvZSBVSScsUm9ib3RvLCdIZWx2ZXRpY2EgTmV1ZScsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiMzMzQxNTV9PC9zdHlsZT4KPGRlZnM+PG1hcmtlciBpZD0idnQyIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiM5NGEzYjgiLz48L21hcmtlcj48L2RlZnM+CjxyZWN0IHg9IjI0IiB5PSI0MiIgd2lkdGg9IjM4NCIgaGVpZ2h0PSIxNzYiIHJ4PSIxMyIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI0NCIgeT0iNjYiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4OyBmaWxsOiMzMzQxNTUiPkVOQ1JZUFRJT04gQVMgQSBTRVJWSUNFPC90ZXh0Pgo8cmVjdCB4PSI0MCIgeT0iMTAwIiB3aWR0aD0iODQiIGhlaWdodD0iNTYiIHJ4PSI5IiBmaWxsPSIjZjhmYWZjIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS4zIi8+Cjx0ZXh0IHg9IjgyIiB5PSIxMjYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6MTBweCI+cGxhaW50ZXh0PC90ZXh0Pgo8dGV4dCB4PSI4MiIgeT0iMTQyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjEwcHgiPm9yIGNpcGhlcnRleHQ8L3RleHQ+CjxsaW5lIHgxPSIxMjQiIHkxPSIxMjgiIHgyPSIxNTAiIHkyPSIxMjgiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI3Z0MikiLz4KPHJlY3QgeD0iMTU0IiB5PSI5MCIgd2lkdGg9IjE0MCIgaGVpZ2h0PSI4MCIgcng9IjEwIiBmaWxsPSIjZjhmYWZjIiBzdHJva2U9IiMxZjI5MzciIHN0cm9rZS13aWR0aD0iMS41Ii8+CjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIxNiwxMDIpIj48cGF0aCBkPSJNNCA4IFY2IGE1IDUgMCAwIDEgMTAgMCBWOCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMWYyOTM3IiBzdHJva2Utd2lkdGg9IjEuNyIvPjxyZWN0IHg9IjIiIHk9IjgiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxMSIgcng9IjIuMiIgZmlsbD0iIzFmMjkzNyIvPjxjaXJjbGUgY3g9IjkiIGN5PSIxMi41IiByPSIxLjciIGZpbGw9IiNGRkNGMjUiLz48cmVjdCB4PSI4LjIiIHk9IjEzIiB3aWR0aD0iMS42IiBoZWlnaHQ9IjMuNiIgcng9IjAuOCIgZmlsbD0iI0ZGQ0YyNSIvPjwvZz4KPHRleHQgeD0iMjI0IiB5PSIxNDIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTFweDtmaWxsOiMxZjI5MzciPlRyYW5zaXQgZW5naW5lPC90ZXh0Pgo8dGV4dCB4PSIyMjQiIHk9IjE1OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZTo5LjVweCI+eW91ciBrZXkgc3RheXMgaW5zaWRlPC90ZXh0Pgo8bGluZSB4MT0iMjk0IiB5MT0iMTI4IiB4Mj0iMzIwIiB5Mj0iMTI4IiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCN2dDIpIi8+CjxyZWN0IHg9IjMyNCIgeT0iMTAwIiB3aWR0aD0iNzIiIGhlaWdodD0iNTYiIHJ4PSI5IiBmaWxsPSIjZWNmZGY1IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS40Ii8+Cjx0ZXh0IHg9IjM2MCIgeT0iMTMyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3OyBmb250LXdlaWdodDo3MDAiPnJlc3VsdDwvdGV4dD4KPHRleHQgeD0iMjE2IiB5PSIyMDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6OXB4Ij5XcmFwcGluZyBrZXlzIHN0YXkgaW4gVmF1bHQ7IGRhdGEta2V5IGNhbGxzIGNhbiByZXR1cm4gcGxhaW50ZXh0IGtleXM8L3RleHQ+CjxyZWN0IHg9IjQyOCIgeT0iNDIiIHdpZHRoPSIzODQiIGhlaWdodD0iMTc2IiByeD0iMTMiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNDQ4IiB5PSI2NiIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6IzA0Nzg1NyI+VEhFIEtFWSBJUyBWRVJTSU9ORUQ8L3RleHQ+CjxyZWN0IHg9IjQ0OCIgeT0iODQiIHdpZHRoPSI5NiIgaGVpZ2h0PSIzOCIgcng9IjkiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjQiLz4KPHRleHQgeD0iNDk2IiB5PSIxMDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNDc1NTY5OyBmb250LXNpemU6MTFweDtmaWxsOiM0NzU1NjkiPmtleSB2MTwvdGV4dD4KPGxpbmUgeDE9IjU0NCIgeTE9IjEwMyIgeDI9IjU2OCIgeTI9IjEwMyIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCN2dDIpIi8+CjxyZWN0IHg9IjU3MiIgeT0iODQiIHdpZHRoPSI5NiIgaGVpZ2h0PSIzOCIgcng9IjkiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjQiLz4KPHRleHQgeD0iNjIwIiB5PSIxMDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNDc1NTY5OyBmb250LXNpemU6MTFweDtmaWxsOiM0NzU1NjkiPmtleSB2MjwvdGV4dD4KPGxpbmUgeDE9IjY2OCIgeTE9IjEwMyIgeDI9IjY5MiIgeTI9IjEwMyIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCN2dDIpIi8+CjxyZWN0IHg9IjY5NiIgeT0iODQiIHdpZHRoPSIxMDAiIGhlaWdodD0iMzgiIHJ4PSI5IiBmaWxsPSIjZWNmZGY1IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS42Ii8+Cjx0ZXh0IHg9Ijc0NiIgeT0iMTA4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzQ3NTU2OTsgZm9udC1zaXplOjEwcHg7ZmlsbDojMDQ3ODU3Ij52MyDCtyBjdXJyZW50PC90ZXh0Pgo8dGV4dCB4PSI2MjAiIHk9IjE1MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZToxMC41cHgiPnJvdGF0aW9uIGFkZHMgYSB2ZXJzaW9uOyBuZXcgZW5jcnlwdHMgdXNlIHRoZSBjdXJyZW50IG9uZTwvdGV4dD4KPHJlY3QgeD0iNDg0IiB5PSIxNzIiIHdpZHRoPSIyNzIiIGhlaWdodD0iMzAiIHJ4PSI5IiBmaWxsPSIjZWNmZGY1IiBzdHJva2U9IiNhN2YzZDAiIHN0cm9rZS13aWR0aD0iMS4zIi8+Cjx0ZXh0IHg9IjYyMCIgeT0iMTkxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3OyBmb250LXNpemU6MTBweCI+UmV0YWluZWQgdmVyc2lvbnMgZGVjcnlwdCBvbGRlciBjaXBoZXJ0ZXh0LjwvdGV4dD4KPC9zdmc+" alt="Transit performs cryptographic operations in Vault and retains versioned wrapping keys there." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjM2IiB2aWV3Qm94PSIwIDAgODM2IDIzNiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUcmFuc2l0IHBlcmZvcm1zIGNyeXB0b2dyYXBoaWMgb3BlcmF0aW9ucyBpbiBWYXVsdCBhbmQgcmV0YWlucyB2ZXJzaW9uZWQgd3JhcHBpbmcga2V5cyB0aGVyZS4iPjxzdHlsZT50ZXh0e2ZvbnQtZmFtaWx5OkludGVyLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCdTZWdvZSBVSScsUm9ib3RvLCdIZWx2ZXRpY2EgTmV1ZScsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiNjYmQ1ZTF9PC9zdHlsZT4KPGRlZnM+PG1hcmtlciBpZD0idnQyIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiM5NGEzYjgiLz48L21hcmtlcj48L2RlZnM+CjxyZWN0IHg9IjI0IiB5PSI0MiIgd2lkdGg9IjM4NCIgaGVpZ2h0PSIxNzYiIHJ4PSIxMyIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI0NCIgeT0iNjYiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4OyBmaWxsOiAjYzljZmQ4Ij5FTkNSWVBUSU9OIEFTIEEgU0VSVklDRTwvdGV4dD4KPHJlY3QgeD0iNDAiIHk9IjEwMCIgd2lkdGg9Ijg0IiBoZWlnaHQ9IjU2IiByeD0iOSIgZmlsbD0iIzFhMjYzMSIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuMyIvPgo8dGV4dCB4PSI4MiIgeT0iMTI2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjEwcHgiPnBsYWludGV4dDwvdGV4dD4KPHRleHQgeD0iODIiIHk9IjE0MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZToxMHB4Ij5vciBjaXBoZXJ0ZXh0PC90ZXh0Pgo8bGluZSB4MT0iMTI0IiB5MT0iMTI4IiB4Mj0iMTUwIiB5Mj0iMTI4IiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCN2dDIpIi8+CjxyZWN0IHg9IjE1NCIgeT0iOTAiIHdpZHRoPSIxNDAiIGhlaWdodD0iODAiIHJ4PSIxMCIgZmlsbD0iIzFhMjYzMSIgc3Ryb2tlPSIjMWYyOTM3IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMTYsMTAyKSI+PHBhdGggZD0iTTQgOCBWNiBhNSA1IDAgMCAxIDEwIDAgVjgiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzFmMjkzNyIgc3Ryb2tlLXdpZHRoPSIxLjciLz48cmVjdCB4PSIyIiB5PSI4IiB3aWR0aD0iMTQiIGhlaWdodD0iMTEiIHJ4PSIyLjIiIGZpbGw9IiMxZjI5MzciLz48Y2lyY2xlIGN4PSI5IiBjeT0iMTIuNSIgcj0iMS43IiBmaWxsPSIjRkZDRjI1Ii8+PHJlY3QgeD0iOC4yIiB5PSIxMyIgd2lkdGg9IjEuNiIgaGVpZ2h0PSIzLjYiIHJ4PSIwLjgiIGZpbGw9IiNGRkNGMjUiLz48L2c+Cjx0ZXh0IHg9IjIyNCIgeT0iMTQyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2VkODsgZm9udC1zaXplOjExcHg7ZmlsbDogI2M5Y2ZkOCI+VHJhbnNpdCBlbmdpbmU8L3RleHQ+Cjx0ZXh0IHg9IjIyNCIgeT0iMTU4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjkuNXB4Ij55b3VyIGtleSBzdGF5cyBpbnNpZGU8L3RleHQ+CjxsaW5lIHgxPSIyOTQiIHkxPSIxMjgiIHgyPSIzMjAiIHkyPSIxMjgiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI3Z0MikiLz4KPHJlY3QgeD0iMzI0IiB5PSIxMDAiIHdpZHRoPSI3MiIgaGVpZ2h0PSI1NiIgcng9IjkiIGZpbGw9IiMxYTMxMjYiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIxLjQiLz4KPHRleHQgeD0iMzYwIiB5PSIxMzIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzg7IGZvbnQtd2VpZ2h0OjcwMCI+cmVzdWx0PC90ZXh0Pgo8dGV4dCB4PSIyMTYiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZTo5cHgiPldyYXBwaW5nIGtleXMgc3RheSBpbiBWYXVsdDsgZGF0YS1rZXkgY2FsbHMgY2FuIHJldHVybiBwbGFpbnRleHQga2V5czwvdGV4dD4KPHJlY3QgeD0iNDI4IiB5PSI0MiIgd2lkdGg9IjM4NCIgaGVpZ2h0PSIxNzYiIHJ4PSIxMyIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI0NDgiIHk9IjY2IiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDogIzkwZGVjOCI+VEhFIEtFWSBJUyBWRVJTSU9ORUQ8L3RleHQ+CjxyZWN0IHg9IjQ0OCIgeT0iODQiIHdpZHRoPSI5NiIgaGVpZ2h0PSIzOCIgcng9IjkiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjQiLz4KPHRleHQgeD0iNDk2IiB5PSIxMDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6MTFweDtmaWxsOiAjYzljZmQ4Ij5rZXkgdjE8L3RleHQ+CjxsaW5lIHgxPSI1NDQiIHkxPSIxMDMiIHgyPSI1NjgiIHkyPSIxMDMiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIxLjgiIG1hcmtlci1lbmQ9InVybCgjdnQyKSIvPgo8cmVjdCB4PSI1NzIiIHk9Ijg0IiB3aWR0aD0iOTYiIGhlaWdodD0iMzgiIHJ4PSI5IiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS40Ii8+Cjx0ZXh0IHg9IjYyMCIgeT0iMTA4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjExcHg7ZmlsbDogI2M5Y2ZkOCI+a2V5IHYyPC90ZXh0Pgo8bGluZSB4MT0iNjY4IiB5MT0iMTAzIiB4Mj0iNjkyIiB5Mj0iMTAzIiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI3Z0MikiLz4KPHJlY3QgeD0iNjk2IiB5PSI4NCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIzOCIgcng9IjkiIGZpbGw9IiMxYTMxMjYiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIxLjYiLz4KPHRleHQgeD0iNzQ2IiB5PSIxMDgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6MTBweDtmaWxsOiAjOTBkZWM4Ij52MyDCtyBjdXJyZW50PC90ZXh0Pgo8dGV4dCB4PSI2MjAiIHk9IjE1MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZToxMC41cHgiPnJvdGF0aW9uIGFkZHMgYSB2ZXJzaW9uOyBuZXcgZW5jcnlwdHMgdXNlIHRoZSBjdXJyZW50IG9uZTwvdGV4dD4KPHJlY3QgeD0iNDg0IiB5PSIxNzIiIHdpZHRoPSIyNzIiIGhlaWdodD0iMzAiIHJ4PSI5IiBmaWxsPSIjMWEzMTI2IiBzdHJva2U9IiMzZDY2NTMiIHN0cm9rZS13aWR0aD0iMS4zIi8+Cjx0ZXh0IHg9IjYyMCIgeT0iMTkxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4OyBmb250LXNpemU6MTBweCI+UmV0YWluZWQgdmVyc2lvbnMgZGVjcnlwdCBvbGRlciBjaXBoZXJ0ZXh0LjwvdGV4dD4KPC9zdmc+" alt="Transit performs cryptographic operations in Vault and retains versioned wrapping keys there." />
</div>

<p className="t9-caption">Transit performs cryptographic operations in Vault and retains versioned wrapping keys there.</p>

#### The native data key and rewrap

`GenerateDataKey` returns a plaintext data key and an encrypted (wrapped) copy. The application uses the plaintext key to encrypt its data locally, then discards that key and stores the wrapped copy beside the encrypted data. To read the data later, it asks the key service to decrypt the wrapped key. Transit implements this with `/transit/datakey/plaintext/:name`; `/transit/datakey/wrapped/:name` returns only the encrypted copy for `GenerateDataKeyWithoutPlaintext`.

For rewrapping under the same Transit key, `/transit/rewrap/:name` decrypts the stored value and encrypts it with the current key version within Vault. It does not return plaintext to the caller. A different destination key or changed context requires a decrypt-and-encrypt sequence through the adapter, where plaintext is held temporarily.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjYyIiB2aWV3Qm94PSIwIDAgODM2IDI2MiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgZGF0YS1rZXkgZW5kcG9pbnQgcmV0dXJucyBhIHBsYWludGV4dCBrZXkgYW5kIGl0cyBlbmNyeXB0ZWQgY29weS4gUmV3cmFwIHVwZGF0ZXMgdGhlIGVuY3J5cHRlZCBjb3B5IHdpdGhvdXQgcmV0dXJuaW5nIHBsYWludGV4dC4iPjxzdHlsZT50ZXh0e2ZvbnQtZmFtaWx5OkludGVyLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCdTZWdvZSBVSScsUm9ib3RvLCdIZWx2ZXRpY2EgTmV1ZScsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiMzMzQxNTV9PC9zdHlsZT4KPGRlZnM+PG1hcmtlciBpZD0idnQzIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiM5NGEzYjgiLz48L21hcmtlcj48bWFya2VyIGlkPSJ2dDNnIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiMwNTk2NjkiLz48L21hcmtlcj48L2RlZnM+Cjx0ZXh0IHg9IjI2IiB5PSIyNCIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZpbGw6IzMzNDE1NSI+R2VuZXJhdGVEYXRhS2V5IHJldHVybnMgcGxhaW50ZXh0IGFuZCBlbmNyeXB0ZWQgY29waWVzPC90ZXh0Pgo8cmVjdCB4PSIyNCIgeT0iNDQiIHdpZHRoPSIxNjYiIGhlaWdodD0iNjAiIHJ4PSIxMSIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSIxMDciIHk9IjcwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzBmMTcyYTsgZm9udC1zaXplOjEycHgiPllvdXIgVHJhbnNpdCBrZXk8L3RleHQ+Cjx0ZXh0IHg9IjEwNyIgeT0iODgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6OS41cHgiPndyYXBzIHRoZSBkYXRhIGtleTwvdGV4dD4KPGxpbmUgeDE9IjE5MCIgeTE9Ijc0IiB4Mj0iMjIyIiB5Mj0iNzQiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI3Z0MykiLz4KPHRleHQgeD0iMjA2IiB5PSI2NiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZTo4cHgiPm9uZSBjYWxsPC90ZXh0Pgo8cmVjdCB4PSIyMjYiIHk9IjQ0IiB3aWR0aD0iMTY4IiBoZWlnaHQ9IjYwIiByeD0iMTEiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMzEwIiB5PSI2OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMnB4Ij5EYXRhIGtleTwvdGV4dD4KPHRleHQgeD0iMzEwIiB5PSI4NiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NzsgZm9udC1zaXplOjkuNXB4Ij5wbGFpbnRleHQgKyB3cmFwcGVkIGNvcHk8L3RleHQ+CjxsaW5lIHgxPSIzOTQiIHkxPSI3NCIgeDI9IjQyNiIgeTI9Ijc0IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCN2dDNnKSIvPgo8dGV4dCB4PSI0MTAiIHk9IjY2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjhweCI+ZW5jcnlwdHM8L3RleHQ+CjxyZWN0IHg9IjQzMCIgeT0iNDQiIHdpZHRoPSIxNjYiIGhlaWdodD0iNjAiIHJ4PSIxMSIgZmlsbD0iI2VjZmRmNSIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNiIvPgo8dGV4dCB4PSI1MTMiIHk9IjY4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NzsgZm9udC1zaXplOjEycHgiPllvdXIgY2lwaGVydGV4dDwvdGV4dD4KPHRleHQgeD0iNTEzIiB5PSI4NiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NzsgZm9udC1zaXplOjkuNXB4Ij5lbmNyeXB0ZWQgd2l0aCB0aGUgZGF0YSBrZXk8L3RleHQ+CjxsaW5lIHgxPSI1OTYiIHkxPSI3NCIgeDI9IjYyOCIgeTI9Ijc0IiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCN2dDMpIi8+CjxyZWN0IHg9IjYzMiIgeT0iNDQiIHdpZHRoPSIxODAiIGhlaWdodD0iNjAiIHJ4PSIxMSIgZmlsbD0iI2Y4ZmFmYyIgc3Ryb2tlPSIjY2JkNWUxIiBzdHJva2Utd2lkdGg9IjEuNCIgc3Ryb2tlLWRhc2hhcnJheT0iNSA1Ii8+Cjx0ZXh0IHg9IjcyMiIgeT0iNjgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTEuNXB4Ij5LZXB0IHRvZ2V0aGVyPC90ZXh0Pgo8dGV4dCB4PSI3MjIiIHk9Ijg2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjkuNXB4Ij5jaXBoZXJ0ZXh0ICsgd3JhcHBlZCBrZXk8L3RleHQ+Cjx0ZXh0IHg9IjQxOCIgeT0iMTI2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjlweCI+U3RvcmUgdGhlIGVuY3J5cHRlZCBrZXk7IGRpc2NhcmQgdGhlIHBsYWludGV4dCBrZXkgYWZ0ZXIgdXNlPC90ZXh0Pgo8dGV4dCB4PSIyNiIgeT0iMTYwIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YjsgZmlsbDojMDQ3ODU3Ij5TQU1FLUtFWSBST1RBVElPTjogUkVXUkFQIFRPIFRIRSBDVVJSRU5UIFZFUlNJT048L3RleHQ+CjxyZWN0IHg9IjI0IiB5PSIxODAiIHdpZHRoPSIxOTYiIGhlaWdodD0iNTYiIHJ4PSIxMSIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSIxMjIiIHk9IjIwNCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMS41cHgiPldyYXBwZWQgdW5kZXIgdjE8L3RleHQ+Cjx0ZXh0IHg9IjEyMiIgeT0iMjIxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjkuNXB4Ij5hbiBvbGQgd3JhcHBlZCBkYXRhIGtleTwvdGV4dD4KPGxpbmUgeDE9IjIyMCIgeTE9IjIwOCIgeDI9IjI3OCIgeTI9IjIwOCIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjdnQzKSIvPgo8dGV4dCB4PSIyNDkiIHk9IjIwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZTo4cHgiPnJld3JhcDwvdGV4dD4KPHJlY3QgeD0iMjgyIiB5PSIxODAiIHdpZHRoPSIyNDgiIGhlaWdodD0iNTYiIHJ4PSIxMSIgZmlsbD0iI2VjZmRmNSIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNiIvPgo8dGV4dCB4PSI0MDYiIHk9IjIwNCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM0NzU1Njk7IGZvbnQtc2l6ZToxMXB4O2ZpbGw6IzA0Nzg1NyI+L3RyYW5zaXQvcmV3cmFwLzpuYW1lPC90ZXh0Pgo8dGV4dCB4PSI0MDYiIHk9IjIyMSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NzsgZm9udC1zaXplOjkuNXB4Ij51bndyYXBzICsgcmUtd3JhcHMgaW5zaWRlIHRoZSBlbmdpbmU8L3RleHQ+CjxsaW5lIHgxPSI1MzAiIHkxPSIyMDgiIHgyPSI1ODgiIHkyPSIyMDgiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI3Z0M2cpIi8+CjxyZWN0IHg9IjU5MiIgeT0iMTgwIiB3aWR0aD0iMjIwIiBoZWlnaHQ9IjU2IiByeD0iMTEiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNzAyIiB5PSIyMDQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTEuNXB4Ij5XcmFwcGVkIHVuZGVyIHYzPC90ZXh0Pgo8dGV4dCB4PSI3MDIiIHk9IjIyMSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZTo5LjVweCI+cmUtd3JhcHBlZCB0byBjdXJyZW50PC90ZXh0Pgo8L3N2Zz4=" alt="The data-key endpoint returns a plaintext key and its encrypted copy. Rewrap updates the encrypted copy without returning plaintext." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjYyIiB2aWV3Qm94PSIwIDAgODM2IDI2MiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgZGF0YS1rZXkgZW5kcG9pbnQgcmV0dXJucyBhIHBsYWludGV4dCBrZXkgYW5kIGl0cyBlbmNyeXB0ZWQgY29weS4gUmV3cmFwIHVwZGF0ZXMgdGhlIGVuY3J5cHRlZCBjb3B5IHdpdGhvdXQgcmV0dXJuaW5nIHBsYWludGV4dC4iPjxzdHlsZT50ZXh0e2ZvbnQtZmFtaWx5OkludGVyLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCdTZWdvZSBVSScsUm9ib3RvLCdIZWx2ZXRpY2EgTmV1ZScsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiNjYmQ1ZTF9PC9zdHlsZT4KPGRlZnM+PG1hcmtlciBpZD0idnQzIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiM5NGEzYjgiLz48L21hcmtlcj48bWFya2VyIGlkPSJ2dDNnIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiMyMGY3YjQiLz48L21hcmtlcj48L2RlZnM+Cjx0ZXh0IHg9IjI2IiB5PSIyNCIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZpbGw6ICNjOWNmZDgiPkdlbmVyYXRlRGF0YUtleSByZXR1cm5zIHBsYWludGV4dCBhbmQgZW5jcnlwdGVkIGNvcGllczwvdGV4dD4KPHJlY3QgeD0iMjQiIHk9IjQ0IiB3aWR0aD0iMTY2IiBoZWlnaHQ9IjYwIiByeD0iMTEiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMTA3IiB5PSI3MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNlZDg7IGZvbnQtc2l6ZToxMnB4Ij5Zb3VyIFRyYW5zaXQga2V5PC90ZXh0Pgo8dGV4dCB4PSIxMDciIHk9Ijg4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjkuNXB4Ij53cmFwcyB0aGUgZGF0YSBrZXk8L3RleHQ+CjxsaW5lIHgxPSIxOTAiIHkxPSI3NCIgeDI9IjIyMiIgeTI9Ijc0IiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCN2dDMpIi8+Cjx0ZXh0IHg9IjIwNiIgeT0iNjYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6OHB4Ij5vbmUgY2FsbDwvdGV4dD4KPHJlY3QgeD0iMjI2IiB5PSI0NCIgd2lkdGg9IjE2OCIgaGVpZ2h0PSI2MCIgcng9IjExIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjMxMCIgeT0iNjgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTJweCI+RGF0YSBrZXk8L3RleHQ+Cjx0ZXh0IHg9IjMxMCIgeT0iODYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzg7IGZvbnQtc2l6ZTo5LjVweCI+cGxhaW50ZXh0ICsgd3JhcHBlZCBjb3B5PC90ZXh0Pgo8bGluZSB4MT0iMzk0IiB5MT0iNzQiIHgyPSI0MjYiIHkyPSI3NCIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjdnQzZykiLz4KPHRleHQgeD0iNDEwIiB5PSI2NiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZTo4cHgiPmVuY3J5cHRzPC90ZXh0Pgo8cmVjdCB4PSI0MzAiIHk9IjQ0IiB3aWR0aD0iMTY2IiBoZWlnaHQ9IjYwIiByeD0iMTEiIGZpbGw9IiMxYTMxMjYiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIxLjYiLz4KPHRleHQgeD0iNTEzIiB5PSI2OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDcwMCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzg7IGZvbnQtc2l6ZToxMnB4Ij5Zb3VyIGNpcGhlcnRleHQ8L3RleHQ+Cjx0ZXh0IHg9IjUxMyIgeT0iODYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzg7IGZvbnQtc2l6ZTo5LjVweCI+ZW5jcnlwdGVkIHdpdGggdGhlIGRhdGEga2V5PC90ZXh0Pgo8bGluZSB4MT0iNTk2IiB5MT0iNzQiIHgyPSI2MjgiIHkyPSI3NCIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjdnQzKSIvPgo8cmVjdCB4PSI2MzIiIHk9IjQ0IiB3aWR0aD0iMTgwIiBoZWlnaHQ9IjYwIiByeD0iMTEiIGZpbGw9IiMxYTI2MzEiIHN0cm9rZT0iIzNkNGY2NiIgc3Ryb2tlLXdpZHRoPSIxLjQiIHN0cm9rZS1kYXNoYXJyYXk9IjUgNSIvPgo8dGV4dCB4PSI3MjIiIHk9IjY4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2VkODsgZm9udC1zaXplOjExLjVweCI+S2VwdCB0b2dldGhlcjwvdGV4dD4KPHRleHQgeD0iNzIyIiB5PSI4NiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZTo5LjVweCI+Y2lwaGVydGV4dCArIHdyYXBwZWQga2V5PC90ZXh0Pgo8dGV4dCB4PSI0MTgiIHk9IjEyNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZTo5cHgiPlN0b3JlIHRoZSBlbmNyeXB0ZWQga2V5OyBkaXNjYXJkIHRoZSBwbGFpbnRleHQga2V5IGFmdGVyIHVzZTwvdGV4dD4KPHRleHQgeD0iMjYiIHk9IjE2MCIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZpbGw6ICM5MGRlYzgiPlNBTUUtS0VZIFJPVEFUSU9OOiBSRVdSQVAgVE8gVEhFIENVUlJFTlQgVkVSU0lPTjwvdGV4dD4KPHJlY3QgeD0iMjQiIHk9IjE4MCIgd2lkdGg9IjE5NiIgaGVpZ2h0PSI1NiIgcng9IjExIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjEyMiIgeT0iMjA0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2VkODsgZm9udC1zaXplOjExLjVweCI+V3JhcHBlZCB1bmRlciB2MTwvdGV4dD4KPHRleHQgeD0iMTIyIiB5PSIyMjEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6OS41cHgiPmFuIG9sZCB3cmFwcGVkIGRhdGEga2V5PC90ZXh0Pgo8bGluZSB4MT0iMjIwIiB5MT0iMjA4IiB4Mj0iMjc4IiB5Mj0iMjA4IiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCN2dDMpIi8+Cjx0ZXh0IHg9IjI0OSIgeT0iMjAwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjhweCI+cmV3cmFwPC90ZXh0Pgo8cmVjdCB4PSIyODIiIHk9IjE4MCIgd2lkdGg9IjI0OCIgaGVpZ2h0PSI1NiIgcng9IjExIiBmaWxsPSIjMWEzMTI2IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS42Ii8+Cjx0ZXh0IHg9IjQwNiIgeT0iMjA0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjExcHg7ZmlsbDogIzkwZGVjOCI+L3RyYW5zaXQvcmV3cmFwLzpuYW1lPC90ZXh0Pgo8dGV4dCB4PSI0MDYiIHk9IjIyMSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzkwZGVjODsgZm9udC1zaXplOjkuNXB4Ij51bndyYXBzICsgcmUtd3JhcHMgaW5zaWRlIHRoZSBlbmdpbmU8L3RleHQ+CjxsaW5lIHgxPSI1MzAiIHkxPSIyMDgiIHgyPSI1ODgiIHkyPSIyMDgiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI3Z0M2cpIi8+CjxyZWN0IHg9IjU5MiIgeT0iMTgwIiB3aWR0aD0iMjIwIiBoZWlnaHQ9IjU2IiByeD0iMTEiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNzAyIiB5PSIyMDQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTEuNXB4Ij5XcmFwcGVkIHVuZGVyIHYzPC90ZXh0Pgo8dGV4dCB4PSI3MDIiIHk9IjIyMSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZTo5LjVweCI+cmUtd3JhcHBlZCB0byBjdXJyZW50PC90ZXh0Pgo8L3N2Zz4=" alt="The data-key endpoint returns a plaintext key and its encrypted copy. Rewrap updates the encrypted copy without returning plaintext." />
</div>

<p className="t9-caption">The data-key endpoint returns a plaintext key and its encrypted copy. Rewrap updates the encrypted copy without returning plaintext.</p>

#### Signing, verification, and HMAC

Transit key types include symmetric `aes256-gcm96` and asymmetric `rsa`, `ecdsa`, and `ed25519`. Symmetric keys support encryption, data-key wrapping, rewrap, and HMAC. Asymmetric keys support signing, verification, and public-key export.

`GenerateMac` and `VerifyMac` use Transit's server-side HMAC operations. `DeriveSharedSecret` is unsupported because Transit has no corresponding endpoint.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjM0IiB2aWV3Qm94PSIwIDAgODM2IDIzNCIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUcmFuc2l0IHN1cHBvcnRzIGVuY3J5cHRpb24sIGRhdGEga2V5cywgcmV3cmFwLCBzaWduaW5nLCB2ZXJpZmljYXRpb24sIGFuZCBITUFDLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6IzMzNDE1NX08L3N0eWxlPgo8dGV4dCB4PSIyNiIgeT0iMjQiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiOyBmaWxsOiMzMzQxNTUiPlZhdWx0IFRyYW5zaXQgb3BlcmF0aW9uczwvdGV4dD4KPHJlY3QgeD0iMjQiIHk9IjQwIiB3aWR0aD0iMzkyIiBoZWlnaHQ9IjE1MCIgcng9IjEzIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjQ0IiB5PSI2NCIgc3R5bGU9ImZvbnQ6NzAwIDEyLjVweCBJbnRlcixzYW5zLXNlcmlmO2ZpbGw6IzMzNDE1NSI+U3ltbWV0cmljIMK3IGFlczI1Ni1nY205NjwvdGV4dD4KPHJlY3QgeD0iNDAiIHk9Ijc4IiB3aWR0aD0iMTcyIiBoZWlnaHQ9IjM0IiByeD0iOCIgZmlsbD0iI2Y4ZmFmYyIgc3Ryb2tlPSIjZjFmNWY5IiBzdHJva2Utd2lkdGg9IjEuMiIvPgo8dGV4dCB4PSIxMjYiIHk9Ijk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzQ3NTU2OTsgZm9udC1zaXplOjEwLjVweDtmaWxsOiM0NzU1NjkiPmVuY3J5cHQgLyBkZWNyeXB0PC90ZXh0Pgo8cmVjdCB4PSIyMjQiIHk9Ijc4IiB3aWR0aD0iMTY4IiBoZWlnaHQ9IjM0IiByeD0iOCIgZmlsbD0iI2Y4ZmFmYyIgc3Ryb2tlPSIjZjFmNWY5IiBzdHJva2Utd2lkdGg9IjEuMiIvPgo8dGV4dCB4PSIzMDgiIHk9Ijk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzQ3NTU2OTsgZm9udC1zaXplOjEwLjVweDtmaWxsOiM0NzU1NjkiPmRhdGEga2V5PC90ZXh0Pgo8cmVjdCB4PSI0MCIgeT0iMTIwIiB3aWR0aD0iMTcyIiBoZWlnaHQ9IjM0IiByeD0iOCIgZmlsbD0iI2Y4ZmFmYyIgc3Ryb2tlPSIjZjFmNWY5IiBzdHJva2Utd2lkdGg9IjEuMiIvPgo8dGV4dCB4PSIxMjYiIHk9IjE0MSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM0NzU1Njk7IGZvbnQtc2l6ZToxMC41cHg7ZmlsbDojNDc1NTY5Ij5yZXdyYXA8L3RleHQ+CjxyZWN0IHg9IjIyNCIgeT0iMTIwIiB3aWR0aD0iMTY4IiBoZWlnaHQ9IjM0IiByeD0iOCIgZmlsbD0iI2VjZmRmNSIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSIzMDAiIHk9IjE0MSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM0NzU1Njk7IGZvbnQtc2l6ZToxMC41cHg7ZmlsbDojMDQ3ODU3Ij5ITUFDPC90ZXh0Pgo8dGV4dCB4PSIzNzIiIHk9IjEzOSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NzsgZm9udC1zaXplOjhweDtmb250LXdlaWdodDo3MDAiPm5hdGl2ZTwvdGV4dD4KPHJlY3QgeD0iNDI0IiB5PSI0MCIgd2lkdGg9IjM4OCIgaGVpZ2h0PSIxNTAiIHJ4PSIxMyIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI0NDQiIHk9IjY0IiBzdHlsZT0iZm9udDo3MDAgMTIuNXB4IEludGVyLHNhbnMtc2VyaWY7ZmlsbDojMzM0MTU1Ij5Bc3ltbWV0cmljIMK3IHJzYSAvIGVjZHNhIC8gZWQyNTUxOTwvdGV4dD4KPHJlY3QgeD0iNDQwIiB5PSI3OCIgd2lkdGg9IjE3NiIgaGVpZ2h0PSIzNCIgcng9IjgiIGZpbGw9IiNmOGZhZmMiIHN0cm9rZT0iI2YxZjVmOSIgc3Ryb2tlLXdpZHRoPSIxLjIiLz4KPHRleHQgeD0iNTI4IiB5PSI5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM0NzU1Njk7IGZvbnQtc2l6ZToxMC41cHg7ZmlsbDojNDc1NTY5Ij5zaWduPC90ZXh0Pgo8cmVjdCB4PSI2MjgiIHk9Ijc4IiB3aWR0aD0iMTY4IiBoZWlnaHQ9IjM0IiByeD0iOCIgZmlsbD0iI2Y4ZmFmYyIgc3Ryb2tlPSIjZjFmNWY5IiBzdHJva2Utd2lkdGg9IjEuMiIvPgo8dGV4dCB4PSI3MTIiIHk9Ijk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzQ3NTU2OTsgZm9udC1zaXplOjEwLjVweDtmaWxsOiM0NzU1NjkiPnZlcmlmeTwvdGV4dD4KPHJlY3QgeD0iNDQwIiB5PSIxMjAiIHdpZHRoPSIzNTYiIGhlaWdodD0iMzQiIHJ4PSI4IiBmaWxsPSIjZjhmYWZjIiBzdHJva2U9IiNmMWY1ZjkiIHN0cm9rZS13aWR0aD0iMS4yIi8+Cjx0ZXh0IHg9IjYxOCIgeT0iMTQxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzQ3NTU2OTsgZm9udC1zaXplOjEwLjVweDtmaWxsOiM0NzU1NjkiPmdldCBwdWJsaWMga2V5PC90ZXh0Pgo8cmVjdCB4PSIyNCIgeT0iMjAwIiB3aWR0aD0iNzg4IiBoZWlnaHQ9IjI2IiByeD0iOSIgZmlsbD0iI2VjZmRmNSIgc3Ryb2tlPSIjYTdmM2QwIiBzdHJva2Utd2lkdGg9IjEuMyIvPgo8dGV4dCB4PSI0MTgiIHk9IjIxNyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NzsgZm9udC1zaXplOjEwcHgiPlRyYW5zaXQgY29tcHV0ZXMgYW5kIHZlcmlmaWVzIEhNQUMgd2l0aGluIFZhdWx0PC90ZXh0Pgo8L3N2Zz4=" alt="Transit supports encryption, data keys, rewrap, signing, verification, and HMAC." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjM0IiB2aWV3Qm94PSIwIDAgODM2IDIzNCIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUcmFuc2l0IHN1cHBvcnRzIGVuY3J5cHRpb24sIGRhdGEga2V5cywgcmV3cmFwLCBzaWduaW5nLCB2ZXJpZmljYXRpb24sIGFuZCBITUFDLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6I2NiZDVlMX08L3N0eWxlPgo8dGV4dCB4PSIyNiIgeT0iMjQiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4OyBmaWxsOiAjYzljZmQ4Ij5WYXVsdCBUcmFuc2l0IG9wZXJhdGlvbnM8L3RleHQ+CjxyZWN0IHg9IjI0IiB5PSI0MCIgd2lkdGg9IjM5MiIgaGVpZ2h0PSIxNTAiIHJ4PSIxMyIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI0NCIgeT0iNjQiIHN0eWxlPSJmb250OjcwMCAxMi41cHggSW50ZXIsc2Fucy1zZXJpZjtmaWxsOiAjYzljZmQ4Ij5TeW1tZXRyaWMgwrcgYWVzMjU2LWdjbTk2PC90ZXh0Pgo8cmVjdCB4PSI0MCIgeT0iNzgiIHdpZHRoPSIxNzIiIGhlaWdodD0iMzQiIHJ4PSI4IiBmaWxsPSIjMWEyNjMxIiBzdHJva2U9IiMzZDUxNjYiIHN0cm9rZS13aWR0aD0iMS4yIi8+Cjx0ZXh0IHg9IjEyNiIgeT0iOTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6MTAuNXB4O2ZpbGw6ICNjOWNmZDgiPmVuY3J5cHQgLyBkZWNyeXB0PC90ZXh0Pgo8cmVjdCB4PSIyMjQiIHk9Ijc4IiB3aWR0aD0iMTY4IiBoZWlnaHQ9IjM0IiByeD0iOCIgZmlsbD0iIzFhMjYzMSIgc3Ryb2tlPSIjM2Q1MTY2IiBzdHJva2Utd2lkdGg9IjEuMiIvPgo8dGV4dCB4PSIzMDgiIHk9Ijk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjEwLjVweDtmaWxsOiAjYzljZmQ4Ij5kYXRhIGtleTwvdGV4dD4KPHJlY3QgeD0iNDAiIHk9IjEyMCIgd2lkdGg9IjE3MiIgaGVpZ2h0PSIzNCIgcng9IjgiIGZpbGw9IiMxYTI2MzEiIHN0cm9rZT0iIzNkNTE2NiIgc3Ryb2tlLXdpZHRoPSIxLjIiLz4KPHRleHQgeD0iMTI2IiB5PSIxNDEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6MTAuNXB4O2ZpbGw6ICNjOWNmZDgiPnJld3JhcDwvdGV4dD4KPHJlY3QgeD0iMjI0IiB5PSIxMjAiIHdpZHRoPSIxNjgiIGhlaWdodD0iMzQiIHJ4PSI4IiBmaWxsPSIjMWEzMTI2IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjMwMCIgeT0iMTQxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjEwLjVweDtmaWxsOiAjOTBkZWM4Ij5ITUFDPC90ZXh0Pgo8dGV4dCB4PSIzNzIiIHk9IjEzOSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzkwZGVjODsgZm9udC1zaXplOjhweDtmb250LXdlaWdodDo3MDAiPm5hdGl2ZTwvdGV4dD4KPHJlY3QgeD0iNDI0IiB5PSI0MCIgd2lkdGg9IjM4OCIgaGVpZ2h0PSIxNTAiIHJ4PSIxMyIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI0NDQiIHk9IjY0IiBzdHlsZT0iZm9udDo3MDAgMTIuNXB4IEludGVyLHNhbnMtc2VyaWY7ZmlsbDogI2M5Y2ZkOCI+QXN5bW1ldHJpYyDCtyByc2EgLyBlY2RzYSAvIGVkMjU1MTk8L3RleHQ+CjxyZWN0IHg9IjQ0MCIgeT0iNzgiIHdpZHRoPSIxNzYiIGhlaWdodD0iMzQiIHJ4PSI4IiBmaWxsPSIjMWEyNjMxIiBzdHJva2U9IiMzZDUxNjYiIHN0cm9rZS13aWR0aD0iMS4yIi8+Cjx0ZXh0IHg9IjUyOCIgeT0iOTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6MTAuNXB4O2ZpbGw6ICNjOWNmZDgiPnNpZ248L3RleHQ+CjxyZWN0IHg9IjYyOCIgeT0iNzgiIHdpZHRoPSIxNjgiIGhlaWdodD0iMzQiIHJ4PSI4IiBmaWxsPSIjMWEyNjMxIiBzdHJva2U9IiMzZDUxNjYiIHN0cm9rZS13aWR0aD0iMS4yIi8+Cjx0ZXh0IHg9IjcxMiIgeT0iOTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6MTAuNXB4O2ZpbGw6ICNjOWNmZDgiPnZlcmlmeTwvdGV4dD4KPHJlY3QgeD0iNDQwIiB5PSIxMjAiIHdpZHRoPSIzNTYiIGhlaWdodD0iMzQiIHJ4PSI4IiBmaWxsPSIjMWEyNjMxIiBzdHJva2U9IiMzZDUxNjYiIHN0cm9rZS13aWR0aD0iMS4yIi8+Cjx0ZXh0IHg9IjYxOCIgeT0iMTQxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjEwLjVweDtmaWxsOiAjYzljZmQ4Ij5nZXQgcHVibGljIGtleTwvdGV4dD4KPHJlY3QgeD0iMjQiIHk9IjIwMCIgd2lkdGg9Ijc4OCIgaGVpZ2h0PSIyNiIgcng9IjkiIGZpbGw9IiMxYTMxMjYiIHN0cm9rZT0iIzNkNjY1MyIgc3Ryb2tlLXdpZHRoPSIxLjMiLz4KPHRleHQgeD0iNDE4IiB5PSIyMTciIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzg7IGZvbnQtc2l6ZToxMHB4Ij5UcmFuc2l0IGNvbXB1dGVzIGFuZCB2ZXJpZmllcyBITUFDIHdpdGhpbiBWYXVsdDwvdGV4dD4KPC9zdmc+" alt="Transit supports encryption, data keys, rewrap, signing, verification, and HMAC." />
</div>

<p className="t9-caption">Transit supports encryption, data keys, rewrap, signing, verification, and HMAC.</p>

#### Encryption context, bound as associated data

An encryption context is a non-secret key/value map bound to ciphertext as additional authenticated data (AAD). Decryption requires the same context. Applications can use it to bind encrypted values to a tenant or purpose.

The adapter sends encryption context as `associated_data` for encryption, decryption, rewrap, and data-key generation. A mismatch causes decryption to fail. This differs from Transit's `context` parameter, which is used for key derivation.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjA2IiB2aWV3Qm94PSIwIDAgODM2IDIwNiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUcmFuc2l0IGF1dGhlbnRpY2F0ZXMgdGhlIGVuY3J5cHRpb24gY29udGV4dCB0aHJvdWdoIGFzc29jaWF0ZWRfZGF0YS4gRGVjcnlwdGlvbiByZXF1aXJlcyB0aGUgc2FtZSBjb250ZXh0LiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6IzMzNDE1NX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJ2dDVnIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiMwNTk2NjkiLz48L21hcmtlcj48bWFya2VyIGlkPSJ2dDVyIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiNkYzI2MjYiLz48L21hcmtlcj48L2RlZnM+Cjx0ZXh0IHg9IjI2IiB5PSIyNCIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6IzMzNDE1NSI+QSBLRVkvVkFMVUUgTUFQIEJPVU5EIElOVE8gVEhFIENJUEhFUlRFWFQgwrcgVEhFIFNBTUUgTUFQIElTIFJFUVVJUkVEIFRPIERFQ1JZUFQ8L3RleHQ+CjxyZWN0IHg9IjI0IiB5PSI0MiIgd2lkdGg9IjIxNCIgaGVpZ2h0PSI5NiIgcng9IjExIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjEzMSIgeT0iNjQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTJweCI+RW5jcnlwdDwvdGV4dD4KPHJlY3QgeD0iNDAiIHk9Ijc2IiB3aWR0aD0iMTgyIiBoZWlnaHQ9IjQ2IiByeD0iOCIgZmlsbD0iI2Y4ZmFmYyIgc3Ryb2tlPSIjZTJlOGYwIi8+Cjx0ZXh0IHg9IjEzMSIgeT0iOTUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250LWZhbWlseTp2YXIoLS1tb25vKTtmb250LXNpemU6MTBweDtmaWxsOiM0NzU1NjkiPnRlbmFudCA9IGFjbWU8L3RleHQ+Cjx0ZXh0IHg9IjEzMSIgeT0iMTEyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udC1mYW1pbHk6dmFyKC0tbW9ubyk7Zm9udC1zaXplOjEwcHg7ZmlsbDojNDc1NTY5Ij5wdXJwb3NlID0gcGF5bWVudHM8L3RleHQ+CjxsaW5lIHgxPSIyMzgiIHkxPSI5MCIgeDI9IjI3MiIgeTI9IjkwIiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCN2dDVnKSIvPgo8dGV4dCB4PSIyNTUiIHk9IjgxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjhweCI+Ym91bmQ8L3RleHQ+CjxyZWN0IHg9IjI3NiIgeT0iNjQiIHdpZHRoPSIxNjQiIGhlaWdodD0iNTIiIHJ4PSIxMCIgZmlsbD0iI2VjZmRmNSIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNiIvPgo8dGV4dCB4PSIzNTgiIHk9Ijg4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NzsgZm9udC1zaXplOjExLjVweCI+Q2lwaGVydGV4dDwvdGV4dD4KPHRleHQgeD0iMzU4IiB5PSIxMDUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNDc4NTc7IGZvbnQtc2l6ZTo5LjVweCI+Ym91bmQgdG8gdGhhdCBjb250ZXh0PC90ZXh0Pgo8bGluZSB4MT0iNDQwIiB5MT0iNzgiIHgyPSI0NzgiIHkyPSI2OCIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCN2dDVnKSIvPgo8bGluZSB4MT0iNDQwIiB5MT0iMTAyIiB4Mj0iNDc4IiB5Mj0iMTE2IiBzdHJva2U9IiNkYzI2MjYiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI3Z0NXIpIi8+CjxyZWN0IHg9IjQ4MiIgeT0iNDgiIHdpZHRoPSIzMzAiIGhlaWdodD0iNDQiIHJ4PSIxMCIgZmlsbD0iI2VjZmRmNSIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI1MDAiIHk9IjY4IiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NzsgZm9udC1zaXplOjExLjVweCI+RGVjcnlwdCDCtyBzYW1lIGNvbnRleHQ8L3RleHQ+Cjx0ZXh0IHg9IjUwMCIgeT0iODQiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNDc4NTc7IGZvbnQtc2l6ZTo5LjVweCI+4pyTIHJldHVybnMgdGhlIHBsYWludGV4dDwvdGV4dD4KPHJlY3QgeD0iNDgyIiB5PSIxMDAiIHdpZHRoPSIzMzAiIGhlaWdodD0iNDQiIHJ4PSIxMCIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZmVjYWNhIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI1MDAiIHk9IjEyMCIgc3R5bGU9ImZvbnQ6NzAwIDExLjVweCBJbnRlcixzYW5zLXNlcmlmO2ZpbGw6I2RjMjYyNiI+RGVjcnlwdCDCtyBkaWZmZXJlbnQgY29udGV4dDwvdGV4dD4KPHRleHQgeD0iNTAwIiB5PSIxMzYiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6OS41cHg7ZmlsbDojYjkxYzFjIj7inJcgZmFpbHM7IHRoZSB3cm9uZyBjb250ZXh0IGNhbm5vdCByZWFkIGl0PC90ZXh0Pgo8cmVjdCB4PSIyNCIgeT0iMTYyIiB3aWR0aD0iNzg4IiBoZWlnaHQ9IjMyIiByeD0iOSIgZmlsbD0iI2VjZmRmNSIgc3Ryb2tlPSIjYTdmM2QwIiBzdHJva2Utd2lkdGg9IjEuMyIvPgo8dGV4dCB4PSI0MTgiIHk9IjE4MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NzsgZm9udC1zaXplOjEwcHgiPm9uIFZhdWx0IFRyYW5zaXQgdGhlIGVuY3J5cHRpb24gY29udGV4dCBiaW5kcyBhcyA8dHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OnZhcigtLW1vbm8pIj5hc3NvY2lhdGVkX2RhdGE8L3RzcGFuPjogYXV0aGVudGljYXRlZCwgbm90IGVuY3J5cHRlZCwgYW5kIGNoZWNrZWQgb24gZXZlcnkgZGVjcnlwdDwvdGV4dD4KPC9zdmc+" alt="Transit authenticates the encryption context through associated_data. Decryption requires the same context." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjA2IiB2aWV3Qm94PSIwIDAgODM2IDIwNiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUcmFuc2l0IGF1dGhlbnRpY2F0ZXMgdGhlIGVuY3J5cHRpb24gY29udGV4dCB0aHJvdWdoIGFzc29jaWF0ZWRfZGF0YS4gRGVjcnlwdGlvbiByZXF1aXJlcyB0aGUgc2FtZSBjb250ZXh0LiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6I2NiZDVlMX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJ2dDVnIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiMyMGY3YjQiLz48L21hcmtlcj48bWFya2VyIGlkPSJ2dDVyIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiNkYzI2MjYiLz48L21hcmtlcj48L2RlZnM+Cjx0ZXh0IHg9IjI2IiB5PSIyNCIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6ICNjOWNmZDgiPkEgS0VZL1ZBTFVFIE1BUCBCT1VORCBJTlRPIFRIRSBDSVBIRVJURVhUIMK3IFRIRSBTQU1FIE1BUCBJUyBSRVFVSVJFRCBUTyBERUNSWVBUPC90ZXh0Pgo8cmVjdCB4PSIyNCIgeT0iNDIiIHdpZHRoPSIyMTQiIGhlaWdodD0iOTYiIHJ4PSIxMSIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSIxMzEiIHk9IjY0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2VkODsgZm9udC1zaXplOjEycHgiPkVuY3J5cHQ8L3RleHQ+CjxyZWN0IHg9IjQwIiB5PSI3NiIgd2lkdGg9IjE4MiIgaGVpZ2h0PSI0NiIgcng9IjgiIGZpbGw9IiMxYTI2MzEiIHN0cm9rZT0iIzNkNGU2NiIvPgo8dGV4dCB4PSIxMzEiIHk9Ijk1IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udC1mYW1pbHk6dmFyKC0tbW9ubyk7Zm9udC1zaXplOjEwcHg7ZmlsbDogI2M5Y2ZkOCI+dGVuYW50ID0gYWNtZTwvdGV4dD4KPHRleHQgeD0iMTMxIiB5PSIxMTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250LWZhbWlseTp2YXIoLS1tb25vKTtmb250LXNpemU6MTBweDtmaWxsOiAjYzljZmQ4Ij5wdXJwb3NlID0gcGF5bWVudHM8L3RleHQ+CjxsaW5lIHgxPSIyMzgiIHkxPSI5MCIgeDI9IjI3MiIgeTI9IjkwIiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCN2dDVnKSIvPgo8dGV4dCB4PSIyNTUiIHk9IjgxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjhweCI+Ym91bmQ8L3RleHQ+CjxyZWN0IHg9IjI3NiIgeT0iNjQiIHdpZHRoPSIxNjQiIGhlaWdodD0iNTIiIHJ4PSIxMCIgZmlsbD0iIzFhMzEyNiIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNiIvPgo8dGV4dCB4PSIzNTgiIHk9Ijg4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzkwZGVjODsgZm9udC1zaXplOjExLjVweCI+Q2lwaGVydGV4dDwvdGV4dD4KPHRleHQgeD0iMzU4IiB5PSIxMDUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzg7IGZvbnQtc2l6ZTo5LjVweCI+Ym91bmQgdG8gdGhhdCBjb250ZXh0PC90ZXh0Pgo8bGluZSB4MT0iNDQwIiB5MT0iNzgiIHgyPSI0NzgiIHkyPSI2OCIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCN2dDVnKSIvPgo8bGluZSB4MT0iNDQwIiB5MT0iMTAyIiB4Mj0iNDc4IiB5Mj0iMTE2IiBzdHJva2U9IiNkYzI2MjYiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI3Z0NXIpIi8+CjxyZWN0IHg9IjQ4MiIgeT0iNDgiIHdpZHRoPSIzMzAiIGhlaWdodD0iNDQiIHJ4PSIxMCIgZmlsbD0iIzFhMzEyNiIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI1MDAiIHk9IjY4IiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzkwZGVjODsgZm9udC1zaXplOjExLjVweCI+RGVjcnlwdCDCtyBzYW1lIGNvbnRleHQ8L3RleHQ+Cjx0ZXh0IHg9IjUwMCIgeT0iODQiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzg7IGZvbnQtc2l6ZTo5LjVweCI+4pyTIHJldHVybnMgdGhlIHBsYWludGV4dDwvdGV4dD4KPHJlY3QgeD0iNDgyIiB5PSIxMDAiIHdpZHRoPSIzMzAiIGhlaWdodD0iNDQiIHJ4PSIxMCIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjNjYzZDNkIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI1MDAiIHk9IjEyMCIgc3R5bGU9ImZvbnQ6NzAwIDExLjVweCBJbnRlcixzYW5zLXNlcmlmO2ZpbGw6ICNkZTkwOTAiPkRlY3J5cHQgwrcgZGlmZmVyZW50IGNvbnRleHQ8L3RleHQ+Cjx0ZXh0IHg9IjUwMCIgeT0iMTM2IiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjkuNXB4O2ZpbGw6ICNkZTkwOTAiPuKclyBmYWlsczsgdGhlIHdyb25nIGNvbnRleHQgY2Fubm90IHJlYWQgaXQ8L3RleHQ+CjxyZWN0IHg9IjI0IiB5PSIxNjIiIHdpZHRoPSI3ODgiIGhlaWdodD0iMzIiIHJ4PSI5IiBmaWxsPSIjMWEzMTI2IiBzdHJva2U9IiMzZDY2NTMiIHN0cm9rZS13aWR0aD0iMS4zIi8+Cjx0ZXh0IHg9IjQxOCIgeT0iMTgyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4OyBmb250LXNpemU6MTBweCI+b24gVmF1bHQgVHJhbnNpdCB0aGUgZW5jcnlwdGlvbiBjb250ZXh0IGJpbmRzIGFzIDx0c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6dmFyKC0tbW9ubykiPmFzc29jaWF0ZWRfZGF0YTwvdHNwYW4+OiBhdXRoZW50aWNhdGVkLCBub3QgZW5jcnlwdGVkLCBhbmQgY2hlY2tlZCBvbiBldmVyeSBkZWNyeXB0PC90ZXh0Pgo8L3N2Zz4=" alt="Transit authenticates the encryption context through associated_data. Decryption requires the same context." />
</div>

<p className="t9-caption">Transit authenticates the encryption context through associated\_data . Decryption requires the same context.</p>

#### Minimum decryption version

Key rotation creates a new version for subsequent encryption. Retained, enabled older versions remain available to decrypt existing ciphertext.

Transit's `min_decryption_version` limits which retained versions can decrypt. Its usual value of 1 permits all versions. Raising it prevents decryption of ciphertext using a lower version; rotation alone does not impose that restriction.

The adapter keeps `min_decryption_version = 1` on the keys it manages. Raising it or destroying an old version prevents access to affected ciphertext and must be handled as a separate change.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjY4IiB2aWV3Qm94PSIwIDAgODM2IDI2OCIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgYWRhcHRlciBzZXRzIG1pbl9kZWNyeXB0aW9uX3ZlcnNpb24gPSAxLiBSYWlzaW5nIGl0IHByZXZlbnRzIG9sZGVyIHZlcnNpb25zIGZyb20gZGVjcnlwdGluZyB0aGVpciBjaXBoZXJ0ZXh0LiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6IzMzNDE1NX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJ2dDYiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzk0YTNiOCIvPjwvbWFya2VyPjwvZGVmcz4KPHRleHQgeD0iMjYiIHk9IjIyIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YjsgZmlsbDojMzM0MTU1Ij5SZXRhaW5lZCBrZXkgdmVyc2lvbnMgcmVtYWluIHVzYWJsZSBmb3IgZGVjcnlwdGlvbjwvdGV4dD4KPHRleHQgeD0iMjYiIHk9IjQ4IiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDojMDQ3ODU3Ij5BREFQVEVSLU1BTkFHRUQgS0VZIMK3IG1pbl9kZWNyeXB0aW9uX3ZlcnNpb24gPSAxPC90ZXh0Pgo8cmVjdCB4PSI2MCIgeT0iNTgiIHdpZHRoPSIxMTgiIGhlaWdodD0iMzYiIHJ4PSI5IiBmaWxsPSIjZmZmIiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjExOSIgeT0iODEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNDc1NTY5OyBmb250LXNpemU6MTFweDtmaWxsOiMwNDc4NTciPnYxPC90ZXh0Pgo8bGluZSB4MT0iMTc4IiB5MT0iNzYiIHgyPSIyMDQiIHkyPSI3NiIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCN2dDYpIi8+CjxyZWN0IHg9IjIwOCIgeT0iNTgiIHdpZHRoPSIxMTgiIGhlaWdodD0iMzYiIHJ4PSI5IiBmaWxsPSIjZmZmIiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjI2NyIgeT0iODEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNDc1NTY5OyBmb250LXNpemU6MTFweDtmaWxsOiMwNDc4NTciPnYyPC90ZXh0Pgo8bGluZSB4MT0iMzI2IiB5MT0iNzYiIHgyPSIzNTIiIHkyPSI3NiIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCN2dDYpIi8+CjxyZWN0IHg9IjM1NiIgeT0iNTgiIHdpZHRoPSIxNTAiIGhlaWdodD0iMzYiIHJ4PSI5IiBmaWxsPSIjZWNmZGY1IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS43Ii8+Cjx0ZXh0IHg9IjQzMSIgeT0iODEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNDc1NTY5OyBmb250LXNpemU6MTFweDtmaWxsOiMwNDc4NTciPnYzIMK3IGN1cnJlbnQ8L3RleHQ+CjxyZWN0IHg9IjUzNiIgeT0iNTgiIHdpZHRoPSIyNzYiIGhlaWdodD0iMzYiIHJ4PSI5IiBmaWxsPSIjZWNmZGY1IiBzdHJva2U9IiNhN2YzZDAiIHN0cm9rZS13aWR0aD0iMS4zIi8+Cjx0ZXh0IHg9IjY3NCIgeT0iODAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNDc4NTc7IGZvbnQtc2l6ZToxMC41cHgiPnYxLXdyYXBwZWQgZGF0YSBrZXlzIHN0aWxsIGRlY3J5cHQg4pyTPC90ZXh0Pgo8dGV4dCB4PSIxMTkiIHk9IjExMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZTo4LjVweCI+TWluaW11bSB2ZXJzaW9uOiAxPC90ZXh0Pgo8dGV4dCB4PSIyNiIgeT0iMTQ2IiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YjsgZmlsbDojYjQ1MzA5Ij5JZiBtaW5fZGVjcnlwdGlvbl92ZXJzaW9uIGNoYW5nZXMgdG8gMzwvdGV4dD4KPHJlY3QgeD0iNjAiIHk9IjE1NiIgd2lkdGg9IjExOCIgaGVpZ2h0PSIzNiIgcng9IjkiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2ZlY2FjYSIgc3Ryb2tlLXdpZHRoPSIxLjQiIHN0cm9rZS1kYXNoYXJyYXk9IjQgMyIvPgo8dGV4dCB4PSIxMTkiIHk9IjE3OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM0NzU1Njk7IGZvbnQtc2l6ZToxMXB4O2ZpbGw6I2RjMjYyNiI+djE8L3RleHQ+CjxsaW5lIHgxPSIxNzgiIHkxPSIxNzQiIHgyPSIyMDQiIHkyPSIxNzQiIHN0cm9rZT0iI2NiZDVlMSIgc3Ryb2tlLXdpZHRoPSIxLjgiIG1hcmtlci1lbmQ9InVybCgjdnQ2KSIvPgo8cmVjdCB4PSIyMDgiIHk9IjE1NiIgd2lkdGg9IjExOCIgaGVpZ2h0PSIzNiIgcng9IjkiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2ZlY2FjYSIgc3Ryb2tlLXdpZHRoPSIxLjQiIHN0cm9rZS1kYXNoYXJyYXk9IjQgMyIvPgo8dGV4dCB4PSIyNjciIHk9IjE3OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM0NzU1Njk7IGZvbnQtc2l6ZToxMXB4O2ZpbGw6I2RjMjYyNiI+djI8L3RleHQ+CjxsaW5lIHgxPSIzMjYiIHkxPSIxNzQiIHgyPSIzNTIiIHkyPSIxNzQiIHN0cm9rZT0iI2NiZDVlMSIgc3Ryb2tlLXdpZHRoPSIxLjgiIG1hcmtlci1lbmQ9InVybCgjdnQ2KSIvPgo8cmVjdCB4PSIzNTYiIHk9IjE1NiIgd2lkdGg9IjE1MCIgaGVpZ2h0PSIzNiIgcng9IjkiIGZpbGw9IiNlY2ZkZjUiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIxLjciLz4KPHRleHQgeD0iNDMxIiB5PSIxNzkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNDc1NTY5OyBmb250LXNpemU6MTBweDtmaWxsOiMwNDc4NTciPnYzIMK3IG1pbmltdW0gYW5kIGN1cnJlbnQ8L3RleHQ+CjxyZWN0IHg9IjUzNiIgeT0iMTU2IiB3aWR0aD0iMjc2IiBoZWlnaHQ9IjM2IiByeD0iOSIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZmVjYWNhIiBzdHJva2Utd2lkdGg9IjEuMyIvPgo8dGV4dCB4PSI2NzQiIHk9IjE3OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6NjAwIDEwLjVweCBJbnRlcixzYW5zLXNlcmlmO2ZpbGw6I2RjMjYyNiI+djEgYW5kIHYyIGNhbm5vdCBkZWNyeXB0PC90ZXh0Pgo8dGV4dCB4PSI0MzEiIHk9IjIxMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM2NDc0OGI7IGZvbnQtc2l6ZTo4LjVweDtmaWxsOiNiNDUzMDkiPk1pbmltdW0gdmVyc2lvbjogMzwvdGV4dD4KPHJlY3QgeD0iMjQiIHk9IjIyNCIgd2lkdGg9Ijc4OCIgaGVpZ2h0PSIzNCIgcng9IjEwIiBmaWxsPSIjZmZmYmViIiBzdHJva2U9IiNmZGU2OGEiIHN0cm9rZS13aWR0aD0iMS4zIi8+Cjx0ZXh0IHg9IjQxOCIgeT0iMjQ1IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDo2MDAgMTAuNXB4IEludGVyLHNhbnMtc2VyaWY7ZmlsbDojYjQ1MzA5Ij5WZXJzaW9ucyBiZWxvdyBtaW5fZGVjcnlwdGlvbl92ZXJzaW9uIGNhbm5vdCBkZWNyeXB0IHRoZWlyIGNpcGhlcnRleHQ8L3RleHQ+Cjwvc3ZnPg==" alt="The adapter sets min_decryption_version = 1. Raising it prevents older versions from decrypting their ciphertext." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjY4IiB2aWV3Qm94PSIwIDAgODM2IDI2OCIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgYWRhcHRlciBzZXRzIG1pbl9kZWNyeXB0aW9uX3ZlcnNpb24gPSAxLiBSYWlzaW5nIGl0IHByZXZlbnRzIG9sZGVyIHZlcnNpb25zIGZyb20gZGVjcnlwdGluZyB0aGVpciBjaXBoZXJ0ZXh0LiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6I2NiZDVlMX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJ2dDYiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzk0YTNiOCIvPjwvbWFya2VyPjwvZGVmcz4KPHRleHQgeD0iMjYiIHk9IjIyIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkODsgZmlsbDogI2M5Y2ZkOCI+UmV0YWluZWQga2V5IHZlcnNpb25zIHJlbWFpbiB1c2FibGUgZm9yIGRlY3J5cHRpb248L3RleHQ+Cjx0ZXh0IHg9IjI2IiB5PSI0OCIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6ICM5MGRlYzgiPkFEQVBURVItTUFOQUdFRCBLRVkgwrcgbWluX2RlY3J5cHRpb25fdmVyc2lvbiA9IDE8L3RleHQ+CjxyZWN0IHg9IjYwIiB5PSI1OCIgd2lkdGg9IjExOCIgaGVpZ2h0PSIzNiIgcng9IjkiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMTE5IiB5PSI4MSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZToxMXB4O2ZpbGw6ICM5MGRlYzgiPnYxPC90ZXh0Pgo8bGluZSB4MT0iMTc4IiB5MT0iNzYiIHgyPSIyMDQiIHkyPSI3NiIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCN2dDYpIi8+CjxyZWN0IHg9IjIwOCIgeT0iNTgiIHdpZHRoPSIxMTgiIGhlaWdodD0iMzYiIHJ4PSI5IiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjI2NyIgeT0iODEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6MTFweDtmaWxsOiAjOTBkZWM4Ij52MjwvdGV4dD4KPGxpbmUgeDE9IjMyNiIgeTE9Ijc2IiB4Mj0iMzUyIiB5Mj0iNzYiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIxLjgiIG1hcmtlci1lbmQ9InVybCgjdnQ2KSIvPgo8cmVjdCB4PSIzNTYiIHk9IjU4IiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjM2IiByeD0iOSIgZmlsbD0iIzFhMzEyNiIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNyIvPgo8dGV4dCB4PSI0MzEiIHk9IjgxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjExcHg7ZmlsbDogIzkwZGVjOCI+djMgwrcgY3VycmVudDwvdGV4dD4KPHJlY3QgeD0iNTM2IiB5PSI1OCIgd2lkdGg9IjI3NiIgaGVpZ2h0PSIzNiIgcng9IjkiIGZpbGw9IiMxYTMxMjYiIHN0cm9rZT0iIzNkNjY1MyIgc3Ryb2tlLXdpZHRoPSIxLjMiLz4KPHRleHQgeD0iNjc0IiB5PSI4MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzkwZGVjODsgZm9udC1zaXplOjEwLjVweCI+djEtd3JhcHBlZCBkYXRhIGtleXMgc3RpbGwgZGVjcnlwdCDinJM8L3RleHQ+Cjx0ZXh0IHg9IjExOSIgeT0iMTEyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjguNXB4Ij5NaW5pbXVtIHZlcnNpb246IDE8L3RleHQ+Cjx0ZXh0IHg9IjI2IiB5PSIxNDYiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4OyBmaWxsOiAjZGViMjkwIj5JZiBtaW5fZGVjcnlwdGlvbl92ZXJzaW9uIGNoYW5nZXMgdG8gMzwvdGV4dD4KPHJlY3QgeD0iNjAiIHk9IjE1NiIgd2lkdGg9IjExOCIgaGVpZ2h0PSIzNiIgcng9IjkiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzY2M2QzZCIgc3Ryb2tlLXdpZHRoPSIxLjQiIHN0cm9rZS1kYXNoYXJyYXk9IjQgMyIvPgo8dGV4dCB4PSIxMTkiIHk9IjE3OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZToxMXB4O2ZpbGw6ICNkZTkwOTAiPnYxPC90ZXh0Pgo8bGluZSB4MT0iMTc4IiB5MT0iMTc0IiB4Mj0iMjA0IiB5Mj0iMTc0IiBzdHJva2U9IiMzZDRmNjYiIHN0cm9rZS13aWR0aD0iMS44IiBtYXJrZXItZW5kPSJ1cmwoI3Z0NikiLz4KPHJlY3QgeD0iMjA4IiB5PSIxNTYiIHdpZHRoPSIxMTgiIGhlaWdodD0iMzYiIHJ4PSI5IiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiM2NjNkM2QiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtZGFzaGFycmF5PSI0IDMiLz4KPHRleHQgeD0iMjY3IiB5PSIxNzkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6MTFweDtmaWxsOiAjZGU5MDkwIj52MjwvdGV4dD4KPGxpbmUgeDE9IjMyNiIgeTE9IjE3NCIgeDI9IjM1MiIgeTI9IjE3NCIgc3Ryb2tlPSIjM2Q0ZjY2IiBzdHJva2Utd2lkdGg9IjEuOCIgbWFya2VyLWVuZD0idXJsKCN2dDYpIi8+CjxyZWN0IHg9IjM1NiIgeT0iMTU2IiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjM2IiByeD0iOSIgZmlsbD0iIzFhMzEyNiIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNyIvPgo8dGV4dCB4PSI0MzEiIHk9IjE3OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZToxMHB4O2ZpbGw6ICM5MGRlYzgiPnYzIMK3IG1pbmltdW0gYW5kIGN1cnJlbnQ8L3RleHQ+CjxyZWN0IHg9IjUzNiIgeT0iMTU2IiB3aWR0aD0iMjc2IiBoZWlnaHQ9IjM2IiByeD0iOSIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjNjYzZDNkIiBzdHJva2Utd2lkdGg9IjEuMyIvPgo8dGV4dCB4PSI2NzQiIHk9IjE3OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6NjAwIDEwLjVweCBJbnRlcixzYW5zLXNlcmlmO2ZpbGw6ICNkZTkwOTAiPnYxIGFuZCB2MiBjYW5ub3QgZGVjcnlwdDwvdGV4dD4KPHRleHQgeD0iNDMxIiB5PSIyMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4OyBmb250LXNpemU6OC41cHg7ZmlsbDogI2RlYjI5MCI+TWluaW11bSB2ZXJzaW9uOiAzPC90ZXh0Pgo8cmVjdCB4PSIyNCIgeT0iMjI0IiB3aWR0aD0iNzg4IiBoZWlnaHQ9IjM0IiByeD0iMTAiIGZpbGw9IiMzMTJkMWEiIHN0cm9rZT0iIzY2NWQzZCIgc3Ryb2tlLXdpZHRoPSIxLjMiLz4KPHRleHQgeD0iNDE4IiB5PSIyNDUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OjYwMCAxMC41cHggSW50ZXIsc2Fucy1zZXJpZjtmaWxsOiAjZGViMjkwIj5WZXJzaW9ucyBiZWxvdyBtaW5fZGVjcnlwdGlvbl92ZXJzaW9uIGNhbm5vdCBkZWNyeXB0IHRoZWlyIGNpcGhlcnRleHQ8L3RleHQ+Cjwvc3ZnPg==" alt="The adapter sets min_decryption_version = 1. Raising it prevents older versions from decrypting their ciphertext." />
</div>

<p className="t9-caption">The adapter sets min\_decryption\_version = 1 . Raising it prevents older versions from decrypting their ciphertext.</p>

#### Limitations

**Deletion and disabled state.** Transit has no AWS scheduled-deletion window or single enabled flag. The adapter records the recovery window. Version thresholds restrict particular versions; they do not disable every operation on a key. Coordinate adapter state with Vault access policy.

**Authorization and regions.** Vault ACL policies control Transit paths. AWS grant and key-policy APIs are not recreated. Vault Enterprise replication is separate cluster configuration; it does not provide this mapping's ReplicateKey or UpdatePrimaryRegion API.

**Re-encryption.** Transit rewrap changes the version of the same named key. ReEncrypt to a different key or with a changed encryption context requires decrypting and encrypting through the adapter. Intermediate plaintext is not returned to the caller.

**Version retention and import.** Raising min\_decryption\_version prevents older versions from decrypting. Imported material uses Transit's import workflow; asymmetric data-key pairs require local generation and wrapping. DeriveSharedSecret is outside this mapping.

#### Other considerations

**Operate Vault.** The platform team runs Vault storage, unsealing, authentication, backups, and the Transit mount. The adapter uses its configured Vault identity; restrict its ACL paths to the required key operations.

**Protect both state stores.** Back up adapter key identities and aliases as well as Vault storage. A surviving alias cannot decrypt data if its target key or required version has been lost.

**Migrate ciphertext.** Keep AWS available to decrypt values or unwrap data keys, then encrypt or wrap them under Transit before retiring AWS access. Existing AWS ciphertext cannot be used directly with a newly created Transit key.

[Service Catalog](/service-adapters/catalog).
