MCPcopy Index your code
hub / github.com/GmSSL/GmSSL-Go

github.com/GmSSL/GmSSL-Go @v1.3.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.3.1 ↗ · + Follow
106 symbols 290 edges 17 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

GmSSL-Go

简介

GmSSL-Go 是GmSSL密码库 https://github.com/guanzhi/GmSSL 的Go语言封装,以cgo方式实现,通过Go类和函数提供了如下密码接口:

  • 密码随机数生成器
  • SM2加密和签名,SM2密钥生成、私钥口令加密保护、密钥PEM文件导入导出
  • SM2数字证书的导入、解析和验证
  • SM3哈希函数、HMAC-SM3消息认证码、基于SM3的PBKDF2密钥导出函数
  • SM4分组加密,以及SM4的CBC、CTR、GCM三种加密模式
  • SM9加密和签名,以及SM9密钥生成、密钥口令加密保护、密钥PEM文件导入导出
  • ZUC序列密码加密

目前GmSSL-Go功能可以覆盖除SSL/TLS/TLCP之外的国密算法主要应用开发场景。

开发入门

首先创建一个新项目,并初始化模块

$ mkdir hello
$ cd hello

创建源文件hello.go

package main

import (
    "fmt"
    "gmssl"
)

func main() {
    fmt.Println(gmssl.GetGmSSLLibraryVersion())
}
$ go mod init example.com/hello
go: creating new go.mod: module example.com/hello

在项目模块中安装GmSSL-Go

$ go get github.com/GmSSL/GmSSL-Go@latest
go: added github.com/GmSSL/GmSSL-Go v1.3.1

打开文件go.mod,内容如下

module example.com/hello

go 1.21.1

require github.com/GmSSL/GmSSL-Go v1.3.1 // indirect

在文件go.mod最后面添加一行

replace gmssl => github.com/GmSSL/GmSSL-Go v1.3.1

更新模块信息

$ go mod tidy
go: found gmssl in gmssl v0.0.0-00010101000000-000000000000

编译执行

$ go build
$ go run .
GmSSL 3.1.1 Dev

Core symbols most depended-on inside this repo

RandBytes
called by 15
rand.go
Encrypt
called by 8
sm4.go
ExportEncryptedPrivateKeyInfoPem
called by 7
sm2.go
Update
called by 4
zuc.go
Finish
called by 4
zuc.go
ExportEncryptedMasterKeyInfoPem
called by 4
sm9.go
ExportMasterPublicKeyPem
called by 4
sm9.go
ExtractKey
called by 4
sm9.go

Shape

Method 49
Function 42
Struct 15

Languages

Go100%

Modules by API surface

sm9.go29 symbols
sm4.go18 symbols
sm2.go16 symbols
sm3.go11 symbols
cert.go11 symbols
zuc.go4 symbols
sm4_test.go4 symbols
sm3_test.go3 symbols
sm9_test.go2 symbols
sm2_test.go2 symbols
zuc_test.go1 symbols
version.go1 symbols

For agents

$ claude mcp add GmSSL-Go \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact