Skip to content

Commit

Permalink
fix examples ed25519 test failed
Browse files Browse the repository at this point in the history
  • Loading branch information
chenzhenjia committed Apr 6, 2024
1 parent 73ea869 commit a41c817
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 14 deletions.
4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ rsa = "0.9.6"
sha2 = { version = "0.10.7", features = ["oid"] }
getrandom = { version = "0.2.10", features = ["js"] }
rand = { version = "0.8.5", features = ["std"], default-features = false }
ed25519-dalek = "2.1.1"
ed25519-dalek = { version = "2.1.1" }
p256 = { version = "0.13.2", features = ["ecdsa"] }
p384 = { version = "0.13.0", features = ["ecdsa"] }
rand_core = "0.6.4"
Expand All @@ -41,7 +41,7 @@ js-sys = "0.3"

[dev-dependencies]
wasm-bindgen-test = "0.3.1"

ed25519-dalek = { version = "2.1.1", features = ["pkcs8", "rand_core"] }
[target.'cfg(not(all(target_arch = "wasm32", not(any(target_os = "emscripten", target_os = "wasi")))))'.dev-dependencies]
# For the custom time example
time = "0.3"
Expand Down
29 changes: 17 additions & 12 deletions examples/ed25519.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
use p256::pkcs8::{EncodePrivateKey, EncodePublicKey};
use p256::SecretKey;
use ed25519_dalek::pkcs8::EncodePrivateKey;
use ed25519_dalek::SigningKey;
use rand_core::OsRng;
use serde::{Deserialize, Serialize};

Expand All @@ -14,14 +14,16 @@ pub struct Claims {
}

fn main() {
let secret_key = SecretKey::random(&mut OsRng);
let pkcs8 = secret_key.to_pkcs8_pem(Default::default()).unwrap();
let signing_key = SigningKey::generate(&mut OsRng);
let pkcs8 = signing_key.to_pkcs8_der().unwrap();
let pkcs8 = pkcs8.as_bytes();

// The `to_pkcs8_der` includes the public key, the first 48 bits are the private key.
let pkcs8 = &pkcs8[..48];
let encoding_key = EncodingKey::from_ed_der(pkcs8);

let public_key_der = secret_key.public_key().to_public_key_der().unwrap();
let decoding_key = DecodingKey::from_ed_der(public_key_der.as_bytes());
let verifying_key = signing_key.verifying_key();
let public_key = verifying_key.as_bytes();
let decoding_key = DecodingKey::from_ed_der(public_key);

let claims = Claims { sub: "test".to_string(), exp: get_current_timestamp() };

Expand All @@ -43,13 +45,16 @@ mod tests {

impl Jot {
fn new() -> Jot {
let secret_key = SecretKey::random(&mut OsRng);
let pkcs8 = secret_key.to_pkcs8_pem(Default::default()).unwrap();
let signing_key = SigningKey::generate(&mut OsRng);
let pkcs8 = signing_key.to_pkcs8_der().unwrap();
let pkcs8 = pkcs8.as_bytes();
let encoding_key = EncodingKey::from_ed_der(pkcs8);
// The `to_pkcs8_der` includes the public key, the first 48 bits are the private key.
let pkcs8 = &pkcs8[..48];
let encoding_key = EncodingKey::from_ed_der(&pkcs8);

let public_key_der = secret_key.public_key().to_public_key_der().unwrap();
let decoding_key = DecodingKey::from_ed_der(public_key_der.as_bytes());
let verifying_key = signing_key.verifying_key();
let public_key = verifying_key.as_bytes();
let decoding_key = DecodingKey::from_ed_der(public_key);

Jot { encoding_key, decoding_key }
}
Expand Down

0 comments on commit a41c817

Please sign in to comment.