From 4ac4f1c33b64c9fc80bc911681143a3a52c1e5df Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Thu, 22 Nov 2018 12:28:32 +0100 Subject: Handle UNKNOWN_ERROR return code Handle UNKNOWN_ERROR code (introduced in Storage v0.51, firmware commit 687d4aca31ce405db41231be73864ee2f91b3714) and is returned, when device fails to retrieve the AES key. Signed-off-by: Szczepan Zalega --- unittest/constants.py | 1 + unittest/test_pro.py | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/unittest/constants.py b/unittest/constants.py index 3fb444a..714c8c6 100644 --- a/unittest/constants.py +++ b/unittest/constants.py @@ -48,6 +48,7 @@ class DeviceErrorCode: WRONG_PASSWORD = 4 STATUS_NOT_AUTHORIZED = 5 STATUS_AES_DEC_FAILED = 0xa + STATUS_UNKNOWN_ERROR = 100 class LibraryErrors: diff --git a/unittest/test_pro.py b/unittest/test_pro.py index 1c61399..afa9505 100644 --- a/unittest/test_pro.py +++ b/unittest/test_pro.py @@ -192,7 +192,8 @@ def test_enable_password_safe_after_factory_reset(C): assert C.NK_clear_new_sd_card_warning(DefaultPasswords.ADMIN) == DeviceErrorCode.STATUS_OK enable_password_safe_result = C.NK_enable_password_safe(DefaultPasswords.USER) assert enable_password_safe_result == DeviceErrorCode.STATUS_AES_DEC_FAILED \ - or is_storage(C) and enable_password_safe_result == DeviceErrorCode.WRONG_PASSWORD + or is_storage(C) and enable_password_safe_result in \ + [DeviceErrorCode.WRONG_PASSWORD, DeviceErrorCode.STATUS_UNKNOWN_ERROR] # UNKNOWN_ERROR since v0.51 assert C.NK_build_aes_key(DefaultPasswords.ADMIN) == DeviceErrorCode.STATUS_OK assert C.NK_enable_password_safe(DefaultPasswords.USER) == DeviceErrorCode.STATUS_OK -- cgit v1.2.3 From 3a2ee6c368a8233946473e60baa05c54eb822802 Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Thu, 22 Nov 2018 12:37:57 +0100 Subject: Run enabling firmware update mode, but with wrong password only Signed-off-by: Szczepan Zalega --- unittest/test_storage.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/unittest/test_storage.py b/unittest/test_storage.py index 096709d..2aa8441 100644 --- a/unittest/test_storage.py +++ b/unittest/test_storage.py @@ -352,13 +352,14 @@ def test_change_update_password(C): assert C.NK_change_update_password(DefaultPasswords.UPDATE_TEMP, DefaultPasswords.UPDATE) == DeviceErrorCode.STATUS_OK -@pytest.mark.skip(reason='no reversing method added yet') +# @pytest.mark.skip(reason='no reversing method added yet') @pytest.mark.update def test_enable_firmware_update(C): skip_if_device_version_lower_than({'S': 50}) wrong_password = b'aaaaaaaaaaa' assert C.NK_enable_firmware_update(wrong_password) == DeviceErrorCode.WRONG_PASSWORD - assert C.NK_enable_firmware_update(DefaultPasswords.UPDATE) == DeviceErrorCode.STATUS_OK + # skip actual test - reason: no reversing method added yet + # assert C.NK_enable_firmware_update(DefaultPasswords.UPDATE) == DeviceErrorCode.STATUS_OK @pytest.mark.other -- cgit v1.2.3