mirror of
https://github.com/serai-dex/serai.git
synced 2025-12-10 05:09:22 +00:00
Fully document crypto/
This commit is contained in:
@@ -22,6 +22,7 @@ macro_rules! dalek_curve {
|
||||
const CONTEXT: &'static [u8] = $CONTEXT;
|
||||
}
|
||||
|
||||
/// The challenge function for this ciphersuite.
|
||||
#[derive(Copy, Clone)]
|
||||
pub struct $Hram;
|
||||
impl Hram<$Curve> for $Hram {
|
||||
|
||||
@@ -11,11 +11,12 @@ impl Curve for Ed448 {
|
||||
const CONTEXT: &'static [u8] = CONTEXT;
|
||||
}
|
||||
|
||||
// The RFC-8032 Ed448 challenge function.
|
||||
#[derive(Copy, Clone)]
|
||||
pub struct Ietf8032Ed448Hram;
|
||||
pub(crate) struct Ietf8032Ed448Hram;
|
||||
impl Ietf8032Ed448Hram {
|
||||
#[allow(non_snake_case)]
|
||||
pub fn hram(context: &[u8], R: &Point, A: &Point, m: &[u8]) -> Scalar {
|
||||
pub(crate) fn hram(context: &[u8], R: &Point, A: &Point, m: &[u8]) -> Scalar {
|
||||
Scalar::wide_reduce(
|
||||
Shake256_114::digest(
|
||||
[
|
||||
@@ -32,6 +33,7 @@ impl Ietf8032Ed448Hram {
|
||||
}
|
||||
}
|
||||
|
||||
/// The challenge function for FROST's Ed448 ciphersuite.
|
||||
#[derive(Copy, Clone)]
|
||||
pub struct IetfEd448Hram;
|
||||
impl Hram<Ed448> for IetfEd448Hram {
|
||||
|
||||
@@ -17,6 +17,7 @@ macro_rules! kp_curve {
|
||||
const CONTEXT: &'static [u8] = $CONTEXT;
|
||||
}
|
||||
|
||||
/// The challenge function for this ciphersuite.
|
||||
#[derive(Clone)]
|
||||
pub struct $Hram;
|
||||
impl Hram<$Curve> for $Hram {
|
||||
|
||||
@@ -33,10 +33,14 @@ pub use kp256::{P256, IetfP256Hram};
|
||||
#[cfg(feature = "ed448")]
|
||||
mod ed448;
|
||||
#[cfg(feature = "ed448")]
|
||||
pub use ed448::{Ed448, Ietf8032Ed448Hram, IetfEd448Hram};
|
||||
pub use ed448::{Ed448, IetfEd448Hram};
|
||||
#[cfg(all(test, feature = "ed448"))]
|
||||
pub(crate) use ed448::Ietf8032Ed448Hram;
|
||||
|
||||
/// FROST Ciphersuite, except for the signing algorithm specific H2, making this solely the curve,
|
||||
/// its associated hash function, and the functions derived from it.
|
||||
/// FROST Ciphersuite.
|
||||
///
|
||||
/// This exclude the signing algorithm specific H2, making this solely the curve, its associated
|
||||
/// hash function, and the functions derived from it.
|
||||
pub trait Curve: Ciphersuite {
|
||||
/// Context string for this curve.
|
||||
const CONTEXT: &'static [u8];
|
||||
@@ -98,6 +102,7 @@ pub trait Curve: Ciphersuite {
|
||||
res
|
||||
}
|
||||
|
||||
/// Read a point from a reader, rejecting identity.
|
||||
#[allow(non_snake_case)]
|
||||
fn read_G<R: Read>(reader: &mut R) -> io::Result<Self::G> {
|
||||
let res = <Self as Ciphersuite>::read_G(reader)?;
|
||||
|
||||
Reference in New Issue
Block a user