crypto

package
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Jan 23, 2025 License: MIT Imports: 23 Imported by: 7

Documentation

Overview

Package crypto 实现了dep2p使用的各种加密工具。 包括公钥和私钥接口以及支持的密钥算法的实现。

Index

Constants

View Source
const (
	// RSA 表示RSA密钥类型
	RSA = iota
	// Ed25519 表示Ed25519密钥类型
	Ed25519
	// Secp256k1 表示Secp256k1密钥类型
	Secp256k1
	// ECDSA 表示ECDSA密钥类型
	ECDSA
)

密钥类型常量定义

View Source
const WeakRsaKeyEnv = "LIBP2P_ALLOW_WEAK_RSA_KEYS"

WeakRsaKeyEnv 是一个环境变量,当设置时会将RSA密钥的最小所需位数降低到512位。 这应该仅在测试场景中使用。

Variables

View Source
var (
	// ErrNotECDSAPubKey 当传入的公钥不是 ECDSA 公钥时返回此错误
	ErrNotECDSAPubKey = errors.New("不是 ECDSA 公钥")
	// ErrNilSig 当签名为 nil 时返回此错误
	ErrNilSig = errors.New("签名为空")
	// ErrNilPrivateKey 当提供的私钥为 nil 时返回此错误
	ErrNilPrivateKey = errors.New("私钥为空")
	// ErrNilPublicKey 当提供的公钥为 nil 时返回此错误
	ErrNilPublicKey = errors.New("公钥为空")
	// ECDSACurve 是默认使用的 ECDSA 曲线
	ECDSACurve = elliptic.P256()
)
View Source
var (
	// ErrBadKeyType 当密钥类型不支持时返回此错误
	ErrBadKeyType = errors.New("无效或不支持的密钥类型")
	// KeyTypes 支持的密钥类型列表
	KeyTypes = []int{
		RSA,
		Ed25519,
		Secp256k1,
		ECDSA,
	}
)
View Source
var ErrRsaKeyTooBig error = fmt.Errorf("RSA密钥必须小于等于%d位", maxRsaKeyBits)

ErrRsaKeyTooBig 当尝试生成或解析大于maxRsaKeyBits位的RSA密钥时返回此错误

View Source
var ErrRsaKeyTooSmall error

ErrRsaKeyTooSmall 当尝试生成或解析小于MinRsaKeyBits位的RSA密钥时返回此错误

View Source
var MinRsaKeyBits = 2048

MinRsaKeyBits 定义了RSA密钥的最小位数,默认为2048位

PrivKeyUnmarshallers 是按密钥类型映射的私钥反序列化器

PubKeyUnmarshallers 是按密钥类型映射的公钥反序列化器

Functions

func ConfigDecodeKey

func ConfigDecodeKey(b string) ([]byte, error)

ConfigDecodeKey 将base64编码的密钥(用于配置文件)解码为可以反序列化的字节数组 参数:

  • b: base64编码的字符串

返回:

  • []byte: 解码后的字节数组
  • error: 错误信息

func ConfigEncodeKey

func ConfigEncodeKey(b []byte) string

ConfigEncodeKey 将序列化的密钥编码为base64(用于配置文件) 参数:

  • b: 要编码的字节数组

返回:

  • string: base64编码的字符串

func ECDSAKeyPairFromKey

func ECDSAKeyPairFromKey(priv *ecdsa.PrivateKey) (PrivKey, PubKey, error)

ECDSAKeyPairFromKey 从输入的私钥生成 ECDSA 私钥和公钥对 参数:

  • priv: 输入的 ECDSA 私钥

返回值:

  • PrivKey: 生成的私钥
  • PubKey: 生成的公钥
  • error: 错误信息

func GenerateECDSAKeyPair

func GenerateECDSAKeyPair(src io.Reader) (PrivKey, PubKey, error)

GenerateECDSAKeyPair 生成新的 ECDSA 私钥和公钥对 参数:

  • src: 随机数生成器

返回值:

  • PrivKey: 生成的私钥
  • PubKey: 生成的公钥
  • error: 错误信息

func GenerateECDSAKeyPairWithCurve

func GenerateECDSAKeyPairWithCurve(curve elliptic.Curve, src io.Reader) (PrivKey, PubKey, error)

GenerateECDSAKeyPairWithCurve 使用指定曲线生成新的 ECDSA 私钥和公钥对 参数:

  • curve: 指定的椭圆曲线
  • src: 随机数生成器

返回值:

  • PrivKey: 生成的私钥
  • PubKey: 生成的公钥
  • error: 错误信息

func GenerateEd25519Key

func GenerateEd25519Key(src io.Reader) (PrivKey, PubKey, error)

GenerateEd25519Key 生成一个新的 ed25519 密钥对 参数:

  • src: 随机数生成器

返回值:

  • PrivKey: 生成的私钥
  • PubKey: 生成的公钥
  • error: 生成过程中的错误,如果成功则为 nil

func GenerateKeyPair

func GenerateKeyPair(typ, bits int) (PrivKey, PubKey, error)

GenerateKeyPair 生成私钥和公钥对 参数:

  • typ: 密钥类型
  • bits: 密钥位数

返回:

  • PrivKey: 生成的私钥
  • PubKey: 生成的公钥
  • error: 错误信息

func GenerateKeyPairWithReader

func GenerateKeyPairWithReader(typ, bits int, src io.Reader) (PrivKey, PubKey, error)

GenerateKeyPairWithReader 使用指定的随机源生成指定类型和位数的密钥对 参数:

  • typ: 密钥类型
  • bits: 密钥位数
  • src: 随机源

返回:

  • PrivKey: 生成的私钥
  • PubKey: 生成的公钥
  • error: 错误信息

func GenerateRSAKeyPair

func GenerateRSAKeyPair(bits int, src io.Reader) (PrivKey, PubKey, error)

GenerateRSAKeyPair 生成新的RSA密钥对 参数:

  • bits: RSA密钥的位数
  • src: 随机数生成器

返回值:

  • PrivKey: 生成的私钥
  • PubKey: 生成的公钥
  • error: 错误信息

func GenerateSecp256k1Key

func GenerateSecp256k1Key(src io.Reader) (PrivKey, PubKey, error)

GenerateSecp256k1Key 生成一个新的 Secp256k1 私钥和公钥对 参数:

  • src: 随机数生成器

返回值:

  • PrivKey: 生成的私钥
  • PubKey: 生成的公钥
  • error: 错误信息

func KeyEqual

func KeyEqual(k1, k2 Key) bool

KeyEqual 检查两个密钥是否等价(具有相同的字节表示) 参数:

  • k1: 第一个密钥
  • k2: 第二个密钥

返回:

  • bool: 如果密钥相等返回true,否则返回false

func KeyPairFromStdKey

func KeyPairFromStdKey(priv crypto.PrivateKey) (PrivKey, PubKey, error)

KeyPairFromStdKey 将标准库(和 secp256k1)的私钥包装为 dep2p/core/crypto 密钥 参数:

  • priv: 标准库的私钥

返回值:

  • PrivKey: dep2p 私钥
  • PubKey: dep2p 公钥
  • error: 错误信息

func MarshalECDSAPrivateKey

func MarshalECDSAPrivateKey(ePriv ECDSAPrivateKey) (res []byte, err error)

MarshalECDSAPrivateKey 将私钥转换为 x509 字节格式 参数:

  • ePriv: ECDSA 私钥

返回值:

  • []byte: x509 编码的私钥
  • error: 错误信息

func MarshalECDSAPublicKey

func MarshalECDSAPublicKey(ePub ECDSAPublicKey) (res []byte, err error)

MarshalECDSAPublicKey 将公钥转换为 x509 字节格式 参数:

  • ePub: ECDSA 公钥

返回值:

  • []byte: x509 编码的公钥
  • error: 错误信息

func MarshalPrivateKey

func MarshalPrivateKey(k PrivKey) ([]byte, error)

MarshalPrivateKey 将私钥对象转换为其protobuf序列化形式 参数:

  • k: 要序列化的私钥对象

返回:

  • []byte: 序列化后的字节数据
  • error: 错误信息

func MarshalPublicKey

func MarshalPublicKey(k PubKey) ([]byte, error)

MarshalPublicKey 将公钥对象转换为protobuf序列化的公钥 参数:

  • k: 要序列化的公钥对象

返回:

  • []byte: 序列化后的字节数据
  • error: 错误信息

func PrivKeyToStdKey

func PrivKeyToStdKey(priv PrivKey) (crypto.PrivateKey, error)

PrivKeyToStdKey 将 dep2p/go-dep2p/core/crypto 私钥转换为标准库(和 secp256k1)私钥 参数:

  • priv: dep2p 私钥

返回值:

  • crypto.PrivateKey: 标准库私钥
  • error: 错误信息

func PubKeyToStdKey

func PubKeyToStdKey(pub PubKey) (crypto.PublicKey, error)

PubKeyToStdKey 将 dep2p/go-dep2p/core/crypto 公钥转换为标准库(和 secp256k1)公钥 参数:

  • pub: dep2p 公钥

返回值:

  • crypto.PublicKey: 标准库公钥
  • error: 错误信息

func PublicKeyToProto

func PublicKeyToProto(k PubKey) (*pb.PublicKey, error)

PublicKeyToProto 将公钥对象转换为未序列化的protobuf PublicKey消息 参数:

  • k: 要转换的公钥对象

返回:

  • *pb.PublicKey: protobuf公钥消息
  • error: 错误信息

Types

type ECDSAPrivateKey

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

ECDSAPrivateKey 实现了 ECDSA 私钥

func (*ECDSAPrivateKey) Equals

func (ePriv *ECDSAPrivateKey) Equals(o Key) bool

Equals 比较两个私钥是否相等 参数:

  • o: 要比较的另一个密钥

返回值:

  • bool: 是否相等

func (*ECDSAPrivateKey) GetPublic

func (ePriv *ECDSAPrivateKey) GetPublic() PubKey

GetPublic 获取对应的公钥 返回值:

  • PubKey: 对应的公钥

func (*ECDSAPrivateKey) Raw

func (ePriv *ECDSAPrivateKey) Raw() (res []byte, err error)

Raw 将私钥转换为 x509 字节格式 返回值:

  • []byte: x509 编码的私钥
  • error: 错误信息

func (*ECDSAPrivateKey) Sign

func (ePriv *ECDSAPrivateKey) Sign(data []byte) (sig []byte, err error)

Sign 对输入数据进行签名 参数:

  • data: 要签名的数据

返回值:

  • []byte: 签名结果
  • error: 错误信息

func (*ECDSAPrivateKey) Type

func (ePriv *ECDSAPrivateKey) Type() pb.KeyType

Type 返回私钥类型 返回值:

  • pb.KeyType: 密钥类型

type ECDSAPublicKey

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

ECDSAPublicKey 实现了 ECDSA 公钥

func (*ECDSAPublicKey) Equals

func (ePub *ECDSAPublicKey) Equals(o Key) bool

Equals 比较两个公钥是否相等 参数:

  • o: 要比较的另一个密钥

返回值:

  • bool: 是否相等

func (*ECDSAPublicKey) Raw

func (ePub *ECDSAPublicKey) Raw() ([]byte, error)

Raw 将公钥转换为 x509 字节格式 返回值:

  • []byte: x509 编码的公钥
  • error: 错误信息

func (*ECDSAPublicKey) Type

func (ePub *ECDSAPublicKey) Type() pb.KeyType

Type 返回公钥类型 返回值:

  • pb.KeyType: 密钥类型

func (*ECDSAPublicKey) Verify

func (ePub *ECDSAPublicKey) Verify(data, sigBytes []byte) (success bool, err error)

Verify 验证数据和签名是否匹配 参数:

  • data: 原始数据
  • sigBytes: 签名数据

返回值:

  • bool: 验证是否通过
  • error: 错误信息

type ECDSASig

type ECDSASig struct {
	R, S *big.Int // 签名的 r 和 s 分量
}

ECDSASig 保存 ECDSA 签名的 r 和 s 值

type Ed25519PrivateKey

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

Ed25519PrivateKey 表示一个 ed25519 私钥

func (*Ed25519PrivateKey) Equals

func (k *Ed25519PrivateKey) Equals(o Key) bool

Equals 比较两个 ed25519 私钥是否相等 参数:

  • o: 要比较的另一个密钥

返回值:

  • bool: 如果密钥相等返回 true,否则返回 false

func (*Ed25519PrivateKey) GetPublic

func (k *Ed25519PrivateKey) GetPublic() PubKey

GetPublic 从私钥获取对应的公钥 返回值:

  • PubKey: 对应的公钥

func (*Ed25519PrivateKey) Raw

func (k *Ed25519PrivateKey) Raw() ([]byte, error)

Raw 返回私钥的原始字节 返回值:

  • []byte: 私钥的字节表示
  • error: 获取过程中的错误,如果成功则为 nil

func (*Ed25519PrivateKey) Sign

func (k *Ed25519PrivateKey) Sign(msg []byte) (res []byte, err error)

Sign 使用私钥对消息进行签名 参数:

  • msg: 要签名的消息

返回值:

  • []byte: 生成的签名
  • error: 签名过程中的错误,如果成功则为 nil

func (*Ed25519PrivateKey) Type

func (k *Ed25519PrivateKey) Type() pb.KeyType

Type 返回私钥的类型 返回值:

  • pb.KeyType: 返回 Ed25519 类型标识

type Ed25519PublicKey

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

Ed25519PublicKey 表示一个 ed25519 公钥

func (*Ed25519PublicKey) Equals

func (k *Ed25519PublicKey) Equals(o Key) bool

Equals 比较两个 ed25519 公钥是否相等 参数:

  • o: 要比较的另一个密钥

返回值:

  • bool: 如果密钥相等返回 true,否则返回 false

func (*Ed25519PublicKey) Raw

func (k *Ed25519PublicKey) Raw() ([]byte, error)

Raw 返回公钥的原始字节 返回值:

  • []byte: 公钥的字节表示
  • error: 获取过程中的错误,如果成功则为 nil

func (*Ed25519PublicKey) Type

func (k *Ed25519PublicKey) Type() pb.KeyType

Type 返回公钥的类型 返回值:

  • pb.KeyType: 返回 Ed25519 类型标识

func (*Ed25519PublicKey) Verify

func (k *Ed25519PublicKey) Verify(data []byte, sig []byte) (success bool, err error)

Verify 验证签名是否有效 参数:

  • data: 原始消息数据
  • sig: 要验证的签名

返回值:

  • bool: 如果签名有效返回 true,否则返回 false
  • error: 验证过程中的错误,如果成功则为 nil

type GenSharedKey

type GenSharedKey func([]byte) ([]byte, error)

GenSharedKey 是从给定私钥生成共享密钥的函数类型

type Key

type Key interface {
	// Equals 检查两个密钥是否相同
	Equals(Key) bool

	// Raw 返回密钥的原始字节(不包含在dep2p-crypto protobuf中)
	// 此函数是{Priv,Pub}KeyUnmarshaler的逆操作
	Raw() ([]byte, error)

	// Type 返回protobuf密钥类型
	Type() pb.KeyType
}

Key 表示可以与另一个密钥进行比较的加密密钥接口

type PrivKey

type PrivKey interface {
	Key

	// Sign 对给定的字节进行加密签名
	Sign([]byte) ([]byte, error)

	// GetPublic 返回与此私钥配对的公钥
	GetPublic() PubKey
}

PrivKey 表示可用于生成公钥和签名数据的私钥接口

func UnmarshalECDSAPrivateKey

func UnmarshalECDSAPrivateKey(data []byte) (res PrivKey, err error)

UnmarshalECDSAPrivateKey 从 x509 字节格式解析私钥 参数:

  • data: x509 编码的私钥数据

返回值:

  • PrivKey: 解析出的私钥
  • error: 错误信息

func UnmarshalEd25519PrivateKey

func UnmarshalEd25519PrivateKey(data []byte) (PrivKey, error)

UnmarshalEd25519PrivateKey 从字节数据解析出私钥 参数:

  • data: 包含私钥的字节数据

返回值:

  • PrivKey: 解析出的私钥
  • error: 解析过程中的错误,如果成功则为 nil

func UnmarshalPrivateKey

func UnmarshalPrivateKey(data []byte) (PrivKey, error)

UnmarshalPrivateKey 将protobuf序列化的私钥转换为其对应的对象 参数:

  • data: 序列化的私钥数据

返回:

  • PrivKey: 反序列化后的私钥对象
  • error: 错误信息

func UnmarshalRsaPrivateKey

func UnmarshalRsaPrivateKey(b []byte) (key PrivKey, err error)

UnmarshalRsaPrivateKey 从PKCS1编码的数据中解析RSA私钥 参数:

  • b: PKCS1编码的私钥数据

返回值:

  • PrivKey: 解析出的私钥
  • error: 错误信息

func UnmarshalSecp256k1PrivateKey

func UnmarshalSecp256k1PrivateKey(data []byte) (k PrivKey, err error)

UnmarshalSecp256k1PrivateKey 从字节数组中解析私钥 参数:

  • data: 待解析的字节数组

返回值:

  • PrivKey: 解析得到的私钥
  • error: 错误信息

type PrivKeyUnmarshaller

type PrivKeyUnmarshaller func(data []byte) (PrivKey, error)

PrivKeyUnmarshaller 是一个从字节切片创建私钥的函数类型

type PubKey

type PubKey interface {
	Key

	// Verify 验证'sig'是否是'data'的签名哈希
	Verify(data []byte, sig []byte) (bool, error)
}

PubKey 是可用于验证使用相应私钥签名的数据的公钥接口

func ECDSAPublicKeyFromPubKey

func ECDSAPublicKeyFromPubKey(pub ecdsa.PublicKey) (PubKey, error)

ECDSAPublicKeyFromPubKey 从输入的公钥生成 ECDSA 公钥 参数:

  • pub: 输入的 ECDSA 公钥

返回值:

  • PubKey: 生成的公钥
  • error: 错误信息

func PublicKeyFromProto

func PublicKeyFromProto(pmes *pb.PublicKey) (PubKey, error)

PublicKeyFromProto 将未序列化的protobuf PublicKey消息转换为其对应的对象 参数:

  • pmes: protobuf公钥消息

返回:

  • PubKey: 转换后的公钥对象
  • error: 错误信息

func UnmarshalECDSAPublicKey

func UnmarshalECDSAPublicKey(data []byte) (key PubKey, err error)

UnmarshalECDSAPublicKey 从 x509 字节格式解析公钥 参数:

  • data: x509 编码的公钥数据

返回值:

  • PubKey: 解析出的公钥
  • error: 错误信息

func UnmarshalEd25519PublicKey

func UnmarshalEd25519PublicKey(data []byte) (PubKey, error)

UnmarshalEd25519PublicKey 从字节数据解析出公钥 参数:

  • data: 包含公钥的字节数据

返回值:

  • PubKey: 解析出的公钥
  • error: 解析过程中的错误,如果成功则为 nil

func UnmarshalPublicKey

func UnmarshalPublicKey(data []byte) (PubKey, error)

UnmarshalPublicKey 将protobuf序列化的公钥转换为其对应的对象 参数:

  • data: 序列化的公钥数据

返回:

  • PubKey: 反序列化后的公钥对象
  • error: 错误信息

func UnmarshalRsaPublicKey

func UnmarshalRsaPublicKey(b []byte) (key PubKey, err error)

UnmarshalRsaPublicKey 从PKIX编码的数据中解析RSA公钥 参数:

  • b: PKIX编码的公钥数据

返回值:

  • PubKey: 解析出的公钥
  • error: 错误信息

func UnmarshalSecp256k1PublicKey

func UnmarshalSecp256k1PublicKey(data []byte) (_k PubKey, err error)

UnmarshalSecp256k1PublicKey 从字节数组中解析公钥 参数:

  • data: 待解析的字节数组

返回值:

  • PubKey: 解析得到的公钥
  • error: 错误信息

type PubKeyUnmarshaller

type PubKeyUnmarshaller func(data []byte) (PubKey, error)

PubKeyUnmarshaller 是一个从字节切片创建公钥的函数类型

type RsaPrivateKey

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

RsaPrivateKey RSA私钥结构体

func (*RsaPrivateKey) Equals

func (sk *RsaPrivateKey) Equals(k Key) bool

Equals 检查两个密钥是否相等 参数:

  • k: 要比较的密钥

返回值:

  • bool: 密钥是否相等

func (*RsaPrivateKey) GetPublic

func (sk *RsaPrivateKey) GetPublic() PubKey

GetPublic 获取对应的公钥 返回值:

  • PubKey: 对应的公钥

func (*RsaPrivateKey) Raw

func (sk *RsaPrivateKey) Raw() (res []byte, err error)

Raw 返回私钥的PKCS1编码 返回值:

  • []byte: 编码后的私钥数据
  • error: 错误信息

func (*RsaPrivateKey) Sign

func (sk *RsaPrivateKey) Sign(message []byte) (sig []byte, err error)

Sign 对输入数据进行签名 参数:

  • message: 要签名的数据

返回值:

  • []byte: 签名数据
  • error: 错误信息

func (*RsaPrivateKey) Type

func (sk *RsaPrivateKey) Type() pb.KeyType

Type 返回密钥类型 返回值:

  • pb.KeyType: RSA密钥类型

type RsaPublicKey

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

RsaPublicKey RSA公钥结构体

func (*RsaPublicKey) Equals

func (pk *RsaPublicKey) Equals(k Key) bool

Equals 检查两个密钥是否相等 参数:

  • k: 要比较的密钥

返回值:

  • bool: 密钥是否相等

func (*RsaPublicKey) Raw

func (pk *RsaPublicKey) Raw() (res []byte, err error)

Raw 返回公钥的PKIX编码 返回值:

  • []byte: 编码后的公钥数据
  • error: 错误信息

func (*RsaPublicKey) Type

func (pk *RsaPublicKey) Type() pb.KeyType

Type 返回密钥类型 返回值:

  • pb.KeyType: RSA密钥类型

func (*RsaPublicKey) Verify

func (pk *RsaPublicKey) Verify(data, sig []byte) (success bool, err error)

Verify 验证数据签名是否有效 参数:

  • data: 原始数据
  • sig: 签名数据

返回值:

  • bool: 签名是否有效
  • error: 错误信息

type Secp256k1PrivateKey

type Secp256k1PrivateKey secp256k1.PrivateKey

Secp256k1PrivateKey 表示一个 Secp256k1 私钥

func (*Secp256k1PrivateKey) Equals

func (k *Secp256k1PrivateKey) Equals(o Key) bool

Equals 比较两个私钥是否相等 参数:

  • o: 待比较的密钥

返回值:

  • bool: 是否相等

func (*Secp256k1PrivateKey) GetPublic

func (k *Secp256k1PrivateKey) GetPublic() PubKey

GetPublic 获取对应的公钥 返回值:

  • PubKey: 对应的公钥

func (*Secp256k1PrivateKey) Raw

func (k *Secp256k1PrivateKey) Raw() ([]byte, error)

Raw 返回私钥的字节表示 返回值:

  • []byte: 私钥的字节数组
  • error: 错误信息

func (*Secp256k1PrivateKey) Sign

func (k *Secp256k1PrivateKey) Sign(data []byte) (_sig []byte, err error)

Sign 使用私钥对数据进行签名 参数:

  • data: 待签名的数据

返回值:

  • []byte: 签名结果
  • error: 错误信息

func (*Secp256k1PrivateKey) Type

func (k *Secp256k1PrivateKey) Type() pb.KeyType

Type 返回私钥类型 返回值:

  • pb.KeyType: 私钥类型

type Secp256k1PublicKey

type Secp256k1PublicKey secp256k1.PublicKey

Secp256k1PublicKey 表示一个 Secp256k1 公钥

func (*Secp256k1PublicKey) Equals

func (k *Secp256k1PublicKey) Equals(o Key) bool

Equals 比较两个公钥是否相等 参数:

  • o: 待比较的密钥

返回值:

  • bool: 是否相等

func (*Secp256k1PublicKey) Raw

func (k *Secp256k1PublicKey) Raw() (res []byte, err error)

Raw 返回公钥的字节表示 返回值:

  • []byte: 公钥的字节数组
  • error: 错误信息

func (*Secp256k1PublicKey) Type

func (k *Secp256k1PublicKey) Type() pb.KeyType

Type 返回公钥类型 返回值:

  • pb.KeyType: 公钥类型

func (*Secp256k1PublicKey) Verify

func (k *Secp256k1PublicKey) Verify(data []byte, sigStr []byte) (success bool, err error)

Verify 验证签名是否有效 参数:

  • data: 原始数据
  • sigStr: 签名数据

返回值:

  • bool: 签名是否有效
  • error: 错误信息

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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