mirror of
https://github.com/saymrwulf/risc0-curve25519-dalek-source.git
synced 2026-09-08 20:40:32 +00:00
Add additional tests for keypair (de)serialisation.
This commit is contained in:
parent
6dfcc4ba27
commit
9e247c493c
2 changed files with 46 additions and 1 deletions
|
|
@ -26,7 +26,7 @@ curve25519-dalek = { version = "2", default-features = false }
|
||||||
merlin = { version = "1", default-features = false, optional = true, git = "https://github.com/isislovecruft/merlin", branch = "develop" }
|
merlin = { version = "1", default-features = false, optional = true, git = "https://github.com/isislovecruft/merlin", branch = "develop" }
|
||||||
rand = { version = "0.7", default-features = false, optional = true }
|
rand = { version = "0.7", default-features = false, optional = true }
|
||||||
rand_core = { version = "0.5", default-features = false, optional = true }
|
rand_core = { version = "0.5", default-features = false, optional = true }
|
||||||
serde = { version = "1.0", default-features = false, optional = true }
|
serde = { version = "1.0", default-features = false, optional = true, features = ["derive"] }
|
||||||
sha2 = { version = "0.8", default-features = false }
|
sha2 = { version = "0.8", default-features = false }
|
||||||
zeroize = { version = "1", default-features = false, features = ["zeroize_derive"] }
|
zeroize = { version = "1", default-features = false, features = ["zeroize_derive"] }
|
||||||
|
|
||||||
|
|
@ -35,6 +35,7 @@ hex = "^0.4"
|
||||||
bincode = "^0.9"
|
bincode = "^0.9"
|
||||||
criterion = "0.3"
|
criterion = "0.3"
|
||||||
rand = "0.7"
|
rand = "0.7"
|
||||||
|
toml = "0.5"
|
||||||
|
|
||||||
[[bench]]
|
[[bench]]
|
||||||
name = "ed25519_benchmarks"
|
name = "ed25519_benchmarks"
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,10 @@ extern crate ed25519_dalek;
|
||||||
extern crate hex;
|
extern crate hex;
|
||||||
extern crate sha2;
|
extern crate sha2;
|
||||||
extern crate rand;
|
extern crate rand;
|
||||||
|
#[cfg(all(test, feature = "serde"))]
|
||||||
|
extern crate serde;
|
||||||
|
#[cfg(all(test, feature = "serde"))]
|
||||||
|
extern crate toml;
|
||||||
|
|
||||||
use ed25519_dalek::*;
|
use ed25519_dalek::*;
|
||||||
|
|
||||||
|
|
@ -213,11 +217,19 @@ mod integrations {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
|
#[derive(Debug, Serialize, Deserialize)]
|
||||||
|
struct Demo {
|
||||||
|
keypair: Keypair
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg(all(test, feature = "serde"))]
|
#[cfg(all(test, feature = "serde"))]
|
||||||
mod serialisation {
|
mod serialisation {
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
use self::bincode::{serialize, serialized_size, deserialize, Infinite};
|
use self::bincode::{serialize, serialized_size, deserialize, Infinite};
|
||||||
|
use self::toml;
|
||||||
|
|
||||||
static PUBLIC_KEY_BYTES: [u8; PUBLIC_KEY_LENGTH] = [
|
static PUBLIC_KEY_BYTES: [u8; PUBLIC_KEY_LENGTH] = [
|
||||||
130, 039, 155, 015, 062, 076, 188, 063,
|
130, 039, 155, 015, 062, 076, 188, 063,
|
||||||
|
|
@ -242,6 +254,16 @@ mod serialisation {
|
||||||
216, 085, 134, 144, 129, 149, 041, 081,
|
216, 085, 134, 144, 129, 149, 041, 081,
|
||||||
063, 120, 126, 100, 092, 059, 050, 011, ];
|
063, 120, 126, 100, 092, 059, 050, 011, ];
|
||||||
|
|
||||||
|
static KEYPAIR_BYTES: [u8; KEYPAIR_LENGTH] = [
|
||||||
|
239, 085, 017, 235, 167, 103, 034, 062,
|
||||||
|
007, 010, 032, 146, 113, 039, 096, 174,
|
||||||
|
003, 219, 232, 166, 240, 121, 167, 013,
|
||||||
|
098, 238, 122, 116, 193, 114, 215, 213,
|
||||||
|
175, 181, 075, 166, 224, 164, 140, 146,
|
||||||
|
053, 120, 010, 037, 104, 094, 136, 225,
|
||||||
|
249, 102, 171, 160, 097, 132, 015, 071,
|
||||||
|
035, 056, 000, 074, 130, 168, 225, 071, ];
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn serialize_deserialize_signature() {
|
fn serialize_deserialize_signature() {
|
||||||
let signature: Signature = Signature::from_bytes(&SIGNATURE_BYTES).unwrap();
|
let signature: Signature = Signature::from_bytes(&SIGNATURE_BYTES).unwrap();
|
||||||
|
|
@ -272,6 +294,28 @@ mod serialisation {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn serialize_deserialize_keypair_bincode() {
|
||||||
|
let keypair = Keypair::from_bytes(&KEYPAIR_BYTES).unwrap();
|
||||||
|
let encoded_keypair: Vec<u8> = serialize(&keypair, Infinite).unwrap();
|
||||||
|
let decoded_keypair: Keypair = deserialize(&encoded_keypair).unwrap();
|
||||||
|
|
||||||
|
for i in 0..64 {
|
||||||
|
assert_eq!(KEYPAIR_BYTES[i], decoded_keypair.to_bytes()[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn serialize_deserialize_keypair_toml() {
|
||||||
|
let demo = Demo { keypair: Keypair::from_bytes(&KEYPAIR_BYTES).unwrap() };
|
||||||
|
|
||||||
|
println!("\n\nWrite to toml");
|
||||||
|
let demo_toml = toml::to_string(&demo).unwrap();
|
||||||
|
println!("{}", demo_toml);
|
||||||
|
let demo_toml_rebuild: Result<Demo, _> = toml::from_str(&demo_toml);
|
||||||
|
println!("{:?}", demo_toml_rebuild);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn serialize_public_key_size() {
|
fn serialize_public_key_size() {
|
||||||
let public_key: PublicKey = PublicKey::from_bytes(&PUBLIC_KEY_BYTES).unwrap();
|
let public_key: PublicKey = PublicKey::from_bytes(&PUBLIC_KEY_BYTES).unwrap();
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue