Introduction

A NervesKey is a cryptographic hardware module that is configured to work with NervesHub. Its primary responsibility is to secure the private key used for authentication. It can also store useful information such as device serial numbers, board name, and important settings.

The following are options for adding a NervesKey to your device:

  1. If you're making a custom board, add a Microchip ATECC508A or ATECC608A to an available I2C bus

  2. Obtain a NervesKey and solder it to the GPIO connector on a Raspberry Pi

  3. Contact us for information about USB NervesKey

The NervesKey configuration of the ATECC508A/ATECC608A is documented in the nerves_key project's README.md. The cryptographic modules are quite capable devices. If the NervesKey configuration does not meet your needs, refer to the module datasheets and use the nerves_key configuration as a helpful example.

Except for a few cases, NervesKeys come unprogrammed. Some fields in the NervesKey can only be programmed once.