msg-auth-status 0.2.0

Parser & Verifier for Message Authentication Status - DKIM-Signature and Authentication-Results
Documentation
//! DKIM Algorithms

/// DKIM Algorithms per IANA and RFC
#[derive(Clone, Debug, PartialEq)]
#[allow(non_camel_case_types)]
pub enum DkimAlgorithm<'hdr> {
    /// Do not use
    Rsa_Sha1,
    /// Widely supported
    Rsa_Sha256,
    /// Please support this - not widely supported yet
    Ed25519_Sha256,
    /// Unknown algorithm not specified by RFC / IANA
    Unknown(&'hdr str),
}

use crate::error::DkimAlgorithmError;

impl<'hdr> TryFrom<&'hdr str> for DkimAlgorithm<'hdr> {
    type Error = DkimAlgorithmError;

    fn try_from(algo: &'hdr str) -> Result<Self, Self::Error> {
        let ret = match algo {
            "rsa-sha1" => Self::Rsa_Sha1,
            "rsa-sha256" => Self::Rsa_Sha256,
            "ed25519-sha256" => Self::Ed25519_Sha256,
            _ => Self::Unknown(algo),
        };
        Ok(ret)
    }
}