Import public key (simple or composite hybrid)

Imports public key material for simple or composite (hybrid) cryptographic keys.

Public-Only Import: This endpoint imports public keys only.
For full key import including private keys, use the PKCS#12 import endpoint.

Supported Key Types:

  1. Simple Keys (type="SIMPLE" or omit):

    • RSA, EC, EdDSA, ECDH, ML-KEM, ML-DSA, FALCON, SLH-DSA, etc.
    • Provide publicKey field in Base64 X.509 SubjectPublicKeyInfo format
  2. Composite Keys (type="COMPOSITE"):

    • COMPOSITE_KEM_COMBINE: Hybrid encryption (X25519+ML-KEM-768, P-384+ML-KEM-1024, etc.)
    • COMPOSITE_SIGNATURE: Hybrid signatures (Ed25519+ML-DSA-65, P-256+ML-DSA-44, etc.)
    • Provide components array with public keys for each component

Business Rules:

  • New key (kid not exists): Creates public-only key → 201 Created
  • Existing key, public keys match: Verification only, no updates → 200 OK
  • Existing key, public keys differ: Rejected → 409 Conflict
  • Composite keys: ALL component public keys must match exactly

keyOps Validation:

Only public-only operations allowed:

  • Allowed: encrypt, verify, wrapKey, deriveKey
  • Rejected: decrypt, sign, unwrapKey (require private key)
  • Algorithm must support the requested operation

Use Cases:

  • Import partner/external public keys for signature verification
  • Import certificate public keys for encryption
  • Share public keys across tenants or systems
  • Import hybrid classical+PQC keys for quantum-safe communications
Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params

Import public keys for simple or composite (hybrid) keys.

Public-Only Import: This endpoint imports public keys only.
For full key import including private keys, use the PKCS#12 import endpoint.

Simple Keys: Set type="SIMPLE" (default), provide publicKey field.

Composite Keys: Set type="COMPOSITE", kty="COMPOSITE_KEM_COMBINE" or
"COMPOSITE_SIGNATURE", provide components array with public keys.

Import request for simple or composite (hybrid) cryptographic keys.

Public-Only Import: This endpoint imports public keys only. No private key
material is accepted. Imported keys can be used for encrypt/verify operations.

Simple Keys: Set type="SIMPLE" (default), provide publicKey.

Composite Keys: Set type="COMPOSITE", kty="COMPOSITE_KEM_COMBINE" or
"COMPOSITE_SIGNATURE", provide components array with public keys.

string
required

Unique identifier (kid) for the key. If exists, public key is validated against stored key.

string
required

Key type. For simple keys: RSA, EC, ML-KEM, ML-DSA, etc.
For composite keys: COMPOSITE_KEM_COMBINE or COMPOSITE_SIGNATURE.

string
required

Algorithm identifier. For simple keys: P-256, RSA-2048, ML-KEM-768, etc.
For composite keys: Combined algorithm (e.g., "X25519+ML-KEM-768").

string
enum
Defaults to SIMPLE

Key type: SIMPLE (default) or COMPOSITE.

  • SIMPLE: Traditional single-algorithm key
  • COMPOSITE: Hybrid classical+PQC key with multiple components
Allowed:
string

Base64-encoded public key (X.509 SubjectPublicKeyInfo format).
Required for simple asymmetric keys. Not used for composite keys
(use components array instead).

string

KDF algorithm for COMPOSITE_KEM_COMBINE keys.
Specifies how component secrets are combined.
Common values: HKDF-SHA256, HKDF-SHA384, HKDF-SHA512.

string
enum

Verification policy for COMPOSITE_SIGNATURE keys.
Specifies how many component signatures must verify.

  • ALL: All component signatures must verify
  • ANY: At least one component signature must verify
  • QUORUM: Majority of component signatures must verify
Allowed:
components
array of objects

Component array for COMPOSITE keys. Required when type=COMPOSITE.
Each component contains role, algorithm, family, and public key.
Typically includes one classical and one PQC component.

components
keyOps
array of strings

Permitted key operations. Must be public-only operations.
Allowed: encrypt, verify, wrapKey, deriveKey.
Rejected: decrypt, sign, unwrapKey (require private key).

keyOps
boolean

Whether this key can be exported from the keystore.

string

ISO 8601 expiration date-time. Null means no expiration.

string

ISO 8601 soft-limit expiration for warnings. Defaults to expiresAt.

int32

Maximum usage operations allowed. 0 means unlimited.

int32

Soft-limit usage count for warnings. Defaults to maxUsageLimit.

Headers
string
enum
Defaults to application/json

Generated from available response content types

Allowed:
Responses

Language
Credentials
Bearer
JWT
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json
application/problem+json