pub trait HsmSigner {
// Required methods
fn sign(&self, key: &HsmKeyPair, digest: &[u8]) -> HsmResult<Vec<u8>>;
fn sign_with_mechanism(
&self,
key: &HsmKeyPair,
digest: &[u8],
mechanism: &Mechanism<'_>,
) -> HsmResult<Vec<u8>>;
fn wrap_key_aes(
&self,
session: &Session,
wrapping_key: ObjectHandle,
key_to_wrap: ObjectHandle,
) -> HsmResult<Vec<u8>>;
fn wrap_key_rsa_oaep(
&self,
session: &Session,
wrapping_key: ObjectHandle,
key_to_wrap: ObjectHandle,
) -> HsmResult<Vec<u8>>;
fn ml_kem_encapsulate(
&self,
session: &Session,
public_key: ObjectHandle,
pqc_mechanisms: &PqcMechanismIds,
) -> HsmResult<(Vec<u8>, Vec<u8>)>;
fn ml_kem_decapsulate(
&self,
session: &Session,
private_key: ObjectHandle,
ciphertext: &[u8],
pqc_mechanisms: &PqcMechanismIds,
) -> HsmResult<Vec<u8>>;
}Expand description
HSM signer trait.
Required Methods§
Sourcefn sign_with_mechanism(
&self,
key: &HsmKeyPair,
digest: &[u8],
mechanism: &Mechanism<'_>,
) -> HsmResult<Vec<u8>>
fn sign_with_mechanism( &self, key: &HsmKeyPair, digest: &[u8], mechanism: &Mechanism<'_>, ) -> HsmResult<Vec<u8>>
Sign a message digest with a specific mechanism.
Sourcefn wrap_key_aes(
&self,
session: &Session,
wrapping_key: ObjectHandle,
key_to_wrap: ObjectHandle,
) -> HsmResult<Vec<u8>>
fn wrap_key_aes( &self, session: &Session, wrapping_key: ObjectHandle, key_to_wrap: ObjectHandle, ) -> HsmResult<Vec<u8>>
Wrap a key using AES Key Wrap (RFC 3394).
Used for wrapping ML-KEM private keys during /serverkeygen.
Sourcefn wrap_key_rsa_oaep(
&self,
session: &Session,
wrapping_key: ObjectHandle,
key_to_wrap: ObjectHandle,
) -> HsmResult<Vec<u8>>
fn wrap_key_rsa_oaep( &self, session: &Session, wrapping_key: ObjectHandle, key_to_wrap: ObjectHandle, ) -> HsmResult<Vec<u8>>
Wrap a key using RSAES-OAEP.