feat: v1.4.1
This commit is contained in:
@@ -3,6 +3,7 @@ use std::ops::Deref;
|
||||
|
||||
use clap::{App, Arg, ArgMatches, SubCommand};
|
||||
use rust_util::util_clap::{Command, CommandError};
|
||||
use rust_util::util_msg;
|
||||
use yubico_manager::config::{Config, Mode, Slot};
|
||||
use yubico_manager::Yubico;
|
||||
|
||||
@@ -24,7 +25,7 @@ impl Command for CommandImpl {
|
||||
|
||||
fn run(&self, _arg_matches: &ArgMatches, sub_arg_matches: &ArgMatches) -> CommandError {
|
||||
let json_output = sub_arg_matches.is_present("json");
|
||||
if json_output { rust_util::util_msg::set_logger_std_out(false); }
|
||||
if json_output { util_msg::set_logger_std_out(false); }
|
||||
|
||||
let sha1_output = sub_arg_matches.is_present("sha1");
|
||||
let sha256_output = sub_arg_matches.is_present("sha256");
|
||||
|
||||
@@ -2,6 +2,7 @@ use std::collections::BTreeMap;
|
||||
|
||||
use clap::{App, Arg, ArgMatches, SubCommand};
|
||||
use rust_util::util_clap::{Command, CommandError};
|
||||
use rust_util::util_msg;
|
||||
use yubikey::YubiKey;
|
||||
|
||||
pub struct CommandImpl;
|
||||
@@ -16,7 +17,7 @@ impl Command for CommandImpl {
|
||||
|
||||
fn run(&self, _arg_matches: &ArgMatches, sub_arg_matches: &ArgMatches) -> CommandError {
|
||||
let json_output = sub_arg_matches.is_present("json");
|
||||
if json_output { rust_util::util_msg::set_logger_std_out(false); }
|
||||
if json_output { util_msg::set_logger_std_out(false); }
|
||||
|
||||
let mut yk = opt_result!(YubiKey::open(), "YubiKey not found: {}");
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ use clap::{App, Arg, ArgMatches, SubCommand};
|
||||
use openpgp_card::OpenPgp;
|
||||
use openpgp_card::crypto_data::Cryptogram;
|
||||
use rust_util::util_clap::{Command, CommandError};
|
||||
use rust_util::util_msg;
|
||||
|
||||
pub struct CommandImpl;
|
||||
|
||||
@@ -21,7 +22,7 @@ impl Command for CommandImpl {
|
||||
|
||||
fn run(&self, _arg_matches: &ArgMatches, sub_arg_matches: &ArgMatches) -> CommandError {
|
||||
let json_output = sub_arg_matches.is_present("json");
|
||||
if json_output { rust_util::util_msg::set_logger_std_out(false); }
|
||||
if json_output { util_msg::set_logger_std_out(false); }
|
||||
|
||||
let pin_opt = sub_arg_matches.value_of("pass").or_else(|| sub_arg_matches.value_of("pin"));
|
||||
let pin = opt_value_result!(pin_opt, "User pin must be assigned");
|
||||
|
||||
@@ -4,6 +4,7 @@ use clap::{App, Arg, ArgMatches, SubCommand};
|
||||
use openpgp_card::{KeyType, OpenPgp};
|
||||
use openpgp_card_pcsc::PcscBackend;
|
||||
use rust_util::util_clap::{Command, CommandError};
|
||||
use rust_util::util_msg;
|
||||
|
||||
use crate::pkiutil::openpgp_card_public_key_pem as public_key_pem;
|
||||
|
||||
@@ -21,7 +22,7 @@ impl Command for CommandImpl {
|
||||
fn run(&self, _arg_matches: &ArgMatches, sub_arg_matches: &ArgMatches) -> CommandError {
|
||||
let detail_output = sub_arg_matches.is_present("detail");
|
||||
let json_output = sub_arg_matches.is_present("json");
|
||||
if json_output { rust_util::util_msg::set_logger_std_out(false); }
|
||||
if json_output { util_msg::set_logger_std_out(false); }
|
||||
|
||||
let mut jsons = vec![];
|
||||
let cards = opt_result!(PcscBackend::cards(None), "Failed to list OpenPGP cards: {}");
|
||||
|
||||
@@ -7,7 +7,7 @@ use digest::Digest;
|
||||
use openpgp_card::crypto_data::Hash;
|
||||
use openpgp_card::OpenPgp;
|
||||
use rust_util::util_clap::{Command, CommandError};
|
||||
use rust_util::XResult;
|
||||
use rust_util::{util_msg, XResult};
|
||||
use sha2::{Sha256, Sha384, Sha512};
|
||||
|
||||
const BUFF_SIZE: usize = 512 * 1024;
|
||||
@@ -33,7 +33,7 @@ impl Command for CommandImpl {
|
||||
|
||||
fn run(&self, _arg_matches: &ArgMatches, sub_arg_matches: &ArgMatches) -> CommandError {
|
||||
let json_output = sub_arg_matches.is_present("json");
|
||||
if json_output { rust_util::util_msg::set_logger_std_out(false); }
|
||||
if json_output { util_msg::set_logger_std_out(false); }
|
||||
|
||||
let pin_opt = sub_arg_matches.value_of("pass").or_else(|| sub_arg_matches.value_of("pin"));
|
||||
let pin = opt_value_result!(pin_opt, "User pin must be assigned");
|
||||
|
||||
@@ -2,6 +2,7 @@ use std::collections::BTreeMap;
|
||||
|
||||
use clap::{App, Arg, ArgMatches, SubCommand};
|
||||
use rust_util::util_clap::{Command, CommandError};
|
||||
use rust_util::util_msg;
|
||||
use yubikey::piv::{AlgorithmId, SlotId};
|
||||
use yubikey::YubiKey;
|
||||
|
||||
@@ -19,7 +20,7 @@ impl Command for CommandImpl {
|
||||
|
||||
fn run(&self, _arg_matches: &ArgMatches, sub_arg_matches: &ArgMatches) -> CommandError {
|
||||
let json_output = sub_arg_matches.is_present("json");
|
||||
if json_output { rust_util::util_msg::set_logger_std_out(false); }
|
||||
if json_output { util_msg::set_logger_std_out(false); }
|
||||
|
||||
let pin_opt = sub_arg_matches.value_of("pin");
|
||||
let pin = opt_value_result!(pin_opt, "User pin must be assigned");
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
use clap::{App, Arg, ArgMatches, SubCommand};
|
||||
use rust_util::util_clap::{Command, CommandError};
|
||||
use yubikey::{PinPolicy, TouchPolicy, YubiKey};
|
||||
use rust_util::util_msg;
|
||||
use yubikey::{piv, PinPolicy, TouchPolicy, YubiKey};
|
||||
use yubikey::piv::{AlgorithmId, SlotId};
|
||||
|
||||
pub struct CommandImpl;
|
||||
@@ -16,7 +17,7 @@ impl Command for CommandImpl {
|
||||
|
||||
fn run(&self, _arg_matches: &ArgMatches, sub_arg_matches: &ArgMatches) -> CommandError {
|
||||
let json_output = sub_arg_matches.is_present("json");
|
||||
if json_output { rust_util::util_msg::set_logger_std_out(false); }
|
||||
if json_output { util_msg::set_logger_std_out(false); }
|
||||
|
||||
warning!("This feature is not works");
|
||||
let pin = opt_value_result!(sub_arg_matches.value_of("pin"), "User pin must be assigned");
|
||||
@@ -24,7 +25,7 @@ impl Command for CommandImpl {
|
||||
let mut yk = opt_result!(YubiKey::open(), "YubiKey not found: {}");
|
||||
opt_result!(yk.verify_pin(pin.as_bytes()), "YubiKey verify pin failed: {}");
|
||||
|
||||
let public_key_info = opt_result!(yubikey::piv::generate(&mut yk,SlotId::Signature, AlgorithmId::Rsa2048,
|
||||
let public_key_info = opt_result!(piv::generate(&mut yk,SlotId::Signature, AlgorithmId::Rsa2048,
|
||||
PinPolicy::Default, TouchPolicy::Default), "Generate key failed: {}");
|
||||
|
||||
success!("Generate key success: {:?}", public_key_info);
|
||||
|
||||
@@ -3,9 +3,9 @@ use std::collections::BTreeMap;
|
||||
use clap::{App, Arg, ArgMatches, SubCommand};
|
||||
use rust_util::util_clap::{Command, CommandError};
|
||||
use rust_util::util_msg::MessageType;
|
||||
use rust_util::XResult;
|
||||
use rust_util::{util_msg, XResult};
|
||||
use yubikey::piv::{AlgorithmId, SlotId};
|
||||
use yubikey::YubiKey;
|
||||
use yubikey::{piv, YubiKey};
|
||||
|
||||
pub struct CommandImpl;
|
||||
|
||||
@@ -21,7 +21,7 @@ impl Command for CommandImpl {
|
||||
|
||||
fn run(&self, _arg_matches: &ArgMatches, sub_arg_matches: &ArgMatches) -> CommandError {
|
||||
let json_output = sub_arg_matches.is_present("json");
|
||||
if json_output { rust_util::util_msg::set_logger_std_out(false); }
|
||||
if json_output { util_msg::set_logger_std_out(false); }
|
||||
|
||||
let pin_opt = sub_arg_matches.value_of("pin");
|
||||
let pin = opt_value_result!(pin_opt, "User pin must be assigned");
|
||||
@@ -53,7 +53,7 @@ impl Command for CommandImpl {
|
||||
debugging!("PKCS1 padding: {}", hex::encode(&hash_padding));
|
||||
});
|
||||
let raw_in = crate::digest::copy_rsa2048(&hash_padding).unwrap();
|
||||
let sign_result = yubikey::piv::sign_data(&mut yk, &raw_in, AlgorithmId::Rsa2048, SlotId::Signature);
|
||||
let sign_result = piv::sign_data(&mut yk, &raw_in, AlgorithmId::Rsa2048, SlotId::Signature);
|
||||
let sign = opt_result!(sign_result, "Sign data failed: {}");
|
||||
let sign_bytes = sign.as_slice();
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ use openssl::encrypt::Decrypter;
|
||||
use openssl::pkey::PKey;
|
||||
use openssl::rsa::Rsa;
|
||||
use rust_util::util_clap::{Command, CommandError};
|
||||
use rust_util::util_msg;
|
||||
use rust_util::util_msg::MessageType;
|
||||
|
||||
pub struct CommandImpl;
|
||||
@@ -25,7 +26,7 @@ impl Command for CommandImpl {
|
||||
|
||||
fn run(&self, _arg_matches: &ArgMatches, sub_arg_matches: &ArgMatches) -> CommandError {
|
||||
let json_output = sub_arg_matches.is_present("json");
|
||||
if json_output { rust_util::util_msg::set_logger_std_out(false); }
|
||||
if json_output { util_msg::set_logger_std_out(false); }
|
||||
|
||||
let pri_key_in = opt_value_result!(sub_arg_matches.value_of("pri-key-in"), "Require private key in");
|
||||
let pri_key_bytes = opt_result!(std::fs::read(pri_key_in), "Read file: {}, failed: {}", pri_key_in);
|
||||
@@ -45,7 +46,7 @@ impl Command for CommandImpl {
|
||||
return simple_error!("Data is required, --data-hex or --data argument!");
|
||||
};
|
||||
|
||||
rust_util::util_msg::when(MessageType::DEBUG, || {
|
||||
util_msg::when(MessageType::DEBUG, || {
|
||||
let rsa = keypair.rsa().unwrap();
|
||||
let n = rsa.n();
|
||||
let d = rsa.d();
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
use std::fs;
|
||||
use std::collections::BTreeMap;
|
||||
|
||||
use clap::{App, Arg, ArgMatches, SubCommand};
|
||||
@@ -5,6 +6,7 @@ use openssl::encrypt::Encrypter;
|
||||
use openssl::pkey::PKey;
|
||||
use openssl::rsa::Rsa;
|
||||
use rust_util::util_clap::{Command, CommandError};
|
||||
use rust_util::util_msg;
|
||||
|
||||
use crate::digest::sha256_bytes;
|
||||
|
||||
@@ -26,10 +28,10 @@ impl Command for CommandImpl {
|
||||
|
||||
fn run(&self, _arg_matches: &ArgMatches, sub_arg_matches: &ArgMatches) -> CommandError {
|
||||
let json_output = sub_arg_matches.is_present("json");
|
||||
if json_output { rust_util::util_msg::set_logger_std_out(false); }
|
||||
if json_output { util_msg::set_logger_std_out(false); }
|
||||
|
||||
let pub_key_in = opt_value_result!(sub_arg_matches.value_of("pub-key-in"), "Require public key in");
|
||||
let pub_key_bytes = opt_result!(std::fs::read(pub_key_in), "Read file: {}, failed: {}", pub_key_in);
|
||||
let pub_key_bytes = opt_result!(fs::read(pub_key_in), "Read file: {}, failed: {}", pub_key_in);
|
||||
|
||||
let padding_opt = sub_arg_matches.value_of("padding");
|
||||
let padding = crate::rsautil::parse_padding(padding_opt)?;
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
use std::fs;
|
||||
use std::io;
|
||||
use std::fs::File;
|
||||
|
||||
use clap::{App, Arg, ArgMatches, SubCommand};
|
||||
@@ -8,7 +10,7 @@ use openssl::rsa::Rsa;
|
||||
use openssl::sign::Verifier;
|
||||
use rust_util::util_clap::{Command, CommandError};
|
||||
use rust_util::util_msg::MessageType;
|
||||
use rust_util::XResult;
|
||||
use rust_util::{util_msg, XResult};
|
||||
|
||||
use crate::digest::sha256_bytes;
|
||||
|
||||
@@ -34,7 +36,7 @@ impl Command for CommandImpl {
|
||||
// if json_output { rust_util::util_msg::set_logger_std_out(false); }
|
||||
|
||||
let pub_key_in = opt_value_result!(sub_arg_matches.value_of("pub-key-in"), "Require public key in");
|
||||
let pub_key_bytes = opt_result!(std::fs::read(pub_key_in), "Read file: {}, failed: {}", pub_key_in);
|
||||
let pub_key_bytes = opt_result!(fs::read(pub_key_in), "Read file: {}, failed: {}", pub_key_in);
|
||||
|
||||
// let mut json = BTreeMap::new();
|
||||
|
||||
@@ -49,7 +51,7 @@ impl Command for CommandImpl {
|
||||
return simple_error!("Signature is required, --signature argument!");
|
||||
};
|
||||
|
||||
rust_util::util_msg::when(MessageType::DEBUG, || {
|
||||
util_msg::when(MessageType::DEBUG, || {
|
||||
let rsa = keypair.rsa().unwrap();
|
||||
let n = rsa.n();
|
||||
let e = rsa.e();
|
||||
@@ -68,7 +70,7 @@ impl Command for CommandImpl {
|
||||
let digest = get_digest(hash)?;
|
||||
let mut verifier = opt_result!(Verifier::new(digest, &keypair), "Verifier new failed: {}");
|
||||
let mut f = opt_result!(File::open(file_in), "Open file: {}, failed: {}", file_in);
|
||||
opt_result!(std::io::copy(&mut f, &mut verifier), "Verifier failed: {}");
|
||||
opt_result!(io::copy(&mut f, &mut verifier), "Verifier failed: {}");
|
||||
let result = opt_result!(verifier.verify(&signature), "Verifier verify failed: {}");
|
||||
if result {
|
||||
success!("Verify success");
|
||||
|
||||
@@ -9,6 +9,7 @@ use openssl::hash::MessageDigest;
|
||||
use openssl::pkey::PKey;
|
||||
use openssl::sign::Verifier;
|
||||
use rust_util::util_clap::{Command, CommandError};
|
||||
use rust_util::util_msg;
|
||||
use x509_parser::certificate::X509Certificate;
|
||||
use x509_parser::prelude::FromDer;
|
||||
|
||||
@@ -32,7 +33,7 @@ impl Command for CommandImpl {
|
||||
|
||||
fn run(&self, _arg_matches: &ArgMatches, sub_arg_matches: &ArgMatches) -> CommandError {
|
||||
let json_output = sub_arg_matches.is_present("json");
|
||||
if json_output { rust_util::util_msg::set_logger_std_out(false); }
|
||||
if json_output { util_msg::set_logger_std_out(false); }
|
||||
|
||||
let timeout_ms = match sub_arg_matches.value_of("timeout").unwrap().parse::<u32>() {
|
||||
Ok(t) => (t * 1000) as u64,
|
||||
|
||||
Reference in New Issue
Block a user