8.2.2. 参数配置
8.2.2.1. 内核配置
使能 CE 相关的内核驱动,可在通过下列命令进行配置(参考:快速入门 - 编译概述 - Kernel配置):
make menuconfig
在内核的配置界面中,进行下列的选择:
Cryptographic API --->
<*> User-space interface for asymmetric key cipher algorithms
[*] Hardware crypto devices --->
[*] Support for zx cryptographic accelerator
<*> ZX's crypto engine driver
此处特别选择了 User-space interface for asymmetric key cipher algorithms
是因为默认的
Linux 内核仅对用户空间开放了下列四种类型的算法。
算法类型 |
内核开放接口 |
说明 |
---|---|---|
SKCIPHER |
是 |
对称密钥类算法,如 AES、DES 等 |
AEAD |
是 |
关联数据的认证加密类算法,如 GCM-AES,CCM-AES 等 |
HASH |
是 |
消息摘要类算法,如 MD5,SHA-256 等 |
RNG |
是 |
随机数类算法 |
AKCIPHER |
否 |
非对称密钥类算法,如 RSA |
内核中 非对称密钥类算法
默认并没有对用户空间开放。ZX 对内核打了补丁,使得内核支持用户空间程序
使用内核所提供的非对称密钥算法,在配置内核时使能上述配置即可。
8.2.2.2. DTS 配置
crypto: crypto-engine@10020000 {
compatible = "zx,aic-crypto-v1.0";
reg = <0x0 0x10020000 0x0 0x1000>;
interrupts-extended = <&plic0 33 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&cmu CLK_CE>;
resets = <&rst RESET_CE>;
status = "okay";
};