pub struct KeypairProof {
pub public_key_id: String,
pub timestamp: u64,
pub signature: Vec<u8>,
}Expand description
Proof of possession via Ed25519 signature. The server looks up
public_key_id in device_roots first (CLI device flow) and then
in issued_credentials (service-account credential renewal). The
signature is over the canonical bytes
f"{timestamp}\n{public_key_id}\n{requested_scope}" (UTF-8). The
timestamp window is ±60s — replay attempts older than that are
rejected without touching the keypair lookup.
Fields§
§public_key_id: StringStable id of the public key. Matches device_roots.id or
issued_credentials.id.
timestamp: u64Unix-seconds when the signature was produced. Signed input.
signature: Vec<u8>Ed25519 signature over the canonical bytes.
Trait Implementations§
Source§impl Clone for KeypairProof
impl Clone for KeypairProof
Source§fn clone(&self) -> KeypairProof
fn clone(&self) -> KeypairProof
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for KeypairProof
impl Debug for KeypairProof
Source§impl Default for KeypairProof
impl Default for KeypairProof
impl Eq for KeypairProof
Source§impl Hash for KeypairProof
impl Hash for KeypairProof
Source§impl Message for KeypairProof
impl Message for KeypairProof
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Returns the encoded length of the message without a length delimiter.
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Encodes the message to a buffer. Read more
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Encodes the message to a newly allocated buffer.
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Encodes the message with a length-delimiter to a buffer. Read more
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Encodes the message with a length-delimiter to a newly allocated buffer.
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Decodes an instance of the message from a buffer. Read more
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Decodes a length-delimited instance of the message from the buffer.
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
Decodes an instance of the message from a buffer, and merges it into
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
Decodes a length-delimited instance of the message from buffer, and
merges it into
self.Source§impl PartialEq for KeypairProof
impl PartialEq for KeypairProof
impl StructuralPartialEq for KeypairProof
Auto Trait Implementations§
impl Freeze for KeypairProof
impl RefUnwindSafe for KeypairProof
impl Send for KeypairProof
impl Sync for KeypairProof
impl Unpin for KeypairProof
impl UnsafeUnpin for KeypairProof
impl UnwindSafe for KeypairProof
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more