aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSzczepan Zalega <szczepan@nitrokey.com>2019-06-24 11:22:08 +0200
committerSzczepan Zalega <szczepan@nitrokey.com>2019-06-24 11:22:08 +0200
commit77f92145ddf80cab397cb7db2c654f384db5401a (patch)
tree29bf4b36e7ade4129efa8d5c78eb3e0bdf5ac2c2
parent3ede630625cdc83cde2753897bee260595a5137a (diff)
downloadlibnitrokey-77f92145ddf80cab397cb7db2c654f384db5401a.tar.gz
libnitrokey-77f92145ddf80cab397cb7db2c654f384db5401a.tar.bz2
Add simple CLI tool to enable firmware update mode on NK Storage
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
-rw-r--r--unittest/conftest.py5
-rwxr-xr-xunittest/libnk-tool.py47
2 files changed, 51 insertions, 1 deletions
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 <http://www.gnu.org/licenses/>.
+
+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()