- 本代码目标运行平台8051系列CPU
- 使用
keilc51
进行编译和仿真 - 本项目使用secp256r1进行了验证,验证方法是:
- 在仿真平台中对字符串
hello
的sha256哈希值进行签名 - 在keil的命令窗口保存签名值和公钥,使用公钥和签名值到外部系统进行验证
- 在仿真平台中对字符串
- save signatureR.txt X:0x000004,X:0x000023
- save signatureS.txt X:0x000024,X:0x000043
- save publicX.txt X:0x000044,X:0x000063
- save publicY.txt X:0x000064,X:0x000083
- 现象:keil c51 compiler:
- 不支持long数据类型
- 变量声明必须在函数块头部
- ...
- 原因:编译器是c89
C51 COMPILER V9.60.0.0 - SN: Eval Version
,不支持一些现代C语言的一些特性 - 参考:c51
- 解决办法:换一个更现代的编译器,eg:sdcc
- 移植的原库nano-ecc
- JavaScript
secp256r1
签名库ecdsa-secp256r1