openpgp-card: ExtendedCapabilities, add getters for capabilities
This commit is contained in:
parent
465847ea79
commit
536bcf788b
1 changed files with 76 additions and 2 deletions
|
@ -9,12 +9,86 @@ use crate::card_do::ExtendedCapabilities;
|
||||||
use crate::Error;
|
use crate::Error;
|
||||||
|
|
||||||
impl ExtendedCapabilities {
|
impl ExtendedCapabilities {
|
||||||
|
/// Secure Messaging supported.
|
||||||
|
///
|
||||||
|
/// (This feature is currently only available in the SmartPGP implementation)
|
||||||
|
pub fn secure_messaging(&self) -> bool {
|
||||||
|
self.secure_messaging
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Support for GET CHALLENGE.
|
||||||
|
///
|
||||||
|
/// (GET CHALLENGE generates a random number of a specified length on the smart card)
|
||||||
|
pub fn get_challenge(&self) -> bool {
|
||||||
|
self.get_challenge
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Maximum length of random number that can be requested from the card
|
||||||
|
/// (if GET CHALLENGE is supported).
|
||||||
|
///
|
||||||
|
/// If GET CHALLENGE is not supported, the coding is 0
|
||||||
|
pub fn max_len_challenge(&self) -> u16 {
|
||||||
|
self.max_len_challenge
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Support for Key Import
|
||||||
|
pub fn key_import(&self) -> bool {
|
||||||
|
self.key_import
|
||||||
|
}
|
||||||
|
|
||||||
|
/// PW Status changeable
|
||||||
|
/// (also see [`crate::card_do::PWStatusBytes`])
|
||||||
|
pub fn pw_status_change(&self) -> bool {
|
||||||
|
self.pw_status_change
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Support for Private use DOs
|
||||||
|
pub fn private_use_dos(&self) -> bool {
|
||||||
|
self.private_use_dos
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Algorithm attributes changeable
|
||||||
|
/// (also see [`crate::algorithm::AlgorithmAttributes`])
|
||||||
|
pub fn algo_attrs_changeable(&self) -> bool {
|
||||||
|
self.algo_attrs_changeable
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Support for encryption/decryption with AES
|
||||||
|
pub fn aes(&self) -> bool {
|
||||||
|
self.aes
|
||||||
|
}
|
||||||
|
|
||||||
|
/// KDF-related functionality available
|
||||||
|
pub fn kdf_do(&self) -> bool {
|
||||||
|
self.kdf_do
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Maximum length of Cardholder Certificates
|
||||||
|
pub fn max_len_cardholder_cert(&self) -> u16 {
|
||||||
|
self.max_len_cardholder_cert
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Maximum length of "special DOs"
|
||||||
|
/// (Private Use, Login data, URL, Algorithm attributes, KDF etc.)
|
||||||
|
///
|
||||||
|
/// (OpenPGP card version 3.x only)
|
||||||
pub fn max_len_special_do(&self) -> Option<u16> {
|
pub fn max_len_special_do(&self) -> Option<u16> {
|
||||||
self.max_len_special_do
|
self.max_len_special_do
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn algo_attrs_changeable(&self) -> bool {
|
/// (Private Use, Login data, URL, Algorithm attributes, KDF etc.)
|
||||||
self.algo_attrs_changeable
|
///
|
||||||
|
/// (OpenPGP card version 3.x only)
|
||||||
|
pub fn pin_block_2_format_support(&self) -> Option<bool> {
|
||||||
|
self.pin_block_2_format_support
|
||||||
|
}
|
||||||
|
|
||||||
|
/// MANAGE SECURITY ENVIRONMENT supported (for DEC and AUT keys).
|
||||||
|
/// (See [`crate::Transaction::manage_security_environment`])
|
||||||
|
///
|
||||||
|
/// (OpenPGP card version 3.x only)
|
||||||
|
pub fn mse_command_support(&self) -> Option<bool> {
|
||||||
|
self.mse_command_support
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Only available in OpenPGP card version 2.x
|
/// Only available in OpenPGP card version 2.x
|
||||||
|
|
Loading…
Reference in a new issue