Building the client from source

The overall process is to get the source code, install the required tools and libraries to compile the code, and then run qmake and make.


There is a script to install the software required for building the software and another script that contains the commands to compile. Both of these are currently tested on Debian by our CI/CD environment, and these are what create the official Linux releases.


To install Signet's build dependencies first install Brew

  1. Install the libraries (brew install qt5 libgcrypt libgpg-error zlib)
  2. Compile the client (/usr/local/opt/qt5/bin/qmake client/; make)
  3. (optional) Copy the .app file to the desktop (cp -r ~/Desktop)


First install MSYS2. MSYS2 will provide a build environment and a package manager to download Signet's dependencies. Once MSYS2 is installed...

  1. launch the MSYS2/MinGW-64 shell and install the libraries
  2. Now you can build

This will build Signet.exe in the release subdirectory. This executable should be self contained and you can copy it anywhere and run it.

Read directly from a backup file

If your Signet is lost or not easily accessible, it is possible to read directly from a backup file to access your data. While reading from a backup the Signet user interface functions very similarly to when a device is connected. The main differences are that there is no ability to type your data and the data is read only.

  1. Start the Signet client and click "File -> Open"
  2. Locate the Signet backup file you want to read. It will have the extension "sdb" which is short for "Signet DataBase". For automated backups the default location is in a subdirectory of your documents folder called "SignetBackups". If the file is opened successfuly you will see a message on the top of the main window indicating which file is open.
  3. To access your data you must unlock the database your your master password as you would if a device was connected. While reading from the database file the client will ignore the presence of a Signet device. When you are done accessing your data you can click "File->Close" and the client will return to it's default device oriented mode.

Recovering from a failed firmware update

When updating Signet's firmware if Signet's connection to the host computer is interrupted the Signet will stop functioning. At this time the only way to recover from a partial firmware update is to load the firmware by switching the Signet into bootloader mode which requires chaning a DIP switch position on the Signet circuit board. The recovery steps are as follows:

  1. Download the latest DFU firmware binary from the firmware DFU directory
  2. Get "dfu-util"
    • On GNU/Linux you can get it from your distribution's package manager.
    • On MacOS it can be installed by brew with the command: brew install dfu-util
    • On Windows you can download and unzip the latest release archive
    • For additional help check the dfu-util homepage
  3. Remove the film covering the Signet board's DIP switch (if present)
  4. With a toothpick or other small tool change move the DIP switch position toward the silkscreen label "bootsw"
  5. Reconnect the device. One of the device's LED's should be on.
  6. On Windows only:
    1. Download and run ZiDag
    2. Click "Options -> List all devices"
    3. Select "STM32 Bootloader" from the main pulldown menu
    4. Click the "Install driver button"
  7. Install firmware by running the following command, replacing "<firmware version>" with the DFU firmware version you downloaded. Due to a timing issue the command will fail some of the time. Try multiple times if necessary until the no errors are reported.
    • On MacOS and GNU/Linux: sudo dfu-util -a 0 -s 0x8000000 -D signet-<firmware version>.dfu
    • On Windows: dfu-util -a 0 -s 0x8000000 -D signet-<firmware version>.dfu
  8. Disconnect the device and move the DIP switch position back to the middle position.

Unlocking a computer with Signet

When you need to unlock or login to a PC the Signet client is not available yet. The Signet firmware contains a feature however that allows it to type passwords before the client is run. Each password that can be accessed in this way is stored in a so called “password slot”. You should be aware the using this feature will allow anyone who get access to your Signet to discover these passwords. Despite this risk using password slots can still be a safer choice than using short or easily guessable passwords to systems.

Storing passwords in password slots

One you have unlocked your Signet go to the "Device -> Password slots" menu. A dialog will open that will show the password slots and allow you to edit them. The name for each slot is only for reference when editing and you will need to remember the slot numbers for each password to use the feature.

Typing a password in a password slot

  1. Ensure that the password slots feature is active. The password slots feature is active any time when the client is not running which will should be the case when unlocking a PC.
  2. Press the Signet device button repeatedly to change the password slot selection. Your Signet will output a response character for each press to indicate which slot is selected. You can tell which slot is selected by observing how many response characters have been typed.
  3. Type the password from the selected slot by long pressing the device button.

Note, to type the password correctly your signet will first erase the selection feedback characters by generating backspace characters. If you don't perform a long press after an idle time of several seconds the selection feedback characters will automatically be erased allowing you to attempt a selection again.

Updating your Signet's firmware

Some Signet client features depend on the latest firmware and occasionaly new firmware releases fix device bugs. To update signet firmware you will need to download the latest firmware file and use the client to upload the new firmware.

  1. Download the latest firmare binary here. Download the highest numbered file with the extension ".sfw". You can also download the corresponding ".sfw.sig" file to verify the firmare's GPG signature. See the downloads page for more information on the GPG signature files.
  2. Open the Signet client and unlock the device
  3. Select the menu option "Device->Backup to file" and save your encrypted password database to a file.
  4. Select the menu option "Device->Update Firmware" and select the firmware file you downloaded
  5. Carefully long press the Signet device button to start the firmware update. If the device is inadvertantly disconnected during the update you will need to perform a manual firmware update.
  6. Once the firmware update completes you device should restart with the new firmware enabled. You can verify the firmware update by clicking on "Help->About"

Using Signet's browser plugins

  1. Install the Signet browser plugin for your browser:
    • Firefox
    • Chrome
  2. Once you have installed the browser plugin a small Signet icon should appear on your browser that will change its appearance depending on which actions are available:
    • The icon is gray if the Signet client is not running or your Signet is locked.
    • The icon is black if the Signet client is running and your Signet is unlocked, but there is no action available other than to foregrownd the client.
    • The icon is black with a yellow dot if the plugin associates the website with stored information, but cannot find a login form on the current page. You can then click on the icon to select a specific account in the client. This action will foreground the client to the specified account, and then use the Signet client as you would normally.
    • The icon is black with a green dot if the plugin recognizes the website and can autofill a username and password for one or more accounts. Each account is listed in two different sections in the menu. A click in the "Show in client" section will select the account in the client. A click in the "Login" section will request login and password data from the client to fill in the login form in order to log you into the website. When requesting a login you will need to press the device button before the plugin will log you in.