Skip to content

Commit a41c817

Browse files
committed
fix examples ed25519 test failed
1 parent 73ea869 commit a41c817

File tree

2 files changed

+19
-14
lines changed

2 files changed

+19
-14
lines changed

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ rsa = "0.9.6"
3232
sha2 = { version = "0.10.7", features = ["oid"] }
3333
getrandom = { version = "0.2.10", features = ["js"] }
3434
rand = { version = "0.8.5", features = ["std"], default-features = false }
35-
ed25519-dalek = "2.1.1"
35+
ed25519-dalek = { version = "2.1.1" }
3636
p256 = { version = "0.13.2", features = ["ecdsa"] }
3737
p384 = { version = "0.13.0", features = ["ecdsa"] }
3838
rand_core = "0.6.4"
@@ -41,7 +41,7 @@ js-sys = "0.3"
4141

4242
[dev-dependencies]
4343
wasm-bindgen-test = "0.3.1"
44-
44+
ed25519-dalek = { version = "2.1.1", features = ["pkcs8", "rand_core"] }
4545
[target.'cfg(not(all(target_arch = "wasm32", not(any(target_os = "emscripten", target_os = "wasi")))))'.dev-dependencies]
4646
# For the custom time example
4747
time = "0.3"

examples/ed25519.rs

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
use p256::pkcs8::{EncodePrivateKey, EncodePublicKey};
2-
use p256::SecretKey;
1+
use ed25519_dalek::pkcs8::EncodePrivateKey;
2+
use ed25519_dalek::SigningKey;
33
use rand_core::OsRng;
44
use serde::{Deserialize, Serialize};
55

@@ -14,14 +14,16 @@ pub struct Claims {
1414
}
1515

1616
fn main() {
17-
let secret_key = SecretKey::random(&mut OsRng);
18-
let pkcs8 = secret_key.to_pkcs8_pem(Default::default()).unwrap();
17+
let signing_key = SigningKey::generate(&mut OsRng);
18+
let pkcs8 = signing_key.to_pkcs8_der().unwrap();
1919
let pkcs8 = pkcs8.as_bytes();
20-
20+
// The `to_pkcs8_der` includes the public key, the first 48 bits are the private key.
21+
let pkcs8 = &pkcs8[..48];
2122
let encoding_key = EncodingKey::from_ed_der(pkcs8);
2223

23-
let public_key_der = secret_key.public_key().to_public_key_der().unwrap();
24-
let decoding_key = DecodingKey::from_ed_der(public_key_der.as_bytes());
24+
let verifying_key = signing_key.verifying_key();
25+
let public_key = verifying_key.as_bytes();
26+
let decoding_key = DecodingKey::from_ed_der(public_key);
2527

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

@@ -43,13 +45,16 @@ mod tests {
4345

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

51-
let public_key_der = secret_key.public_key().to_public_key_der().unwrap();
52-
let decoding_key = DecodingKey::from_ed_der(public_key_der.as_bytes());
55+
let verifying_key = signing_key.verifying_key();
56+
let public_key = verifying_key.as_bytes();
57+
let decoding_key = DecodingKey::from_ed_der(public_key);
5358

5459
Jot { encoding_key, decoding_key }
5560
}

0 commit comments

Comments
 (0)