[Lua] 纯文本查看 复制代码
local s = ""
local Private_KeySize = 32
local Public_KeySize = 64
local Private_Key = {}
local Public_Key = {}
local re
local uid = {}
local x = {}
local sign = {}
-- 返回私钥, 公钥和成功状态
Private_Key, Public_Key, re = cmox_ecdsa_keyGen()
if(re == 1) then
print("cmox_ecdsa_keyGen success")
else
print("cmox_ecdsa_keyGen fail")
end
----------------打印私钥----------------------------
Private_KeySize = #Private_Key
print("Private_KeySize = ", Private_KeySize)
s = "Private_Key = {\n"
for i=1, Private_KeySize, 1 do
s =s..string.format("0x%02x", Private_Key[i])..","
if i % 16 == 0 then
s = s.."\n"
end
end
s =s.."}\n"
print(s)
---------------打印公钥-----------------------------
Public_KeySize = #Public_Key
print("Public_KeySize = ", Public_KeySize)
s = "Public_Key = {\n"
for i=1, Public_KeySize, 1 do
s =s..string.format("0x%02x", Public_Key[i])..","
if i % 16 == 0 then
s = s.."\n"
end
end
s =s.."}\n"
print(s)
---------------读取UID----------------------------
re, uid = pg_read_uid(0x1FF1E800) -- 这里是读取的STM32H7的UID地址,其他芯片需要修改地址
if(re == 1) then
print("pg_read_uid success")
else
print("pg_read_uid fail")
uid = {0,1,2,3, 4,5,6,7, 8,9,10,11} -- 随意定义一个,用于测试
end
for i = 1, #uid do
x[i] = string.byte(uid, i)
end
---------------求签名----------------------------
sign, re = cmox_ecdsa_sign(Private_Key, Private_KeySize, x, #uid)
if(re == 1) then
print("cmox_ecdsa_sign success")
print("SignSize = ", #sign)
s = "Sign = {\n"
for i=1, #sign, 1 do
s =s..string.format("0x%02x", sign[i])..","
if i % 16 == 0 then
s = s.."\n"
end
end
s =s.."}\n"
print(s)
else
print("cmox_ecdsa_sign fail")
end
---------------验证签名----------------------------
re = cmox_ecdsa_verify(Public_Key, Public_KeySize, x, #uid, sign, #sign)
if(re == 1) then
print("cmox_ecdsa_verify success")
else
print("cmox_ecdsa_verify fail")
end