# atecc508a v1.5.0 - Table of Contents

> Elixir interface for the ATECC508A

## Pages

- [ATECC508A](readme.md)

## Modules

- [ATECC508A](ATECC508A.md): The ATECC508A is an authentication device used for storing private keys
and other data securely.

- [ATECC508A.Certificate](ATECC508A.Certificate.md): Convert between X.509 certificates and ATECC508A compressed certificates
- [ATECC508A.Certificate.Compressed](ATECC508A.Certificate.Compressed.md): An ATECC508A compressed certificate and accompanying information needed to decompress it.
- [ATECC508A.Certificate.NervesKeyTemplate](ATECC508A.Certificate.NervesKeyTemplate.md): Certificate template for the ATECC508A from Microchip
- [ATECC508A.Certificate.TrustAndGoTemplate](ATECC508A.Certificate.TrustAndGoTemplate.md): Certificate template for pre-provisioned ATECC608B-TNGTLS from Microchip
(Also known as a Trust and Go provisioned chip)
- [ATECC508A.Configuration](ATECC508A.Configuration.md): This module handles operations on the configuration zone.

- [ATECC508A.DataZone](ATECC508A.DataZone.md): This module handles operations on the data zone.

- [ATECC508A.Host](ATECC508A.Host.md): Implementations of useful operations for the host CPU to perform.
- [ATECC508A.Info](ATECC508A.Info.md): This struct contains all of the data stored on the device. Depending on how the device has been provisioned (or not),
some fields may be nil.

- [ATECC508A.OTPZone](ATECC508A.OTPZone.md): This module handles operations on the OTP zone.

- [ATECC508A.ProvisioningInfo](ATECC508A.ProvisioningInfo.md): This struct contains all of the data needed to provision a device.

- [ATECC508A.Request](ATECC508A.Request.md): This module knows how to send requests to the ATECC508A.

- [ATECC508A.SerialNumber](ATECC508A.SerialNumber.md): Compute X.509 certificate serial numbers

- [ATECC508A.Transport](ATECC508A.Transport.md): ATECC508A transport behaviour

- [ATECC508A.Transport.Cache](ATECC508A.Transport.Cache.md): Simple cache for reducing unnecessary traffic to the ATECC508A

- [ATECC508A.Transport.I2C](ATECC508A.Transport.I2C.md): Implementation for communicating with ATECC508A parts connected over I2C

- [ATECC508A.Util](ATECC508A.Util.md): Various utility functions

- [ATECC508A.Validity](ATECC508A.Validity.md): Handle the ATECC508's encoded dates

