33 lines
1013 B
Rust
33 lines
1013 B
Rust
//! Key algorithms used in Matrix spec.
|
|
|
|
#[cfg(feature = "serde")]
|
|
use serde::{Deserialize, Serialize};
|
|
|
|
use strum::{AsRefStr, Display, EnumString};
|
|
|
|
/// The basic key algorithms in the specification.
|
|
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, AsRefStr, Display, EnumString)]
|
|
#[cfg_attr(feature = "serde", derive(Deserialize, Serialize))]
|
|
#[non_exhaustive]
|
|
#[strum(serialize_all = "snake_case")]
|
|
pub enum DeviceKeyAlgorithm {
|
|
/// The Ed25519 signature algorithm.
|
|
Ed25519,
|
|
|
|
/// The Curve25519 ECDH algorithm.
|
|
Curve25519,
|
|
|
|
/// The Curve25519 ECDH algorithm, but the key also contains signatures
|
|
SignedCurve25519,
|
|
}
|
|
|
|
/// The server key algorithms defined in the Matrix spec.
|
|
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, AsRefStr, Display, EnumString)]
|
|
#[cfg_attr(feature = "serde", derive(Deserialize, Serialize))]
|
|
#[non_exhaustive]
|
|
#[strum(serialize_all = "snake_case")]
|
|
pub enum ServerKeyAlgorithm {
|
|
/// The Ed25519 signature algorithm.
|
|
Ed25519,
|
|
}
|