diff options
author | Szczepan Zalega <szczepan@nitrokey.com> | 2016-07-25 17:39:29 +0200 |
---|---|---|
committer | Szczepan Zalega <szczepan@nitrokey.com> | 2016-08-01 13:54:57 +0200 |
commit | dcd30dea651bad424219ae0f486fc6d49f534ee3 (patch) | |
tree | adaeece2c2d829b12bf3f02c4e936f759c79e290 /unittest | |
parent | 8f4fb5d6320241a27d4d8c93d819daba40c58867 (diff) | |
download | libnitrokey-dcd30dea651bad424219ae0f486fc6d49f534ee3.tar.gz libnitrokey-dcd30dea651bad424219ae0f486fc6d49f534ee3.tar.bz2 |
Add test for changing PINs
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
Diffstat (limited to 'unittest')
-rw-r--r-- | unittest/test_bindings.py | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/unittest/test_bindings.py b/unittest/test_bindings.py index 5da2bc0..34bd21b 100644 --- a/unittest/test_bindings.py +++ b/unittest/test_bindings.py @@ -1,5 +1,18 @@ import pytest import cffi +from enum import Enum + +RFC_SECRET = '12345678901234567890' + +class DefaultPasswords(Enum): + ADMIN = '12345678' + USER = '123456' + +class DeviceErrorCode(Enum): + STATUS_OK = 0 + NOT_PROGRAMMED = 3 + WRONG_PASSWORD = 4 + ffi = cffi.FFI() @@ -24,11 +37,28 @@ def C(request): # C.NK_set_debug(True) def fin(): C.NK_logout() - request.addfinalizer(fin) + + request.addfinalizer(fin) return C +def test_admin_PIN_change(C): + C.NK_set_debug(True) + assert C.NK_change_admin_PIN('wrong_password', '123123123') == DeviceErrorCode.WRONG_PASSWORD + assert C.NK_change_admin_PIN(DefaultPasswords.ADMIN, '123123123') == DeviceErrorCode.STATUS_OK + assert C.NK_change_admin_PIN('123123123', DefaultPasswords.ADMIN) == DeviceErrorCode.STATUS_OK + C.NK_set_debug(False) + + +def test_user_PIN_change(C): + C.NK_set_debug(True) + assert C.NK_change_user_PIN('wrong_password', '123123123') == DeviceErrorCode.WRONG_PASSWORD + assert C.NK_change_user_PIN(DefaultPasswords.USER, '123123123') == DeviceErrorCode.STATUS_OK + assert C.NK_change_user_PIN('123123123', DefaultPasswords.USER) == DeviceErrorCode.STATUS_OK + C.NK_set_debug(False) + + def test_HOTP_RFC(C): # https://tools.ietf.org/html/rfc4226#page-32 C.NK_write_hotp_slot(1, 'python_test', '12345678901234567890', 0, '123123123') |