NervesKey.Data (nerves_key v0.5.5) View Source

This module handles Data Zone data stored in the NervesKey.

Link to this section Summary

Functions

Clear out the auxillary slots

Return the slot that stores the compressed device certificate.

Create a public/private key pair

Run the genkey operation on the NervesKey private key slot

Return the slot that stores the compressed signer certificate.

Return the slot that stores the signer's public key.

Determine what's in all of the data slots

Write new device and signer certificates to the auxillary slots

Write all of the slots

Link to this section Functions

Link to this function

clear_aux_certs(transport)

View Source

Specs

clear_aux_certs(ATECC508A.Transport.t()) :: :ok

Clear out the auxillary slots

Specs

Return the slot that stores the compressed device certificate.

Link to this function

genkey(transport, create? \\ true)

View Source

Specs

genkey(ATECC508A.Transport.t(), boolean()) ::
  {:ok, X509.PublicKey.t()} | {:error, atom()}

Create a public/private key pair

The public key is returned on success. This can only be called on devices that have their configuration locked, but not their data.

Link to this function

genkey_raw(transport, create?)

View Source

Specs

genkey_raw(ATECC508A.Transport.t(), boolean()) ::
  {:ok, ATECC508A.ecc_public_key()} | {:error, atom()}

Run the genkey operation on the NervesKey private key slot

Link to this function

lock(transport, otp_data, slot_data)

View Source

Specs

lock(ATECC508A.Transport.t(), binary(), [{ATECC508A.Request.slot(), binary()}]) ::
  :ok | {:error, atom()}

Specs

Return the slot that stores the compressed signer certificate.

Link to this function

signer_pubkey_slot(atom)

View Source

Specs

Return the slot that stores the signer's public key.

Link to this function

slot_data(device_sn, device_cert, signer_cert)

View Source

Specs

Determine what's in all of the data slots

Link to this function

write_aux_certs(transport, device_sn, device_cert, signer_cert)

View Source

Specs

Write new device and signer certificates to the auxillary slots

Link to this function

write_slots(transport, slot_data)

View Source

Specs

write_slots(ATECC508A.Transport.t(), [{ATECC508A.Request.slot(), binary()}]) ::
  :ok

Write all of the slots