Merge branch 'Prezu/login_data' into 'main'
Added login data See merge request openpgp-card/openpgp-card!37
This commit is contained in:
commit
5f00bc87aa
4 changed files with 45 additions and 0 deletions
|
@ -40,6 +40,10 @@ fn main() -> Result<()> {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
println!("Set login data");
|
||||||
|
let login_data_out = run_test(&mut card, test_set_login_data, &[])?;
|
||||||
|
println!(" {login_data_out:x?}");
|
||||||
|
|
||||||
for key_file in &key_files {
|
for key_file in &key_files {
|
||||||
// upload keys
|
// upload keys
|
||||||
print!("Upload key '{key_file}'");
|
print!("Upload key '{key_file}'");
|
||||||
|
|
|
@ -352,6 +352,22 @@ pub fn test_set_user_data(pgp: &mut OpenPgp, _param: &[&str]) -> Result<TestOutp
|
||||||
Ok(vec![])
|
Ok(vec![])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn test_set_login_data(pgp: &mut OpenPgp, _params: &[&str]) -> Result<TestOutput, TestError> {
|
||||||
|
let mut pgpt = pgp.transaction()?;
|
||||||
|
|
||||||
|
pgpt.verify_pw3(b"12345678")?;
|
||||||
|
|
||||||
|
let test_login = b"someone@somewhere.com";
|
||||||
|
pgpt.set_login(test_login)?;
|
||||||
|
|
||||||
|
// Read the previously set login data
|
||||||
|
let read_login_data = pgpt.login_data()?;
|
||||||
|
|
||||||
|
assert_eq!(read_login_data, test_login.to_vec());
|
||||||
|
|
||||||
|
Ok(vec![])
|
||||||
|
}
|
||||||
|
|
||||||
pub fn test_private_data(pgp: &mut OpenPgp, _param: &[&str]) -> Result<TestOutput, TestError> {
|
pub fn test_private_data(pgp: &mut OpenPgp, _param: &[&str]) -> Result<TestOutput, TestError> {
|
||||||
let mut pgpt = pgp.transaction()?;
|
let mut pgpt = pgp.transaction()?;
|
||||||
|
|
||||||
|
|
|
@ -47,6 +47,11 @@ pub(crate) fn url() -> Command {
|
||||||
get_data(Tags::Url)
|
get_data(Tags::Url)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// GET DO "Login Data"
|
||||||
|
pub(crate) fn login_data() -> Command {
|
||||||
|
get_data(Tags::LoginData)
|
||||||
|
}
|
||||||
|
|
||||||
/// GET DO "Cardholder related data"
|
/// GET DO "Cardholder related data"
|
||||||
pub(crate) fn cardholder_related_data() -> Command {
|
pub(crate) fn cardholder_related_data() -> Command {
|
||||||
get_data(Tags::CardholderRelatedData)
|
get_data(Tags::CardholderRelatedData)
|
||||||
|
@ -131,6 +136,11 @@ pub(crate) fn put_private_use_do(num: u8, data: Vec<u8>) -> Command {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// PUT DO Login Data
|
||||||
|
pub(crate) fn put_login_data(login_data: Vec<u8>) -> Command {
|
||||||
|
put_data(Tags::LoginData, login_data)
|
||||||
|
}
|
||||||
|
|
||||||
/// PUT DO Name
|
/// PUT DO Name
|
||||||
pub(crate) fn put_name(name: Vec<u8>) -> Command {
|
pub(crate) fn put_name(name: Vec<u8>) -> Command {
|
||||||
put_data(Tags::Name, name)
|
put_data(Tags::Name, name)
|
||||||
|
|
|
@ -110,6 +110,15 @@ impl<'a> OpenPgpTransaction<'a> {
|
||||||
Ok(resp.data()?.to_vec())
|
Ok(resp.data()?.to_vec())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Get Login Data (5e)
|
||||||
|
pub fn login_data(&mut self) -> Result<Vec<u8>, Error> {
|
||||||
|
log::info!("OpenPgpTransaction: login_data");
|
||||||
|
|
||||||
|
let resp = apdu::send_command(self.tx(), commands::login_data(), true)?;
|
||||||
|
|
||||||
|
Ok(resp.data()?.to_vec())
|
||||||
|
}
|
||||||
|
|
||||||
/// Get cardholder related data (65)
|
/// Get cardholder related data (65)
|
||||||
pub fn cardholder_related_data(&mut self) -> Result<CardholderRelatedData, Error> {
|
pub fn cardholder_related_data(&mut self) -> Result<CardholderRelatedData, Error> {
|
||||||
log::info!("OpenPgpTransaction: cardholder_related_data");
|
log::info!("OpenPgpTransaction: cardholder_related_data");
|
||||||
|
@ -717,6 +726,12 @@ impl<'a> OpenPgpTransaction<'a> {
|
||||||
Ok(resp.data()?.to_vec())
|
Ok(resp.data()?.to_vec())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn set_login(&mut self, login: &[u8]) -> Result<(), Error> {
|
||||||
|
log::info!("OpenPgpTransaction: set_login");
|
||||||
|
let put_login_data = commands::put_login_data(login.to_vec());
|
||||||
|
apdu::send_command(self.tx(), put_login_data, false)?.try_into()
|
||||||
|
}
|
||||||
|
|
||||||
pub fn set_name(&mut self, name: &[u8]) -> Result<(), Error> {
|
pub fn set_name(&mut self, name: &[u8]) -> Result<(), Error> {
|
||||||
log::info!("OpenPgpTransaction: set_name");
|
log::info!("OpenPgpTransaction: set_name");
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue