diff --git a/src/crypto/cipher_key.rs b/src/crypto/cipher_key.rs index a0555b1..f4cc387 100644 --- a/src/crypto/cipher_key.rs +++ b/src/crypto/cipher_key.rs @@ -1,7 +1,7 @@ use crate::crypto::cipher::{aes, tdes, tdes_2k, tdes_3k, Cipher}; use crate::crypto::cipher_type::CipherType; use crate::crypto::cipher_type::CipherType::*; -use crate::error::Error; + use crate::error::Result; use simple_error::simple_error; diff --git a/src/desfire/desfire.rs b/src/desfire/desfire.rs index f06e5ea..2e56181 100644 --- a/src/desfire/desfire.rs +++ b/src/desfire/desfire.rs @@ -15,8 +15,8 @@ use crate::error::{Error, Result}; use crate::iso7816_4::apducommand::{APDUCommand, IsoCase}; use crate::{error, Card}; use num_traits::FromPrimitive; -use std::fs::read; -use std::usize::MAX; + + pub const MAX_BYTES_PER_TRANSACTION: usize = 47; @@ -780,23 +780,23 @@ mod tests { generate_file_access_rights, generate_keysetting1, generate_keysetting2, generate_session_key_aes, generate_session_key_des, Desfire, }; - use crate::desfire::CryptoOperationsType::TDES; + use crate::desfire::{ ChangeApplicationKey, ChangeMasterKey, ChangeMasterKeySettings, CreateDeleteFile, CryptoOperationsType, FileAccessRights, FileCommunication, FileDirectoryAccess, FileIdentifiers, }; - use crate::error::Error::{CardError, InvalidKeyID}; + use crate::error::Error::{CardError}; use crate::error::Result; - use crate::iso7816_4::apdustatuswords::APDUStatusWord::OK; + use crate::{APDUCommand, APDUResponse, Card as CardTrait}; use hex_literal::hex; - use mockall::{mock, predicate}; - use pcsc::{Card, Context, Disposition, Error, Protocols, Scope, ShareMode, MAX_BUFFER_SIZE}; + use mockall::{mock}; + use pcsc::{Card, Context, Protocols, Scope, ShareMode, MAX_BUFFER_SIZE}; use std::convert::TryFrom; - use std::ffi::{CStr, CString}; - use std::fs::{read, File}; - use std::ops::Deref; + use std::ffi::{CString}; + + mock! { pub VirtualCard {} @@ -820,7 +820,7 @@ mod tests { .connect(&self.reader, ShareMode::Shared, Protocols::ANY) { Ok(card) => Some(card), - Err(err) => { + Err(_err) => { // eprintln!("Failed to connect to card: {}", err); return Err(CardError); } @@ -845,7 +845,7 @@ mod tests { .transmit(apdu.as_slice(), &mut rapdu_buf) { Ok(rapdu) => rapdu, - Err(err) => { + Err(_err) => { // eprintln!("Failed to transmit APDU command to card: {}", err); return Err(CardError); } @@ -986,7 +986,7 @@ mod tests { fn select_application_invalidaid() { let mock = MockVirtualCard::new(); - let mut desfire = Desfire { + let desfire = Desfire { card: Some(Box::new(mock)), cbc_iv: None, session_key: None, @@ -1001,7 +1001,7 @@ mod tests { // Establish a PC/SC context. let ctx = match Context::establish(Scope::User) { Ok(ctx) => ctx, - Err(err) => { + Err(_err) => { // eprintln!("Failed to establish context: {}", err); std::process::exit(1); } @@ -1011,7 +1011,7 @@ mod tests { let mut readers_buf = [0; 2048]; let mut readers = match ctx.list_readers(&mut readers_buf) { Ok(readers) => readers, - Err(err) => { + Err(_err) => { // eprintln!("Failed to list readers: {}", err); std::process::exit(1); } @@ -1073,7 +1073,7 @@ mod tests { }); let rndA = hex!("5f7d1dd12d979173"); - let mut key = CipherKey::new_empty(CipherType::TDES).unwrap(); + let key = CipherKey::new_empty(CipherType::TDES).unwrap(); // println!("{:x?}", key.key.deref()); let mut desfire = Desfire { @@ -1115,7 +1115,7 @@ mod tests { // Establish a PC/SC context. let ctx = match Context::establish(Scope::User) { Ok(ctx) => ctx, - Err(err) => { + Err(_err) => { // eprintln!("Failed to establish context: {}", err); std::process::exit(1); } @@ -1125,7 +1125,7 @@ mod tests { let mut readers_buf = [0; 2048]; let mut readers = match ctx.list_readers(&mut readers_buf) { Ok(readers) => readers, - Err(err) => { + Err(_err) => { // eprintln!("Failed to list readers: {}", err); std::process::exit(1); } @@ -1156,10 +1156,10 @@ mod tests { desfire.select_application(0x000000); - let mut key = CipherKey::new_empty(CipherType::TDES).unwrap(); + let key = CipherKey::new_empty(CipherType::TDES).unwrap(); match desfire.authenticate_iso_des(0x00, key.key.as_ref(), None) { Ok(_) => {} - Err(err) => { + Err(_err) => { // eprintln!("Failed to authenticate: {}", err); panic!("Failed to authenticate"); } @@ -1188,7 +1188,7 @@ mod tests { })); let rndA = hex!("2176770e7a6eb4bef00d5e4b201d1e57"); - let mut key = CipherKey::new_empty(CipherType::AES).unwrap(); + let key = CipherKey::new_empty(CipherType::AES).unwrap(); // println!("{:x?}", key.key.deref()); let mut desfire = Desfire { @@ -1239,7 +1239,7 @@ mod tests { }) }); - let mut desfire = Desfire { + let desfire = Desfire { card: Some(Box::new(mock)), cbc_iv: None, session_key: None, @@ -1263,7 +1263,7 @@ mod tests { }) }); - let mut desfire = Desfire { + let desfire = Desfire { card: Some(Box::new(mock)), cbc_iv: None, session_key: None, @@ -1275,9 +1275,9 @@ mod tests { #[test] #[should_panic(expected = "InvalidApplicationID")] fn create_application_invalid_aid() { - let mut mock = MockVirtualCard::new(); + let mock = MockVirtualCard::new(); - let mut desfire = Desfire { + let desfire = Desfire { card: Some(Box::new(mock)), cbc_iv: None, session_key: None, @@ -1309,7 +1309,7 @@ mod tests { #[test] #[should_panic(expected = "InvalidKeyID")] fn change_key_aes_invalid_keyno() { - let mut mock = MockVirtualCard::new(); + let mock = MockVirtualCard::new(); let mut desfire = Desfire { card: Some(Box::new(mock)), @@ -1346,7 +1346,7 @@ mod tests { #[test] #[should_panic(expected = "InvalidKeyID")] fn change_other_key_aes_invalid_keyno() { - let mut mock = MockVirtualCard::new(); + let mock = MockVirtualCard::new(); let mut desfire = Desfire { card: Some(Box::new(mock)), @@ -1374,7 +1374,7 @@ mod tests { }) }); - let mut desfire = Desfire { + let desfire = Desfire { card: Some(Box::new(mock)), cbc_iv: None, session_key: None, @@ -1390,9 +1390,9 @@ mod tests { #[test] #[should_panic(expected = "InvalidFileID")] fn create_file_standard_invalid_file_id() { - let mut mock = MockVirtualCard::new(); + let mock = MockVirtualCard::new(); - let mut desfire = Desfire { + let desfire = Desfire { card: Some(Box::new(mock)), cbc_iv: None, session_key: None, @@ -1421,7 +1421,7 @@ mod tests { }) }); - let mut desfire = Desfire { + let desfire = Desfire { card: Some(Box::new(mock)), cbc_iv: None, session_key: None, @@ -1459,7 +1459,7 @@ mod tests { }) }); - let mut desfire = Desfire { + let desfire = Desfire { card: Some(Box::new(mock)), cbc_iv: None, session_key: None, @@ -1472,9 +1472,9 @@ mod tests { #[test] #[should_panic(expected = "InvalidFileID")] fn write_data_invalid_file_id() { - let mut mock = MockVirtualCard::new(); + let mock = MockVirtualCard::new(); - let mut desfire = Desfire { + let desfire = Desfire { card: Some(Box::new(mock)), cbc_iv: None, session_key: None, @@ -1503,7 +1503,7 @@ mod tests { }) }); - let mut desfire = Desfire { + let desfire = Desfire { card: Some(Box::new(mock)), cbc_iv: None, session_key: None, @@ -1525,7 +1525,7 @@ mod tests { body: Some(hex!("5465737431323334000000000000000000000000000000000000000000000000809a9bedbc559a5b9100").to_vec()) })); - let mut desfire = Desfire { + let desfire = Desfire { card: Some(Box::new(mock)), cbc_iv: None, session_key: None, @@ -1565,7 +1565,7 @@ mod tests { }) }); - let mut desfire = Desfire { + let desfire = Desfire { card: Some(Box::new(mock)), cbc_iv: None, session_key: None, @@ -1581,9 +1581,9 @@ mod tests { #[test] #[should_panic(expected = "InvalidFileID")] fn read_data_invalid_file_id() { - let mut mock = MockVirtualCard::new(); + let mock = MockVirtualCard::new(); - let mut desfire = Desfire { + let desfire = Desfire { card: Some(Box::new(mock)), cbc_iv: None, session_key: None,