feat: sign data

This commit is contained in:
2021-07-17 12:46:49 +08:00
parent f967a24351
commit c20df9c739
3 changed files with 27 additions and 13 deletions

View File

@@ -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",
]

View File

@@ -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"]}

View File

@@ -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()));
}