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 | |
| 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>
| -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') | 
