From 77f92145ddf80cab397cb7db2c654f384db5401a Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Mon, 24 Jun 2019 11:22:08 +0200 Subject: Add simple CLI tool to enable firmware update mode on NK Storage Signed-off-by: Szczepan Zalega --- unittest/conftest.py | 5 ++++- unittest/libnk-tool.py | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 1 deletion(-) create mode 100755 unittest/libnk-tool.py diff --git a/unittest/conftest.py b/unittest/conftest.py index 7a4e2a2..49b4f02 100644 --- a/unittest/conftest.py +++ b/unittest/conftest.py @@ -1,5 +1,5 @@ """ -Copyright (c) 2015-2018 Nitrokey UG +Copyright (c) 2015-2019 Nitrokey UG This file is part of libnitrokey. @@ -31,6 +31,9 @@ basicConfig(format='* %(relativeCreated)6d %(filename)s:%(lineno)d %(message)s', log = getLogger('conftest') print = log.debug +def get_device_type(): + return device_type + def skip_if_device_version_lower_than(allowed_devices): global device_type diff --git a/unittest/libnk-tool.py b/unittest/libnk-tool.py new file mode 100755 index 0000000..52c8ece --- /dev/null +++ b/unittest/libnk-tool.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python3 + +""" +Copyright (c) 2015-2019 Nitrokey UG + +This file is part of libnitrokey. + +libnitrokey is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation, either version 3 of the License, or +any later version. + +libnitrokey is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with libnitrokey. If not, see . + +SPDX-License-Identifier: LGPL-3.0 +""" + +import click + +from conftest import get_library, get_device_type +from constants import DefaultPasswords, DeviceErrorCode + + +@click.group() +def cli(): + pass + + +@click.command() +def update(): + libnk = get_library(None) + device_type = get_device_type() + print(device_type) + assert device_type[0] == 'S' + assert libnk.NK_enable_firmware_update(DefaultPasswords.UPDATE) == DeviceErrorCode.STATUS_OK + + +cli.add_command(update) + +if __name__ == '__main__': + cli() -- cgit v1.2.1