pub struct SubmitResponseRequest {
pub device_ephemeral_pubkey: Base64UrlEncoded,
pub device_signing_pubkey: Base64UrlEncoded,
pub curve: CurveTag,
pub device_did: String,
pub signature: Base64UrlEncoded,
pub device_name: Option<String>,
pub subkey_chain: Option<SubkeyChain>,
pub initiator_inception_event: String,
pub responder_inception_event: String,
pub shared_kel_inception_event: Option<String>,
}Expand description
Request to submit a pairing response.
Fields§
§device_ephemeral_pubkey: Base64UrlEncoded§device_signing_pubkey: Base64UrlEncoded§curve: CurveTagSigning curve for device_signing_pubkey / signature. Carried in-band
per the workspace wire-format curve-tagging rule — verifiers must never
infer curve from pubkey byte length. Defaults to P-256 when absent.
device_did: StringResponder’s DID string (e.g. did:key:z6Mk...).
signature: Base64UrlEncoded§device_name: Option<String>§subkey_chain: Option<SubkeyChain>Optional per-pairing subkey chain for controller-correlation
privacy. When present, device_signing_pubkey is a fresh
session-only subkey and subkey_chain.bootstrap_pubkey holds
the stable phone-level key that signed the subkey binding.
A daemon built with the subkey-chain-v1 feature verifies the
chain and records bootstrap_pubkey as the stable phone
identifier; a daemon built without the feature rejects any
Some(_) with an explicit unsupported-extension error.
initiator_inception_event: StringThe initiator’s device-KEL inception event, base64url-no-pad JSON.
Both sides validate the other’s icp before either side signs
the shared-KEL change. The daemon is an untrusted relay and does
not inspect this field. #[serde(default)] so legacy pair
responses that pre-date mutual inception exchange continue to
deserialize (the responder-side code must still enforce presence
when it expects the inception data).
responder_inception_event: StringThe responder’s device-KEL inception event, base64url-no-pad JSON.
Shared-KEL inception event — populated by the Mac (initiator) when no shared identity KEL exists yet (first-ever pair). The responder validates self-consistency + Mac’s signature, then replicates. Size-capped at 1 KB on serialize to guard against future multi-sig KEL inceptions overflowing QR capacity.
Implementations§
Trait Implementations§
Source§impl Clone for SubmitResponseRequest
impl Clone for SubmitResponseRequest
Source§fn clone(&self) -> SubmitResponseRequest
fn clone(&self) -> SubmitResponseRequest
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more