summaryrefslogtreecommitdiff
path: root/src/tests/pro.rs
diff options
context:
space:
mode:
authorRobin Krahl <robin.krahl@ireas.org>2018-05-21 22:19:17 +0000
committerRobin Krahl <robin.krahl@ireas.org>2018-05-22 00:20:04 +0200
commitba716c0ba1fdcdfe824d84f04f7580a1c8501777 (patch)
tree60a0e7208e6a94fb018e770ab9e7540b5907dabc /src/tests/pro.rs
parent9428ce3221209828b8cff0e34957ebb9b10b2d99 (diff)
downloadnitrokey-rs-ba716c0ba1fdcdfe824d84f04f7580a1c8501777.tar.gz
nitrokey-rs-ba716c0ba1fdcdfe824d84f04f7580a1c8501777.tar.bz2
Add support for erase_hotp_slot and erase_totp_slot
Diffstat (limited to 'src/tests/pro.rs')
-rw-r--r--src/tests/pro.rs44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/tests/pro.rs b/src/tests/pro.rs
index a508801..a23d42a 100644
--- a/src/tests/pro.rs
+++ b/src/tests/pro.rs
@@ -136,6 +136,28 @@ fn hotp_error() {
assert_eq!(CommandError::InvalidSlot, code.unwrap_err());
}
+#[test]
+#[cfg_attr(not(feature = "test-pro"), ignore)]
+fn hotp_erase() {
+ let admin = get_admin_test_device();
+ let config = Config::new(None, None, None, false);
+ assert_eq!(CommandStatus::Success, admin.write_config(config));
+ let slot_data = OtpSlotData::new(1, "test1", HOTP_SECRET, OtpMode::SixDigits);
+ assert_eq!(CommandStatus::Success, admin.write_hotp_slot(slot_data, 0));
+ let slot_data = OtpSlotData::new(2, "test2", HOTP_SECRET, OtpMode::SixDigits);
+ assert_eq!(CommandStatus::Success, admin.write_hotp_slot(slot_data, 0));
+
+ assert_eq!(CommandStatus::Success, admin.erase_hotp_slot(1));
+
+ let device = admin.device();
+ let result = device.get_hotp_slot_name(1);
+ assert_eq!(CommandError::SlotNotProgrammed, result.unwrap_err());
+ let result = device.get_hotp_code(1);
+ assert_eq!(CommandError::SlotNotProgrammed, result.unwrap_err());
+
+ assert_eq!("test2", device.get_hotp_slot_name(2).unwrap());
+}
+
fn configure_totp(admin: &AdminAuthenticatedDevice) {
let slot_data = OtpSlotData::new(1, "test-totp", TOTP_SECRET, OtpMode::EightDigits);
assert_eq!(CommandStatus::Success, admin.write_totp_slot(slot_data, 30));
@@ -218,6 +240,28 @@ fn totp_error() {
#[test]
#[cfg_attr(not(feature = "test-pro"), ignore)]
+fn totp_erase() {
+ let admin = get_admin_test_device();
+ let config = Config::new(None, None, None, false);
+ assert_eq!(CommandStatus::Success, admin.write_config(config));
+ let slot_data = OtpSlotData::new(1, "test1", TOTP_SECRET, OtpMode::SixDigits);
+ assert_eq!(CommandStatus::Success, admin.write_totp_slot(slot_data, 0));
+ let slot_data = OtpSlotData::new(2, "test2", TOTP_SECRET, OtpMode::SixDigits);
+ assert_eq!(CommandStatus::Success, admin.write_totp_slot(slot_data, 0));
+
+ assert_eq!(CommandStatus::Success, admin.erase_totp_slot(1));
+
+ let device = admin.device();
+ let result = device.get_totp_slot_name(1);
+ assert_eq!(CommandError::SlotNotProgrammed, result.unwrap_err());
+ let result = device.get_totp_code(1);
+ assert_eq!(CommandError::SlotNotProgrammed, result.unwrap_err());
+
+ assert_eq!("test2", device.get_totp_slot_name(2).unwrap());
+}
+
+#[test]
+#[cfg_attr(not(feature = "test-pro"), ignore)]
fn get_firmware_version() {
let device = get_test_device();
assert_eq!(0, device.get_major_firmware_version());