Microchip提供业界优秀的安全方案,包括支持SHA256,ECC P256和AES128的完整算法支持,同时提供了基于C语言的器件支持库cryptoauthlib.
由于Python语言的通用性和便利性,Microchip也提供了基于Python语言的CryptoAuthLib和相关的例程cryptoauthtools。
CryptoAuthLib Python库可以做什么 ?
CryptoAuthLib库提供了访问安全器件大部分功能的模块,这些模块只是对C语言库cryptoauth中的API做了一层封装,以实现在Python中的调用。
Microchip的cryptoauthlib的访问页面如下: CryptoAuthLibLink(http://www.microchip.com/SWLibraryWeb/product.aspx?product=CryptoAuthLib)
准备工作
软件部分
首先从github上下载最新的例程代码,地址如下: https://github.com/MicrochipTech/cryptoauthtools
安装Python, 最好是3.x的版本。如果已经安装过可以忽略这一步。
安装Python需要的组件。 进入cryptoauthtoolspythonexamples目录中,运行以下命令:
pip install -r requirements.txt
Python将自动安装cryptoauthlib和cryptography库(需要v2.3以上的版本)
另外,也可以手动安装cryptoauthlib和cryptography
pip install cryptoauthlib
pip install cryptography
硬件部分
支持的硬件如下:
AT88CK101
CryptoAuthentication Starter Kit (DM320109)
ATECC508A, ATECC608A, ATSHA204A device directly connected via I2C (Linux Only)
支持的器件型号如下:
ATSHA204A
ATECC508A
ATECC608A
下面的演示是在Windows 10 64bit,Python 3.6下运行的,使用的硬件是CryptoAuthentication Starter Kit。这个开发套件实际上是使用SAMD21 Xplained Pro + IC转接座组成的。用SAMD21实现USB HID通信,再转换为I2C接口控制安全芯片。
Tips: 需注意USB线应该插到Target USB上。
可以自行将SAMD21的开发板烧录一个固件来实现。这个固件可以在官网下载ATCRYPTOAUTHSSH-XSTK_v1.0.1.zip(http://ww1.microchip.com/downloads/en/DeviceDoc/ATCRYPTOAUTHSSH-XSTK_v1.0.1.zip)
运行例程
这些例子旨在简单明了地说明基本概念。 要获得任何示例的帮助,您可以参考相关文档(例如:info.py 有一个info.md说明文档)或者通过命令行:
$ info.py -h
usage: info.py [-h] [-i {i2c,hid}] [-d {ecc,sha}] [-p [PARAMS [PARAMS ...]]]
示例列表:
info.py: 读器件信息. 详见info.md
config.py: 配置器件. 详见config.md
ecdh.py: 演示 ECDH 运算. 详见ecdh.md
sign_verify.py: