aboutsummaryrefslogtreecommitdiff
path: root/src/pws.rs
diff options
context:
space:
mode:
authorRobin Krahl <robin.krahl@ireas.org>2018-06-05 22:30:04 +0200
committerRobin Krahl <robin.krahl@ireas.org>2018-06-05 22:30:04 +0200
commit017a27a009947d73c00f934a1e052b0ef021680b (patch)
treec3c2c088d4eb0c07be16b1a46d7abddd131e9229 /src/pws.rs
parent5b536045bd4276b31edafb55f39ded8534732401 (diff)
downloadnitrokey-rs-017a27a009947d73c00f934a1e052b0ef021680b.tar.gz
nitrokey-rs-017a27a009947d73c00f934a1e052b0ef021680b.tar.bz2
Implement Drop for PasswordSafe
By calling NK_lock_device when dropping a PasswordSafe instance, we can make sure that the password safe cannot be reused without authentication.
Diffstat (limited to 'src/pws.rs')
-rw-r--r--src/pws.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/pws.rs b/src/pws.rs
index 87a71dd..85726c5 100644
--- a/src/pws.rs
+++ b/src/pws.rs
@@ -315,6 +315,14 @@ impl<'a> PasswordSafe<'a> {
}
}
+impl<'a> Drop for PasswordSafe<'a> {
+ fn drop(&mut self) {
+ unsafe {
+ nitrokey_sys::NK_lock_device();
+ }
+ }
+}
+
impl GetPasswordSafe for Pro {
fn get_password_safe(&self, user_pin: &str) -> Result<PasswordSafe, CommandError> {
get_password_safe(self, user_pin)