totpm 0.1.2

A TPM-backed command line TOTP/2FA client, using fprintd for user presence verification.
Documentation
use crate::totp_store;

#[derive(Debug)]
pub enum Error {
    IOError(std::io::Error),
    ConfigReadError(toml::de::Error),
    ConfigWriteError(toml::ser::Error),
    TotpStoreError(totp_store::Error),
    ImportFormatError(String),
    UserNotFoundError(String),
    SecretFormatError,
    InvalidPVMethod(String),
    RootRequired,
    SecretNotFound,
    AmbiguousSecret,
}

impl From<toml::ser::Error> for Error {
    fn from(value: toml::ser::Error) -> Self {
        Self::ConfigWriteError(value)
    }
}

impl From<toml::de::Error> for Error {
    fn from(value: toml::de::Error) -> Self {
        Self::ConfigReadError(value)
    }
}

impl From<std::io::Error> for Error {
    fn from(value: std::io::Error) -> Self {
        Self::IOError(value)
    }
}

impl From<totp_store::Error> for Error {
    fn from(value: totp_store::Error) -> Self {
        Self::TotpStoreError(value)
    }
}

pub type Result<T> = std::result::Result<T, Error>;