Lists the master encryption keys in the specified vault and compartment.

As a management operation, this call is subject to a Key Management limit that applies to the total number of requests across all management read operations. Key Management might throttle this call to reject an otherwise valid request when the total rate of management read operations exceeds 10 requests per second for a given tenancy.

The top level –endpoint parameter must be supplied for this operation.


oci kms management key list [OPTIONS]

Required Parameters

--compartment-id, -c [text]

The OCID of the compartment.

Optional Parameters

--algorithm [text]

The algorithm used by a key’s key versions to encrypt or decrypt data. Currently, support includes AES, RSA, and ECDSA algorithms.

Accepted values are:


Fetches all pages of results. If you provide this option, then you cannot provide the --limit option.

--curve-id [text]

The curve ID of the keys. (This pertains only to ECDSA keys.)

Accepted values are:

NIST_P256, NIST_P384, NIST_P521
--from-json [text]

Provide input to this command as a JSON document from a file using the file://path-to/file syntax.

The --generate-full-command-json-input option can be used to generate a sample json file to be used with this command option. The key names are pre-populated and match the command option names (converted to camelCase format, e.g. compartment-id –> compartmentId), while the values of the keys need to be populated by the user before using the sample file as an input to this command. For any command option that accepts multiple values, the value of the key can be a JSON array.

Options can still be provided on the command line. If an option exists in both the JSON document and the command line then the command line specified value will be used.

For examples on usage of this option, please see our “using CLI with advanced JSON options” link:

--length [integer]

The length of the key in bytes, expressed as an integer. Supported values include 16, 24, or 32.

--limit [integer]

The maximum number of items to return in a paginated “List” call.

--page [text]

The value of the opc-next-page response header from the previous “List” call.

--page-size [integer]

When fetching results, the number of results to fetch per call. Only valid when used with --all or --limit, and ignored otherwise.

--protection-mode [text]

A key’s protection mode indicates how the key persists and where cryptographic operations that use the key are performed. A protection mode of HSM means that the key persists on a hardware security module (HSM) and all cryptographic operations are performed inside the HSM. A protection mode of SOFTWARE means that the key persists on the server, protected by the vault’s RSA wrapping key which persists on the HSM. All cryptographic operations that use a key with a protection mode of SOFTWARE are performed on the server. A protection mode of EXTERNAL mean that the key persists on the customer’s external key manager which is hosted externally outside of oracle. Oracle only hold a reference to that key. All cryptographic operations that use a key with a protection mode of EXTERNAL are performed by external key manager.

Accepted values are:

--sort-by [text]

The field to sort by. You can specify only one sort order. The default order for TIMECREATED is descending. The default order for DISPLAYNAME is ascending.

Accepted values are:

--sort-order [text]

The sort order to use, either ascending (ASC) or descending (DESC).

Accepted values are:


Example using required parameter

Copy the following CLI commands into a file named Run the command by typing “bash” and replacing the example parameters with your own.

Please note this sample will only work in the POSIX-compliant bash-like shell. You need to set up the OCI configuration and appropriate security policies before trying the examples.

    export compartment_id=<substitute-value-of-compartment_id> #

    oci kms management key list --compartment-id $compartment_id