aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Krahl <robin.krahl@ireas.org>2019-01-03 00:39:22 +0000
committerRobin Krahl <robin.krahl@ireas.org>2019-01-03 01:40:12 +0100
commit9af5d8d894563f34d063035607bc39a5e8239fa7 (patch)
tree360448f8f0a17aa2594dd07968075f6c4a8a286d
parent248f8b209b0150e70e82ab15b73bf32b0f47341d (diff)
downloadnitrokey-rs-9af5d8d894563f34d063035607bc39a5e8239fa7.tar.gz
nitrokey-rs-9af5d8d894563f34d063035607bc39a5e8239fa7.tar.bz2
Extend unlock_user_pin tests
This patch adds a test case that changes the PIN when calling unlock_user_pin. The previous test case only unlocked the current user PIN.
-rw-r--r--tests/device.rs24
1 files changed, 23 insertions, 1 deletions
diff --git a/tests/device.rs b/tests/device.rs
index 26afa62..4551534 100644
--- a/tests/device.rs
+++ b/tests/device.rs
@@ -256,12 +256,14 @@ fn unlock_user_pin() {
device.unlock_user_pin(USER_PASSWORD, USER_PASSWORD)
);
+ // block user PIN
let wrong_password = USER_PASSWORD.to_owned() + "foo";
let device = require_failed_user_login(device, &wrong_password, CommandError::WrongPassword);
let device = require_failed_user_login(device, &wrong_password, CommandError::WrongPassword);
let device = require_failed_user_login(device, &wrong_password, CommandError::WrongPassword);
let device = require_failed_user_login(device, USER_PASSWORD, CommandError::WrongPassword);
+ // unblock with current PIN
assert_eq!(
Err(CommandError::WrongPassword),
device.unlock_user_pin(USER_PASSWORD, USER_PASSWORD)
@@ -269,7 +271,27 @@ fn unlock_user_pin() {
assert!(device
.unlock_user_pin(ADMIN_PASSWORD, USER_PASSWORD)
.is_ok());
- device.authenticate_user(USER_PASSWORD).unwrap();
+ let device = device.authenticate_user(USER_PASSWORD).unwrap().device();
+
+ // block user PIN
+ let device = require_failed_user_login(device, &wrong_password, CommandError::WrongPassword);
+ let device = require_failed_user_login(device, &wrong_password, CommandError::WrongPassword);
+ let device = require_failed_user_login(device, &wrong_password, CommandError::WrongPassword);
+ let device = require_failed_user_login(device, USER_PASSWORD, CommandError::WrongPassword);
+
+ // unblock with new PIN
+ assert_eq!(
+ Err(CommandError::WrongPassword),
+ device.unlock_user_pin(USER_PASSWORD, USER_PASSWORD)
+ );
+ assert!(device
+ .unlock_user_pin(ADMIN_PASSWORD, USER_NEW_PASSWORD)
+ .is_ok());
+
+ // reset user PIN
+ assert!(device
+ .change_user_pin(USER_NEW_PASSWORD, USER_PASSWORD)
+ .is_ok());
}
#[test]