security

package
v2.0.89 Latest Latest
Warning

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

Go to latest
Published: Sep 2, 2025 License: Apache-2.0 Imports: 20 Imported by: 2

Documentation

Index

Constants

View Source
const (
	DefaultAesKey   = `159054a86e3bfb85b5f1991cdb07645e`
	BlockSize       = 16 // block size fixed at 16 bytes / 128 bits (Nb=4) for AES
	DefaultAesNBits = 256
	CryptoAesName   = "aes"
)
View Source
const (
	DefaultRC4Key = "159054a86e3bfb85b5f1991cdb07645e"

	CryptoRC4Name string = "rc4"
)
View Source
const (
	CryptoRSAName   = "rsa"
	RsaPublicKeyTpl = `-----BEGIN PUBLIC KEY-----
%s
-----END PUBLIC KEY-----`
	RsaPrivateKeyTpl = `-----BEGIN RSA PRIVATE KEY-----
%s
-----END RSA PRIVATE KEY-----`
)

Variables

This section is empty.

Functions

func BuildSigningString added in v2.0.71

func BuildSigningString(method, path string, query url.Values, body []byte, timestamp int64) string

func ComparePassword

func ComparePassword(hashedPassword, currPassword string, saltStr string) bool

ComparePassword Check if two passwords compare

func FormatTimestamp added in v2.0.71

func FormatTimestamp(ts int64) string

func IsTimestampValid added in v2.0.71

func IsTimestampValid(ts int64) bool

func ParseTimestamp added in v2.0.71

func ParseTimestamp(ts string) (int64, error)

Types

type AesCipher

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

func NewAesCipher

func NewAesCipher(key string, nBits int) (*AesCipher, error)

func (*AesCipher) BlockSize

func (a *AesCipher) BlockSize() int

func (*AesCipher) DecodeURIComponent

func (a *AesCipher) DecodeURIComponent(str string) string

func (*AesCipher) Decrypt

func (a *AesCipher) Decrypt(cipherText string) ([]byte, error)

func (*AesCipher) EncodeURIComponent

func (a *AesCipher) EncodeURIComponent(str string) string

func (*AesCipher) Encrypt

func (a *AesCipher) Encrypt(plaintext string) (string, error)

func (*AesCipher) String

func (a *AesCipher) String() string

type AesCipherConfig

type AesCipherConfig struct {
	Key  string `json:"key" yaml:"key"`
	Bits int    `json:"bits" yaml:"bits"`
}

type AesKeySizeError

type AesKeySizeError int

func (AesKeySizeError) Error

func (k AesKeySizeError) Error() string

type Crypto

type Crypto interface {
	String() string
	Encrypt(plaintext string) (string, error)
	Decrypt(cipherText string) ([]byte, error)
}

type Encrypt

type Encrypt struct {
	Password string
	Salt     string
}

func EncryptPassword

func EncryptPassword(password string) *Encrypt

type HMACStrategy added in v2.0.71

type HMACStrategy struct{}

func (HMACStrategy) Generate added in v2.0.71

func (s HMACStrategy) Generate(signingString, secret string) string

func (HMACStrategy) Verify added in v2.0.71

func (s HMACStrategy) Verify(signingString, secret, givenSig string) bool

type Rc4Cipher

type Rc4Cipher struct {
	Key string `json:"key" yaml:"key"`
}

func NewRc4Cipher

func NewRc4Cipher(key string) *Rc4Cipher

func (*Rc4Cipher) CiphertextFormat

func (r *Rc4Cipher) CiphertextFormat(ciphertext string) string

CiphertextFormat Client encrypt content format

func (*Rc4Cipher) CiphertextReplace

func (r *Rc4Cipher) CiphertextReplace(ciphertext string) string

func (*Rc4Cipher) DecodeURIComponent

func (r *Rc4Cipher) DecodeURIComponent(str string) string

func (*Rc4Cipher) Decrypt

func (r *Rc4Cipher) Decrypt(ciphertext string) ([]byte, error)

func (*Rc4Cipher) EncodeURIComponent

func (r *Rc4Cipher) EncodeURIComponent(str string) string

func (*Rc4Cipher) Encrypt

func (r *Rc4Cipher) Encrypt(plaintext string) (string, error)

func (*Rc4Cipher) RandInt

func (r *Rc4Cipher) RandInt(min, max int) int

func (*Rc4Cipher) Rc4ClientDecrypt

func (r *Rc4Cipher) Rc4ClientDecrypt(ciphertext string) (string, error)

Rc4ClientDecrypt Client RC4 Config file Decrypt

func (*Rc4Cipher) Rc4ClientEncrypt

func (r *Rc4Cipher) Rc4ClientEncrypt(plaintext string) (string, error)

Rc4ClientEncrypt Client RC4 Config file Encrypt

func (*Rc4Cipher) String

func (r *Rc4Cipher) String() string

type Rc4CipherConfig

type Rc4CipherConfig Rc4Cipher

type RsaCipher

type RsaCipher struct {
	PubKey     string
	PriKey     string
	PublicKey  *rsa.PublicKey
	PrivateKey *rsa.PrivateKey
}

func NewRsaCipher

func NewRsaCipher(pubKey, priKey string) (*RsaCipher, error)

func (*RsaCipher) DecodeURIComponent

func (a *RsaCipher) DecodeURIComponent(str string) string

func (*RsaCipher) Decrypt

func (a *RsaCipher) Decrypt(cryptText string) (plainText []byte, err error)

func (*RsaCipher) EncodeURIComponent

func (a *RsaCipher) EncodeURIComponent(str string) string

func (*RsaCipher) Encrypt

func (a *RsaCipher) Encrypt(plainText string) (cryptText string, err error)

func (*RsaCipher) String

func (a *RsaCipher) String() string

type RsaCipherConfig

type RsaCipherConfig struct {
	PublicKey  string `yaml:"publicKey" json:"publicKey"`
	PrivateKey string `yaml:"privateKey" json:"privateKey"`
}

type RsaCiphersConfig

type RsaCiphersConfig struct {
	Client RsaCipherConfig `yaml:"client" json:"client"`
	Server RsaCipherConfig `yaml:"server" json:"server"`
}

type SignatureStrategy added in v2.0.71

type SignatureStrategy interface {
	Generate(signingString, secret string) string
	Verify(signingString, secret, givenSig string) bool
}

SignatureStrategy 抽象签名算法策略接口(支持 HMAC、RSA 等)

type Verify added in v2.0.71

type Verify interface {
	VerifyRequest(r *http.Request) error
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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