feat: update yubikey-rs-demo

This commit is contained in:
2023-03-12 20:06:10 +08:00
parent 12e24652b7
commit f7b23d0943
3 changed files with 24 additions and 8 deletions

View File

@@ -272,7 +272,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de"
dependencies = [ dependencies = [
"const-oid", "const-oid",
"pem-rfc7468", "pem-rfc7468 0.6.0",
"zeroize", "zeroize",
] ]
@@ -283,6 +283,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bc906908ea6458456e5eaa160a9c08543ec3d1e6f71e2235cedd660cb65f9df0" checksum = "bc906908ea6458456e5eaa160a9c08543ec3d1e6f71e2235cedd660cb65f9df0"
dependencies = [ dependencies = [
"const-oid", "const-oid",
"pem-rfc7468 0.7.0",
"zeroize", "zeroize",
] ]
@@ -391,7 +392,7 @@ dependencies = [
"generic-array", "generic-array",
"group 0.12.1", "group 0.12.1",
"hkdf", "hkdf",
"pem-rfc7468", "pem-rfc7468 0.6.0",
"pkcs8 0.9.0", "pkcs8 0.9.0",
"rand_core", "rand_core",
"sec1 0.3.0", "sec1 0.3.0",
@@ -412,6 +413,7 @@ dependencies = [
"generic-array", "generic-array",
"group 0.13.0", "group 0.13.0",
"hkdf", "hkdf",
"pem-rfc7468 0.7.0",
"pkcs8 0.10.1", "pkcs8 0.10.1",
"rand_core", "rand_core",
"sec1 0.7.1", "sec1 0.7.1",
@@ -762,6 +764,15 @@ dependencies = [
"base64ct", "base64ct",
] ]
[[package]]
name = "pem-rfc7468"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412"
dependencies = [
"base64ct",
]
[[package]] [[package]]
name = "pkcs1" name = "pkcs1"
version = "0.4.1" version = "0.4.1"

View File

@@ -8,7 +8,7 @@ edition = "2021"
[dependencies] [dependencies]
elliptic-curve = { version = "0.13.2", features = ["sec1"] } elliptic-curve = { version = "0.13.2", features = ["sec1"] }
hex = "0.4.3" hex = "0.4.3"
p256 = { version = "0.13.0", features = ["ecdh"] } p256 = { version = "0.13.0", features = ["ecdh", "pem"] }
rand = "0.8.5" rand = "0.8.5"
rust_util = "0.6.41" rust_util = "0.6.41"
sha2 = "0.10.6" sha2 = "0.10.6"

View File

@@ -1,4 +1,4 @@
use p256::{ecdh::EphemeralSecret, EncodedPoint, PublicKey}; use p256::{ecdh::EphemeralSecret, PublicKey};
use p256::elliptic_curve::sec1::{FromEncodedPoint, ToEncodedPoint}; use p256::elliptic_curve::sec1::{FromEncodedPoint, ToEncodedPoint};
use rand::rngs::OsRng; use rand::rngs::OsRng;
use rust_util::{failure_and_exit, information, warning, XResult}; use rust_util::{failure_and_exit, information, warning, XResult};
@@ -51,11 +51,16 @@ fn main() -> XResult<()> {
let epk = esk.public_key(); let epk = esk.public_key();
let epk_bytes = EphemeralKeyBytes::from_public_key(&epk); let epk_bytes = EphemeralKeyBytes::from_public_key(&epk);
let encoded_point = EncodedPoint::from_bytes(&hex::decode( let public_key_pem = r#"-----BEGIN PUBLIC KEY-----
"04dd3eebd906c9cf00b08ec29f7ed61804d1cc1d1352d9257b628191e08fc3717c4fae3298cd5c4829cec8bf3a946e7db60b7857e1287f6a0bae6b3f2342f007d0" MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE3T7r2QbJzwCwjsKfftYYBNHMHRNS
)?)?; 2SV7YoGR4I/DcXxPrjKYzVxIKc7IvzqUbn22C3hX4Sh/aguuaz8jQvAH0A==
-----END PUBLIC KEY-----"#;
let public_key = public_key_pem.parse::<PublicKey>().unwrap();
let public_key = PublicKey::from_encoded_point(&encoded_point).unwrap(); // let encoded_point = p256::EncodedPoint::from_bytes(&hex::decode(
// "04dd3eebd906c9cf00b08ec29f7ed61804d1cc1d1352d9257b628191e08fc3717c4fae3298cd5c4829cec8bf3a946e7db60b7857e1287f6a0bae6b3f2342f007d0"
// )?)?;
// let public_key = PublicKey::from_encoded_point(&encoded_point).unwrap();
let shared_secret = esk.diffie_hellman(&public_key); let shared_secret = esk.diffie_hellman(&public_key);
information!("Shared secret: {}", hex::encode(shared_secret.raw_secret_bytes())); information!("Shared secret: {}", hex::encode(shared_secret.raw_secret_bytes()));