GithubHelp home page GithubHelp logo

braveloveeric / gmsm Goto Github PK

View Code? Open in Web Editor NEW

This project forked from emmansun/gmsm

0.0 0.0 0.0 2.51 MB

ShangMi (SM) cipher suites for golang (go语言国密实现)

Home Page: https://godoc.org/github.com/emmansun/gmsm

License: MIT License

C 1.44% Go 81.55% Assembly 16.98% Dockerfile 0.03%

gmsm's Introduction

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

Github CI arm64-qemu sm3-sm4-ni-qemu 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 tested with QEMU.

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

  • 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

  • CFCA - some cfca specific implementations.

  • CIPHER - ECB/CCM/XTS cipher modes.

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

  • PKCS7 - a fork of mozilla-services/pkcs7 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. It's NOT concurrent safe! You can also use randomness tool to check the generated random bits.

Some Related Projects

  • TLCP - An implementation of GB/T 38636-2020 Information security technology Transport Layer Cryptography Protocol (TLCP).
  • PKCS12 - pkcs12 supports ShangMi, a fork of SSLMate/go-pkcs12.
  • MKSMCERT - A simple tool for making locally-trusted development ShangMi certificates, a fork of FiloSottile/mkcert.

Disclaimer

Please read disclaimer carefully!

gmsm's People

Contributors

dependabot[bot] avatar emmansun avatar opensvn avatar trisia avatar xuyang2 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.