Skip to content

API Details

krisjanisp edited this page Oct 9, 2026 · 5 revisions

API details

The route table, parameters and examples are in the README.

Parameters

number defaults to 1 and must be 1–128. size defaults to 256 bits and must be 8–65,536 bits, divisible by 8. A POST issuance request with defaults uses {}. Retrieval accepts 1–128 IDs, preserving order and duplicates. The UUID carries the key length; dec_keys needs no size parameter or prior issuance on that endpoint. Authorized repeat retrieval of the same ID returns the same key while the PSK remains unchanged, including after a restart. This supports retries; retrieval does not consume the ID, and IDs do not expire.

Key values use standard padded Base64. IDs are returned in lowercase hyphenated UUID format; retrieval also accepts uppercase hyphenated UUIDs.

A key response has this shape (this test vector uses 32 bytes of 0x07 as the PSK; deployment secrets must be randomly generated):

{"keys":[{"key_ID":"ab531e5f-28fd-4f93-b7cf-f49a723babac","key":"29dcgpL9WDwAf/0CfUUAm5JptfBv9w7mr7mvu0ZYfo8="}]}

Status response, errors and limits

Status returns all required ETSI fields. stored_key_count and max_key_count are fixed at 1,024: a synthetic, non-depleting availability indicator, not a real pool or lifetime issuance limit. max_key_per_request is 128, key_size is 256, min_key_size is 8, max_key_size is 65,536, and max_SAE_ID_count is 0. master_SAE_ID comes from the client certificate; Request-SAE-ID cannot override it.

Nonempty additional_slave_SAE_IDs is rejected because multicast is not advertised. Optional extension objects are ignored. Nonempty mandatory extensions are rejected with not all extension_mandatory parameters are supported. Malformed requests return HTTP 400 and {"message":"..."}; non-byte-aligned sizes use size shall be a multiple of 8. Unsupported key formats use one or more keys specified are not found on KME. No partial key batch is returned on error. Responses carry Cache-Control: no-store. JSON bodies are limited to 64 KiB (HTTP 413); issuance failures return 503. Unknown routes and unsupported methods return JSON 404/405 errors.

Clone this wiki locally