CryptoAuthLib - Microchip CryptoAuthentication Library
====================================================
Introduction
------------------------
This code base implements an object-oriented C library which supports
Microchip CryptoAuth devices. The family of devices supported currently are:
- [ATSHA204A](http://www.microchip.com/ATSHA204A)
- [ATECC108A](http://www.microchip.com/ATECC108A)
- [ATECC508A](http://www.microchip.com/ATECC508A)
- [ATECC608A](http://www.microchip.com/ATECC608A)
Online documentation is at https://microchiptech.github.io/cryptoauthlib/
Latest software and examples can be found at:
- http://www.microchip.com/SWLibraryWeb/product.aspx?product=CryptoAuthLib
- https://github.com/MicrochipTech/cryptoauthtools
Prerequisite skills:
- strong C programming and code reading
- Atmel Studio familiarity
- Knowledge of flashing microcontrollers with new code
- Familiarity with Microchip CryptoAuth device functionality
Prerequisite hardware to run CryptoAuthLib examples:
- [ATSAMR21 Xplained Pro]( http://www.microchip.com/atsamr21-xpro )
or [ATSAMD21 Xplained Pro]( http://www.microchip.com/ATSAMD21-XPRO )
- [CryptoAuth Xplained Pro Extension](http://www.microchip.com/developmenttools/productdetails.aspx?partno=atcryptoauth-xpro-b )
or [CryptoAuthentication SOIC Socket Board](http://www.microchip.com/developmenttools/productdetails.aspx?partno=at88ckscktsoic-xpro )
to accept SOIC parts
For most development, using socketed top-boards is preferable until your
configuration is well tested, then you can commit it to a CryptoAuth Xplained
Pro Extension, for example. Keep in mind that once you lock a device, it will
not be changeable.
There are two major compiler defines that affect the operation of the library.
- ATCA_NO_POLL can be used to revert to a non-polling mechanism for device
responses. Normally responses are polled for after sending a command,
giving quicker response times. However, if ATCA_NO_POLL is defined, then
the library will simply delay the max execution time of a command before
reading the response.
- ATCA_NO_HEAP can be used to remove the use of malloc/free from the main
library. This can be helpful for smaller MCUs that don't have a heap
implemented. If just using the basic API, then there shouldn't be any code
changes required. The lower-level API will no longer use the new/delete
functions and the init/release functions should be used directly.
Examples
-----------
- Watch [CryptoAuthLib Documents](http://www.microchip.com/design-centers/security-ics/cryptoauthentication/overview )
for new examples coming online.
- Node Authentication Example Using Asymmetric PKI is a complete, all-in-one
example demonstrating all the stages of crypto authentication starting from
provisioning the Crypto Authentication device ATECC608A/ATECC508A with keys
and certificates to demonstrating an authentication sequence using
asymmetric techniques.
http://www.microchip.com/SWLibraryWeb/product.aspx?product=CryptoAuthLib
Release notes
-----------
11/22/2019
- Patches for CVE-2019-16128 & CVE-2019-16129: Ensure reported packet length
is valid for the packet being processed.
- Improvement to encrypted read operations to allow supply of a host nonce
(prevent replay of a read sequence to the host). Default API is changed
but can be reverted by setting the option ATCA_USE_CONSTANT_HOST_NONCE
- Added Azure compatible TNGTLS and TNGLORA certificates. Use the TNG client
API to retrieve the proper certificate based on the device.
- Misc Python updates (updated APIs for encrypted reads to match the C-API change)
atcacert_cert_element_t now initializes properly
08/30/2019
- Added big-endian architecture support
- Fixes to atcah_gen_dig() and atcah_nonce()
05/17/2019
- Added support for TNG devices (cert transforms, new API)
- atcab_write_pub_key() now works when the data zone is unlocked
03/04/2019
- mbed TLS wrapper added
- Minor bug fixes
01/25/2019
- Python JWT support
- Python configuration structures added
- Restructure of secure boot app
01/04/2019
- Added GCM functions
- Split AES modes into separate files
- Bug fix in SWI START driver
10/25/2018
- Added basic certificate functions to the python wrapper.
- Added Espressif ESP32 I2C driver.
- Made generic Atmel START drivers to support most MCUs in START.
- Added AES-CTR mode functions.
- Python wrapper functions now return single values with AtcaReference.
- Added mutex support to HAL and better support for freeRTOS.
08/17/2018
- Better support for multiple kit protocol devices
07/25/2018
- Clean up python wrapper
07/18/2018
- Added ATCA_NO_HEAP define to remove use of malloc/free.
- Moved PEM functions to their own file in atcacert.
- Added wake retry to accomodate power on self test delay.
- Added ca_cert_def member to atcacert_def_s so cert chains can be traversed
as a linked list.
03/29/2018
- Added support for response polling by default, which will make commands
return faster (define ATCA_NO_POLL to use old delay method).
- Removed atcatls related files as they were of limited value.
- Test framework generates a prompt before locking test configuration.
- Test framework puts device to sleep between tests.
- Fixed mode parameter issue in atcah_gen_key_msg().
- ATECC608A health test error code added.
01/15/2018
- Added AES-128 CBC implementation using AES command
- Added AES-128 CMAC implementation using AES command
11/22/2017
- Added support for FLEXCOM6 on SAMG55 driver
11/17/2017
- Added library support for the ATECC608A device
- Added support for Counter command
- atca_basic functions and tests now split into multiple files based on
command
- Added support for multiple base64 encoding rules
- Added support for JSON Web Tokens (jwt)
- Fixed atcab_write_enc() function to encrypt the data even when the device
is unlocked
- Fixed atcab_base64encode_() for the extra newline
- Updated atcab_ecdh_enc() to work more consistently
07/01/2017
- Removed assumption of SN[0:1]=0123, SN[8]=EE. SN now needs to be passed in
for functions in atca_host and atca_basic functions will now read the
config zone for the SN if needed.
- Renamed atcab_gendig_host() to atcab_gendig() since it's not a host
function. Removed original atcab_gendig(), which had limited scope.
- Fixed atcah_hmac() for host side HMAC calculations. Added atcab_hmac().
- Removed unnecessary ATCADeviceType parameters from some atca_basic
functions.
- Added atcacert_create_csr() to create a signed CSR.
- New HAL implementation for Kit protocol over HID on Linux. Please see the
Incorporating CryptoAuthLib in a Linux project using USB HID devices
section in this file for more information.
- Added atcacert_write_cert() for writing certificates to the device.
- Added support for dynamic length certificate serial numbers in atcacert.
- Added atcab_write() for lower level write commands.
- Fixed atcah_write_auth_mac(), which had wrong OpCode.
- Added atcab_verify() command for lower level verify commands.
- Added atcab_verify_stored() for verifying data with a stored public key.
- Removed atcab_write_bytes_slot(). Use atcab_write_bytes_zone() instead.
- Modified atcab_write_bytes_zone() and atcab_read_bytes_zone() to specify a
slot
- Added atcab_verify_validate() and atcab_verify_invalidate()
- Improvements to host functions to handle more cases.
- Added atcab_updateextra(), atcab_derive_key()
- Added support for more certificate formats.
- Added general purpose hardware SHA256 functions. See atcab_hw_sha2_256().
- Removed device specific config read/write. Generic now handles both.
- Removed unnecessary response parameter from lock commands.
- Enhanced and added unit tests.
- Encrypted read and write functions now handle keys with S
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
开源软硬件系统wumei-iot,可用于二次开发和学习,快速搭建自己的物联网/智能家居系统,包括前台,后台,移动端,硬件端 wumei-iot是一套开源的软硬件系统,可用于二次开发和学习,快速搭建自己的智能家居系统。 硬件工程师可以把自己的设备集成到系统;软件工程师可以使用项目中的设备熟悉软硬件交互。 服务端使用spring boot、数据库mysql和redis、前端vue、移动端android、硬件端ESP-IDF和Arduino等。软硬件交互基于Mqtt协议,使用EMQ代理服务器。 硬件端提供接入文档,需要设备支持网络功能,项目里面包含ESP-IDF和Arduino的硬件代码和接入示例。同时制作了智能开关(wifi通断器)板子,可用于学习和生活中,控制2500W以下的用电设备。硬件完整示例代码采用ESP-IDF框架4.2版本,基于乐鑫ESP32S2芯片,安信可ESP-12K模组。 手机、电脑远程控制 遥控配对、清码和控制 空气温湿度监控 雷达感应和报警 220V和5V电压供电,阻性负载2500W,感性负载250W
资源推荐
资源详情
资源评论
收起资源包目录
开源软硬件系统wumei-iot,可用于二次开发和学习,快速搭建自己的物联网/智能家居系统,包括前台,后台,移动端,硬件端 (2000个子文件)
atcacert_def.c 57KB
atca_host.c 50KB
gattc_gatts_coex.c 48KB
gattc_multi_connect.c 45KB
hid_device_le_prf.c 42KB
ble_mesh_register_cmd.c 40KB
tjpgd.c 35KB
esp_eth_mac_enc28j60.c 34KB
main.c 34KB
gatts_demo.c 32KB
main.c 32KB
atcacert_date.c 32KB
ble_ancs_demo.c 31KB
main.c 31KB
main.c 31KB
ble_compatibility_test.c 30KB
example_ble_server_throughput.c 29KB
ble_spp_server_demo.c 27KB
esp_hid_gap.c 27KB
esp_hid_gap.c 27KB
example_ble_sec_gattc_demo.c 26KB
nmea_parser.c 26KB
spp_client_demo.c 26KB
main.c 26KB
example_ble_client_throughput.c 25KB
esp_http_client_example.c 25KB
atca_helpers.c 25KB
gatts_table_creat_demo.c 24KB
main.c 24KB
example_ble_sec_gatts_demo.c 24KB
ble_mesh_fast_prov_server_model.c 23KB
main.c 23KB
main.c 23KB
atca_basic_read.c 23KB
main.c 22KB
gattc_demo.c 22KB
atca_command.c 22KB
ble_mesh_reg_cfg_client_cmd.c 21KB
hal_win_kit_cdc.c 20KB
atca_basic_aes_gcm.c 20KB
esp_modem.c 19KB
atca_basic_verify.c 19KB
atca_basic_write.c 19KB
file_server.c 18KB
peer.c 18KB
mesh_main.c 18KB
hal_sam4s_i2c_asf.c 18KB
main.c 18KB
hal_samd21_i2c_asf.c 18KB
atca_basic_sha.c 18KB
hal_samg55_i2c_asf.c 18KB
hal_samv71_i2c_asf.c 18KB
hal_xmega_a3bu_i2c_asf.c 18KB
ble_mesh_fast_prov_operation.c 18KB
mcpwm_bldc_control_hall_sensor_example.c 17KB
hal_i2c_start.c 17KB
udp_multicast_example_main.c 17KB
mesh_main.c 17KB
hal_at90usb1287_i2c_asf.c 17KB
smtp_client_example_main.c 17KB
hal_swi_uart.c 17KB
coap_client_example_main.c 17KB
blufi_example_main.c 16KB
master.c 16KB
sync.c 16KB
sim800.c 16KB
mesh_netif.c 16KB
atcacert_der.c 16KB
bg96.c 16KB
hal_samb11_i2c_asf.c 16KB
spi_master_example_main.c 16KB
hal_win_kit_hid.c 16KB
mcpwm_basic_config_example.c 16KB
kit_protocol.c 15KB
connect.c 15KB
hal_i2c_bitbang.c 15KB
ble_mesh_fast_prov_client_model.c 15KB
esp_hid_device_main.c 15KB
button.c 14KB
cmd_wifi.c 14KB
app_main.c 14KB
hal_linux_kit_cdc.c 14KB
mesh_main.c 14KB
hal_pic32mx695f512h_i2c.c 14KB
hal_linux_kit_hid.c 13KB
cmd_i2ctools.c 13KB
main.c 13KB
bt_app_av.c 13KB
bt_app_av.c 13KB
app_prov.c 13KB
hal_pic32mz2048efm_i2c.c 13KB
app_prov.c 13KB
hal_uc3_i2c_asf.c 13KB
app_prov.c 13KB
main.c 13KB
sh2lib.c 12KB
tests.c 12KB
iperf.c 12KB
pppos_client_main.c 12KB
atca_basic.c 12KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
流华追梦
- 粉丝: 1w+
- 资源: 3850
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于OPENMV的视觉智能小车(车可自己动,实现方块,颜色识别)
- C# usb hid 设备控制
- MYSQL window安装包,版本8.0
- 三菱PLC药片自动装瓶机控制系统设计自动药片装瓶机电气控制
- 图形用户界面(GUI)应用程序
- 企业商户自动发卡运营版带WAP手机端【多种主题+亲测可用】
- Unity程序开发:创建一个2D平台游戏
- 矩形三维随机裂隙网络 使用COMSOL with Matlab接口编程 可以直接导入COMSOL中,无需CAD,无需提取数据,方便快捷可以直接计算 裂隙由matlab编程生成,能够生成两组不同产
- python+celery+AWVS 实现的漏洞扫描器
- 1.3M宽干式拉丝机(双道砂带)sw16可编辑全套技术资料100%好用.zip
- C# USB HID 读卡器 (CPU卡和IC卡的读和写)上位机源码
- EWSA中文版使用教程.doc
- 罗技鼠标接收器与罗技鼠标相连的软件
- 履带车底盘sw16全套技术资料100%好用.zip
- h2database 2.2.224 版本 Jar包
- 基于Springboot的梦宇飞行培训管理系统
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功