aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSzczepan Zalega <szczepan@nitrokey.com>2016-10-22 19:02:16 +0200
committerSzczepan Zalega <szczepan@nitrokey.com>2016-11-26 15:54:12 +0100
commit27355f0dd8eb11fe1a0d41bd05d3c7dcb74341d8 (patch)
tree1fe3ae70de0ce5bd79db7bc1f93b0a104657579c
parent24f140f34c9c90be54165802edb80fce3408ffa3 (diff)
downloadlibnitrokey-27355f0dd8eb11fe1a0d41bd05d3c7dcb74341d8.tar.gz
libnitrokey-27355f0dd8eb11fe1a0d41bd05d3c7dcb74341d8.tar.bz2
C++ tests for Storage commands
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
-rw-r--r--CMakeLists.txt4
-rw-r--r--unittest/test2.cc75
2 files changed, 19 insertions, 60 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index eedfd35..8f57fa7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -30,6 +30,8 @@ set(SOURCE_FILES
NitrokeyManager.cc
NK_C_API.cc include/CommandFailedException.h include/LibraryException.h
unittest/test_C_API.cpp
- unittest/catch_main.cpp)
+ unittest/catch_main.cpp
+ unittest/test2.cc
+ )
add_executable(libnitrokey ${SOURCE_FILES}) \ No newline at end of file
diff --git a/unittest/test2.cc b/unittest/test2.cc
index 6744b45..dfc4182 100644
--- a/unittest/test2.cc
+++ b/unittest/test2.cc
@@ -3,80 +3,37 @@
#include <iostream>
#include <string.h>
+#include <NitrokeyManager.h>
#include "device_proto.h"
#include "log.h"
-#include "stick10_commands.h"
+//#include "stick10_commands.h"
+#include "stick20_commands.h"
using namespace std;
using namespace nitrokey::device;
-using namespace nitrokey::proto::stick10;
+using namespace nitrokey::proto::stick20;
using namespace nitrokey::log;
using namespace nitrokey::misc;
-std::string getSlotName(Stick10 &stick, int slotNo) {
- auto slot_req = get_payload<ReadSlot>();
- slot_req.slot_number = slotNo;
- auto slot = ReadSlot::CommandTransaction::run(stick, slot_req);
- std::string sName(reinterpret_cast<char *>(slot.data().slot_name));
- return sName;
-}
-
-TEST_CASE("Slot names are correct", "[slotNames]") {
- Stick10 stick;
+TEST_CASE("test", "[test]") {
+ Stick20 stick;
bool connected = stick.connect();
REQUIRE(connected == true);
- Log::instance().set_loglevel(Loglevel::DEBUG);
-
- auto resp = GetStatus::CommandTransaction::run(stick);
-
- auto authreq = get_payload<FirstAuthenticate>();
- strcpy((char *)(authreq.card_password), "12345678");
- FirstAuthenticate::CommandTransaction::run(stick, authreq);
-
- {
- auto authreq = get_payload<EnablePasswordSafe>();
- strcpy((char *)(authreq.user_password), "123456");
- EnablePasswordSafe::CommandTransaction::run(stick, authreq);
- }
-
- //assuming these values were set earlier, thus failing on normal use
- REQUIRE(getSlotName(stick, 0x20) == std::string("1"));
- REQUIRE(getSlotName(stick, 0x21) == std::string("slot2"));
-
- {
- auto resp = GetPasswordRetryCount::CommandTransaction::run(stick);
- REQUIRE(resp.data().password_retry_count == 3);
- }
- {
- auto resp = GetUserPasswordRetryCount::CommandTransaction::run(stick);
- REQUIRE(resp.data().password_retry_count == 3);
- }
+ Log::instance().set_loglevel(Loglevel::DEBUG_L2);
{
- auto slot = get_payload<GetPasswordSafeSlotName>();
- slot.slot_number = 0;
- auto resp2 = GetPasswordSafeSlotName::CommandTransaction::run(stick, slot);
- std::string sName(reinterpret_cast<char *>(resp2.data().slot_name));
- REQUIRE(sName == std::string("web1"));
+ auto p = get_payload<EnableEncryptedPartition>();
+ p.set_kind_user();
+ strcpyT(p.password, "123456");
+ EnableEncryptedPartition::CommandTransaction::run(stick, p);
}
-
- {
- auto slot = get_payload<GetPasswordSafeSlotPassword>();
- slot.slot_number = 0;
- auto resp2 =
- GetPasswordSafeSlotPassword::CommandTransaction::run(stick, slot);
- std::string sName(reinterpret_cast<char *>(resp2.data().slot_password));
- REQUIRE(sName == std::string("pass1"));
- }
-
- {
- auto slot = get_payload<GetPasswordSafeSlotLogin>();
- slot.slot_number = 0;
- auto resp2 = GetPasswordSafeSlotLogin::CommandTransaction::run(stick, slot);
- std::string sName(reinterpret_cast<char *>(resp2.data().slot_login));
- REQUIRE(sName == std::string("login1"));
+ {
+ auto p = get_payload<DisableEncryptedPartition>();
+ p.set_kind_user();
+ strcpyT(p.password, "123456");
+ DisableEncryptedPartition::CommandTransaction::run(stick, p);
}
stick.disconnect();