codec

package module
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: May 6, 2023 License: Apache-2.0 Imports: 21 Imported by: 20

README

codec

加密解密库

Documentation

Index

Constants

View Source
const (
	AlgoAES128CBC = `AES-128-CBC`
	AlgoAES192CBC = `AES-192-CBC`
	AlgoAES256CBC = `AES-256-CBC`
	AlgoAES128ECB = `AES-128-ECB`
	AlgoAES192ECB = `AES-192-ECB`
	AlgoAES256ECB = `AES-256-ECB`
)
View Source
const (
	KeyAES128 = `AES-128`
	KeyAES192 = `AES-192`
	KeyAES256 = `AES-256`
)

Variables

View Source
var (
	ErrDataTooLarge     = errors.New("message too long for RSA public key size")
	ErrDataLength       = errors.New("data length error")
	ErrDataBroken       = errors.New("data broken, first byte is not zero")
	ErrKeyPairDismatch  = errors.New("data is not encrypted by the private key")
	ErrDecryption       = errors.New("decryption error")
	ErrPublicKey        = errors.New("get public key error")
	ErrPrivateKey       = errors.New("get private key error")
	ErrPublicKeyNotSet  = errors.New(`please set the public key in advance`)
	ErrPrivateKeyNotSet = errors.New(`please set the private key in advance`)
)
View Source
var AESKeyTypes = map[string]int{
	KeyAES128: aes128KeyLen,
	KeyAES192: aes192KeyLen,
	KeyAES256: aes256KeyLen,
}

AESKeyTypes AES Key类型

View Source
var FixedAESKey = FixedKeyDefault

Functions

func FixedKeyByRepeatContent added in v0.2.3

func FixedKeyByRepeatContent(keyLen int, key []byte) []byte

func FixedKeyByWhitespacePrefix added in v0.2.3

func FixedKeyByWhitespacePrefix(keyLen int, key []byte) []byte

func FixedKeyDefault added in v0.3.0

func FixedKeyDefault(keyLen int, key []byte) []byte

func GenDESKey added in v0.2.0

func GenDESKey(key []byte) []byte

func Md5bytes added in v0.3.0

func Md5bytes(v []byte) []byte

func Md5str added in v0.3.0

func Md5str(v string) string

func NewECBDecrypter

func NewECBDecrypter(b cipher.Block) cipher.BlockMode

NewECBDecrypter returns a BlockMode which decrypts in electronic code book mode, using the given Block.

func NewECBEncrypter

func NewECBEncrypter(b cipher.Block) cipher.BlockMode

NewECBEncrypter returns a BlockMode which encrypts in electronic code book mode, using the given Block.

func PKCS5Padding

func PKCS5Padding(ciphertext []byte, blockSize int) []byte

func PKCS5UnPadding

func PKCS5UnPadding(origData []byte) []byte

func PKCS7Padding

func PKCS7Padding(ciphertext []byte, blockSize int) []byte

func PKCS7UnPadding

func PKCS7UnPadding(origData []byte) []byte

func ZeroPadding

func ZeroPadding(ciphertext []byte, blockSize int) []byte

func ZeroUnPadding

func ZeroUnPadding(origData []byte) []byte

Types

type AES added in v0.2.0

type AES struct {
	Codec
}

func NewAES added in v0.2.0

func NewAES(keyTypes ...string) *AES

type AESCBC added in v0.2.0

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

func NewAESCBC added in v0.2.0

func NewAESCBC(keyTypes ...string) *AESCBC

func (*AESCBC) Decode added in v0.2.0

func (c *AESCBC) Decode(cryptedData, authKey string) string

func (*AESCBC) DecodeBytes added in v0.2.0

func (c *AESCBC) DecodeBytes(cryptedData, authKey []byte) []byte

func (*AESCBC) Encode added in v0.2.0

func (c *AESCBC) Encode(rawData, authKey string) string

func (*AESCBC) EncodeBytes added in v0.2.0

func (c *AESCBC) EncodeBytes(rawData, authKey []byte) []byte

func (AESCBC) GenKey added in v0.3.0

func (a AESCBC) GenKey(key []byte, typ ...string) []byte

func (AESCBC) GetKey added in v0.3.0

func (a AESCBC) GetKey(key []byte) []byte

func (AESCBC) SetKeyFixer added in v0.3.0

func (a AESCBC) SetKeyFixer(fixer KeyFixer)

type AESECB added in v0.2.0

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

func NewAESECB added in v0.2.0

func NewAESECB(keyTypes ...string) *AESECB

func (*AESECB) Decode added in v0.2.0

func (c *AESECB) Decode(cryptedData, authKey string) string

func (*AESECB) DecodeBytes added in v0.2.0

func (c *AESECB) DecodeBytes(cryptedData, authKey []byte) []byte

func (*AESECB) Encode added in v0.2.0

func (c *AESECB) Encode(rawData, authKey string) string

func (*AESECB) EncodeBytes added in v0.2.0

func (c *AESECB) EncodeBytes(rawData, authKey []byte) []byte

func (AESECB) GenKey added in v0.3.0

func (a AESECB) GenKey(key []byte, typ ...string) []byte

func (AESECB) GetKey added in v0.3.0

func (a AESECB) GetKey(key []byte) []byte

func (AESECB) SetKeyFixer added in v0.3.0

func (a AESECB) SetKeyFixer(fixer KeyFixer)

type Codec

type Codec interface {
	Encode(rawData, authKey string) string
	Decode(cryptedData, authKey string) string
	EncodeBytes(rawData, authKey []byte) []byte
	DecodeBytes(cryptedData, authKey []byte) []byte
	SetKeyFixer(fixer KeyFixer)
}
var Default Codec = NewAES()

type DESCBC added in v0.2.0

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

func NewDESCBC added in v0.2.0

func NewDESCBC() *DESCBC

func (*DESCBC) Decode added in v0.2.0

func (d *DESCBC) Decode(cryptedStr, secret string) string

Decode DES CBC解密

func (*DESCBC) DecodeBytes added in v0.2.0

func (d *DESCBC) DecodeBytes(crypted, secret []byte) []byte

func (*DESCBC) Encode added in v0.2.0

func (d *DESCBC) Encode(text, secret string) string

Encode DES CBC加密

func (*DESCBC) EncodeBytes added in v0.2.0

func (d *DESCBC) EncodeBytes(text, secret []byte) []byte

func (*DESCBC) GenKey added in v0.2.0

func (d *DESCBC) GenKey(key []byte) []byte

func (DESCBC) GetKey added in v0.3.0

func (a DESCBC) GetKey(key []byte) []byte

func (DESCBC) SetKeyFixer added in v0.3.0

func (a DESCBC) SetKeyFixer(fixer KeyFixer)

type DESECB added in v0.2.0

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

func NewDESECB added in v0.2.0

func NewDESECB() *DESECB

func (*DESECB) Decode added in v0.2.0

func (d *DESECB) Decode(crypted, secret string) string

func (*DESECB) DecodeBytes added in v0.2.0

func (d *DESECB) DecodeBytes(crypted, secret []byte) []byte

func (*DESECB) Encode added in v0.2.0

func (d *DESECB) Encode(text, secret string) string

func (*DESECB) EncodeBytes added in v0.2.0

func (d *DESECB) EncodeBytes(text, secret []byte) []byte

func (*DESECB) GenKey added in v0.2.0

func (d *DESECB) GenKey(key []byte) []byte

func (DESECB) GetKey added in v0.3.0

func (a DESECB) GetKey(key []byte) []byte

func (DESECB) SetKeyFixer added in v0.3.0

func (a DESECB) SetKeyFixer(fixer KeyFixer)

type KeyFixer added in v0.3.0

type KeyFixer func(keyLen int, key []byte) []byte

type RSA added in v0.0.2

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

func NewRSA added in v0.0.2

func NewRSA() *RSA

func (*RSA) PrivateKey added in v0.0.2

func (r *RSA) PrivateKey() *RSAPrivateKey

func (*RSA) PublicKey added in v0.0.2

func (r *RSA) PublicKey() *RSAPublicKey

func (*RSA) SetPrivateKey added in v0.0.2

func (r *RSA) SetPrivateKey(privateKey *RSAPrivateKey) *RSA

func (*RSA) SetPrivateKeyBytes added in v0.1.1

func (r *RSA) SetPrivateKeyBytes(privateKey []byte) (err error)

func (*RSA) SetPublicKey added in v0.0.2

func (r *RSA) SetPublicKey(publicKey *RSAPublicKey) *RSA

func (*RSA) SetPublicKeyBytes added in v0.1.1

func (r *RSA) SetPublicKeyBytes(publicKey []byte) (err error)

type RSAPrivateKey added in v0.0.2

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

func NewRSAPrivateKey added in v0.0.2

func NewRSAPrivateKey(privateKey []byte) (r *RSAPrivateKey, err error)

设置私钥

func (*RSAPrivateKey) Decrypt added in v0.0.2

func (r *RSAPrivateKey) Decrypt(input []byte) ([]byte, error)

私钥解密

func (*RSAPrivateKey) Encrypt added in v0.0.2

func (rsas *RSAPrivateKey) Encrypt(input []byte) ([]byte, error)

私钥加密

func (*RSAPrivateKey) GetPrivateKey added in v0.1.0

func (r *RSAPrivateKey) GetPrivateKey() (*rsa.PrivateKey, error)

*rsa.PrivateKey

func (*RSAPrivateKey) SetPrivateKey added in v0.1.0

func (r *RSAPrivateKey) SetPrivateKey(privateKey *rsa.PrivateKey) *RSAPrivateKey

func (*RSAPrivateKey) SetPrivateKeyBytes added in v0.1.0

func (r *RSAPrivateKey) SetPrivateKeyBytes(privateKey []byte) error

func (*RSAPrivateKey) SignMd5 added in v0.0.3

func (r *RSAPrivateKey) SignMd5(data []byte) ([]byte, error)

*

  • 使用RSAWithMD5算法签名

func (*RSAPrivateKey) SignSha1 added in v0.0.3

func (r *RSAPrivateKey) SignSha1(data []byte) ([]byte, error)

*

  • 使用RSAWithSHA1算法签名

func (*RSAPrivateKey) SignSha256 added in v0.0.3

func (r *RSAPrivateKey) SignSha256(data []byte) ([]byte, error)

*

  • 使用RSAWithSHA256算法签名

type RSAPublicKey added in v0.0.2

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

func NewRSAPublicKey added in v0.0.2

func NewRSAPublicKey(publicKey []byte) (r *RSAPublicKey, err error)

设置公钥

func (*RSAPublicKey) Decrypt added in v0.0.2

func (r *RSAPublicKey) Decrypt(input []byte) ([]byte, error)

公钥解密

func (*RSAPublicKey) Encrypt added in v0.0.2

func (r *RSAPublicKey) Encrypt(input []byte) ([]byte, error)

公钥加密

func (*RSAPublicKey) GetPublicKey added in v0.1.0

func (r *RSAPublicKey) GetPublicKey() (*rsa.PublicKey, error)

*rsa.PrivateKey

func (*RSAPublicKey) SetPublicKey added in v0.1.0

func (r *RSAPublicKey) SetPublicKey(publicKey *rsa.PublicKey) *RSAPublicKey

func (*RSAPublicKey) SetPublicKeyBytes added in v0.1.0

func (r *RSAPublicKey) SetPublicKeyBytes(publicKey []byte) error

func (*RSAPublicKey) VerifySignMd5 added in v0.0.3

func (r *RSAPublicKey) VerifySignMd5(data string, signData string) error

*

  • 使用RSAWithMD5验证签名

func (*RSAPublicKey) VerifySignSha1 added in v0.0.3

func (r *RSAPublicKey) VerifySignSha1(data []byte, sign []byte) error

*

  • 使用RSAWithSHA1验证签名

func (*RSAPublicKey) VerifySignSha256 added in v0.0.3

func (r *RSAPublicKey) VerifySignSha256(data []byte, sign []byte) error

*

  • 使用RSAWithSHA256验证签名

type SafeKeys added in v0.2.1

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

func NewSafeKeys added in v0.2.1

func NewSafeKeys() *SafeKeys

func (*SafeKeys) Get added in v0.2.1

func (s *SafeKeys) Get(rawKey string) (fixedKey []byte, ok bool)

func (*SafeKeys) Set added in v0.2.1

func (s *SafeKeys) Set(rawKey string, fixedKey []byte)

Jump to

Keyboard shortcuts

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