Select Git revision
lib.rs 9.39 KiB
// Copyright (C) 2017-2019 The AXIOM TEAM Association.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
//! Handles WebSocketToPeer API Messages.
#![allow(clippy::large_enum_variant)]
#![deny(
missing_docs,
missing_debug_implementations,
missing_copy_implementations,
trivial_casts,
unsafe_code,
unstable_features,
unused_import_braces,
unused_qualifications
)]
/*#[cfg(test)]
#[macro_use]
extern crate pretty_assertions;*/
#[macro_use]
extern crate serde_derive;
#[macro_use]
extern crate log;
/// WS2Pv2 Messages
pub mod v2;
use crate::v2::WS2Pv2Message;
use dup_crypto::hashs::Hash;
use dup_crypto::keys::bin_signable::BinSignable;
use dup_crypto::keys::*;
use durs_common_tools::fatal_error;
#[derive(Debug, Clone, Eq, PartialEq, Serialize, Deserialize)]
/// WS2Pv2Message
pub enum WS2PMessage {
/// Old version not used
_V0,
/// Old version not used
_V1,
/// Version 2
V2(WS2Pv2Message),
}
/// Enumerate errors can happen when parsing and checking messages
#[derive(Debug)]
pub enum WS2PMessageError {
/// Error at deserialization
DeserError(bincode::Error),
/// Invalid hash
InvalidHash,
/// Invalid signature
SigError(SigError),
}
impl From<bincode::Error> for WS2PMessageError {