如何使用wolfsll库生成证书?
写在前面:
入行一段时间了,基于个人理解整理一些东西,如有错误,欢迎各位大佬评论区指正!!!
车载ETH在实际使用时,往往有信息安全上的需求。本文讨论当需要TLS模块时,若使用wolfsll开源库是如何生成一版证书的。
1.生成非对称密钥对
本文是ED25519算法为例。
当接收到生成证书请求的命令时,先调用函数来生成密钥对。需要执行如下函数:
wc_ed25519_init(&genKey); //初始化ED25519密钥结构体,genKey为返回的结构体。
wc_InitRng_ex(&rng, NULL, devId);//初始化随机数生成器
(void)wc_ed25519_make_key(&rng, 32, &genKey); //生成ED25519密钥对
如此genKey中包含生成的公钥,私钥。
2.生成安全设备ID
为了确保证书的安全性和可信度,特别是在物联网设备环境中。设备 ID 提供设备的唯一性,防止设备混淆。
通常设备ID存储在HSM区域。
3.生成UserP10的CN字段
基于工厂定义写入CN字段,比如包含ECU名称,安全设备ID等信息
4.生成UserP10证书请求文件
wc_InitCert(cert);//初始化证书请求结构体
配置证书请求信息,如国家信息,组织信息,通用名称信息,