sm2lib

package module
v1.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 4, 2022 License: BSD-3-Clause Imports: 10 Imported by: 0

README

sm2lib

国密SM2算法的Go语言包

SM2为非对称加密,基于ECC。该算法已公开。由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。ECC 256位(SM2采用的就是ECC 256位的一种)安全强度比RSA 2048位高,但运算速度快于RSA。

使用示例见单元测试文件example_test.go

pkg.go.dev/github.com/dxvgef/sm2lib

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Base64Decode

func Base64Decode(encoding *base64.Encoding, src []byte) ([]byte, error)

Base64解码

func Base64Encode

func Base64Encode(encoding *base64.Encoding, src []byte) []byte

Base64编码

func BytesToString

func BytesToString(value []byte) string

[]byte转string

func HexDecode

func HexDecode(src []byte) ([]byte, error)

Hex解码

func HexEncode

func HexEncode(src []byte) []byte

Hex编码

func StringToBytes

func StringToBytes(s string) []byte

字符串转[]byte

Types

type PrivateKey

type PrivateKey struct {
	// contains filtered or unexported fields
}

私钥

func (*PrivateKey) Decrypt

func (privateKey *PrivateKey) Decrypt(data []byte) ([]byte, error)

私钥解密

func (*PrivateKey) DecryptASN1

func (privateKey *PrivateKey) DecryptASN1(data []byte) ([]byte, error)

私钥解密成asn.1编码的密文

func (*PrivateKey) DecryptASN1FromBase64

func (privateKey *PrivateKey) DecryptASN1FromBase64(encoding *base64.Encoding, data []byte) ([]byte, error)

私钥解密asn.1以及Base64编码的密文

func (*PrivateKey) DecryptASN1FromHex

func (privateKey *PrivateKey) DecryptASN1FromHex(data []byte) ([]byte, error)

私钥解密asn.1以及Hex编码的密文

func (*PrivateKey) DecryptFromBase64

func (privateKey *PrivateKey) DecryptFromBase64(encoding *base64.Encoding, data []byte) ([]byte, error)

私钥解密Base64编码的密文

func (*PrivateKey) DecryptFromHex

func (privateKey *PrivateKey) DecryptFromHex(data []byte) ([]byte, error)

私钥解密Hex编码的密文

func (*PrivateKey) FromBase64

func (privateKey *PrivateKey) FromBase64(encoding *base64.Encoding, src, pwd []byte) error

从Base64数据中获得私钥

func (*PrivateKey) FromBase64File

func (privateKey *PrivateKey) FromBase64File(encoding *base64.Encoding, filePath string, pwd []byte) (err error)

从Base64文件中获得私钥

func (*PrivateKey) FromHex

func (privateKey *PrivateKey) FromHex(src, pwd []byte) (err error)

从Hex数据中获得私钥

func (*PrivateKey) FromHexFile

func (privateKey *PrivateKey) FromHexFile(filePath string, pwd []byte) (err error)

从Hex文件中获得私钥

func (*PrivateKey) FromPEMFile added in v1.2.0

func (privateKey *PrivateKey) FromPEMFile(filePath string, pwd []byte) error

从PEM编码的文件读取私钥

func (*PrivateKey) FromRaw

func (privateKey *PrivateKey) FromRaw(src *sm2.PrivateKey) error

从原生类型中获得私钥

func (*PrivateKey) FromRawBytes

func (privateKey *PrivateKey) FromRawBytes(src []byte, pwd []byte) (err error)

从[]byte中获得私钥

func (*PrivateKey) GetPublicKey

func (privateKey *PrivateKey) GetPublicKey() PublicKey

获得公钥

func (*PrivateKey) New

func (privateKey *PrivateKey) New() (err error)

创建新私钥

func (*PrivateKey) Sign

func (privateKey *PrivateKey) Sign(data []byte) ([]byte, error)

私钥签名

func (*PrivateKey) SignToBase64

func (privateKey *PrivateKey) SignToBase64(encoding *base64.Encoding, data []byte) ([]byte, error)

私钥签名并转成Base64编码

func (*PrivateKey) SignToHex

func (privateKey *PrivateKey) SignToHex(data []byte) ([]byte, error)

私钥签名并转成Hex编码

func (*PrivateKey) ToBase64

func (privateKey *PrivateKey) ToBase64(encoding *base64.Encoding, pwd []byte) (data []byte, err error)

私钥转为Base64数据

func (*PrivateKey) ToBase64File

func (privateKey *PrivateKey) ToBase64File(encoding *base64.Encoding, filePath string, pwd []byte, perm fs.FileMode) (err error)

私钥保存为Base64编码的文件

func (*PrivateKey) ToHex

func (privateKey *PrivateKey) ToHex(pwd []byte) (data []byte, err error)

私钥转为Hex编码

func (*PrivateKey) ToHexFile

func (privateKey *PrivateKey) ToHexFile(filePath string, pwd []byte, perm fs.FileMode) (err error)

私钥保存为Hex编码的文件

func (*PrivateKey) ToPEMFile added in v1.2.0

func (privateKey *PrivateKey) ToPEMFile(filePath string, pwd []byte, perm fs.FileMode) error

私钥保存为PEM编码的文件

func (PrivateKey) ToRaw

func (privateKey PrivateKey) ToRaw() *sm2.PrivateKey

获得私钥原生类型

func (*PrivateKey) ToRawBytes

func (privateKey *PrivateKey) ToRawBytes(pwd []byte) ([]byte, error)

获得私钥的[]byte类型

type PublicKey

type PublicKey struct {
	// contains filtered or unexported fields
}

func (*PublicKey) Encrypt

func (publicKey *PublicKey) Encrypt(data []byte) (result []byte, err error)

公钥加密

func (*PublicKey) EncryptASN1

func (publicKey *PublicKey) EncryptASN1(data []byte) ([]byte, error)

公钥加密成asn.1编码

func (*PublicKey) EncryptASN1ToBase64

func (publicKey *PublicKey) EncryptASN1ToBase64(encoding *base64.Encoding, data []byte) ([]byte, error)

公钥加密成asn.1编码并转成Base64编码

func (*PublicKey) EncryptASN1ToHex

func (publicKey *PublicKey) EncryptASN1ToHex(data []byte) ([]byte, error)

公钥加密成asn.1编码并转成Hex编码

func (*PublicKey) EncryptToBase64

func (publicKey *PublicKey) EncryptToBase64(encoding *base64.Encoding, data []byte) ([]byte, error)

公钥加密并转成Base64编码

func (*PublicKey) EncryptToHex

func (publicKey *PublicKey) EncryptToHex(data []byte) ([]byte, error)

公钥加密并转成Hex编码

func (*PublicKey) FromBase64

func (publicKey *PublicKey) FromBase64(encoding *base64.Encoding, src []byte) error

从Base64编码中获得公钥

func (*PublicKey) FromBase64File

func (publicKey *PublicKey) FromBase64File(encoding *base64.Encoding, filePath string) (err error)

从Base64编码的文件中获得公钥

func (*PublicKey) FromHex

func (publicKey *PublicKey) FromHex(src []byte) error

从Hex编码中获得公钥

func (*PublicKey) FromHexFile

func (publicKey *PublicKey) FromHexFile(filePath string) (err error)

从Hex编码的文件中获得公钥

func (*PublicKey) FromPEMFile added in v1.2.0

func (publicKey *PublicKey) FromPEMFile(filePath string) (err error)

从PEM编码的文件中读取公钥

func (*PublicKey) FromRaw

func (publicKey *PublicKey) FromRaw(src *sm2.PublicKey) error

从原生类型中获得公钥

func (*PublicKey) FromRawBytes

func (publicKey *PublicKey) FromRawBytes(src []byte) (err error)

从[]byte中获得公钥

func (*PublicKey) ToBase64

func (publicKey *PublicKey) ToBase64(encoding *base64.Encoding) (data []byte, err error)

公钥转为Base64编码

func (*PublicKey) ToBase64File

func (publicKey *PublicKey) ToBase64File(encoding *base64.Encoding, filePath string, perm fs.FileMode) (err error)

公钥保存为Base64编码的文件

func (*PublicKey) ToHex

func (publicKey *PublicKey) ToHex() (data []byte, err error)

公钥转为Hex编码

func (*PublicKey) ToHexFile

func (publicKey *PublicKey) ToHexFile(filePath string, perm fs.FileMode) (err error)

公钥保存为Hex编码的文件

func (*PublicKey) ToPEMFile added in v1.2.0

func (publicKey *PublicKey) ToPEMFile(filePath string, perm fs.FileMode) (err error)

公钥保存为PEM编码的文件

func (PublicKey) ToRaw

func (publicKey PublicKey) ToRaw() *sm2.PublicKey

公钥转为原生类型

func (*PublicKey) ToRawBytes

func (publicKey *PublicKey) ToRawBytes() ([]byte, error)

公钥转为原生[]byte

func (*PublicKey) Verify

func (publicKey *PublicKey) Verify(msg, sign []byte) bool

公钥验签

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL