View Source NervesKey.Data (nerves_key v1.2.0)
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
@spec clear_aux_certs(ATECC508A.Transport.t()) :: :ok
Clear out the auxillary slots
@spec device_cert_slot(NervesKey.certificate_pair()) :: ATECC508A.Request.slot()
Return the slot that stores the compressed device certificate.
@spec 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.
@spec genkey_raw(ATECC508A.Transport.t(), boolean()) :: {:ok, ATECC508A.ecc_public_key()} | {:error, atom()}
Run the genkey operation on the NervesKey private key slot
@spec lock(ATECC508A.Transport.t(), binary(), [{ATECC508A.Request.slot(), binary()}]) :: :ok | {:error, atom()}
@spec signer_cert_slot(NervesKey.certificate_pair()) :: ATECC508A.Request.slot()
Return the slot that stores the compressed signer certificate.
@spec signer_pubkey_slot(NervesKey.certificate_pair()) :: ATECC508A.Request.slot()
Return the slot that stores the signer's public key.
@spec slot_data(ATECC508A.serial_number(), X509.Certificate.t(), X509.Certificate.t()) :: [ {ATECC508A.Request.slot(), binary()} ]
Determine what's in all of the data slots
@spec write_aux_certs( ATECC508A.Transport.t(), ATECC508A.serial_number(), X509.Certificate.t(), X509.Certificate.t() ) :: :ok
Write new device and signer certificates to the auxillary slots
@spec write_slots(ATECC508A.Transport.t(), [{ATECC508A.Request.slot(), binary()}]) :: :ok
Write all of the slots