diff --git a/__hid/yubikey_rs/Cargo.lock b/__hid/yubikey_rs/Cargo.lock index b24fdf3..3ff05c2 100644 --- a/__hid/yubikey_rs/Cargo.lock +++ b/__hid/yubikey_rs/Cargo.lock @@ -266,6 +266,12 @@ dependencies = [ "subtle", ] +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + [[package]] name = "hmac" version = "0.11.0" @@ -912,6 +918,7 @@ dependencies = [ name = "yubikey_rs" version = "0.1.0" dependencies = [ + "hex", "yubikey", ] diff --git a/__hid/yubikey_rs/Cargo.toml b/__hid/yubikey_rs/Cargo.toml index 5e480f9..59d285d 100644 --- a/__hid/yubikey_rs/Cargo.toml +++ b/__hid/yubikey_rs/Cargo.toml @@ -6,5 +6,6 @@ edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] +hex = "0.4.3" yubikey = "0.4.2" - +#yubikey-piv = {version = "0.3.0", features = ["untested"]} diff --git a/__hid/yubikey_rs/src/main.rs b/__hid/yubikey_rs/src/main.rs index 8544579..b14f06a 100644 --- a/__hid/yubikey_rs/src/main.rs +++ b/__hid/yubikey_rs/src/main.rs @@ -1,16 +1,22 @@ use yubikey::YubiKey; +use yubikey::piv::{AlgorithmId, SlotId}; fn main() { - let mut yubikey = YubiKey::open().unwrap(); - println!("serial: {}", yubikey.serial()); - println!("version: {}", yubikey.version()); - println!("name: {}", yubikey.name()); - println!("chuid: {:?}", yubikey.chuid()); - println!("cccid: {:?}", yubikey.cccid()); - println!("config: {:?}", yubikey.config()); - let keys = yubikey.piv_keys().unwrap(); - for k in keys { - println!("piv: {:?}", k); - } - println!("{:?}", yubikey.verify_pin(b"123456")); + let mut yk = YubiKey::open().unwrap(); + println!("serial: {}", yk.serial()); + println!("version: {}", yk.version()); + println!("name: {}", yk.name()); + println!("chuid: {:?}", yk.chuid()); + println!("cccid: {:?}", yk.cccid()); + println!("config: {:?}", yk.config()); + // let keys = yubikey.piv_keys().unwrap(); + // for k in keys { + // println!("piv: {:?}", k); + // } + println!("{:?}", yk.verify_pin(b"123456")); + let raw_in = [1_u8; 256]; + // let raw_in = hex::decode("c25cebe2b6ad6e3e2d9494f707666a711a2f347a02c5bf95d686703dfdd9743d").unwrap(); + let s = yubikey::piv::sign_data(&mut yk, &raw_in, AlgorithmId::Rsa2048, SlotId::Signature); + println!("{:?}", s); + println!("{:?}", hex::encode(s.unwrap().as_slice())); }