#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum RsaHash {
Sha1,
Sha256,
Sha384,
Sha512,
}
impl RsaHash {
pub const fn ffi_id(self) -> u32 {
match self {
Self::Sha1 => 1,
Self::Sha256 => 2,
Self::Sha384 => 3,
Self::Sha512 => 4,
}
}
pub const fn from_ffi_id(value: u32) -> Option<Self> {
match value {
1 => Some(Self::Sha1),
2 => Some(Self::Sha256),
3 => Some(Self::Sha384),
4 => Some(Self::Sha512),
_ => None,
}
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum RsaPublicKeyDerEncoding {
Pkcs1,
Spki,
}
impl RsaPublicKeyDerEncoding {
pub const fn ffi_id(self) -> u32 {
match self {
Self::Pkcs1 => 1,
Self::Spki => 2,
}
}
pub const fn from_ffi_id(value: u32) -> Option<Self> {
match value {
1 => Some(Self::Pkcs1),
2 => Some(Self::Spki),
_ => None,
}
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct RsaPssParams {
pub message_hash: RsaHash,
pub mgf1_hash: RsaHash,
pub salt_len: usize,
}