CryptoAuthLib
Microchip CryptoAuthentication Library
File List
Here is a list of all files with brief descriptions:
 atca_basic.cCryptoAuthLib Basic API methods. These methods provide a simpler way to access the core crypto methods
 atca_basic.hCryptoAuthLib Basic API methods - a simple crypto authentication API. These methods manage a global ATCADevice object behind the scenes. They also manage the wake/idle state transitions so callers don't need to
 atca_basic_aes.cCryptoAuthLib Basic API methods for AES command
 atca_basic_aes_cbc.cCryptoAuthLib Basic API methods for AES CBC mode
 atca_basic_aes_cmac.cCryptoAuthLib Basic API methods for AES CBC_MAC mode
 atca_basic_aes_ctr.cCryptoAuthLib Basic API methods for AES CTR mode
 atca_basic_aes_gcm.cCryptoAuthLib Basic API methods for AES GCM mode
 atca_basic_aes_gcm.hUnity tests for the cryptoauthlib AES GCM functions
 atca_basic_checkmac.cCryptoAuthLib Basic API methods for CheckMAC command
 atca_basic_counter.cCryptoAuthLib Basic API methods for Counter command
 atca_basic_derivekey.cCryptoAuthLib Basic API methods for DeriveKey command
 atca_basic_ecdh.cCryptoAuthLib Basic API methods for ECDH command
 atca_basic_gendig.cCryptoAuthLib Basic API methods for GenDig command
 atca_basic_genkey.cCryptoAuthLib Basic API methods for GenKey command
 atca_basic_hmac.cCryptoAuthLib Basic API methods for HMAC command
 atca_basic_info.cCryptoAuthLib Basic API methods for Info command
 atca_basic_kdf.cCryptoAuthLib Basic API methods for KDF command
 atca_basic_lock.cCryptoAuthLib Basic API methods for Lock command
 atca_basic_mac.cCryptoAuthLib Basic API methods for MAC command
 atca_basic_nonce.cCryptoAuthLib Basic API methods for Nonce command
 atca_basic_privwrite.cCryptoAuthLib Basic API methods for PrivWrite command
 atca_basic_random.cCryptoAuthLib Basic API methods for Random command
 atca_basic_read.cCryptoAuthLib Basic API methods for Read command
 atca_basic_secureboot.cCryptoAuthLib Basic API methods for SecureBoot command
 atca_basic_selftest.cCryptoAuthLib Basic API methods for SelfTest command
 atca_basic_sha.cCryptoAuthLib Basic API methods for SHA command
 atca_basic_sign.cCryptoAuthLib Basic API methods for Sign command
 atca_basic_updateextra.cCryptoAuthLib Basic API methods for UpdateExtra command
 atca_basic_verify.cCryptoAuthLib Basic API methods for Verify command
 atca_basic_write.cCryptoAuthLib Basic API methods for Write command
 atca_bool.hBool define for systems that don't have it
 atca_cfgs.cSet of default configurations for various ATCA devices and interfaces
 atca_cfgs.hSet of default configurations for various ATCA devices and interfaces
 atca_command.cMicrochip CryptoAuthentication device command builder - this is the main object that builds the command byte strings for the given device. It does not execute the command. The basic flow is to call a command method to build the command you want given the parameters and then send that byte string through the device interface
 atca_command.hMicrochip Crypto Auth device command object - this is a command builder only, it does not send the command. The result of a command method is a fully formed packet, ready to send to the ATCAIFace object to dispatch
 atca_compiler.hCryptoAuthLiub is meant to be portable across architectures, even non-Microchip architectures and compiler environments. This file is for isolating compiler specific macros
 atca_crypto_sw.hCommon defines for CryptoAuthLib software crypto wrappers
 atca_crypto_sw_ecdsa.cAPI wrapper for software ECDSA verify. Currently unimplemented but could be implemented via a 3rd party library such as MicroECC
 atca_crypto_sw_ecdsa.h
 atca_crypto_sw_rand.cAPI wrapper for software random
 atca_crypto_sw_rand.h
 atca_crypto_sw_sha1.cWrapper API for SHA 1 routines
 atca_crypto_sw_sha1.hWrapper API for SHA 1 routines
 atca_crypto_sw_sha2.cWrapper API for software SHA 256 routines
 atca_crypto_sw_sha2.hWrapper API for software SHA 256 routines
 atca_device.cMicrochip CryptoAuth device object
 atca_device.hMicrochip Crypto Auth device object
 atca_devtypes.hMicrochip Crypto Auth
 atca_execution.cImplements an execution handler that executes a given command on a device and returns the results
 atca_execution.hDefines an execution handler that executes a given command on a device and returns the results
 atca_hal.cLow-level HAL - methods used to setup indirection to physical layer interface. this level does the dirty work of abstracting the higher level ATCAIFace methods from the low-level physical interfaces. Its main goal is to keep low-level details from bleeding into the logical interface implemetation
 atca_hal.hLow-level HAL - methods used to setup indirection to physical layer interface
 atca_helpers.cHelpers to support the CryptoAuthLib Basic API methods
 atca_helpers.hHelpers to support the CryptoAuthLib Basic API methods
 atca_host.cHost side methods to support CryptoAuth computations
 atca_host.hDefinitions and Prototypes for ATCA Utility Functions
 atca_iface.cMicrochip CryptoAuthLib hardware interface object
 atca_iface.hMicrochip Crypto Auth hardware interface object
 atca_jwt.cUtilities to create and verify a JSON Web Token (JWT)
 atca_jwt.hUtilities to create and verify a JSON Web Token (JWT)
 atca_mbedtls_ecdh.c
 atca_mbedtls_ecdsa.c
 atca_mbedtls_wrap.cWrapper functions to replace cryptoauthlib software crypto functions with the mbedTLS equivalent
 atca_mbedtls_wrap.h
 atca_start_config.h
 atca_start_iface.h
 atca_status.hMicrochip Crypto Auth status codes
 atcacert.hDeclarations common to all atcacert code
 atcacert_client.cClient side cert i/o methods. These declarations deal with the client-side, the node being authenticated, of the authentication process. It is assumed the client has an ECC CryptoAuthentication device (e.g. ATECC508A) and the certificates are stored on that device
 atcacert_client.hClient side cert i/o methods. These declarations deal with the client-side, the node being authenticated, of the authentication process. It is assumed the client has an ECC CryptoAuthentication device (e.g. ATECC508A) and the certificates are stored on that device
 atcacert_date.cDate handling with regard to certificates
 atcacert_date.hDeclarations for date handling with regard to certificates
 atcacert_def.cMain certificate definition implementation
 atcacert_def.hDeclarations for certificates related to ECC CryptoAuthentication devices. These are the definitions required to define a certificate and its various elements with regards to the CryptoAuthentication ECC devices
 atcacert_der.cFunctions required to work with DER encoded data related to X.509 certificates
 atcacert_der.hFunction declarations required to work with DER encoded data related to X.509 certificates
 atcacert_host_hw.cHost side methods using CryptoAuth hardware
 atcacert_host_hw.hHost side methods using CryptoAuth hardware
 atcacert_host_sw.cHost side methods using software implementations
 atcacert_host_sw.hHost side methods using software implementations. host-side, the one authenticating a client, of the authentication process. Crypto functions are performed using a software library
 atcacert_pem.c
 atcacert_pem.hFunctions for converting between DER and PEM formats
 cryptoauthlib.hSingle aggregation point for all CryptoAuthLib header files
 hal_all_platforms_kit_hidapi.cHAL for kit protocol over HID for any platform
 hal_all_platforms_kit_hidapi.hHAL for kit protocol over HID for any platform
 hal_at90usb1287_i2c_asf.cATCA Hardware abstraction layer for AT90USB1287 I2C over ASF drivers
 hal_at90usb1287_i2c_asf.hATCA Hardware abstraction layer for AT90USB1287 I2C over ASF drivers
 hal_at90usb1287_timer_asf.cATCA Hardware abstraction layer for AT90USB1287 timer/delay over ASF drivers
 hal_esp32_i2c.c
 hal_esp32_timer.c
 hal_freertos.cFreeRTOS Hardware/OS Abstration Layer
 hal_i2c_bitbang.cATCA Hardware abstraction layer for I2C bit banging
 hal_i2c_bitbang.hATCA Hardware abstraction layer for I2C bit banging
 hal_i2c_start.cATCA Hardware abstraction layer for SAMD21 I2C over START drivers
 hal_i2c_start.hATCA Hardware abstraction layer for SAMD21 I2C over START drivers
 hal_linux_i2c_userspace.cATCA Hardware abstraction layer for Linux using I2C
 hal_linux_i2c_userspace.hATCA Hardware abstraction layer for Linux using I2C
 hal_linux_kit_cdc.cATCA Hardware abstraction layer for Linux using kit protocol over a USB CDC device
 hal_linux_kit_cdc.hATCA Hardware abstraction layer for Linux using kit protocol over a USB CDC device
 hal_linux_kit_hid.cATCA Hardware abstraction layer for Linux using kit protocol over a USB HID device
 hal_linux_kit_hid.hATCA Hardware abstraction layer for Linux using kit protocol over a USB HID device
 hal_linux_timer.cTimer Utility Functions for Linux
 hal_pic32mx695f512h_i2c.cATCA Hardware abstraction layer for PIC32MX695F512H I2C over plib drivers
 hal_pic32mx695f512h_i2c.hATCA Hardware abstraction layer for PIC32MX695F512H I2C over xxx drivers
 hal_pic32mx695f512h_timer.cATCA Hardware abstraction layer for PIC32MX695F512H timer/delay routine
 hal_pic32mz2048efm_i2c.cATCA Hardware abstraction layer for PIC32MZ2048
 hal_pic32mz2048efm_i2c.hATCA Hardware abstraction layer for PIC32MZ2048
 hal_pic32mz2048efm_timer.cATCA Hardware abstraction layer for PIC32MZ2048
 hal_sam4s_i2c_asf.cATCA Hardware abstraction layer for SAM4S I2C over ASF drivers
 hal_sam4s_i2c_asf.hATCA Hardware abstraction layer for SAM4S I2C over ASF drivers
 hal_sam4s_timer_asf.cATCA Hardware abstraction layer for SAM4S I2C over ASF drivers
 hal_samb11_i2c_asf.cATCA Hardware abstraction layer for SAMB11 I2C over ASF drivers
 hal_samb11_i2c_asf.hATCA Hardware abstraction layer for SAMB11 I2C over ASF drivers
 hal_samb11_timer_asf.cATCA Hardware abstraction layer for SAMB11 timer/delay over ASF drivers
 hal_samd21_i2c_asf.cATCA Hardware abstraction layer for SAMD21 I2C over ASF drivers
 hal_samd21_i2c_asf.hATCA Hardware abstraction layer for SAMD21 I2C over ASF drivers
 hal_samd21_timer_asf.cATCA Hardware abstraction layer for SAMD21 timer/delay over ASF drivers
 hal_samg55_i2c_asf.cATCA Hardware abstraction layer for SAMG55 I2C over ASF drivers
 hal_samg55_i2c_asf.hATCA Hardware abstraction layer for SAMG55 I2C over ASF drivers
 hal_samg55_timer_asf.cPrerequisite: add "Delay routines (service)" module to application in Atmel Studio
 hal_samv71_i2c_asf.cATCA Hardware abstraction layer for SAMV71 I2C over ASF drivers
 hal_samv71_i2c_asf.hATCA Hardware abstraction layer for SAMV71 I2C over ASF drivers
 hal_samv71_timer_asf.cATCA Hardware abstraction layer for SAMD21 timer/delay over ASF drivers
 hal_swi_bitbang.cATCA Hardware abstraction layer for SWI bit banging
 hal_swi_bitbang.hATCA Hardware abstraction layer for SWI bit banging
 hal_swi_uart.cATCA Hardware abstraction layer for SWI over UART drivers
 hal_swi_uart.hATCA Hardware abstraction layer for SWI over UART drivers
 hal_timer_start.cATCA Hardware abstraction layer for SAMD21 I2C over START drivers
 hal_win_kit_cdc.cATCA Hardware abstraction layer for Windows using kit protocol over a USB CDC device
 hal_win_kit_cdc.hATCA Hardware abstraction layer for Windows using kit protocol over a USB CDC device
 hal_win_kit_hid.cATCA Hardware abstraction layer for Windows using kit protocol over a USB HID device
 hal_win_kit_hid.hATCA Hardware abstraction layer for Windows using kit protocol over a USB HID device
 hal_win_timer.cATCA Hardware abstraction layer for windows timer functions
 hal_xmega_a3bu_i2c_asf.cATCA Hardware abstraction layer for XMEGA-A3BU I2C over ASF drivers
 hal_xmega_a3bu_i2c_asf.hATCA Hardware abstraction layer for XMEGA-A3BU I2C over ASF drivers
 hal_xmega_a3bu_timer_asf.cATCA Hardware abstraction layer for SAMD21 timer/delay over ASF drivers
 i2c_bitbang_samd21.cHardware Interface Functions - I2C bit-bang for SAMD21
 i2c_bitbang_samd21.hDefinitions for bit-banged I2C
 io_protection_key.hProvides required interface to access IO protection key
 kit_phy.hATCA Hardware abstraction layer physical send & receive function definitions
 kit_protocol.cMicrochip Crypto Auth hardware interface object
 kit_protocol.h
 secure_boot.cProvides required APIs to manage secure boot under various scenarios
 secure_boot.hProvides required APIs to manage secure boot under various scenarios
 secure_boot_memory.hProvides interface to memory component for the secure boot
 sha1_routines.cSoftware implementation of the SHA1 algorithm
 sha1_routines.hSoftware implementation of the SHA1 algorithm
 sha2_routines.cSoftware implementation of the SHA256 algorithm
 sha2_routines.hSoftware implementation of the SHA256 algorithm
 swi_bitbang_samd21.cHardware Interface Functions - SWI bit-banged
 swi_bitbang_samd21.hHardware Interface Functions - SWI bit-banged
 swi_uart_at90usb1287_asf.cATXMEGA's ATCA Hardware abstraction layer for SWI interface over AT90USB1287 UART drivers
 swi_uart_at90usb1287_asf.hATMEGA's ATCA Hardware abstraction layer for SWI interface over AT90USB1287 UART drivers
 swi_uart_samd21_asf.cATXMEGA's ATCA Hardware abstraction layer for SWI interface over UART drivers
 swi_uart_samd21_asf.hATXMEGA's ATCA Hardware abstraction layer for SWI interface over UART drivers
 swi_uart_start.c
 swi_uart_start.h
 swi_uart_xmega_a3bu_asf.cATXMEGA's ATCA Hardware abstraction layer for SWI interface over XMEGA UART drivers
 swi_uart_xmega_a3bu_asf.hATXMEGA's ATCA Hardware abstraction layer for SWI interface over XMEGA UART drivers
 symmetric_authentication.cContains API for performing the symmetric Authentication between the Host and the device
 symmetric_authentication.hContains API for performing the symmetric Authentication between the Host and the device