pub struct CertificateSignerInput {
pub load_key_valid: bool,
pub key_seed: ScalarWords,
pub clear_key: bool,
pub valid: bool,
pub epoch: b64,
pub batch_id: b64,
pub root: [b8; 32],
pub tag: b16,
}Expand description
Key-control signals and one complete DSig certificate request.
This is the bundle of wires the certificate unit drives every clock. The
key-control fields (load_key_valid, key_seed, clear_key) manage the
one Ed25519 signing key the core caches; the request fields (valid,
epoch, batch_id, root, tag) describe one envelope to sign.
A request transfers only on valid && output.ready. The caller binds its
full namespace/root and trusted signer identity to a unique outstanding
Self::tag, and reserves completion capacity before asserting valid.
Fields§
§load_key_valid: boolAccept a secret seed only while output.load_key_ready is asserted.
One-bit strobe: high for the clock on which key_seed is offered.
key_seed: ScalarWordsSecret 32-byte Ed25519 seed in four little-endian 64-bit words.
Write-only: the core never outputs it, only the derived public key.
clear_key: boolClear the cached key only after every accepted request has retired.
Keep valid and load_key_valid low during clear. This is not a cancel
handshake and does not erase every intermediate pipeline or memory bit.
valid: boolMarks the namespace/root/tag as a pending signing request.
Hold the request fields stable while valid is high and
output.ready is low.
epoch: b64Durably allocated epoch, included in the signed DSig envelope.
batch_id: b64Batch identity within the epoch, included in the signed envelope.
root: [b8; 32]Completed 128-key Merkle root, in its original 32-byte order.
tag: b16Opaque 16-bit routing tag; it is outside the signed message.
Never truncate an epoch/batch identity into this field as a substitute for a full outstanding-request record. Reject unknown or reused tags.
Trait Implementations§
Source§impl Clone for CertificateSignerInput
impl Clone for CertificateSignerInput
Source§fn clone(&self) -> CertificateSignerInput
fn clone(&self) -> CertificateSignerInput
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CertificateSignerInput
impl Debug for CertificateSignerInput
Source§impl Default for CertificateSignerInput
impl Default for CertificateSignerInput
Source§impl Digital for CertificateSignerInput
impl Digital for CertificateSignerInput
Source§const BITS: usize
const BITS: usize
Source§fn static_kind() -> Kind
fn static_kind() -> Kind
Source§fn bin(self) -> Box<[BitX]>
fn bin(self) -> Box<[BitX]>
§fn typed_bits(self) -> TypedBits
fn typed_bits(self) -> TypedBits
§fn discriminant(self) -> TypedBits
fn discriminant(self) -> TypedBits
§fn variant_kind(self) -> Kind
fn variant_kind(self) -> Kind
§fn binary_string(self) -> String
fn binary_string(self) -> String
Source§impl PartialEq for CertificateSignerInput
impl PartialEq for CertificateSignerInput
impl Copy for CertificateSignerInput
impl StructuralPartialEq for CertificateSignerInput
Auto Trait Implementations§
impl Freeze for CertificateSignerInput
impl RefUnwindSafe for CertificateSignerInput
impl Send for CertificateSignerInput
impl Sync for CertificateSignerInput
impl Unpin for CertificateSignerInput
impl UnsafeUnpin for CertificateSignerInput
impl UnwindSafe for CertificateSignerInput
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<D> OwoColorize for D
impl<D> OwoColorize for D
§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg] or
a color-specific method, such as [OwoColorize::green], Read more§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg] or
a color-specific method, such as [OwoColorize::on_yellow], Read more