Categorygithub.com/forgoer/openssl
modulepackage
1.6.0
Repository: https://github.com/forgoer/openssl.git
Documentation: pkg.go.dev

# README

Openssl encryption

Default Coverage Status

A functions wrapping of OpenSSL library for symmetric and asymmetric encryption and decryption

Installation

The only requirement is the Go Programming Language

go get -u github.com/forgoer/openssl

Usage

AES

The length of the key can be 16/24/32 characters (128/192/256 bits)

AES-ECB:

src := []byte("123456")
key := []byte("1234567890123456")
dst , _ := openssl.AesECBEncrypt(src, key, openssl.PKCS7_PADDING)
fmt.Printf(base64.StdEncoding.EncodeToString(dst))  // yXVUkR45PFz0UfpbDB8/ew==

dst , _ = openssl.AesECBDecrypt(dst, key, openssl.PKCS7_PADDING)
fmt.Println(string(dst)) // 123456

AES-CBC:

src := []byte("123456")
key := []byte("1234567890123456")
iv := []byte("1234567890123456")
dst , _ := openssl.AesCBCEncrypt(src, key, iv, openssl.PKCS7_PADDING)
fmt.Println(base64.StdEncoding.EncodeToString(dst)) // 1jdzWuniG6UMtoa3T6uNLA==

dst , _ = openssl.AesCBCDecrypt(dst, key, iv, openssl.PKCS7_PADDING)
fmt.Println(string(dst)) // 123456

DES

The length of the key must be 8 characters (64 bits).

DES-ECB:

openssl.DesECBEncrypt(src, key, openssl.PKCS7_PADDING)
openssl.DesECBDecrypt(src, key, openssl.PKCS7_PADDING)

DES-CBC:

openssl.DesCBCEncrypt(src, key, iv, openssl.PKCS7_PADDING)
openssl.DesCBCDecrypt(src, key, iv, openssl.PKCS7_PADDING)

3DES

The length of the key must be 24 characters (192 bits).

3DES-ECB:

openssl.Des3ECBEncrypt(src, key, openssl.PKCS7_PADDING)
openssl.Des3ECBDecrypt(src, key, openssl.PKCS7_PADDING)

3DES-CBC:

openssl.Des3CBCEncrypt(src, key, iv, openssl.PKCS7_PADDING)
openssl.Des3CBCDecrypt(src, key, iv, openssl.PKCS7_PADDING)

RSA

openssl.RSAGenerateKey(bits int, out io.Writer)
openssl.RSAGeneratePublicKey(priKey []byte, out io.Writer)

openssl.RSAEncrypt(src, pubKey []byte) ([]byte, error)
openssl.RSADecrypt(src, priKey []byte) ([]byte, error)

openssl.RSASign(src []byte, priKey []byte, hash crypto.Hash) ([]byte, error)
openssl.RSAVerify(src, sign, pubKey []byte, hash crypto.Hash) error

HMAC-SHA

// Sha1 Calculate the sha1 hash of a string
Sha1(str string) []byte

// HmacSha1 Calculate the sha1 hash of a string using the HMAC method
HmacSha1(key string, data string) []byte

// HmacSha1ToString Calculate the sha1 hash of a string using the HMAC method, outputs lowercase hexits
HmacSha1ToString(key string, data string) string

// Sha256 Calculate the sha256 hash of a string
Sha256(str string) []byte

// HmacSha256 Calculate the sha256 hash of a string using the HMAC method
HmacSha256(key string, data string) []byte

// HmacSha256ToString Calculate the sha256 hash of a string using the HMAC method, outputs lowercase hexits
HmacSha256ToString(key string, data string) string

License

This project is licensed under the Apache 2.0 license.

Contact

If you have any issues or feature requests, please contact us. PR is welcomed.

# Functions

AesCBCDecrypt.
AesCBCEncrypt.
AesECBDecrypt.
AesECBEncrypt.
AesNewCipher creates and returns a new AES cipher.Block.
CBCDecrypt.
CBCEncrypt.
Des3CBCDecrypt.
Des3CBCEncrypt.
Des3ECBDecrypt.
Des3ECBEncrypt.
DesCBCDecrypt.
DesCBCEncrypt.
DesECBDecrypt.
DesECBEncrypt.
DesNewCipher creates and returns a new DES cipher.Block.
No description provided by the author
No description provided by the author
HmacSha1 Calculate the sha1 hash of a string using the HMAC method.
HmacSha1ToString Calculate the sha1 hash of a string using the HMAC method, outputs lowercase hexits.
HmacSha256 Calculate the sha256 hash of a string using the HMAC method.
HmacSha256ToString Calculate the sha256 hash of a string using the HMAC method, outputs lowercase hexits.
No description provided by the author
Md5 Calculate the md5 hash of a string.
Md5ToString Calculate the md5 hash of a string, return hex string.
NewECBDecrypter returns a BlockMode which decrypts in electronic code book mode, using the given Block.
NewECBEncrypter returns a BlockMode which encrypts in electronic code book mode, using the given Block.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
RSADecrypt RSA decrypt.
RSAEncrypt RSA encrypt.
RSAGenerateKey generate RSA private key.
RSAGeneratePublicKey generate RSA public key.
RSASign RSA sign.
RSAVerify RSA verify.
Sha1 Calculate the sha1 hash of a string.
No description provided by the author
Sha256 Calculate the sha256 hash of a string.
No description provided by the author
No description provided by the author
No description provided by the author

# Constants

No description provided by the author
No description provided by the author
No description provided by the author

# Variables

No description provided by the author