gmssl_sm2sign.lua 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. --[[
  2. @module gmssl_sm2sign
  3. @summary gmssl_sm2sign
  4. @version 1.0
  5. @date 2025.10.29
  6. @author 沈园园
  7. @usage
  8. 本文件为gmssl sm2sign应用功能模块,核心业务逻辑为:
  9. 1、演示国密SM2签名和验签的应用;
  10. 本文件没有对外接口,直接在main.lua中require "gmssl_sm2sign"就可以加载运行;
  11. ]]
  12. local function gmssl_sm2sign_task_func()
  13. -- SM2签名和验签
  14. if gmssl.sm2sign then
  15. local originStr = string.fromHex("434477813974bf58f94bcf760833c2b40f77a5fc360485b0b9ed1bd9682edb45")
  16. local pkx = "ABE87C924B7ECFDEA1748A06E89003C9F7F4DC5C3563873CE2CAE46F66DE8141"
  17. local pky = "9514733D38CC026F2452A6A3A3A4DA0C28F864AFA5FE2C45E0EB6B761FBB5286"
  18. local private = "129EDC282CD2E9C1144C2E7315F926D772BC96600D2771E8BE02060313FE00D5"
  19. -- 不带id的情况,即默认id="1234567812345678"
  20. local sig = gmssl.sm2sign(private, originStr, nil)
  21. log.info("sm2sign", sig and sig:toHex())
  22. if sig then
  23. local ret = gmssl.sm2verify(pkx, pky, originStr, nil, sig)
  24. log.info("sm2verify", ret or "false")
  25. end
  26. -- 带id的情况
  27. local id = "1234"
  28. local sig = gmssl.sm2sign(private, originStr, id)
  29. log.info("sm2sign", sig and sig:toHex())
  30. if sig then
  31. local ret = gmssl.sm2verify(pkx, pky, originStr, id, sig)
  32. log.info("sm2verify", ret or "false")
  33. end
  34. end
  35. end
  36. sys.taskInit(gmssl_sm2sign_task_func)