crypto

package
v1.1.10 Latest Latest
Warning

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

Go to latest
Published: Apr 5, 2026 License: MIT Imports: 16 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func PrintEd25519Base64 added in v1.1.10

func PrintEd25519Base64()

PrintEd25519Base64 本地快速打印一对 Base64 Ed25519 密钥(调试用)

Types

type Cipher

type Cipher interface {
	GetPrivateKey() (interface{}, string)
	GetPublicKey() (interface{}, string)
	Encrypt(msg, aad []byte) (string, error)
	Decrypt(msg string, aad []byte) ([]byte, error)
	Sign(msg []byte) ([]byte, error)
	Verify(msg, sign []byte) error
}

type Ed25519Object added in v1.1.10

type Ed25519Object struct {
	PrivateKeyBase64 string
	PublicKeyBase64  string
	// contains filtered or unexported fields
}

func CreateEd25519WithBase64 added in v1.1.10

func CreateEd25519WithBase64(prkB64, peerPubB64 string) (*Ed25519Object, error)

CreateEd25519WithBase64 按「本端私钥 + 对端公钥」加载身份,用于双向外层签名(Sign 用私钥,Verify 用对端公钥)。

HTTP、WebSocket 与 gRPC(CreateX25519RPCWithBase64)彼此独立配置。 镜像关系:服务端配置为(服务端私钥, 客户端公钥),客户端配置为(客户端私钥, 服务端公钥)。

func (*Ed25519Object) CreateEd25519 added in v1.1.10

func (self *Ed25519Object) CreateEd25519() error

func (*Ed25519Object) Decrypt added in v1.1.10

func (self *Ed25519Object) Decrypt(msg string, aad []byte) ([]byte, error)

func (*Ed25519Object) Encrypt added in v1.1.10

func (self *Ed25519Object) Encrypt(msg, aad []byte) (string, error)

func (*Ed25519Object) GetPrivateKey added in v1.1.10

func (self *Ed25519Object) GetPrivateKey() (interface{}, string)

func (*Ed25519Object) GetPublicKey added in v1.1.10

func (self *Ed25519Object) GetPublicKey() (interface{}, string)

func (*Ed25519Object) LoadEd25519 added in v1.1.10

func (self *Ed25519Object) LoadEd25519(b64 string) error

func (*Ed25519Object) Sign added in v1.1.10

func (self *Ed25519Object) Sign(msg []byte) ([]byte, error)

func (*Ed25519Object) Verify added in v1.1.10

func (self *Ed25519Object) Verify(msg, sign []byte) error

type RsaObj

type RsaObj struct {
	// 16字节string字段组
	PrivateKeyBase64 string
	PublicKeyBase64  string
	// contains filtered or unexported fields
}

func (*RsaObj) CreateRsa1024

func (self *RsaObj) CreateRsa1024() error

func (*RsaObj) CreateRsa2048

func (self *RsaObj) CreateRsa2048() error

func (*RsaObj) CreateRsaFile

func (self *RsaObj) CreateRsaFile(keyfile, pemfile string) error

func (*RsaObj) CreateRsaFileBase64

func (self *RsaObj) CreateRsaFileBase64(b ...int) error

func (*RsaObj) CreateRsaPemFile

func (self *RsaObj) CreateRsaPemFile(pemfile string) error

func (*RsaObj) Decrypt

func (self *RsaObj) Decrypt(msg string, aad []byte) ([]byte, error)

func (*RsaObj) Encrypt

func (self *RsaObj) Encrypt(msg, aad []byte) (string, error)

func (*RsaObj) GetPrivateKey

func (self *RsaObj) GetPrivateKey() (interface{}, string)

func (*RsaObj) GetPublicKey

func (self *RsaObj) GetPublicKey() (interface{}, string)

func (*RsaObj) LoadRsaFile

func (self *RsaObj) LoadRsaFile(filePath string) error

func (*RsaObj) LoadRsaKeyFileBase64

func (self *RsaObj) LoadRsaKeyFileBase64(fileBase64 string) error

func (*RsaObj) LoadRsaPemFile

func (self *RsaObj) LoadRsaPemFile(filePath string) error

func (*RsaObj) LoadRsaPemFileBase64

func (self *RsaObj) LoadRsaPemFileBase64(fileBase64 string) error

func (*RsaObj) Sign

func (self *RsaObj) Sign(msg []byte) ([]byte, error)

func (*RsaObj) Verify

func (self *RsaObj) Verify(msg, sign []byte) error

type X25519Object added in v1.1.10

type X25519Object struct {
	PrivateKeyBase64 string
	PublicKeyBase64  string
	// contains filtered or unexported fields
}

X25519Object 匿名通道(Plan2)使用的临时 X25519 密钥对,基于标准库 crypto/ecdh(Curve25519)。

func (*X25519Object) CreateX25519 added in v1.1.10

func (self *X25519Object) CreateX25519() error

CreateX25519 生成新的 X25519 密钥对,并填充 PublicKeyBase64。

func (*X25519Object) Decrypt added in v1.1.10

func (self *X25519Object) Decrypt(msg string, aad []byte) ([]byte, error)

func (*X25519Object) Encrypt added in v1.1.10

func (self *X25519Object) Encrypt(msg, aad []byte) (string, error)

func (*X25519Object) GetPrivateKey added in v1.1.10

func (self *X25519Object) GetPrivateKey() (interface{}, string)

func (*X25519Object) GetPublicKey added in v1.1.10

func (self *X25519Object) GetPublicKey() (interface{}, string)

func (*X25519Object) LoadX25519PrivateFromBase64 added in v1.1.10

func (self *X25519Object) LoadX25519PrivateFromBase64(b64 string) error

LoadX25519PrivateFromBase64 从 Base64 加载 X25519 私钥,并推导公钥与 PublicKeyBase64。

func (*X25519Object) SetPeerPublicKeyForEncrypt added in v1.1.10

func (self *X25519Object) SetPeerPublicKeyForEncrypt(peer *ecdh.PublicKey)

SetPeerPublicKeyForEncrypt 设置接收方 X25519 公钥;调用 Encrypt 前必须设置。 使用 ecc.EncryptX25519(nil, …) 路径,避免 eccrypto 在加密后清零传入的私钥导致本对象私钥损坏。

func (*X25519Object) Sign added in v1.1.10

func (self *X25519Object) Sign(msg []byte) ([]byte, error)

func (*X25519Object) Verify added in v1.1.10

func (self *X25519Object) Verify(msg, sign []byte) error

type X25519RPCObject added in v1.1.10

type X25519RPCObject struct {
	PrivateKeyBase64 string
	PublicKeyBase64  string
	PeerPublicKeyB64 string
	// contains filtered or unexported fields
}

X25519RPCObject 供 gRPC RPCX 使用:本端 X25519 私钥 + 对端 X25519 公钥。 P=1 业务体:ecc.EncryptX25519(对端公钥,载荷前向保密)。 静态 ECDH 共享秘密仅用于 HMAC 生成/校验 S;protobuf 的 e 字段不使用。

func (*X25519RPCObject) Decrypt added in v1.1.10

func (o *X25519RPCObject) Decrypt(msg string, aad []byte) ([]byte, error)

func (*X25519RPCObject) Encrypt added in v1.1.10

func (o *X25519RPCObject) Encrypt(msg, aad []byte) (string, error)

func (*X25519RPCObject) GetPrivateKey added in v1.1.10

func (o *X25519RPCObject) GetPrivateKey() (interface{}, string)

func (*X25519RPCObject) GetPublicKey added in v1.1.10

func (o *X25519RPCObject) GetPublicKey() (interface{}, string)

func (*X25519RPCObject) RPCXCacheKeyBytes added in v1.1.10

func (o *X25519RPCObject) RPCXCacheKeyBytes() []byte

RPCXCacheKeyBytes 对端 X25519 公钥 32 字节,用于本地缓存索引。

func (*X25519RPCObject) RPCXDecryptPayload added in v1.1.10

func (o *X25519RPCObject) RPCXDecryptPayload(ciphertext, additionalData []byte) ([]byte, error)

RPCXDecryptPayload 解密 RPCXEncryptPayload 密文(本端私钥)。

func (*X25519RPCObject) RPCXEncryptPayload added in v1.1.10

func (o *X25519RPCObject) RPCXEncryptPayload(plaintext, additionalData []byte) ([]byte, error)

RPCXEncryptPayload P=1:ecc.EncryptX25519(nil, 对端公钥, …),与 eccrypto DecryptX25519 配对。

func (*X25519RPCObject) RPCXSharedSecret added in v1.1.10

func (o *X25519RPCObject) RPCXSharedSecret() ([]byte, error)

RPCXSharedSecret 返回共享秘密的副本(调用方可安全 ClearData,不影响对象内缓存)。

func (*X25519RPCObject) Sign added in v1.1.10

func (o *X25519RPCObject) Sign(msg []byte) ([]byte, error)

func (*X25519RPCObject) Verify added in v1.1.10

func (o *X25519RPCObject) Verify(msg, sign []byte) error

Jump to

Keyboard shortcuts

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