Introduction

What’s Gnuk?

Gnuk is an implementation of USB cryptographic token for GNU Privacy Guard. Gnuk supports OpenPGP card protocol version 2, and it runs on an MCU (currently STM32F103 and GD32F103 are supported) .

This document explains about Gnuk 2.2, which comes with ECC support.

Cryptographic token and feature of Gnuk

Cryptographic token is a store of private keys and it computes cryptographic functions on the device.

The idea is to separate important secrets to an independent device, from where nobody can extract them.

Development Environment

See Development Environment for development environment for Gnuk. Gnuk is developed on the environment where there are only Free Software.

Target boards for running Gnuk

Hardware requirement for Gnuk is the micro controller STM32F103 or GD32F103. In version 2.2, Gnuk supports following boards.

  • FST-01 (Flying Stone Tiny ZERO-ONE), FST-01G, and FST-01SZ

  • Olimex STM32-H103

  • ST Nucleo F103

Host prerequisites for using Gnuk Token

  • GNU Privacy Guard (GnuPG)

  • libusb

  • [Optional] SSH: openssh

  • [experimental] Web: scute, firefox

Usages

  • Sign with GnuPG

  • Decrypt with GnuPG

  • Use with OpenSSH through gpg-agent (as ssh-agent)

  • [experimental] Use with Firefox through Scute for X.509 client certificate authentication