zlibs

package module
v1.3.3 Latest Latest
Warning

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

Go to latest
Published: May 31, 2023 License: MIT Imports: 17 Imported by: 1

README

INSTALL

go get github.com/zlabwork/go-zlibs

HTTP DEMO

// if you wanna use a proxy
// os.Setenv("HTTP_PROXY", "http://127.0.0.1:1080")

var libsHttp = zlibs.NewHttpLib()
resp, err := libsHttp.RequestGet("http://localhost")
if err != nil {
    log.Fatal(err)
}
defer resp.Body.Close()
if resp.StatusCode != 200 {
    return nil, errors.New("response code " + string(resp.StatusCode))
}
body, err := ioutil.ReadAll(resp.Body)

// https://mholt.github.io/json-to-go/
type AutoGenerated struct {
    ID      string `json:"Id"`
    Code    int    `json:"Code"`
    Message string `json:"Message"`
}
var result AutoGenerated
err = json.Unmarshal(body, &result)
if err != nil {
    log.Fatal(err)
}
log.Println(result.Message)

AES

key := []byte("ceb50761f4c378e1bc2f8a7585fb572d")
text := []byte("this is test data")

aes := zlibs.NewAesLib()

// encrypt
ciphertext, err := aes.Encrypt(key, text, zlibs.CBCCipher)
if err != nil {
    fmt.Println(err)
}

// decrypt
plaintext, err := aes.Decrypt(key, ciphertext, zlibs.CBCCipher)
if err != nil {
    fmt.Println(err)
}
fmt.Println(string(plaintext))

RSA DEMO

var publicKey = []byte(`
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+E6iRdo0DXehnf6UBtLI+VHTv
kUiSqwa4GJO+Yfp7HQcg8VMaJ3lOHix3VZ31jwManpdogH5fyztW/63aYHnmX3xQ
loYfDvlONPEuzicBvDRMZOvzpKsHcr4hjGH5Tn1rJAUuUBXBR94TmyyQDyLSrtF9
+u+g1brj6+y9sX1siwIDAQAB
-----END PUBLIC KEY-----
`)

var privateKey = []byte(`
-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQC+E6iRdo0DXehnf6UBtLI+VHTvkUiSqwa4GJO+Yfp7HQcg8VMa
J3lOHix3VZ31jwManpdogH5fyztW/63aYHnmX3xQloYfDvlONPEuzicBvDRMZOvz
pKsHcr4hjGH5Tn1rJAUuUBXBR94TmyyQDyLSrtF9+u+g1brj6+y9sX1siwIDAQAB
AoGBAJu+OdnuvH5svNfJNCfgqkf+Jc6CSWe78QZ5RN2zJG0qDMRGWGROwctrV93z
7jjdlJqEJeV/m4zcVmPjnc0YTeg25lBRMaWH17JYW7jvwULvJm2zc1oB2/U7f0fU
SSuBI0+YKrrArHLVlI3sbIwhRAyum4WYkJkB6hG4I4knbtr5AkEA4q1fWauKu92p
vOdjZalMKLgXfvntGs6kQpZS3qxfztqCh7yKSKpuX95sZBqUZcw1UF0SMVYLYvix
IK8xE/cqHQJBANaqOmxQBzvQVRGrXfGPVx1VyZ17Y4Tq121nS/++zTBoxIshIS7w
doXQX5JwN0XaaYHKBGcyZu5f6s51B6Z7cMcCQGFRwBM2k/yuYVaKHWGjOuBskSHh
2Ytd1qYD9hZF+WhM5ieyqcgi6/pa+zxLMRU3hFg5bTsjTwYx8ZIvxSlmP30CQQCY
hp+4ciyRnXe0dFTt3HGDkH8O/Ks7uDmVrL3dW88jxG1Shhmz5nvwnJwryrwbUBOD
eu0h/jgQy+plA9aJvk/lAkBpBVW4cWryIEpv2/xkhsKSZVV3FEvEW7ZQh7HJUGZl
tbI09KjgVeZ/ZI8BN6PkyM7D5lYZf8N5tW0JEANR+rzZ
-----END RSA PRIVATE KEY-----
`)

testData := []byte("this is test data")

// set keys
libsRsa := zlibs.NewRsaLib()
libsRsa.SetPrivateKey(privateKey)
libsRsa.SetPublicKey(publicKey)

// encrypt with public key
ciphertext, err := libsRsa.Encrypt(testData)
if err != nil {
    log.Println(err)
}
log.Println("ciphertext bytes data:", ciphertext)

// decrypt with private key
plaintext, err := libsRsa.Decrypt(ciphertext)
if err != nil {
    log.Println(err)
}
log.Println("plaintext:", string(plaintext))

Tools

Convert text between GBK and UTF8 - http://golang.org/x/text
json to go - convert json to go struct type

Documentation

Index

Constants

View Source
const (
	OPENSSL_PKCS1_PADDING      int = 1
	OPENSSL_PKCS1_OAEP_PADDING int = 4
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AesLib

type AesLib struct {
}

func NewAesLib

func NewAesLib() *AesLib

func (*AesLib) Decrypt added in v1.3.2

func (lib *AesLib) Decrypt(key []byte, ciphertext []byte, cipher Cipher) ([]byte, error)

func (*AesLib) Encrypt added in v1.3.2

func (lib *AesLib) Encrypt(key []byte, plaintext []byte, cipher Cipher) ([]byte, error)

type Cipher added in v1.3.2

type Cipher int
const (
	CBCCipher Cipher = iota
	CFBCipher
)

type HttpLib

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

func NewHttpLib

func NewHttpLib() *HttpLib

func (*HttpLib) GetHeaders

func (lib *HttpLib) GetHeaders() map[string]string

func (*HttpLib) RequestGet

func (lib *HttpLib) RequestGet(urlAddress string) (*http.Response, error)

func (*HttpLib) RequestPost

func (lib *HttpLib) RequestPost(urlAddress string, param map[string]string) (*http.Response, error)

func (*HttpLib) RequestRaw

func (lib *HttpLib) RequestRaw(method string, urlAddress string, httpRawBody []byte) (*http.Response, error)

func (*HttpLib) SetHeaders

func (lib *HttpLib) SetHeaders(headers map[string]string)

func (*HttpLib) SetTimeout

func (lib *HttpLib) SetTimeout(timeout time.Duration)

type RsaLib

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

func NewRsaLib

func NewRsaLib() *RsaLib

func (*RsaLib) Decrypt

func (lib *RsaLib) Decrypt(ciphertext []byte) ([]byte, error)

func (*RsaLib) Encrypt

func (lib *RsaLib) Encrypt(plaintext []byte) ([]byte, error)

func (*RsaLib) GeneratePrivateKey

func (lib *RsaLib) GeneratePrivateKey(bits int) (*rsa.PrivateKey, error)

func (*RsaLib) GetPrivateKey

func (lib *RsaLib) GetPrivateKey() *rsa.PrivateKey

func (*RsaLib) GetPublicKey

func (lib *RsaLib) GetPublicKey() *rsa.PublicKey

func (*RsaLib) SetPadding

func (lib *RsaLib) SetPadding(padding int)

func (*RsaLib) SetPrivateKey

func (lib *RsaLib) SetPrivateKey(privateKey []byte) error

func (*RsaLib) SetPublicKey

func (lib *RsaLib) SetPublicKey(publicKey []byte) error

func (*RsaLib) SignVerifySha1

func (lib *RsaLib) SignVerifySha1(data []byte, sign []byte) bool

func (*RsaLib) SignVerifySha256

func (lib *RsaLib) SignVerifySha256(data []byte, sign []byte) bool

func (*RsaLib) SignWithSha1

func (lib *RsaLib) SignWithSha1(data []byte) ([]byte, error)

func (*RsaLib) SignWithSha256

func (lib *RsaLib) SignWithSha256(data []byte) ([]byte, error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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