Skip to main content

CaseSigner

Trait CaseSigner 

Source
pub trait CaseSigner:
    Send
    + Sync
    + Debug {
    // Required methods
    fn sign_p256_sha256(&self, message: &[u8]) -> Result<[u8; 64], SignerError>;
    fn public_key(&self) -> &PublicKey;
}
Expand description

Pluggable ECDSA-P256-SHA256 signer for CASE.

The in-tree concrete implementation is RingSigner, which wraps a P-256 private key and produces RFC 6979 deterministic signatures. Alternative backends (HSM, OS keychain, software key store) can implement this trait without touching core CASE code.

Required Methods§

Source

fn sign_p256_sha256(&self, message: &[u8]) -> Result<[u8; 64], SignerError>

Sign message with the NOC’s private ECDSA-P256 key. Returns raw 64-byte r||s signature (Matter wire format).

§Errors

Returns SignerError if the signing operation fails (hardware unavailable, policy rejection, or internal error).

Source

fn public_key(&self) -> &PublicKey

The 65-byte SEC1-uncompressed P-256 public key matching the NOC.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§