cipherx

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Jun 21, 2024 License: GPL-3.0 Imports: 24 Imported by: 0

Documentation

Overview

*

  • @copyright www.ruomm.com
  • @author 牛牛-wanruome@126.com
  • @create 2024/6/21 13:25
  • @version 1.0

*

  • @copyright www.ruomm.com
  • @author 牛牛-wanruome@126.com
  • @create 2024/6/20 17:52
  • @version 1.0

*

  • @copyright 像衍科技-idr.ai
  • @author 牛牛-研发部-www.ruomm.com
  • @create 2024/1/17 21:23
  • @version 1.0

*

  • @copyright www.ruomm.com
  • @author 牛牛-wanruome@126.com
  • @create 2024/6/20 09:47
  • @version 1.0

*

  • @copyright www.ruomm.com
  • @author 牛牛-wanruome@126.com
  • @create 2024/6/21 14:07
  • @version 1.0

*

  • @copyright 像衍科技-idr.ai
  • @author 牛牛-研发部-www.ruomm.com
  • @create 2024/1/17 22:39
  • @version 1.0

*

  • @copyright 像衍科技-idr.ai
  • @author 牛牛-研发部-www.ruomm.com
  • @create 2024/1/17 22:39
  • @version 1.0

*

  • @copyright 像衍科技-idr.ai
  • @author 牛牛-研发部-www.ruomm.com
  • @create 2024/1/17 22:01
  • @version 1.0

*

  • @copyright 像衍科技-idr.ai
  • @author 牛牛-研发部-www.ruomm.com
  • @create 2024/1/17 22:01
  • @version 1.0

*

  • @copyright www.ruomm.com
  • @author 牛牛-wanruome@126.com
  • @create 2024/6/20 09:50
  • @version 1.0

*

  • @copyright www.ruomm.com
  • @author 牛牛-wanruome@126.com
  • @create 2024/6/20 09:50
  • @version 1.0

*

  • @copyright www.ruomm.com
  • @author 牛牛-wanruome@126.com
  • @create 2024/6/20 17:52
  • @version 1.0

*

  • @copyright 像衍科技-idr.ai
  • @author 牛牛-研发部-www.ruomm.com
  • @create 2024/1/17 22:01
  • @version 1.0

Index

Constants

View Source
const (
	MODE_KEY_BASE64       MODE_KEY     = 1
	MODE_KEY_HEX_LOWER    MODE_KEY     = 2
	MODE_KEY_HEX_UPPER    MODE_KEY     = 3
	MODE_KEY_STRING       MODE_KEY     = 4
	MODE_KEY_PEM          MODE_KEY     = 5
	MODE_ENCODE_BASE64    MODE_ENCODE  = 1
	MODE_ENCODE_HEX_LOWER MODE_ENCODE  = 2
	MODE_ENCODE_HEX_UPPER MODE_ENCODE  = 3
	MODE_PADDING_PKCS7    MODE_PADDING = "pkcs7"
	MODE_PADDING_PKCS5    MODE_PADDING = "pkcs5"
	FILE_BUFFER_SIZE                   = 1024
)

Variables

This section is empty.

Functions

func DecodingToByte

func DecodingToByte(encodeMode MODE_ENCODE, dataStr string) ([]byte, error)

func EncodingToString

func EncodingToString(encodeMode MODE_ENCODE, data []byte) (string, error)

func FormatBigInt

func FormatBigInt(bi *big.Int) []byte

func FormatKeyByData

func FormatKeyByData(keyData []byte, tag string) (string, error)

格式化密钥

func FormatKeyByString

func FormatKeyByString(keyStr string, tag string) (string, error)

格式化密钥

func GenKeyData

func GenKeyData(keyLen int) []byte

func GenKeyString

func GenKeyString(keyMode MODE_KEY, keyLen int, tag string) (string, error)

func KeyIVByteToString

func KeyIVByteToString(keyMode MODE_KEY, keyData []byte, tag string) (string, error)

func KeyIVStringToByte

func KeyIVStringToByte(keyMode MODE_KEY, keyStr string) ([]byte, error)

func ParseBigInt

func ParseBigInt(iBytes []byte) (*big.Int, error)

func Pkcs5Padding

func Pkcs5Padding(data []byte, blockSize int) []byte

func Pkcs5UnPadding

func Pkcs5UnPadding(decrypted []byte) []byte

*

  • 删除解密后明文的补位字符 *
  • @param decrypted 解密后的明文
  • @return 删除补位字符后的明文

func Pkcs7Byte

func Pkcs7Byte(a int) byte

*

  • 将数字转化成ASCII码对应的字符,用于对明文进行补码 *
  • @param a 需要转化的数字
  • @return 转化得到的字符

func Pkcs7Padding

func Pkcs7Padding(data []byte, blockSize int) []byte

func Pkcs7UnPadding

func Pkcs7UnPadding(decrypted []byte) []byte

*

  • 删除解密后明文的补位字符 *
  • @param decrypted 解密后的明文
  • @return 删除补位字符后的明文

func ReadFormatKey

func ReadFormatKey(str string) ([]byte, error)

读取格式化密钥

func RsaKeyByteToString

func RsaKeyByteToString(keyMode MODE_KEY, keyData []byte, public bool) (string, error)

func RsaKeyStringToByte

func RsaKeyStringToByte(keyMode MODE_KEY, keyStr string) ([]byte, error)

func Sm2KeyByteToString

func Sm2KeyByteToString(keyMode MODE_KEY, keyData []byte, public bool) (string, error)

func Sm2KeyStringToByte

func Sm2KeyStringToByte(keyMode MODE_KEY, keyStr string) ([]byte, error)

func Sm3Sum

func Sm3Sum(sha []byte) ([]byte, error)

func Sm3SumByString

func Sm3SumByString(encodeMode MODE_ENCODE, str string) (string, error)

func Sm3SumFile

func Sm3SumFile(origFile string) ([]byte, error)

func Sm3SumFileByString

func Sm3SumFileByString(encodeMode MODE_ENCODE, origFile string) (string, error)

func Sum

func Sum(hash crypto.Hash, sha []byte) ([]byte, error)

func SumByString

func SumByString(encodeMode MODE_ENCODE, hash crypto.Hash, str string) (string, error)

func SumFile

func SumFile(hash crypto.Hash, origFile string) ([]byte, error)

func SumFileByString

func SumFileByString(encodeMode MODE_ENCODE, hash crypto.Hash, origFile string) (string, error)

Types

type EncryptHelper

type EncryptHelper interface {
	// key模式
	ModeOfKey() MODE_KEY
	// 字节转字符串编码方案
	ModeOfEncode() MODE_ENCODE
	// Padding的模式
	ModeOfPadding() MODE_PADDING

	// 设置key字节数组
	SetKeyData(key []byte)
	// 设置iv字节数组
	SetIVData(iv []byte)
	// 设置key字符串
	SetKeyString(keyStr string) error
	// 设置iv字符串
	SetIVString(ivStr string) error
	// 获取key字节数组
	GetKeyData() []byte
	// 设置iv字节数组
	GetIVData() []byte
	// 获取key字符串
	GetKeyString() (string, error)
	// 获取iv字符串
	GetIVString() (string, error)
	// 设置Blocksize
	SetBlockSize(blockSize int)
	// 获取Blocksize
	GetBlockSize() (int, error)
	// 生成key或iv字节数组
	GenKeyIvData(len int) ([]byte, error)
	// 生成key或iv字符串
	GenKeyIvString(len int) (string, error)
	// 生成iv字符串
	GenIVString() (string, error)
	//// 生成iv字节数组
	//GenIVData() ([]byte, error)
	//// 生成iv字符串
	//GenIVString() (string, error)
	// 还原key或iv字符串为key或iv字节数组
	RestoreKeyIV(keyStr string) ([]byte, error)
	// 设置秘钥自动补充长度,AES自动补充为16、24、32,des自动补充为8、24
	SetAutoFillKey(autoFillKey bool)
	// ECB加密字节数组
	EncDataECB(data []byte) ([]byte, error)
	// CBC加密字节数组
	EncDataCBC(data []byte) ([]byte, error)
	// ECB解密字节数组
	DecDataECB(dataEnc []byte) ([]byte, error)
	// CBC解密字节数组
	DecDataCBC(dataEnc []byte) ([]byte, error)
	// ECB加密字符串
	EncStringECB(str string) (string, error)
	// CBC加密字符串
	EncStringCBC(str string) (string, error)
	// ECB解密字符串
	DecStringECB(strEnc string) (string, error)
	// CBC解密字符串
	DecStringCBC(strEnc string) (string, error)
	// ECB加密字符串
	EncFileECB(fileSrc string, fileEnc string) error
	// CBC加密字符串
	EncFileCBC(fileSrc string, fileEnc string) error
	// ECB解密字符串
	DecFileECB(fileEnc string, fileDest string) error
	// CBC解密字符串
	DecFileCBC(fileEnc string, fileDest string) error
	// Padding&UnPadding
	Padding(data []byte, blockSize int) []byte
	UnPadding(data []byte, blockSize int) []byte
}

type MODE_ENCODE

type MODE_ENCODE int

func ParseEncodeMode

func ParseEncodeMode(encodeMode MODE_ENCODE) MODE_ENCODE

type MODE_KEY

type MODE_KEY int

func ParseKeyMode

func ParseKeyMode(keyMode MODE_KEY) MODE_KEY

type MODE_PADDING

type MODE_PADDING string

func ParsePaddingMode

func ParsePaddingMode(paddingMode MODE_PADDING) MODE_PADDING

type RsaHelper

type RsaHelper interface {
	// 生成秘钥对
	GenrateKeyPair(bits int) error
	// 获取RSA秘钥对
	KeyPair() (*rsa.PrivateKey, *rsa.PublicKey)
	// 设置秘钥长度
	SetSizeOfKey(sizeOfKey int)
	// 获取秘钥长度
	GetSizeOfKey() int
	// 公钥长度
	SizeOfPublicKey() int
	// 秘钥长度
	SizeOfPrivateKey() int
	// 字节转字符串编码方案
	//ModeOfEncode() MODE_ENCODE
	// Padding的模式
	ModeOfPadding() MODE_PADDING
	// 设置公钥
	SetPubicKey(pubKey []byte) error
	// 设置私钥
	SetPrivateKey(priKey []byte) error
	// 加载公钥
	LoadPulicKey(modeOfKey MODE_KEY, pubKeyStr string) error
	// 加载私钥
	LoadPrivateKey(modeOfKey MODE_KEY, priKeyStr string) error
	// 格式化公钥
	FormatPublicKey(modeOfKey MODE_KEY) (string, error)
	// 格式化私钥
	FormatPrivateKey(modeOfKey MODE_KEY) (string, error)
	// 使用公钥进行PKCS1v15加密,待加密信息长度不能超过秘钥模长-11
	EncryptPKCS1v15(origMsg []byte) ([]byte, error)
	// 使用私钥进行PKCS1v15解密,解密后信息长度不超过秘钥模长-11
	DecryptPKCS1v15(encMsg []byte) ([]byte, error)
	// 使用公钥进行PKCS1v15加密,待加密信息长度超过秘钥模长-11则使用分段加密
	EncryptPKCS1v15Big(origMsg []byte) ([]byte, error)
	// 使用私钥进行PKCS1v15解密,待解密后信息长度超过秘钥模长则使用分段解密
	DecryptPKCS1v15Big(encMsg []byte) ([]byte, error)
	// 使用公钥进行PKCS1v15加密,待加密信息长度不能超过秘钥模长-11
	EncryptPKCS1v15String(encodeMode MODE_ENCODE, origStr string) (string, error)
	// 使用私钥进行PKCS1v15解密,解密后信息长度不超过秘钥模长-11
	DecryptPKCS1v15String(encodeMode MODE_ENCODE, encStr string) (string, error)
	// 使用公钥进行PKCS1v15加密,待加密信息长度超过秘钥模长-11则使用分段加密
	EncryptPKCS1v15StringBig(encodeMode MODE_ENCODE, origStr string) (string, error)
	// 使用私钥进行PKCS1v15解密,待解密后信息长度超过秘钥模长则使用分段解密
	DecryptPKCS1v15StringBig(encodeMode MODE_ENCODE, encStr string) (string, error)
	// 使用私钥进行签名-字节数组模式
	SignPSS(hash crypto.Hash, origData []byte, opts *rsa.PSSOptions) ([]byte, error)
	// 使用公钥验证签名-字节数组模式
	VerifyPSS(hash crypto.Hash, origData []byte, sig []byte, opts *rsa.PSSOptions) error
	// 使用私钥进行签名-字符串模式
	SignPSSByString(encodeMode MODE_ENCODE, hash crypto.Hash, origStr string, opts *rsa.PSSOptions) (string, error)
	// 使用公钥验证签名-字符串模式
	VerifyPSSByString(encodeMode MODE_ENCODE, hash crypto.Hash, origStr string, sigStr string, opts *rsa.PSSOptions) error
	// 使用公钥进行PKCS1v15文件加密
	EncryptPKCS1v15File(origFile string, encFile string, emptyEncrypt bool) error
	// 使用私钥进行PKCS1v15文件解密
	DecryptPKCS1v15File(encFile string, decFile string) error
	// 使用私钥进行签名-文件字节模式
	SignPSSFile(hash crypto.Hash, origFile string, opts *rsa.PSSOptions) ([]byte, error)
	// 使用公钥验证签名-文件字节模式
	VerifyPSSFile(hash crypto.Hash, origFile string, sig []byte, opts *rsa.PSSOptions) error
	// 使用私钥进行签名-文件字符串模式
	SignPSSFileByString(encodeMode MODE_ENCODE, hash crypto.Hash, origFile string, opts *rsa.PSSOptions) (string, error)
	// 使用公钥验证签名-文件字符串模式
	VerifyPSSFileByString(encodeMode MODE_ENCODE, hash crypto.Hash, origFile string, sigStr string, opts *rsa.PSSOptions) error
}

type SIGN_MARSHAL_MODE

type SIGN_MARSHAL_MODE int
const (
	SIGN_MARSHAL_ASN1 SIGN_MARSHAL_MODE = 0
	SIGN_MARSHAL_RS   SIGN_MARSHAL_MODE = 1
	SIGN_MARSHAL_SR   SIGN_MARSHAL_MODE = 2
)

type SM2_MODE

type SM2_MODE int

type Sm2Helper

type Sm2Helper interface {
	// 生成秘钥对
	GenrateKeyPair() error
	// 获取SM2秘钥对
	KeyPair() (*sm2.PrivateKey, *sm2.PublicKey)
	// 设置秘钥长度
	SetSizeOfKey(sizeOfKey int)
	// 获取秘钥长度
	GetSizeOfKey() int
	// 公钥长度
	SizeOfPublicKey() int
	// 秘钥长度
	SizeOfPrivateKey() int
	// Padding的模式
	ModeOfPadding() MODE_PADDING
	// 设置公钥
	SetPubicKey(pubKey []byte) error
	// 设置私钥
	SetPrivateKey(priKey []byte) error
	// 加载公钥
	LoadPulicKey(modeOfKey MODE_KEY, pubKeyStr string) error
	// 加载私钥
	LoadPrivateKey(modeOfKey MODE_KEY, priKeyStr string, pwd []byte) error
	// 格式化公钥
	FormatPublicKey(modeOfKey MODE_KEY) (string, error)
	// 格式化私钥
	FormatPrivateKey(modeOfKey MODE_KEY, pwd []byte) (string, error)
	// 设置签名数据格式化方式,ASN1、RS、SR
	SetSignMarshalMode(signMarshalMode SIGN_MARSHAL_MODE)
	// 使用公钥进行SM2加密-字节模式
	Encrypt(origMsg []byte, c1c2c3Mode bool) ([]byte, error)
	// 使用私钥进行SM2解密-字节模式
	Decrypt(encMsg []byte, c1c2c3Mode bool) ([]byte, error)
	// 使用公钥进行SM2加密-字符串模式
	EncryptString(encodeMode MODE_ENCODE, origStr string, c1c2c3Mode bool) (string, error)
	// 使用私钥进行SM2解密-字符串模式
	DecryptString(encodeMode MODE_ENCODE, encStr string, c1c2c3Mode bool) (string, error)

	// 使用公钥进行SM2加密-字节模式
	EncryptAsn1(origMsg []byte) ([]byte, error)
	// 使用私钥进行SM2解密-字节模式
	DecryptAsn1(encMsg []byte) ([]byte, error)
	// 使用公钥进行SM2加密-字符串模式
	EncryptAsn1String(encodeMode MODE_ENCODE, origStr string) (string, error)
	// 使用私钥进行SM2解密-字符串模式
	DecryptAsn1String(encodeMode MODE_ENCODE, encStr string) (string, error)
	// 使用私钥进行签名-字节数组模式
	Sm2Sign(origMsg []byte, uid []byte) ([]byte, error)
	// 使用公钥验证签名-字节数组模式
	Sm2Verify(origMsg []byte, uid []byte, sign []byte) (bool, error)
	// 使用私钥进行签名-字节串模式
	Sm2SignString(encodeMode MODE_ENCODE, origMsg string, uid []byte) (string, error)
	// 使用公钥验证签名-字节串模式
	Sm2VerifyString(encodeMode MODE_ENCODE, origMsg string, uid []byte, sigStr string) (bool, error)
}

type XAes

type XAes struct {
	ModeKey     MODE_KEY
	ModeEncode  MODE_ENCODE
	ModePadding MODE_PADDING
	Key         []byte
	Iv          []byte
	AutoFillKey bool // 秘钥自动补充长度,AES自动补充为16、24、32,des自动补充为8、24
	//KeyLen          int
	//IvLen           int
	BlockSize int
	//BlockSizeByKey  bool
	PaddingHelper   func(data []byte, blockSize int) []byte
	UnPaddingHelper func(data []byte, blockSize int) []byte
}

func (*XAes) DecDataCBC

func (x *XAes) DecDataCBC(dataEnc []byte) ([]byte, error)

CBC解密字节数组

func (*XAes) DecDataECB

func (x *XAes) DecDataECB(dataEnc []byte) ([]byte, error)

ECB解密字节数组

func (*XAes) DecFileCBC

func (x *XAes) DecFileCBC(pathEnc string, pathDest string) error

CBC解密字符串

func (*XAes) DecFileECB

func (x *XAes) DecFileECB(pathEnc string, pathDest string) error

ECB解密字符串

func (*XAes) DecStringCBC

func (x *XAes) DecStringCBC(strEnc string) (string, error)

CBC解密字符串

func (*XAes) DecStringECB

func (x *XAes) DecStringECB(strEnc string) (string, error)

ECB解密字符串

func (*XAes) EncDataCBC

func (x *XAes) EncDataCBC(data []byte) ([]byte, error)

CBC加密字节数组

func (*XAes) EncDataECB

func (x *XAes) EncDataECB(data []byte) ([]byte, error)

ECB加密字节数组

func (*XAes) EncFileCBC

func (x *XAes) EncFileCBC(pathSrc string, pathEnc string) error

CBC加密字符串

func (*XAes) EncFileECB

func (x *XAes) EncFileECB(pathSrc string, pathEnc string) error

ECB加密字符串

func (*XAes) EncStringCBC

func (x *XAes) EncStringCBC(str string) (string, error)

CBC加密字符串

func (*XAes) EncStringECB

func (x *XAes) EncStringECB(str string) (string, error)

ECB加密字符串

func (*XAes) GenIVString

func (x *XAes) GenIVString() (string, error)

生成iv字符串

func (*XAes) GenKeyIvData

func (x *XAes) GenKeyIvData(len int) ([]byte, error)

生成key或iv字节数组

func (*XAes) GenKeyIvString

func (x *XAes) GenKeyIvString(len int) (string, error)

生成key或iv字符串

func (*XAes) GetBlockSize

func (x *XAes) GetBlockSize() (int, error)

获取Blocksize

func (*XAes) GetIVData

func (x *XAes) GetIVData() []byte

设置iv字节数组

func (*XAes) GetIVString

func (x *XAes) GetIVString() (string, error)

获取iv字符串

func (*XAes) GetKeyData

func (x *XAes) GetKeyData() []byte

获取key字节数组

func (*XAes) GetKeyString

func (x *XAes) GetKeyString() (string, error)

获取key字符串

func (*XAes) ModeOfEncode

func (x *XAes) ModeOfEncode() MODE_ENCODE

字节转字符串编码方案

func (*XAes) ModeOfKey

func (x *XAes) ModeOfKey() MODE_KEY

key模式

func (*XAes) ModeOfPadding

func (x *XAes) ModeOfPadding() MODE_PADDING

Padding的模式

func (*XAes) Padding

func (x *XAes) Padding(data []byte, blockSize int) []byte

Padding&UnPadding

func (*XAes) RestoreKeyIV

func (x *XAes) RestoreKeyIV(keyStr string) ([]byte, error)

还原key或iv字符串为key或iv字节数组

func (*XAes) SetAutoFillKey

func (x *XAes) SetAutoFillKey(autoFillKey bool)

设置秘钥自动补充长度,AES自动补充为16、24、32,des自动补充为8、24

func (*XAes) SetBlockSize

func (x *XAes) SetBlockSize(blockSize int)

设置Blocksize

func (*XAes) SetIVData

func (x *XAes) SetIVData(iv []byte)

设置iv字节数组

func (*XAes) SetIVString

func (x *XAes) SetIVString(ivStr string) error

设置iv字符串

func (*XAes) SetKeyData

func (x *XAes) SetKeyData(key []byte)

设置key字节数组

func (*XAes) SetKeyString

func (x *XAes) SetKeyString(keyStr string) error

设置key字符串

func (*XAes) UnPadding

func (x *XAes) UnPadding(data []byte, blockSize int) []byte

type XDes

type XDes struct {
	ModeKey     MODE_KEY
	ModeEncode  MODE_ENCODE
	ModePadding MODE_PADDING
	Key         []byte
	Iv          []byte
	AutoFillKey bool // 秘钥自动补充长度,AES自动补充为16、24、32,des自动补充为8、24
	//KeyLen          int
	//IvLen           int
	BlockSize int
	//BlockSizeByKey  bool
	PaddingHelper   func(data []byte, blockSize int) []byte
	UnPaddingHelper func(data []byte, blockSize int) []byte
}

func (*XDes) DecDataCBC

func (x *XDes) DecDataCBC(dataEnc []byte) ([]byte, error)

CBC解密字节数组

func (*XDes) DecDataECB

func (x *XDes) DecDataECB(dataEnc []byte) ([]byte, error)

ECB解密字节数组

func (*XDes) DecFileCBC

func (x *XDes) DecFileCBC(pathEnc string, pathDest string) error

CBC解密字符串

func (*XDes) DecFileECB

func (x *XDes) DecFileECB(pathEnc string, pathDest string) error

ECB解密字符串

func (*XDes) DecStringCBC

func (x *XDes) DecStringCBC(strEnc string) (string, error)

CBC解密字符串

func (*XDes) DecStringECB

func (x *XDes) DecStringECB(strEnc string) (string, error)

ECB解密字符串

func (*XDes) EncDataCBC

func (x *XDes) EncDataCBC(data []byte) ([]byte, error)

CBC加密字节数组

func (*XDes) EncDataECB

func (x *XDes) EncDataECB(data []byte) ([]byte, error)

ECB加密字节数组

func (*XDes) EncFileCBC

func (x *XDes) EncFileCBC(pathSrc string, pathEnc string) error

CBC加密字符串

func (*XDes) EncFileECB

func (x *XDes) EncFileECB(pathSrc string, pathEnc string) error

ECB加密字符串

func (*XDes) EncStringCBC

func (x *XDes) EncStringCBC(str string) (string, error)

CBC加密字符串

func (*XDes) EncStringECB

func (x *XDes) EncStringECB(str string) (string, error)

ECB加密字符串

func (*XDes) GenIVString

func (x *XDes) GenIVString() (string, error)

生成iv字符串

func (*XDes) GenKeyIvData

func (x *XDes) GenKeyIvData(len int) ([]byte, error)

生成key或iv字节数组

func (*XDes) GenKeyIvString

func (x *XDes) GenKeyIvString(len int) (string, error)

生成key或iv字符串

func (*XDes) GetBlockSize

func (x *XDes) GetBlockSize() (int, error)

获取Blocksize

func (*XDes) GetIVData

func (x *XDes) GetIVData() []byte

设置iv字节数组

func (*XDes) GetIVString

func (x *XDes) GetIVString() (string, error)

获取iv字符串

func (*XDes) GetKeyData

func (x *XDes) GetKeyData() []byte

获取key字节数组

func (*XDes) GetKeyString

func (x *XDes) GetKeyString() (string, error)

获取key字符串

func (*XDes) ModeOfEncode

func (x *XDes) ModeOfEncode() MODE_ENCODE

字节转字符串编码方案

func (*XDes) ModeOfKey

func (x *XDes) ModeOfKey() MODE_KEY

key模式

func (*XDes) ModeOfPadding

func (x *XDes) ModeOfPadding() MODE_PADDING

Padding的模式

func (*XDes) Padding

func (x *XDes) Padding(data []byte, blockSize int) []byte

Padding&UnPadding

func (*XDes) RestoreKeyIV

func (x *XDes) RestoreKeyIV(keyStr string) ([]byte, error)

还原key或iv字符串为key或iv字节数组

func (*XDes) SetAutoFillKey

func (x *XDes) SetAutoFillKey(autoFillKey bool)

设置秘钥自动补充长度,AES自动补充为16、24、32,des自动补充为8、24

func (*XDes) SetBlockSize

func (x *XDes) SetBlockSize(blockSize int)

设置Blocksize

func (*XDes) SetIVData

func (x *XDes) SetIVData(iv []byte)

设置iv字节数组

func (*XDes) SetIVString

func (x *XDes) SetIVString(ivStr string) error

设置iv字符串

func (*XDes) SetKeyData

func (x *XDes) SetKeyData(key []byte)

设置key字节数组

func (*XDes) SetKeyString

func (x *XDes) SetKeyString(keyStr string) error

设置key字符串

func (*XDes) UnPadding

func (x *XDes) UnPadding(data []byte, blockSize int) []byte

type XRsa

type XRsa struct {
	//ModeKey         MODE_KEY
	//ModeEncode      MODE_ENCODE
	ModePadding     MODE_PADDING
	SizeOfKey       int
	SizeAuto        bool
	PublicKey       *rsa.PublicKey
	PrivateKey      *rsa.PrivateKey
	PaddingHelper   func(data []byte, blockSize int) []byte
	UnPaddingHelper func(data []byte, blockSize int) []byte
}

func (*XRsa) DecryptPKCS1v15

func (x *XRsa) DecryptPKCS1v15(encMsg []byte) ([]byte, error)

使用私钥进行PKCS1v15解密,解密后信息长度不超过秘钥模长-11

func (*XRsa) DecryptPKCS1v15Big

func (x *XRsa) DecryptPKCS1v15Big(encMsg []byte) ([]byte, error)

使用私钥进行PKCS1v15解密,待解密后信息长度超过秘钥模长则使用分段解密

func (*XRsa) DecryptPKCS1v15File

func (x *XRsa) DecryptPKCS1v15File(encFile string, decFile string) error

使用私钥进行PKCS1v15文件解密

func (*XRsa) DecryptPKCS1v15String

func (x *XRsa) DecryptPKCS1v15String(encodeMode MODE_ENCODE, encStr string) (string, error)

使用私钥进行PKCS1v15解密,解密后信息长度不超过秘钥模长-11

func (*XRsa) DecryptPKCS1v15StringBig

func (x *XRsa) DecryptPKCS1v15StringBig(encodeMode MODE_ENCODE, encStr string) (string, error)

使用私钥进行PKCS1v15解密,待解密后信息长度超过秘钥模长则使用分段解密

func (*XRsa) EncryptPKCS1v15

func (x *XRsa) EncryptPKCS1v15(origMsg []byte) ([]byte, error)

使用公钥进行PKCS1v15加密,待加密信息长度不能超过秘钥模长-11

func (*XRsa) EncryptPKCS1v15Big

func (x *XRsa) EncryptPKCS1v15Big(origMsg []byte) ([]byte, error)

使用公钥进行PKCS1v15加密,待加密信息长度超过秘钥模长-11则使用分段加密

func (*XRsa) EncryptPKCS1v15File

func (x *XRsa) EncryptPKCS1v15File(origFile string, encFile string, emptyEncrypt bool) error

使用公钥进行PKCS1v15文件加密

func (*XRsa) EncryptPKCS1v15String

func (x *XRsa) EncryptPKCS1v15String(encodeMode MODE_ENCODE, origStr string) (string, error)

使用公钥进行PKCS1v15加密,待加密信息长度不能超过秘钥模长-11

func (*XRsa) EncryptPKCS1v15StringBig

func (x *XRsa) EncryptPKCS1v15StringBig(encodeMode MODE_ENCODE, origStr string) (string, error)

使用公钥进行PKCS1v15加密,待加密信息长度超过秘钥模长-11则使用分段加密

func (*XRsa) FormatPrivateKey

func (x *XRsa) FormatPrivateKey(modeOfKey MODE_KEY) (string, error)

格式化私钥

func (*XRsa) FormatPublicKey

func (x *XRsa) FormatPublicKey(modeOfKey MODE_KEY) (string, error)

格式化公钥

func (*XRsa) GenrateKeyPair

func (x *XRsa) GenrateKeyPair(bits int) error

生成秘钥对

func (*XRsa) GetSizeOfKey

func (x *XRsa) GetSizeOfKey() int

获取秘钥长度

func (*XRsa) KeyPair

func (x *XRsa) KeyPair() (*rsa.PrivateKey, *rsa.PublicKey)

获取RSA秘钥对

func (*XRsa) LoadPrivateKey

func (x *XRsa) LoadPrivateKey(modeOfKey MODE_KEY, priKeyStr string) error

加载私钥

func (*XRsa) LoadPulicKey

func (x *XRsa) LoadPulicKey(modeOfKey MODE_KEY, pubKeyStr string) error

加载公钥

func (*XRsa) ModeOfPadding

func (x *XRsa) ModeOfPadding() MODE_PADDING

Padding的模式

func (*XRsa) SetPrivateKey

func (x *XRsa) SetPrivateKey(priKey []byte) error

设置私钥

func (*XRsa) SetPubicKey

func (x *XRsa) SetPubicKey(pubKey []byte) error

设置公钥

func (*XRsa) SetSizeOfKey

func (x *XRsa) SetSizeOfKey(sizeOfKey int)

设置秘钥长度

func (*XRsa) SignPSS

func (x *XRsa) SignPSS(hash crypto.Hash, origData []byte, opts *rsa.PSSOptions) ([]byte, error)

使用私钥进行签名-字节数组模式

func (*XRsa) SignPSSByString

func (x *XRsa) SignPSSByString(encodeMode MODE_ENCODE, hash crypto.Hash, origStr string, opts *rsa.PSSOptions) (string, error)

使用私钥进行签名-字符串模式

func (*XRsa) SignPSSFile

func (x *XRsa) SignPSSFile(hash crypto.Hash, origFile string, opts *rsa.PSSOptions) ([]byte, error)

使用私钥进行签名-文件字节模式

func (*XRsa) SignPSSFileByString

func (x *XRsa) SignPSSFileByString(encodeMode MODE_ENCODE, hash crypto.Hash, origFile string, opts *rsa.PSSOptions) (string, error)

使用私钥进行签名-文件字符串模式

func (*XRsa) SizeOfPrivateKey

func (x *XRsa) SizeOfPrivateKey() int

秘钥长度

func (*XRsa) SizeOfPublicKey

func (x *XRsa) SizeOfPublicKey() int

公钥长度

func (*XRsa) VerifyPSS

func (x *XRsa) VerifyPSS(hash crypto.Hash, origData []byte, sig []byte, opts *rsa.PSSOptions) error

使用公钥验证签名-字节数组模式

func (*XRsa) VerifyPSSByString

func (x *XRsa) VerifyPSSByString(encodeMode MODE_ENCODE, hash crypto.Hash, origStr string, sigStr string, opts *rsa.PSSOptions) error

使用公钥验证签名-字符串模式

func (*XRsa) VerifyPSSFile

func (x *XRsa) VerifyPSSFile(hash crypto.Hash, origFile string, sig []byte, opts *rsa.PSSOptions) error

使用公钥验证签名-文件字节模式

func (*XRsa) VerifyPSSFileByString

func (x *XRsa) VerifyPSSFileByString(encodeMode MODE_ENCODE, hash crypto.Hash, origFile string, sigStr string, opts *rsa.PSSOptions) error

使用公钥验证签名-文件字符串模式

type XSm2

type XSm2 struct {
	ModePadding     MODE_PADDING
	SizeOfKey       int
	SizeAuto        bool
	PublicKey       *sm2.PublicKey
	PrivateKey      *sm2.PrivateKey
	SignMarshalMode SIGN_MARSHAL_MODE
	PaddingHelper   func(data []byte, blockSize int) []byte
	UnPaddingHelper func(data []byte, blockSize int) []byte
}

func (*XSm2) Decrypt

func (x *XSm2) Decrypt(encMsg []byte, c1c2c3Mode bool) ([]byte, error)

使用私钥进行SM2解密-字节模式

func (*XSm2) DecryptAsn1

func (x *XSm2) DecryptAsn1(encMsg []byte) ([]byte, error)

使用私钥进行SM2解密-字节模式

func (*XSm2) DecryptAsn1String

func (x *XSm2) DecryptAsn1String(encodeMode MODE_ENCODE, encStr string) (string, error)

使用私钥进行SM2解密-字符串模式

func (*XSm2) DecryptString

func (x *XSm2) DecryptString(encodeMode MODE_ENCODE, encStr string, c1c2c3Mode bool) (string, error)

使用私钥进行SM2解密-字符串模式

func (*XSm2) Encrypt

func (x *XSm2) Encrypt(origMsg []byte, c1c2c3Mode bool) ([]byte, error)

使用公钥进行SM2加密-字节模式

func (*XSm2) EncryptAsn1

func (x *XSm2) EncryptAsn1(origMsg []byte) ([]byte, error)

使用公钥进行SM2加密-字节模式

func (*XSm2) EncryptAsn1String

func (x *XSm2) EncryptAsn1String(encodeMode MODE_ENCODE, origStr string) (string, error)

使用公钥进行SM2加密-字符串模式

func (*XSm2) EncryptString

func (x *XSm2) EncryptString(encodeMode MODE_ENCODE, origStr string, c1c2c3Mode bool) (string, error)

使用公钥进行SM2加密-字符串模式

func (*XSm2) FormatPrivateKey

func (x *XSm2) FormatPrivateKey(modeOfKey MODE_KEY, pwd []byte) (string, error)

格式化私钥

func (*XSm2) FormatPublicKey

func (x *XSm2) FormatPublicKey(modeOfKey MODE_KEY) (string, error)

格式化公钥

func (*XSm2) GenrateKeyPair

func (x *XSm2) GenrateKeyPair() error

生成秘钥对

func (*XSm2) GetSizeOfKey

func (x *XSm2) GetSizeOfKey() int

获取秘钥长度

func (*XSm2) KeyPair

func (x *XSm2) KeyPair() (*sm2.PrivateKey, *sm2.PublicKey)

获取SM2秘钥对

func (*XSm2) LoadPrivateKey

func (x *XSm2) LoadPrivateKey(modeOfKey MODE_KEY, priKeyStr string, pwd []byte) error

加载私钥

func (*XSm2) LoadPulicKey

func (x *XSm2) LoadPulicKey(modeOfKey MODE_KEY, pubKeyStr string) error

加载公钥

func (*XSm2) ModeOfPadding

func (x *XSm2) ModeOfPadding() MODE_PADDING

Padding的模式

func (*XSm2) SetPrivateKey

func (x *XSm2) SetPrivateKey(priKey []byte) error

设置私钥

func (*XSm2) SetPubicKey

func (x *XSm2) SetPubicKey(pubKey []byte) error

设置公钥

func (*XSm2) SetSignMarshalMode

func (x *XSm2) SetSignMarshalMode(signMarshalMode SIGN_MARSHAL_MODE)

设置签名数据格式化方式,ASN1、RS、SR

func (*XSm2) SetSizeOfKey

func (x *XSm2) SetSizeOfKey(sizeOfKey int)

设置秘钥长度

func (*XSm2) SizeOfPrivateKey

func (x *XSm2) SizeOfPrivateKey() int

秘钥长度

func (*XSm2) SizeOfPublicKey

func (x *XSm2) SizeOfPublicKey() int

公钥长度

func (*XSm2) Sm2Sign

func (x *XSm2) Sm2Sign(origMsg []byte, uid []byte) ([]byte, error)

使用私钥进行签名-字节数组模式

func (*XSm2) Sm2SignString

func (x *XSm2) Sm2SignString(encodeMode MODE_ENCODE, origMsg string, uid []byte) (string, error)

使用私钥进行签名-字节串模式

func (*XSm2) Sm2Verify

func (x *XSm2) Sm2Verify(origMsg []byte, uid []byte, sign []byte) (bool, error)

使用公钥验证签名-字节数组模式

func (*XSm2) Sm2VerifyString

func (x *XSm2) Sm2VerifyString(encodeMode MODE_ENCODE, origMsg string, uid []byte, sigStr string) (bool, error)

使用公钥验证签名-字节串模式

type XSm4

type XSm4 struct {
	ModeKey     MODE_KEY
	ModeEncode  MODE_ENCODE
	ModePadding MODE_PADDING
	Key         []byte
	Iv          []byte
	AutoFillKey bool // 秘钥自动补充长度,AES自动补充为16、24、32,des自动补充为8、24
	//KeyLen          int
	//IvLen           int
	BlockSize int
	//BlockSizeByKey  bool
	PaddingHelper   func(data []byte, blockSize int) []byte
	UnPaddingHelper func(data []byte, blockSize int) []byte
}

func (*XSm4) DecDataCBC

func (x *XSm4) DecDataCBC(dataEnc []byte) ([]byte, error)

CBC解密字节数组

func (*XSm4) DecDataECB

func (x *XSm4) DecDataECB(dataEnc []byte) ([]byte, error)

ECB解密字节数组

func (*XSm4) DecFileCBC

func (x *XSm4) DecFileCBC(pathEnc string, pathDest string) error

CBC解密字符串

func (*XSm4) DecFileECB

func (x *XSm4) DecFileECB(pathEnc string, pathDest string) error

ECB解密字符串

func (*XSm4) DecStringCBC

func (x *XSm4) DecStringCBC(strEnc string) (string, error)

CBC解密字符串

func (*XSm4) DecStringECB

func (x *XSm4) DecStringECB(strEnc string) (string, error)

ECB解密字符串

func (*XSm4) EncDataCBC

func (x *XSm4) EncDataCBC(data []byte) ([]byte, error)

CBC加密字节数组

func (*XSm4) EncDataECB

func (x *XSm4) EncDataECB(data []byte) ([]byte, error)

ECB加密字节数组

func (*XSm4) EncFileCBC

func (x *XSm4) EncFileCBC(pathSrc string, pathEnc string) error

CBC加密字符串

func (*XSm4) EncFileECB

func (x *XSm4) EncFileECB(pathSrc string, pathEnc string) error

ECB加密字符串

func (*XSm4) EncStringCBC

func (x *XSm4) EncStringCBC(str string) (string, error)

CBC加密字符串

func (*XSm4) EncStringECB

func (x *XSm4) EncStringECB(str string) (string, error)

ECB加密字符串

func (*XSm4) GenIVString

func (x *XSm4) GenIVString() (string, error)

生成iv字符串

func (*XSm4) GenKeyIvData

func (x *XSm4) GenKeyIvData(len int) ([]byte, error)

生成key或iv字节数组

func (*XSm4) GenKeyIvString

func (x *XSm4) GenKeyIvString(len int) (string, error)

生成key或iv字符串

func (*XSm4) GetBlockSize

func (x *XSm4) GetBlockSize() (int, error)

获取Blocksize

func (*XSm4) GetIVData

func (x *XSm4) GetIVData() []byte

设置iv字节数组

func (*XSm4) GetIVString

func (x *XSm4) GetIVString() (string, error)

获取iv字符串

func (*XSm4) GetKeyData

func (x *XSm4) GetKeyData() []byte

获取key字节数组

func (*XSm4) GetKeyString

func (x *XSm4) GetKeyString() (string, error)

获取key字符串

func (*XSm4) ModeOfEncode

func (x *XSm4) ModeOfEncode() MODE_ENCODE

字节转字符串编码方案

func (*XSm4) ModeOfKey

func (x *XSm4) ModeOfKey() MODE_KEY

key模式

func (*XSm4) ModeOfPadding

func (x *XSm4) ModeOfPadding() MODE_PADDING

Padding的模式

func (*XSm4) Padding

func (x *XSm4) Padding(data []byte, blockSize int) []byte

Padding&UnPadding

func (*XSm4) RestoreKeyIV

func (x *XSm4) RestoreKeyIV(keyStr string) ([]byte, error)

还原key或iv字符串为key或iv字节数组

func (*XSm4) SetAutoFillKey

func (x *XSm4) SetAutoFillKey(autoFillKey bool)

设置秘钥自动补充长度,AES自动补充为16、24、32,des自动补充为8、24

func (*XSm4) SetBlockSize

func (x *XSm4) SetBlockSize(blockSize int)

设置Blocksize

func (*XSm4) SetIVData

func (x *XSm4) SetIVData(iv []byte)

设置iv字节数组

func (*XSm4) SetIVString

func (x *XSm4) SetIVString(ivStr string) error

设置iv字符串

func (*XSm4) SetKeyData

func (x *XSm4) SetKeyData(key []byte)

设置key字节数组

func (*XSm4) SetKeyString

func (x *XSm4) SetKeyString(keyStr string) error

设置key字符串

func (*XSm4) UnPadding

func (x *XSm4) UnPadding(data []byte, blockSize int) []byte

Jump to

Keyboard shortcuts

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