gmsm-sm4js
v0.7.0
Published
Pure Javascript implementation of the SM2/SM3/SM4 cipher based on sjcl
Downloads
25
Readme
sm4js (sjcl-sm)
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实现。