Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Spacing #602

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 34 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ This repo contains the Solo firmware, including implementations of FIDO2 and U2F

For development no hardware is needed, Solo also runs as a standalone application for Windows, Linux, and Mac OSX. If you like (or want to learn) hardware instead, you can run Solo on the NUCLEO-L432KC development board, or we make Solo for Hacker, an unlocked version of Solo that lets you customize its firmware.

<br />
<br />

# Security

Expand All @@ -23,6 +25,8 @@ Solo is based on the STM32L432 microcontroller. It offers the following security
- 256 KB of memory to support hardened crypto implementations and, later, additional features such as OpenPGP or SSH.
- No NDA needed to develop for.

<br />
<br />

# Solo for Hackers

Expand All @@ -41,6 +45,9 @@ In the Hacker version, hardware is the same but the firmware is unlocked, so you

Hacker Solo isn't really secure so you should only use it for development. An attacker with physical access to a Solo for Hacker can reflash it following the steps above, and even a malware on your computer could possibly reflash it.

<br />
<br />

## Checking out the code
```bash
git clone --recurse-submodules https://github.com/solokeys/solo
Expand All @@ -51,6 +58,9 @@ If you forgot the `--recurse-submodules` while cloning, simply run `git submodul

`make update` will also checkout the latest code on `master` and submodules.

<br />
<br />

## Checking out the code to build a specific version

You can checkout the code to build a specific version of the firmware with:
Expand All @@ -60,13 +70,18 @@ git fetch --tags
git checkout ${VERSION_TO_BUILD}
git submodule update --init --recursive
```
<br />
<br />

## 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.

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 <file>(.json|.hex)`.

<br />
<br />

## Installing the toolkit and compiling in Docker
Alternatively, you can use Docker to create a container with the toolchain.
You can run:
Expand All @@ -81,6 +96,9 @@ make docker-build-all

The `builds` folder will contain all the variation on the firmware in `.hex` files.

<br />
<br />

## Build locally

### Prereqs
Expand All @@ -106,6 +124,11 @@ source venv/bin/activate
solo program aux enter-bootloader
solo program bootloader targets/stm32l432/solo.hex
```
<br />
<br />
<br />
<br />
<br />

# Developing Solo (No Hardware Needed)

Expand All @@ -116,6 +139,7 @@ solo program bootloader targets/stm32l432/solo.hex
```
sudo apt install libsodium-dev
```
<br />

## Building

Expand Down Expand Up @@ -144,11 +168,15 @@ In another shell, you can run our [test suite](https://github.com/solokeys/fido2

You can find more details in our [documentation](https://docs.solokeys.dev/), including how to build on the the NUCLEO-L432KC development board.

<br />
<br />

# Documentation

Check out our [official documentation](https://docs.solokeys.dev/).

<br />
<br />

# Contributors ✨

Expand Down Expand Up @@ -204,6 +232,8 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d

<!-- ALL-CONTRIBUTORS-LIST:END -->

<br />
<br />

# License

Expand All @@ -223,12 +253,15 @@ You may use Solo documentation under the terms of the CC-BY-SA 4.0 license

[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsolokeys%2Fsolo.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsolokeys%2Fsolo?ref=badge_large)

<br />
<br />

# Where To Buy Solo

You can buy Solo, Solo Tap, and Solo for Hackers at [solokeys.com](https://solokeys.com).

<br/>
<hr/>
<br/>
<br/>

[![License](https://img.shields.io/github/license/solokeys/solo.svg)](https://github.com/solokeys/solo/blob/master/LICENSE)
Expand Down