feat: update yubikey-rs-demo
This commit is contained in:
15
__crypto/yubikey-rs-demo/Cargo.lock
generated
15
__crypto/yubikey-rs-demo/Cargo.lock
generated
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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()));
|
||||||
|
|||||||
Reference in New Issue
Block a user