mirror of
https://github.com/EasyTier/EasyTier.git
synced 2026-05-16 10:55:37 +00:00
101f416268
Use noise protocol on handshake. Check peer's public key if needed. Also support rekey and replay attack prevention. E2EE and temporary password will be implemented based on this.
59 lines
1.4 KiB
Rust
59 lines
1.4 KiB
Rust
use std::{io, result};
|
|
|
|
use thiserror::Error;
|
|
|
|
use crate::tunnel;
|
|
|
|
use super::PeerId;
|
|
|
|
#[derive(Error, Debug)]
|
|
pub enum Error {
|
|
#[error("io error")]
|
|
IOError(#[from] io::Error),
|
|
|
|
#[cfg(feature = "tun")]
|
|
#[error("rust tun error {0}")]
|
|
TunError(#[from] tun::Error),
|
|
|
|
#[error("tunnel error {0}")]
|
|
TunnelError(#[from] tunnel::TunnelError),
|
|
#[error("Peer has no conn, PeerId: {0}")]
|
|
PeerNoConnectionError(PeerId),
|
|
#[error("RouteError: {0:?}")]
|
|
RouteError(Option<String>),
|
|
#[error("Not found")]
|
|
NotFound,
|
|
#[error("Invalid Url: {0}")]
|
|
InvalidUrl(String),
|
|
#[error("Shell Command error: {0}")]
|
|
ShellCommandError(String),
|
|
// #[error("Rpc listen error: {0}")]
|
|
// RpcListenError(String),
|
|
#[error("Rpc connect error: {0}")]
|
|
RpcConnectError(String),
|
|
#[error("Timeout error: {0}")]
|
|
Timeout(#[from] tokio::time::error::Elapsed),
|
|
#[error("url in blacklist")]
|
|
UrlInBlacklist,
|
|
#[error("unknown data store error")]
|
|
Unknown,
|
|
#[error("anyhow error: {0}")]
|
|
AnyhowError(#[from] anyhow::Error),
|
|
|
|
#[error("wait resp error: {0}")]
|
|
WaitRespError(String),
|
|
|
|
#[error("message decode error: {0}")]
|
|
MessageDecodeError(String),
|
|
|
|
#[error("secret key error: {0}")]
|
|
SecretKeyError(String),
|
|
|
|
#[error("noise protocol error: {0}")]
|
|
NoiseError(#[from] snow::Error),
|
|
}
|
|
|
|
pub type Result<T> = result::Result<T, Error>;
|
|
|
|
// impl From for std::
|