Hello,
我们在使用tlsr9218进行matter over thread开发,验证使用第三方证书来生成证书链(带origin vid)时,遇到CD的VID验证错误,下面是我的操作:
1. 生成DAC和CD
# 生成PAA:
$ ./chip-cert gen-att-cert --type a \
--subject-cn "TEST PAA" \
--subject-vid 0x131b \
省略......
# 生成PAI:
$ ./chip-cert gen-att-cert --type i \
--subject-cn "TEST PAI" \
--subject-vid 0x131b \
省略......
# 生成CD:
$ ./chip-cert gen-cd --format-version 1 \
--vendor-id 0x128a \
--product-id 0x1001 \
--dac-origin-vendor-id 0x131b \
--dac-origin-product-id 0x1234 \
--device-type-id 0x010a \
--certificate-id CSA00000SWC00000-01 \
--security-level 0 --security-info 0 --version-number 1 \
--certification-type 1 \
--key credentials/test/certification-declaration/Chip-Test-CD-Signing-Key.pem \
--cert credentials/test/certification-declaration/Chip-Test-CD-Signing-Cert.pem \
--out test_origin_paa/Test_CD.der
# 生成DAC
python3 scripts/tools/telink/mfg_tool.py \
--vendor-id 0x131b --product-id 0x1234 \
--serial-num AABBCCDDEEFF11223344556677889900 \
--vendor-name "Test" \
--product-name "Test Smart Plug" \
--mfg-date 2024-05-07 \
--hw-ver 1 \
--hw-ver-str "v1.0.0" \
--enable-rotating-device-id \
--pai \
--key test_origin_paa/Test_PAI_Key.pem \
--cert test_origin_paa/Test_PAI_Cert.pem \
-cd test_origin_paa/Test_CD.der \
--spake2-path build/out/host/spake2p \
--chip-tool-path build/out/host/chip-tool \
--chip-cert-path build/out/host/chip-cert \
--offset 0x107000 --size 0x1000 \
--out factory_data_for_2mb_flash
2. 将origin_paa中的CD转换成.h后,写入应用程序的CHIP_DEVICE_CONFIG_CERTIFICATION_DECLARATION宏
3. 在应用程序的prj.conf中打开下列宏:
CONFIG_CHIP_FACTORY_DATA=y
CONFIG_CHIP_FACTORY_DATA_BUILD=n
CONFIG_CHIP_FACTORY_DATA_MERGE_WITH_FIRMWARE=n CONFIG_CHIP_CERTIFICATION_DECLARATION_STORAGE=y
4. 写入应用程序固件和证书固件
5. 使用chip-tool进行配网测试:
sudo ./chip-tool pairing ble-thread 1 hex:0e080000000000010000000300000f35060004001fffe0020811111111222222220708fd6bf201bbf700ca051000112233445566778899aabbccddeeff030e4f70656e54687265616444656d6f010212340410445f2b5ca6f2a93a55ce570a70efeecb0c0402a0f7f8 53381012 3475 --paa-trust-store-path ./telink-certs
报错如下(chip-tool端):
设备端打印出来的VID,PID是第三方的,不是我们自己的:
如何实现随意切换固件 |
你好,
尝试跟着这的步骤测试下,https://developers.telink-semi.cn/user/zm_tina/
抱歉,忘了@你了
@TL_Soyo
你好,
尝试跟着这的步骤测试下,https://developers.telink-semi.cn/user/zm_tina/
抱歉,忘了@你了
@TL_Soyo
你好,感谢回答,https://developers.telink-semi.cn/user/zm_tina/的测试步骤我看了的,我这边生成DAC命令中不带--dac-origin-vendor-id参数的话,我是能够正常配网,证书链是没有问题的。
我的需求是使用第三方提供PAA、PAI的方式,来生成自己的DAC,因此生成DAC的命令不一样,带了--dac-origin-vendor-id参数,之后就有如上报错,感觉是PID,VID映射有问题,我不知道是否需要配置什么宏定义来实现这个映射,也没有找到相关文档指导,十分苦恼。
你好,
看了你的步骤以后我觉得可能是以下的部分导致最后验证出错:
1. 在生成cd的时候origin-vid是0x131b,但是生成的cd对应的vid是0x128a,在后续生成DAC的时候不应该使用0x131b,而应该使用你准备生成的0x128a,(pid也是同样)
2. 在生成DAC的时候选择pem和der文件,不应该选择测试用的,应该选择你上面自己生成的
你可以修改这些部分后再尝试。
@Jinmiao.Yu 你好,
1. 我尝试按你说的将生成DAC的PID/VID修改为CD中的--vendor-id和--product-id,保证在生成DAC的时候的pem和der文件就是自己生成的。当我使用命令验证证书链的时候,报错Attestation Certificates Validation Failed with Error Code: 305,验证命令如下:
./build/out/host/chip-cert validate-att-cert -d ./factory_data_for_2mb_flash/128a_1001/aabbccddeeff11223344556677889900/internal/DAC_cert.pem
-i test_origin_paa/Test_PAI_Cert.pem -a test_origin_paa/Test_PAA_Cert.pem
2. 根据我们的理解,包含origin-vid的证书链应该如下图所示:
3. 根据上图,我们现在的问题在于设备端的VID和PID不是0x128a,而是0x131b,这个VID映射是需要做什么配置吗,目前的配置如下:
4. 按照我们原本的证书生成方式,使用命令验证证书链是没有问题的,只是给设备配网的时候会出现604错误,会不会是我们有什么宏定义没有开启导致呢
Hello,
请问telink 的matter解决方案支持下面这种证书方式吗: