sm4test.lua 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. sys.taskInit(function()
  2. if gmssl.sm4encrypt then
  3. log.info("=== SM4测试")
  4. local passwd = "1234567890123456"
  5. local iv = "1234567890666666"
  6. -- SM4 算法, 对称加密
  7. originStr = ">>SM4 ECB ZeroPadding test<<"
  8. --加密模式:ECB;填充方式:ZeroPadding;密钥:1234567890123456;密钥长度:128 bit
  9. encodeStr = gmssl.sm4encrypt("ECB", "ZERO", originStr, passwd)
  10. log.info("sm4.ecb.zero", "加密后", string.toHex(encodeStr))
  11. log.info("sm4.ecb.zero", "解密后", gmssl.sm4decrypt("ECB","ZERO",encodeStr,passwd))
  12. originStr = ">>SM4 ECB Pkcs5Padding test<<"
  13. --加密模式:ECB;填充方式:Pkcs5Padding;密钥:1234567890123456;密钥长度:128 bit
  14. encodeStr = gmssl.sm4encrypt("ECB", "PKCS5", originStr, passwd)
  15. log.info("sm4.ecb.pks5", "加密后", string.toHex(encodeStr))
  16. log.info("sm4.ecb.pks5", "解密后", gmssl.sm4decrypt("ECB","PKCS5",encodeStr,passwd))
  17. originStr = ">>SM4 CBC Pkcs5Padding test<<"
  18. --加密模式:CBC;填充方式:Pkcs5Padding;密钥:1234567890123456;密钥长度:128 bit;偏移量:1234567890666666
  19. encodeStr = gmssl.sm4encrypt("CBC","PKCS5", originStr, passwd, iv)
  20. log.info("sm4.cbc.pks5", "加密后", string.toHex(encodeStr))
  21. log.info("sm4.cbc.pks5", "解密后", gmssl.sm4decrypt("CBC","PKCS5",encodeStr,passwd, iv))
  22. -- 完全对齐16字节的对比测试
  23. originStr = "1234567890123456"
  24. encodeStr = gmssl.sm4encrypt("ECB","PKCS7",originStr,passwd)
  25. log.info("sm4.ecb.pkcs7", encodeStr:toHex())
  26. encodeStr = gmssl.sm4encrypt("ECB","PKCS5",originStr,passwd)
  27. log.info("sm4.ecb.pkcs5", encodeStr:toHex())
  28. encodeStr = gmssl.sm4encrypt("ECB","ZERO",originStr,passwd)
  29. log.info("sm4.ecb.zero", encodeStr:toHex())
  30. encodeStr = gmssl.sm4encrypt("ECB","NONE",originStr,passwd)
  31. log.info("sm4.ecb.none", encodeStr:toHex())
  32. end
  33. end)