arcium-primitives 0.4.5

Arcium primitives
Documentation
use hybrid_array::{Array, ArraySize};
use typenum::U64;

// TODO: Remove, use FromUniformBytes in `ff` instead

pub trait FromUniformBytes {
    type UniformBytes: ArraySize;

    // TODO: change signature to take ownership of bytes. This should accelerate the creation of
    // types like Gf2_128
    fn from_uniform_bytes(bytes: &Array<u8, Self::UniformBytes>) -> Self;
}

impl FromUniformBytes for curve25519_dalek::Scalar {
    type UniformBytes = U64;

    fn from_uniform_bytes(bytes: &Array<u8, Self::UniformBytes>) -> Self {
        curve25519_dalek::Scalar::from_bytes_mod_order_wide(&bytes.0)
    }
}