Skip to content
/ gmsm Public
forked from emmansun/gmsm

ShangMi (SM) cipher suites for golang

License

Notifications You must be signed in to change notification settings

ez8-lab/gmsm

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GM-Standards SM2/SM3/SM4/SM9/ZUC for Go

Travis (.org) Github CI codecov Go Report Card Documentation GitHub go.mod Go version (branch) Release

Packages

  • SM2 - This is a SM2 sm2p256v1 implementation whose performance is similar like golang native NIST P256 under amd64 and arm64, for implementation detail, please refer SM2实现细节. It supports ShangMi sm2 digital signature, public key encryption algorithm and also key exchange.

  • SM3 - This is also a SM3 implementation whose performance is similar like golang native SHA 256 with SIMD under amd64, for implementation detail, please refer SM3性能优化. It also provides A64 cryptographic instructions SM3 POC without test.

  • SM4 - For SM4 implementation, SIMD & AES-NI are used under amd64 and arm64, for detail please refer SM4性能优化, it supports CBC/CFB/OFB/CTR/GCM/CCM/XTS modes. It also provides A64 cryptographic instructions SM4 POC without test.

  • SM9 - For SM9 implementation, please reference sm9/bn256 README.md.

  • ZUC - For ZUC implementation, SIMD, AES-NI and CLMUL are used under amd64 and arm64, for detail please refer Efficient Software Implementations of ZUC

  • CIPHER - CCM/XTS cipher modes.

  • SMX509 - a fork of golang X509 that supports ShangMi.

  • PKCS8 - a fork of youmark/pkcs8 that supports ShangMi.

  • ECDH - a similar implementation of golang ECDH that supports SM2 ECDH & SM2MQV without usage of big.Int, a replacement of SM2 key exchange. For detail, pleaes refer is my code constant time?

  • DRBG - Random Number Generation Using Deterministic Random Bit Generators, for detail, please reference NIST Special Publication 800-90A and GM/T 0105-2021: CTR-DRBG using derivation function and HASH-DRBG. NIST related implementations are tested with part of NIST provided test vectors.

Some Related Projects

About

ShangMi (SM) cipher suites for golang

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 77.1%
  • Assembly 21.1%
  • C 1.8%