get_hitl_keys
Get the encryption keypair for a HITL config. With hitl:read it returns the public key, encrypted private key, KDF salt, and key ID (kid). A key holding confirmations:create without hitl:read receives only public_key and kid — what a confirmation message is sealed to, never the private-key material.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"hitl_id": "<hitl_id>"
},
"name": "get_hitl_keys"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| hitl_id | Yes | HITL config ID |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kid | Yes | The key id: lowercase hex SHA-256 of the public key's SPKI DER | |
| dek_iv | No | ||
| dek_tag | No | ||
| kdf_salt | No | The salt the wrapping key is derived with. Absent for a key holding `confirmations:create` without `hitl:read`. | |
| public_key | Yes | The RSA public key (SPKI PEM) messages are sealed to. Null means the stored key material could not be read: a degraded state to report, not "no key yet" (a config with no keypair answers 404 `no_keypair`). | |
| wrapped_dek | No | The per-config data key wrapped under the master key; null for a keypair stored before it existed. Absent for a requester key, as are the five fields below. | |
| backup_dek_iv | No | ||
| backup_dek_tag | No | ||
| backup_wrapped_dek | No | The same data key wrapped under the recovery key; null until recovery is set up | |
| encrypted_private_key | No | The private key as stored, wrapped client-side. Absent for a key holding `confirmations:create` without `hitl:read`. |