wae_authentication/password/
error.rs1use std::fmt;
4use wae_crypto::CryptoError;
5use wae_types::WaeError;
6
7#[derive(Debug)]
9pub enum PasswordHashError {
10 InvalidConfig,
12 HashFailed,
14 VerifyFailed,
16 InvalidHashFormat,
18}
19
20impl fmt::Display for PasswordHashError {
21 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
22 match self {
23 PasswordHashError::InvalidConfig => write!(f, "无效的密码哈希配置"),
24 PasswordHashError::HashFailed => write!(f, "密码哈希生成失败"),
25 PasswordHashError::VerifyFailed => write!(f, "密码验证失败"),
26 PasswordHashError::InvalidHashFormat => write!(f, "无效的哈希格式"),
27 }
28 }
29}
30
31impl std::error::Error for PasswordHashError {}
32
33impl From<PasswordHashError> for WaeError {
34 fn from(err: PasswordHashError) -> Self {
35 match err {
36 PasswordHashError::InvalidConfig => WaeError::config_invalid("password_hash", "invalid configuration"),
37 PasswordHashError::HashFailed => WaeError::internal("password hash failed"),
38 PasswordHashError::VerifyFailed => WaeError::invalid_credentials(),
39 PasswordHashError::InvalidHashFormat => WaeError::invalid_format("hash", "valid hash format"),
40 }
41 }
42}
43
44impl From<CryptoError> for PasswordHashError {
45 fn from(err: CryptoError) -> Self {
46 match err {
47 CryptoError::PasswordHashError => PasswordHashError::HashFailed,
48 CryptoError::PasswordVerifyError => PasswordHashError::VerifyFailed,
49 _ => PasswordHashError::HashFailed,
50 }
51 }
52}
53
54pub type PasswordHashResult<T> = Result<T, PasswordHashError>;