Define main types for the library.
This commit is contained in:
parent
8bdb8580ff
commit
156c6b6e7c
|
@ -10,6 +10,9 @@ mod secret_key;
|
||||||
mod signature;
|
mod signature;
|
||||||
|
|
||||||
pub use error::Error;
|
pub use error::Error;
|
||||||
|
pub use public_key::{PublicKey, PublicKeyBytes};
|
||||||
|
pub use secret_key::{SecretKey, SecretKeyBytes};
|
||||||
|
pub use signature::Signature;
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
use std::convert::TryFrom;
|
||||||
|
|
||||||
|
use crate::Error;
|
||||||
|
|
||||||
|
/// A refinement type indicating that the inner `[u8; 32]` represents an
|
||||||
|
/// encoding of a RedJubJub public key.
|
||||||
|
#[derive(Copy, Clone, PartialEq, Eq, Debug)]
|
||||||
|
pub struct PublicKeyBytes(pub [u8; 32]);
|
||||||
|
|
||||||
|
impl From<[u8; 32]> for PublicKeyBytes {
|
||||||
|
fn from(raw: [u8; 32]) -> PublicKeyBytes {
|
||||||
|
PublicKeyBytes(raw)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl From<PublicKeyBytes> for [u8; 32] {
|
||||||
|
fn from(refined: PublicKeyBytes) -> [u8; 32] {
|
||||||
|
refined.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// A RedJubJub public key.
|
||||||
|
// XXX PartialEq, Eq?
|
||||||
|
#[derive(Copy, Clone, Debug)]
|
||||||
|
pub struct PublicKey {
|
||||||
|
// fields
|
||||||
|
}
|
||||||
|
|
||||||
|
impl From<PublicKey> for PublicKeyBytes {
|
||||||
|
fn from(pk: PublicKey) -> PublicKeyBytes {
|
||||||
|
unimplemented!();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl TryFrom<PublicKeyBytes> for PublicKey {
|
||||||
|
type Error = Error;
|
||||||
|
|
||||||
|
fn try_from(bytes: PublicKeyBytes) -> Result<Self, Self::Error> {
|
||||||
|
unimplemented!();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,41 @@
|
||||||
|
use std::convert::TryFrom;
|
||||||
|
|
||||||
|
use crate::Error;
|
||||||
|
|
||||||
|
/// A refinement type indicating that the inner `[u8; 32]` represents an
|
||||||
|
/// encoding of a RedJubJub secret key.
|
||||||
|
#[derive(Copy, Clone, PartialEq, Eq, Debug)]
|
||||||
|
pub struct SecretKeyBytes(pub [u8; 32]);
|
||||||
|
|
||||||
|
impl From<[u8; 32]> for SecretKeyBytes {
|
||||||
|
fn from(raw: [u8; 32]) -> SecretKeyBytes {
|
||||||
|
SecretKeyBytes(raw)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl From<SecretKeyBytes> for [u8; 32] {
|
||||||
|
fn from(refined: SecretKeyBytes) -> [u8; 32] {
|
||||||
|
refined.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// A RedJubJub secret key.
|
||||||
|
// XXX PartialEq, Eq?
|
||||||
|
#[derive(Copy, Clone, Debug)]
|
||||||
|
pub struct SecretKey {
|
||||||
|
// fields
|
||||||
|
}
|
||||||
|
|
||||||
|
impl From<SecretKey> for SecretKeyBytes {
|
||||||
|
fn from(pk: SecretKey) -> SecretKeyBytes {
|
||||||
|
unimplemented!();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl TryFrom<SecretKeyBytes> for SecretKey {
|
||||||
|
type Error = Error;
|
||||||
|
|
||||||
|
fn try_from(bytes: SecretKeyBytes) -> Result<Self, Self::Error> {
|
||||||
|
unimplemented!();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
/// A RedJubJub signature.
|
||||||
|
pub struct Signature(pub [u8; 64]);
|
||||||
|
|
||||||
|
impl From<[u8; 64]> for Signature {
|
||||||
|
fn from(bytes: [u8; 64]) -> Signature {
|
||||||
|
Signature(bytes)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl From<Signature> for [u8; 64] {
|
||||||
|
fn from(s: Signature) -> [u8; 64] {
|
||||||
|
s.0
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue