An implementation of china crypto standards written in golang. This package includes sm2,sm3,sm4 and sm9 algorithms. Some algorithms have been optimized using AVX2 instructions.
go get github.com/xlcetc/cryptogm
CPU: intel core i7-7700 @3.6GHz.
BenchmarkSign-8 19392 ns/op
BenchmarkVerify-8 30326 ns/op
BenchmarkSignWithDigest-8 16701 ns/op
BenchmarkVerifyWithDigest-8 26742 ns/op
BenchmarkSignWithASN1-8 21251 ns/op
BenchmarkVerifyWithASN1-8 30390 ns/op
BenchmarkHash8Bytes-8 220 ns/op 36.44 MB/s
BenchmarkHash1K-8 2815 ns/op 363.71 MB/s
BenchmarkHash8K-8 20422 ns/op 401.13 MB/s
BenchmarkSm4Ecb8Bytes-8 623 ns/op 12.83 MB/s
BenchmarkSm4Ecb1K-8 10526 ns/op 97.29 MB/s
BenchmarkSm4Ecb8K-8 80692 ns/op 101.52 MB/s
BenchmarkSm4Cbc8Bytes-8 664 ns/op 12.05 MB/s
BenchmarkSm4Cbc1K-8 12299 ns/op 83.26 MB/s
BenchmarkSm4Cbc8K-8 95395 ns/op 85.87 MB/s
BenchmarkSign-8 543 2187579 ns/op
BenchmarkVerify-8 338 3599817 ns/op