From 5df18c8c0151576a0b37a4b6baa33f53af29ed93 Mon Sep 17 00:00:00 2001 From: Nicolas Stalder Date: Tue, 8 Mar 2022 13:19:09 +0100 Subject: [PATCH] Replace references to solo-python with solo1-cli --- Dockerfile | 6 ++--- README.md | 10 ++++---- SECURITY.md | 6 ++--- docs/building.md | 14 +++++------ docs/programming.md | 22 ++++++++--------- docs/solo-extras.md | 6 ++--- docs/tutorial-getting-started.md | 42 ++++++++++++++++---------------- tools/requirements.txt | 2 +- 8 files changed, 54 insertions(+), 54 deletions(-) diff --git a/Dockerfile b/Dockerfile index b590ba5..4ecb43d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -24,7 +24,7 @@ RUN set -eux; \ # Set Path for ARM compiler ENV PATH="$PATH:/opt/gcc-arm-none-eabi-8-2019-q3-update/bin" -# Python3.7: for solo-python (merging etc.) +# Python3.7: for solo1-cli (merging etc.) RUN set -eux; \ url="https://repo.anaconda.com/miniconda/Miniconda3-4.5.12-Linux-x86_64.sh"; \ wget -O miniconda.sh "$url"; \ @@ -38,8 +38,8 @@ RUN set -eux; \ rm miniconda.sh; \ pip install -U pip -# solo-python (Python3.7 script for merging etc.) -RUN pip install -U solo-python +# solo1-cli (Python3.7 script for merging etc.) +RUN pip install -U solo1 # Rust for salty ENV RUSTUP_HOME=/rust/rustup diff --git a/README.md b/README.md index 5fe6132..a373453 100644 --- a/README.md +++ b/README.md @@ -63,9 +63,9 @@ git submodule update --init --recursive ## Installing the toolchain and applying updates -In order to compile ARM code, you need the ARM compiler and other things like bundling bootloader and firmware require the [solo-python](https://github.com/solokeys/solo-python) python package. Check our [documentation](https://docs.solokeys.dev/) for details. +In order to compile ARM code, you need the ARM compiler and other things like bundling bootloader and firmware require the [solo1](https://github.com/solokeys/solo1-cli) python package. Check our [documentation](https://docs.solokeys.dev/) for details. -You can update your solokey after running `pip3 install solo-python` with `solo key update` for the latest version. To apply a custom image use `solo program bootloader (.json|.hex)`. +You can update your solokey after running `pip3 install solo1` with `solo1 key update` for the latest version. To apply a custom image use `solo1 program bootloader (.json|.hex)`. ## Installing the toolkit and compiling in Docker Alternatively, you can use Docker to create a container with the toolchain. @@ -103,8 +103,8 @@ cd ../.. make venv source venv/bin/activate -solo program aux enter-bootloader -solo program bootloader targets/stm32l432/solo.hex +solo1 program aux enter-bootloader +solo1 program bootloader targets/stm32l432/solo.hex ``` # Developing Solo (No Hardware Needed) @@ -114,7 +114,7 @@ solo program bootloader targets/stm32l432/solo.hex 1. Need libsodium. On debian, install: ``` -sudo apt install libsodium-dev +sudo apt install libsodium-dev ``` ## Building diff --git a/SECURITY.md b/SECURITY.md index 371a2d3..8d21f8a 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -2,16 +2,16 @@ ## Supported Versions -We fix security issues as soon as they are found, and release firmware updates. +We fix security issues as soon as they are found, and release firmware updates. Each such release is accompanied by release notes, see . The latest version can be determined using the file . To update your key: - either visit , or -- use our commandline tool : +- use our commandline tool : ``` -solo key update +solo1 key update ``` ## Reporting a Vulnerability diff --git a/docs/building.md b/docs/building.md index c00fa04..534f70f 100644 --- a/docs/building.md +++ b/docs/building.md @@ -12,7 +12,7 @@ Install the [latest ARM compiler toolchain](https://developer.arm.com/open-sourc You can also install the ARM toolchain using a package manager like `apt-get` or `pacman`, but be warned they might be out of date. Typically it will be called `gcc-arm-none-eabi binutils-arm-none-eabi`. -Install `solo-python` usually with `pip3 install solo-python`. The `solo` python application may also be used for [programming](#programming). +Install `solo1` usually with `pip3 install solo1`. The `solo` python application may also be used for [programming](#programming). ## Obtain source code and solo tool @@ -23,9 +23,9 @@ Source code can be downloaded from: **solo** tool can be downloaded from: -- from python programs [repository](https://pypi.org/project/solo-python/) `pip install solo-python` +- from python programs [repository](https://pypi.org/project/solo1/) `pip install solo1` - from installing prerequisites `pip3 install -r tools/requirements.txt` -- github repository: [repository](https://github.com/solokeys/solo-python) +- github repository: [repository](https://github.com/solokeys/solo1-cli) - installation python enviroment with command `make venv` from root directory of source code ## Compilation @@ -75,7 +75,7 @@ We recommend using our `solo` tool as a serial emulator since it will automatica reconnect each time you program Solo. ``` -solo monitor +solo1 monitor ``` #### Linux Users: @@ -99,7 +99,7 @@ make bootloader-nonverifying This outputs `bootloader.hex`. We can then merge the bootloader and application. ``` -solo mergehex bootloader.hex solo.hex bundle.hex +solo1 mergehex bootloader.hex solo.hex bundle.hex ``` `bundle.hex` is our complete firmware build. Note it is in this step that you can @@ -108,7 +108,7 @@ By default the "hacker" attestation certifcate and key is used. Use the `--lock to make this permanent. ``` -solo mergehex \ +solo1 mergehex \ --attestation-key "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF" \ --attestation-cert attestation.der \ solo.hex \ @@ -122,7 +122,7 @@ The new bootloader may be able to accept (signed) updates still, depending on ho ``` # Permanent! -solo mergehex \ +solo1 mergehex \ --attestation-key "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF" \ --attestation-cert attestation.der \ --lock \ diff --git a/docs/programming.md b/docs/programming.md index 0633930..8c0727a 100644 --- a/docs/programming.md +++ b/docs/programming.md @@ -7,7 +7,7 @@ This page documents how to update or program your Solo. To program Solo, you'll likely only need to use our Solo tool. ```python -pip3 install solo-python +pip3 install solo1 ``` ## Updating the firmware @@ -15,13 +15,13 @@ pip3 install solo-python If you just want to update the firmware, you can run: ```bash -solo key update +solo1 key update ``` You can manually install the [latest release](https://github.com/solokeys/solo/releases), or use a build that you made. ```bash -solo program bootloader +solo1 program bootloader ``` Note you won't be able to use `all.hex` or the `bundle-*.hex` builds, as these include the solo bootloader. You shouldn't @@ -54,16 +54,16 @@ concern with using our default attestation key, aside from a small privacy impli 1. Boot into DFU mode. # Enter Solo bootloader - solo program aux enter-bootloader + solo1 program aux enter-bootloader # Enter DFU - solo program aux enter-dfu + solo1 program aux enter-dfu The device should be turned off. 2. Program the device - solo program dfu + solo1 program dfu Double check you programmed it with bootloader + application (or just bootloader). If you messed it up, simply don't do the next step and repeat this step correctly. @@ -73,7 +73,7 @@ concern with using our default attestation key, aside from a small privacy impli Once Solo boots a secure build, it will lock the flash permantly from debugger access. Also the bootloader will only accept signed firmware updates. - solo program aux leave-dfu + solo1 program aux leave-dfu If you are having problems with solo tool and DFU mode, you could alternatively try booting into DFU by holding down the button while Solo is in bootloader mode. Then try another programming tool that works @@ -84,7 +84,7 @@ with ST DFU: * stlink Windows users need to install [libusb](https://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/) -for solo-python to work with Solo's DFU. +for solo1 to work with Solo's DFU. ## Programming a Solo that hasn't been programmed @@ -93,13 +93,13 @@ A Solo that hasn't been programmed will boot into DFU mode. You can program it by following a bootloader, or combined bootloader + application. ``` -solo program dfu +solo1 program dfu ``` Then boot the device. Make sure it has a bootloader to boot to. ``` -solo program aux leave-dfu +solo1 program aux leave-dfu ``` ## Disable signed firmware updates @@ -108,7 +108,7 @@ If you'd like to also permanently disable signed updates, plug in your programme ```bash # WARNING: No more signed updates. -solo program disable-bootloader +solo1 program disable-bootloader ``` You won't be able to update to any new releases. diff --git a/docs/solo-extras.md b/docs/solo-extras.md index 43ba33c..de1c3db 100644 --- a/docs/solo-extras.md +++ b/docs/solo-extras.md @@ -6,14 +6,14 @@ Solo contains a True Random Number Generator (TRNG). A TRNG is a hardware based that leverages natural phenomenon to generate random numbers, which can be better than a traditional RNG that has state and updates deterministically using cryptographic methods. -You can easily access the TRNG stream on Solo using our python tool [`solo-python`](https://github.com/solokeys/solo-python). +You can easily access the TRNG stream on Solo using our python tool [`solo1`](https://github.com/solokeys/solo1-cli). ``` -solo key rng raw > random.bin +solo1 key rng raw > random.bin ``` Or you can seed the state of the RNG on your kernel (`/dev/random`). ``` -solo key rng feedkernel +solo1 key rng feedkernel ``` diff --git a/docs/tutorial-getting-started.md b/docs/tutorial-getting-started.md index 4f5e601..5167dc8 100755 --- a/docs/tutorial-getting-started.md +++ b/docs/tutorial-getting-started.md @@ -16,8 +16,8 @@ There are two main tools you will need to work on your solo hacker: * ARM Compiler tool chain * Solo python tool -The ARM Compiler is used to compile your C-code to a hex file, which can then be deployed onto your solo hacker. The solo tool helps with deploying, updating etc. of the solo hacker. It is a python3 tool. So make sure, that you got Python3 installed on your system \([pip](https://pip.pypa.io/en/stable/) might also come in handy\). - +The ARM Compiler is used to compile your C-code to a hex file, which can then be deployed onto your solo hacker. The solo tool helps with deploying, updating etc. of the solo hacker. It is a python3 tool. So make sure, that you got Python3 installed on your system \([pip](https://pip.pypa.io/en/stable/) might also come in handy\). + Besides that, you will also need to get the [solo code](https://github.com/solokeys/solo). ### Get the code @@ -30,12 +30,12 @@ git clone --recurse-submodules https://github.com/solokeys/solo ### Getting the ARM Compiler tool chain -Download the Compiler tool chain for your system [here](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads). After you have downloaded it, you will have to unzip it and add the path to the installation folder. - -**Readme** -There is a readme.txt __ in _gcc-arm-none-eabi-x-yyyy-dd-major/share/doc/gcc-arm-none-eabi_. It contains installation guides for Linux, Windows and Mac. - -**Installation** +Download the Compiler tool chain for your system [here](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads). After you have downloaded it, you will have to unzip it and add the path to the installation folder. + +**Readme** +There is a readme.txt __ in _gcc-arm-none-eabi-x-yyyy-dd-major/share/doc/gcc-arm-none-eabi_. It contains installation guides for Linux, Windows and Mac. + +**Installation** As I used Mac, I will guide you through the installation using MacOS. If you have unpacked the folder already, you can skip the first step. ```bash @@ -61,10 +61,10 @@ compilation terminated. There are several ways, which are listed at the [build instructions](https://docs.solokeys.io/solo/building/). If you are familiar with pip, just use this. ```bash -pip install solo-python +pip install solo1 #Or -pip3 install solo-python +pip3 install solo1 ``` **Install all other requirements** @@ -128,13 +128,13 @@ make cbor You should also make sure to check, that your key has the newest solo firmware installed. To check the firmware on the device, use this command: ```bash -solo key version +solo1 key version ``` To update to the newest version, use this command: ```bash -solo key update +solo1 key update ``` **Note:** Sometimes the connection between Mac and key seemed to be broken and you might get an error stating: _No solo found_. Just unplug the key and plug it back in. @@ -172,7 +172,7 @@ This will generate a file _solo.hex_, which has the compiled code on it. If you #### Deploy code -To deploy the code make sure you are back at the source root. +To deploy the code make sure you are back at the source root. ```bash cd ../.. @@ -181,7 +181,7 @@ cd ../.. First we will have to change into bootload modus: ```bash -solo program aux enter-bootloader +solo1 program aux enter-bootloader ``` This is needed to be able to load the new firmware on the device. If we forget this step, the solo tool will do it for us in the next step. @@ -189,13 +189,13 @@ This is needed to be able to load the new firmware on the device. If we forget t This is the moment of truth. We delete the old firmware and deploy the new one with the changed LED lights to the solo key. For this step we will also stay in the source root. ```bash -solo program bootloader targets/stm32l432/solo.hex +solo1 program bootloader targets/stm32l432/solo.hex ``` -If there is another hex-File, that you want to load, you can just exchange the last argument. - -And that's it, now your LED should be red. - +If there is another hex-File, that you want to load, you can just exchange the last argument. + +And that's it, now your LED should be red. + To summarize, here are again the steps to update your solo: 1. Change code @@ -212,8 +212,8 @@ make build-hacker cd ../.. #Enter bootloader mode -solo program aux enter-bootloader +solo1 program aux enter-bootloader #Deploy code -solo program bootloader targets/stm32l432/solo.hex +solo1 program bootloader targets/stm32l432/solo.hex ``` diff --git a/tools/requirements.txt b/tools/requirements.txt index fcb532f..2428f86 100644 --- a/tools/requirements.txt +++ b/tools/requirements.txt @@ -1,6 +1,6 @@ ecdsa intelhex pyserial -solo-python pyusb +solo1 wheel