From 1496da6dd5513326643469f8e46a04f6f84f53ef Mon Sep 17 00:00:00 2001 From: Heiko Schaefer Date: Fri, 18 Feb 2022 15:58:12 +0100 Subject: [PATCH] Rename pcsc::PcscCard -> pcsc::PcscBackend, pcsc::TxClient -> pcsc::PcscTransaction --- card-functionality/src/cards.rs | 4 +- card-functionality/src/list-cards.rs | 4 +- openpgp-card-examples/src/bin/decrypt.rs | 4 +- openpgp-card-examples/src/bin/detach-sign.rs | 4 +- openpgp-card-sequoia/src/lib.rs | 20 +++++----- openpgp-card-sequoia/src/main.rs | 10 ++--- pcsc/src/lib.rs | 40 ++++++++++---------- tools/src/bin/opgpcard-pin/main.rs | 4 +- tools/src/bin/opgpcard/util.rs | 6 +-- 9 files changed, 49 insertions(+), 47 deletions(-) diff --git a/card-functionality/src/cards.rs b/card-functionality/src/cards.rs index d4daf59..c3cc730 100644 --- a/card-functionality/src/cards.rs +++ b/card-functionality/src/cards.rs @@ -10,7 +10,7 @@ use serde_derive::Deserialize; use std::collections::BTreeMap; use openpgp_card::{CardBackend, Error}; -use openpgp_card_pcsc::PcscCard; +use openpgp_card_pcsc::PcscBackend; use openpgp_card_scdc::ScdClient; const SHARE_MODE: Option = Some(ShareMode::Shared); @@ -104,7 +104,7 @@ impl TestCard { // (this can be useful in ShareMode::Exclusive) let mut i = 1; let card: Result, Error> = loop { - let res = PcscCard::open_by_ident(ident, SHARE_MODE); + let res = PcscBackend::open_by_ident(ident, SHARE_MODE); if i == 3 || res.is_ok() { break res.map(Into::into); diff --git a/card-functionality/src/list-cards.rs b/card-functionality/src/list-cards.rs index 4fd417c..56f3142 100644 --- a/card-functionality/src/list-cards.rs +++ b/card-functionality/src/list-cards.rs @@ -4,13 +4,13 @@ use anyhow::Result; use openpgp_card::CardBackend; -use openpgp_card_pcsc::PcscCard; +use openpgp_card_pcsc::PcscBackend; use openpgp_card_sequoia::card::Open; fn main() -> Result<()> { println!("The following OpenPGP cards are connected to your system:"); - for mut card in PcscCard::cards(None)? { + for mut card in PcscBackend::cards(None)? { let mut txc = card.transaction()?; let open = Open::new(&mut *txc)?; diff --git a/openpgp-card-examples/src/bin/decrypt.rs b/openpgp-card-examples/src/bin/decrypt.rs index 1ce5f81..b804952 100644 --- a/openpgp-card-examples/src/bin/decrypt.rs +++ b/openpgp-card-examples/src/bin/decrypt.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 use openpgp_card::CardBackend; -use openpgp_card_pcsc::PcscCard; +use openpgp_card_pcsc::PcscBackend; use openpgp_card_sequoia::card::Open; use openpgp::parse::{stream::DecryptorBuilder, Parse}; @@ -22,7 +22,7 @@ fn main() -> Result<(), Box> { let pin_file = &args[1]; let cert_file = &args[2]; - let mut card = PcscCard::open_by_ident(card_ident, None)?; + let mut card = PcscBackend::open_by_ident(card_ident, None)?; let mut txc = card.transaction()?; let mut open = Open::new(&mut *txc)?; diff --git a/openpgp-card-examples/src/bin/detach-sign.rs b/openpgp-card-examples/src/bin/detach-sign.rs index 3632fa9..140e180 100644 --- a/openpgp-card-examples/src/bin/detach-sign.rs +++ b/openpgp-card-examples/src/bin/detach-sign.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 use openpgp_card::CardBackend; -use openpgp_card_pcsc::PcscCard; +use openpgp_card_pcsc::PcscBackend; use openpgp_card_sequoia::card::Open; use openpgp::parse::Parse; @@ -22,7 +22,7 @@ fn main() -> Result<(), Box> { let pin_file = &args[1]; let cert_file = &args[2]; - let mut card = PcscCard::open_by_ident(card_ident, None)?; + let mut card = PcscBackend::open_by_ident(card_ident, None)?; let mut txc = card.transaction()?; let mut open = Open::new(&mut *txc)?; diff --git a/openpgp-card-sequoia/src/lib.rs b/openpgp-card-sequoia/src/lib.rs index b50605e..9e5a2f2 100644 --- a/openpgp-card-sequoia/src/lib.rs +++ b/openpgp-card-sequoia/src/lib.rs @@ -12,12 +12,12 @@ //! With `openpgp-card-pcsc` you can either open all available cards: //! //! ```no_run -//! use openpgp_card_pcsc::PcscCard; +//! use openpgp_card_pcsc::PcscBackend; //! use openpgp_card::CardBackend; //! use openpgp_card_sequoia::card::Open; //! //! # fn main() -> Result<(), Box> { -//! for mut card in PcscCard::cards(None)? { +//! for mut card in PcscBackend::cards(None)? { //! let mut txc = card.transaction()?; //! let open = Open::new(&mut *txc)?; //! println!("Found OpenPGP card with ident '{}'", @@ -30,12 +30,12 @@ //! Or you can open one particular card, by ident: //! //! ```no_run -//! use openpgp_card_pcsc::PcscCard; +//! use openpgp_card_pcsc::PcscBackend; //! use openpgp_card::CardBackend; //! use openpgp_card_sequoia::card::Open; //! //! # fn main() -> Result<(), Box> { -//! let mut card = PcscCard::open_by_ident("abcd:12345678", None)?; +//! let mut card = PcscBackend::open_by_ident("abcd:12345678", None)?; //! let mut txc = card.transaction()?; //! let mut open = Open::new(&mut *txc)?; //! # Ok(()) @@ -52,14 +52,14 @@ //! that corresponds to the private encryption key on the card: //! //! ```no_run -//! use openpgp_card_pcsc::PcscCard; +//! use openpgp_card_pcsc::PcscBackend; //! use openpgp_card::CardBackend; //! use openpgp_card_sequoia::card::Open; //! //! # fn main() -> Result<(), Box> { //! // Open card via PCSC //! use sequoia_openpgp::policy::StandardPolicy; -//! let mut card = PcscCard::open_by_ident("abcd:12345678", None)?; +//! let mut card = PcscBackend::open_by_ident("abcd:12345678", None)?; //! let mut txc = card.transaction()?; //! let mut open = Open::new(&mut *txc)?; //! @@ -95,14 +95,14 @@ //! user password before each signing operation!) //! //! ```no_run -//! use openpgp_card_pcsc::PcscCard; +//! use openpgp_card_pcsc::PcscBackend; //! use openpgp_card::CardBackend; //! use openpgp_card_sequoia::card::Open; //! //! # fn main() -> Result<(), Box> { //! // Open card via PCSC //! use sequoia_openpgp::policy::StandardPolicy; -//! let mut card = PcscCard::open_by_ident("abcd:12345678", None)?; +//! let mut card = PcscBackend::open_by_ident("abcd:12345678", None)?; //! let mut txc = card.transaction()?; //! let mut open = Open::new(&mut *txc)?; //! @@ -128,13 +128,13 @@ //! # Setting up and configuring a card //! //! ```no_run -//! use openpgp_card_pcsc::PcscCard; +//! use openpgp_card_pcsc::PcscBackend; //! use openpgp_card::CardBackend; //! use openpgp_card_sequoia::card::Open; //! //! # fn main() -> Result<(), Box> { //! // Open card via PCSC -//! let mut card = PcscCard::open_by_ident("abcd:12345678", None)?; +//! let mut card = PcscBackend::open_by_ident("abcd:12345678", None)?; //! let mut txc = card.transaction()?; //! let mut open = Open::new(&mut *txc)?; //! diff --git a/openpgp-card-sequoia/src/main.rs b/openpgp-card-sequoia/src/main.rs index 0a43a76..5e0c4e1 100644 --- a/openpgp-card-sequoia/src/main.rs +++ b/openpgp-card-sequoia/src/main.rs @@ -11,7 +11,7 @@ use sequoia_openpgp::Cert; use openpgp_card::card_do::Sex; use openpgp_card::{CardBackend, KeyType}; -use openpgp_card_pcsc::PcscCard; +use openpgp_card_pcsc::PcscBackend; use openpgp_card_sequoia::card::Open; use openpgp_card_sequoia::sq_util; @@ -35,7 +35,7 @@ fn main() -> Result<(), Box> { let test_card_ident = env::var("TEST_CARD_IDENT"); if let Ok(test_card_ident) = test_card_ident { - let mut card = PcscCard::open_by_ident(&test_card_ident, None)?; + let mut card = PcscBackend::open_by_ident(&test_card_ident, None)?; let mut txc = card.transaction()?; let mut open = Open::new(&mut *txc)?; @@ -146,7 +146,7 @@ fn main() -> Result<(), Box> { // ----------------------------- // Open fresh Card for decrypt // ----------------------------- - let mut card = PcscCard::open_by_ident(&test_card_ident, None)?; + let mut card = PcscBackend::open_by_ident(&test_card_ident, None)?; let mut txc = card.transaction()?; let mut open = Open::new(&mut *txc)?; @@ -187,7 +187,7 @@ fn main() -> Result<(), Box> { // ----------------------------- // Open fresh Card for signing // ----------------------------- - let mut card = PcscCard::open_by_ident(&test_card_ident, None)?; + let mut card = PcscBackend::open_by_ident(&test_card_ident, None)?; let mut txc = card.transaction()?; let mut open = Open::new(&mut *txc)?; @@ -219,7 +219,7 @@ fn main() -> Result<(), Box> { println!("The following OpenPGP cards are connected to your system:"); - for mut card in PcscCard::cards(None)? { + for mut card in PcscBackend::cards(None)? { let mut txc = card.transaction()?; let open = Open::new(&mut *txc)?; diff --git a/pcsc/src/lib.rs b/pcsc/src/lib.rs index a38b4f9..aba56de 100644 --- a/pcsc/src/lib.rs +++ b/pcsc/src/lib.rs @@ -33,15 +33,15 @@ fn default_mode(mode: Option) -> ShareMode { /// This struct can be used to hold on to a Card, even while no operations /// are performed on the Card. To perform operations on the card, a /// `TxClient` object needs to be obtained (via PcscCard::transaction()). -pub struct PcscCard { +pub struct PcscBackend { card: Card, mode: ShareMode, card_caps: Option, reader_caps: HashMap, } -impl From for Box { - fn from(card: PcscCard) -> Box { +impl From for Box { + fn from(card: PcscBackend) -> Box { Box::new(card) as Box } } @@ -57,19 +57,19 @@ impl From for Box { /// (e.g. Microsoft documents that on Windows, they will be closed after /// 5s without a command: /// ) -pub struct TxClient<'b> { +pub struct PcscTransaction<'b> { tx: Transaction<'b>, card_caps: Option, // FIXME: manual copy from PcscCard reader_caps: HashMap, // FIXME: manual copy from PcscCard } -impl<'b> TxClient<'b> { +impl<'b> PcscTransaction<'b> { /// Start a transaction on `card`. /// /// `reselect` set to `false` is only used internally in this crate, /// during initial setup of cards. Otherwise it must be `true`, to /// cause a select() call on cards that have been reset. - fn new(card: &'b mut PcscCard, reselect: bool) -> Result { + fn new(card: &'b mut PcscBackend, reselect: bool) -> Result { use pcsc::Disposition; let mut was_reset = false; @@ -101,7 +101,7 @@ impl<'b> TxClient<'b> { // the caller always expects a card that has not // been "select"ed yet. if reselect { - TxClient::select(&mut txc)?; + PcscTransaction::select(&mut txc)?; } tx = txc.tx; @@ -155,7 +155,7 @@ impl<'b> TxClient<'b> { } /// Try to select the OpenPGP application on a card - fn select(card_tx: &mut TxClient) -> Result<(), Error> { + fn select(card_tx: &mut PcscTransaction) -> Result<(), Error> { if ::select(card_tx).is_ok() { Ok(()) } else { @@ -165,7 +165,7 @@ impl<'b> TxClient<'b> { /// Get application_related_data from card fn application_related_data( - card_tx: &mut TxClient, + card_tx: &mut PcscTransaction, ) -> Result { ::application_related_data(card_tx).map_err(|e| { Error::Smartcard(SmartcardError::Error(format!( @@ -216,7 +216,7 @@ impl<'b> TxClient<'b> { } } -impl CardTransaction for TxClient<'_> { +impl CardTransaction for PcscTransaction<'_> { fn transmit( &mut self, cmd: &[u8], @@ -451,7 +451,7 @@ impl CardTransaction for TxClient<'_> { } } -impl PcscCard { +impl PcscBackend { fn card(&mut self) -> &mut Card { &mut self.card } @@ -547,11 +547,11 @@ impl PcscCard { let mut store_card = false; { // start transaction - let mut p = PcscCard::new(card, mode); - let mut txc = TxClient::new(&mut p, false)?; + let mut p = PcscBackend::new(card, mode); + let mut txc = PcscTransaction::new(&mut p, false)?; { - if let Err(e) = TxClient::select(&mut txc) { + if let Err(e) = PcscTransaction::select(&mut txc) { log::debug!(" select error: {:?}", e); } else { // successfully opened the OpenPGP application @@ -560,7 +560,9 @@ impl PcscCard { if let Some(ident) = ident { if let Ok(ard) = - TxClient::application_related_data(&mut txc) + PcscTransaction::application_related_data( + &mut txc, + ) { let aid = ard.application_id()?; @@ -593,7 +595,7 @@ impl PcscCard { } if store_card { - let pcsc = PcscCard::new(card, mode); + let pcsc = PcscBackend::new(card, mode); cards.push(pcsc.initialize_card()?); } } @@ -650,7 +652,7 @@ impl PcscCard { let mut h: HashMap = HashMap::default(); - let mut txc = TxClient::new(&mut self, true)?; + let mut txc = PcscTransaction::new(&mut self, true)?; // Get Features from reader (pinpad verify/modify) if let Ok(feat) = txc.features() { @@ -684,11 +686,11 @@ impl PcscCard { } } -impl CardBackend for PcscCard { +impl CardBackend for PcscBackend { /// Get a TxClient for this PcscCard (this starts a transaction) fn transaction( &mut self, ) -> Result, Error> { - Ok(Box::new(TxClient::new(self, true)?)) + Ok(Box::new(PcscTransaction::new(self, true)?)) } } diff --git a/tools/src/bin/opgpcard-pin/main.rs b/tools/src/bin/opgpcard-pin/main.rs index dea8b10..d6bf995 100644 --- a/tools/src/bin/opgpcard-pin/main.rs +++ b/tools/src/bin/opgpcard-pin/main.rs @@ -5,7 +5,7 @@ use anyhow::Result; use structopt::StructOpt; use openpgp_card::{CardBackend, Error, StatusBytes}; -use openpgp_card_pcsc::PcscCard; +use openpgp_card_pcsc::PcscBackend; use openpgp_card_sequoia::card::Open; mod cli; @@ -15,7 +15,7 @@ fn main() -> Result<(), Box> { let cli = cli::Cli::from_args(); - let mut card = PcscCard::open_by_ident(&cli.ident, None)?; + let mut card = PcscBackend::open_by_ident(&cli.ident, None)?; let mut txc = card.transaction()?; let pinpad_verify = txc.feature_pinpad_verify(); diff --git a/tools/src/bin/opgpcard/util.rs b/tools/src/bin/opgpcard/util.rs index 67fac6f..450ab7c 100644 --- a/tools/src/bin/opgpcard/util.rs +++ b/tools/src/bin/opgpcard/util.rs @@ -7,16 +7,16 @@ use std::path::{Path, PathBuf}; use openpgp_card::algorithm::{Algo, Curve}; use openpgp_card::crypto_data::{EccType, PublicKeyMaterial}; use openpgp_card::{CardBackend, Error}; -use openpgp_card_pcsc::PcscCard; +use openpgp_card_pcsc::PcscBackend; use openpgp_card_sequoia::card::{Admin, Open, Sign, User}; pub(crate) fn cards() -> Result>, Error> { - PcscCard::cards(None) + PcscBackend::cards(None) .map(|cards| cards.into_iter().map(Into::into).collect()) } pub(crate) fn open_card(ident: &str) -> Result, Error> { - PcscCard::open_by_ident(ident, None).map(Into::into) + PcscBackend::open_by_ident(ident, None).map(Into::into) } pub(crate) fn verify_to_user<'app, 'open>(