cryptokit

package
v0.10.2 Latest Latest
Warning

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

Go to latest
Published: Mar 20, 2026 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DecryptCBC

func DecryptCBC(key, iv, data []byte) ([]byte, error)

DecryptCBC AES-CBC 解密(pkcs#7)

func DecryptCFB

func DecryptCFB(key, iv, data []byte) ([]byte, error)

DecryptCFB AES-CFB 解密

func DecryptCTR

func DecryptCTR(key, iv, data []byte) ([]byte, error)

DecryptCTR AES-CTR 解密

func DecryptECB

func DecryptECB(key, data []byte) ([]byte, error)

DecryptECB AES-ECB 解密(pkcs#7)

func DecryptGCM

func DecryptGCM(key, nonce []byte, data, aad []byte, opt *GCMOption) ([]byte, error)

DecryptGCM AES-GCM 解密 (默认:NonceSize = 12 & TagSize = 16)

func DecryptOFB

func DecryptOFB(key, iv, data []byte) ([]byte, error)

DecryptOFB AES-OFB 解密

func FormatPrivatePemRaw

func FormatPrivatePemRaw(raw string, pemType PrivatePEMType) string

FormatPrivatePemRaw formats base64-encoded private key to PEM format

func FormatPublicPemRaw

func FormatPublicPemRaw(raw string, pemType PublicPEMType) string

FormatPublicPemRaw formats base64-encoded public key to PEM format

func GenPKCS1Key

func GenPKCS1Key(bitSize int) (privateKey, publicKey []byte, err error)

GenPKCS1Key 生成 RSA PKCS#1 私钥和公钥

func GenPKCS8Key

func GenPKCS8Key(bitSize int) (privateKey, publicKey []byte, err error)

GenPKCS8Key 生成 RSA PKCS#8 私钥和公钥

func NewECBDecrypter

func NewECBDecrypter(b cipher.Block) cipher.BlockMode

NewECBDecrypter 生成ECB解密器

func NewECBEncrypter

func NewECBEncrypter(b cipher.Block) cipher.BlockMode

NewECBEncrypter 生成ECB加密器

func PfxToCert

func PfxToCert(pfxData []byte, password string) (tls.Certificate, error)

LoadCertFromPfxFile 通过pfx(p12)证书文件生成TLS证书 注意:证书需采用「TripleDES-SHA1」加密方式

Types

type CipherText

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

CipherText 加密文本

func EncryptCBC

func EncryptCBC(key, iv, data []byte, paddingSize ...uint8) (*CipherText, error)

EncryptCBC AES-CBC 加密(pkcs#7, 默认填充BlockSize)

func EncryptCFB

func EncryptCFB(key, iv, data []byte) (*CipherText, error)

EncryptCFB AES-CFB 加密

func EncryptCTR

func EncryptCTR(key, iv, data []byte) (*CipherText, error)

EncryptCTR AES-CTR 加密

func EncryptECB

func EncryptECB(key, data []byte, paddingSize ...uint8) (*CipherText, error)

EncryptECB AES-ECB 加密(pkcs#7, 默认填充BlockSize)

func EncryptGCM

func EncryptGCM(key, nonce, data, aad []byte, opt *GCMOption) (*CipherText, error)

EncryptGCM AES-GCM 加密 (默认:NonceSize = 12 & TagSize = 16)

func EncryptOFB

func EncryptOFB(key, iv, data []byte) (*CipherText, error)

EncryptOFB AES-OFB 加密

func (*CipherText) Bytes

func (ct *CipherText) Bytes() []byte

Bytes 获取加密数据的bytes

func (*CipherText) Data

func (ct *CipherText) Data() []byte

Data 获取GCM加密数据的真实数据

func (*CipherText) String

func (ct *CipherText) String() string

Bytes 返回加密数据base64字符串

func (*CipherText) Tag

func (ct *CipherText) Tag() []byte

Tag 获取GCM加密数据的tag

type GCMOption

type GCMOption struct {
	TagSize   int
	NonceSize int
}

GCMOption AES-GCM 加密选项(二选一),指定 TagSize[12, 16] 和 NonceSize(0, ~)

type PrivateKey

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

PrivateKey RSA私钥

func NewPrivateKey

func NewPrivateKey(data []byte) (*PrivateKey, error)

NewPrivateKey 生成RSA私钥

func PfxToPrivateKey

func PfxToPrivateKey(pfxData []byte, password string) (*PrivateKey, error)

PfxToPrivateKey pfx(p12)证书生成RSA私钥

注意:证书需采用「TripleDES-SHA1」加密方式

func (*PrivateKey) Decrypt

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

Decrypt RSA私钥 PKCS#1 v1.5 解密

func (*PrivateKey) DecryptOAEP

func (pk *PrivateKey) DecryptOAEP(hash crypto.Hash, data []byte) ([]byte, error)

DecryptOAEP RSA私钥 PKCS#1 OAEP 解密

func (*PrivateKey) Sign

func (pk *PrivateKey) Sign(hash crypto.Hash, data []byte) ([]byte, error)

Sign RSA私钥签名

func (*PrivateKey) SignPSS

func (pk *PrivateKey) SignPSS(hash crypto.Hash, data []byte, opts *rsa.PSSOptions) ([]byte, error)

SignPSS RSA私钥签名(PSS填充)

type PrivatePEMType

type PrivatePEMType string
const (
	RSA_PRIVATE_KEY PrivatePEMType = "RSA PRIVATE KEY" // PKCS#1
	PRIVATE_KEY     PrivatePEMType = "PRIVATE KEY"     // PKCS#8
)

type PublicKey

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

PublicKey RSA公钥

func NewPublicKey

func NewPublicKey(data []byte) (*PublicKey, error)

NewPublicKey 生成RSA公钥

X.509证书格式: -----BEGIN CERTIFICATE----- | -----END CERTIFICATE-----
X.509证书转换PEM: openssl x509 -inform der -in cert.cer -out cert.pem

func (*PublicKey) Encrypt

func (pk *PublicKey) Encrypt(data []byte) ([]byte, error)

Encrypt RSA公钥 PKCS#1 v1.5 加密

func (*PublicKey) EncryptOAEP

func (pk *PublicKey) EncryptOAEP(hash crypto.Hash, data []byte) ([]byte, error)

EncryptOAEP RSA公钥 PKCS#1 OAEP 加密

func (*PublicKey) Verify

func (pk *PublicKey) Verify(hash crypto.Hash, data, signature []byte) error

Verify RSA公钥验签

func (*PublicKey) VerifyPSS

func (pk *PublicKey) VerifyPSS(hash crypto.Hash, data, signature []byte, opts *rsa.PSSOptions) error

VerifyPSS RSA公钥验签(PSS填充)

type PublicPEMType

type PublicPEMType string
const (
	RSA_PUBLIC_KEY PublicPEMType = "RSA PUBLIC KEY" // PKCS#1
	PUBLIC_KEY     PublicPEMType = "PUBLIC KEY"     // PKCS#8
	CERTIFICATE    PublicPEMType = "CERTIFICATE"    // X.509 证书
)

Jump to

Keyboard shortcuts

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