Skip to content
/ sm4js Public

A Simple Pure JavaScript GM-Standards SM2 SM3 SM4 Implementation

License

Notifications You must be signed in to change notification settings

emmansun/sm4js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sm4js (sjcl-sm)

SM4JS CI npm version NPM Downloads

A Simple Pure JavaScript GM-Standards SM2/SM3/SM4 Implementation based on sjcl.

扩展sjcl实现的优势在于其丰富的对称加密模式实现,以及其简洁的代码、较好的性能。“缺点”在于其缺乏CSR、CERT等高级功能支持。您也可以参考另外一个实现:jsrsasign-sm

SM2

  • 加解密
  • 签名、验签
  • 密钥交换

具体使用方法,请参考sm2_test.js

公私钥处理

  • PKIX EC公钥解析、构造
  • SEC1 EC私钥解析、构造
  • PKCS#8私钥解析、构造(不加密)
  • PKCS#8私钥解析、构造(加密)。支持PBES2/PBKDF2,HMAC HASH支持SHA1/SHA256/SHA512/SM3,加解密支持SM4/AES,加密模式支持CBC/GCM

SM3

位于sjcl.hash.sm3中,使用方式和其它哈希算法相同。具体使用方法,请参考sm3_test.js

SM4

位于sjcl.cipher.sm4中,使用方式和AES相同。具体使用方法,请参考sm4_test.js

如果是NodeJS的后端应用,请直接使用NodeJS提供的SM4实现(基于OpenSSL)。NodeJS目前尚未支持SM4-GCM模式,请参考一种使用nodejs SM4-ECB和sjcl gcm的SM4-GCM实现

About

A Simple Pure JavaScript GM-Standards SM2 SM3 SM4 Implementation

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published