encrypt

package module
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Jan 4, 2021 License: MIT Imports: 7 Imported by: 0

README

Go Encrypt Algorithm

AES

CBC
  • Encrypt/Decrypt
CTR
  • File Encrypt/Decrypt
  • File IO Encrypt/Decrypt

Documentation

Index

Examples

Constants

This section is empty.

Variables

View Source
var (
	// ErrUnknown for undefined error
	ErrUnknown = errors.New("unknown error")
	// ErrCipherKey wrong key
	ErrCipherKey = errors.New("the secret key is wrong and cannot be decrypted. Please check")
	// ErrAESKeyLength wrong key length
	ErrAESKeyLength = errors.New("16 or 24 or 32 length secret key is required")
	// ErrPaddingSize padding size error
	ErrPaddingSize = errors.New("padding size error please check the secret key or iv")
	// ErrIvAes iv length error
	ErrIvAes = errors.New("a 16-length iv is required")
)

Functions

func AesCBCDecrypt

func AesCBCDecrypt(cipherText, key, iv []byte) (plainText []byte, err error)

AesCBCDecrypt decrypt data use AES/CBC/PKCS5

key: 16 or 24 or 32 length secret key is required

iv : 16 length iv is required

Example
enc, _ := AesCBCEncrypt([]byte("hello"), []byte("1234567812345678"), []byte("1234567812345678"))

dec, err := AesCBCDecrypt(enc, []byte("1234567812345678"), []byte("1234567812345678"))
if err != nil {
	panic(err)
}
fmt.Printf("%s", dec)
Output:

func AesCBCEncrypt

func AesCBCEncrypt(plainText, key, iv []byte) (cipherText []byte, err error)

AesCBCEncrypt encrypt data use AES/CBC/PKCS5

key: 16 or 24 or 32 length secret key is required

iv : 16 length iv is required

Example
enc, err := AesCBCEncrypt([]byte("hello"), []byte("1234567812345678"), []byte("1234567812345678"))
if err != nil {
	panic(err)
}
fmt.Printf("%x", enc)
fmt.Printf("%s", hex.EncodeToString(enc))
Output:

func AesCTRDecryptFile

func AesCTRDecryptFile(origin, target string, key, iv []byte) (err error)

AesCTRDecryptFile decrypt file use AES/CTR

key: 16 or 24 or 32 length secret key is required

iv : 16 length iv is required

Example
err := AesCTRDecryptFile("originFilename", "targetFilename", _testKey.Length32[4], _testIv[1])
if err != nil {
	panic(err)
}
Output:

func AesCTRDecryptFileIO

func AesCTRDecryptFileIO(origin, target *os.File, key, iv []byte) (err error)

AesCTRDecryptFileIO decrypt file use AES/CTR

key: 16 or 24 or 32 length secret key is required

iv : 16 length iv is required

Example
inFile, _ := os.Open("originFilename")
outFile, _ := os.Create("targetFilename")

err := AesCTRDecryptFileIO(inFile, outFile, _testKey.Length32[4], _testIv[1])
if err != nil {
	panic(err)
}
Output:

func AesCTREncryptFile

func AesCTREncryptFile(origin, target string, key, iv []byte) (err error)

AesCTREncryptFile encrypt file use AES/CTR

key: 16 or 24 or 32 length secret key is required

iv : 16 length iv is required

Example
err := AesCTREncryptFile("originFilename", "targetFilename", _testKey.Length32[4], _testIv[1])
if err != nil {
	panic(err)
}
Output:

func AesCTREncryptFileIO

func AesCTREncryptFileIO(origin, target *os.File, key, iv []byte) (err error)

AesCTREncryptFileIO encrypt file use AES/CTR

key: 16 or 24 or 32 length secret key is required

iv : 16 length iv is required

Example
inFile, _ := os.Open("originFilename")
outFile, _ := os.Create("targetFilename")

err := AesCTREncryptFileIO(inFile, outFile, _testKey.Length32[4], _testIv[1])
if err != nil {
	panic(err)
}
Output:

func CBCBlockMode

func CBCBlockMode(key, iv []byte, encrypt bool) (cipher.BlockMode, error)

CBCBlockMode create a CBC cipher.BlockMode use key and iv

key: 16 or 24 or 32 length secret key is required

iv : 16 length iv is required

encrypt: if true return a encrypt cipher.BlockMode. else return a decrypt cipher.BlockMode

func CTRStream

func CTRStream(key, iv []byte) (cipher.Stream, error)

CTRStream create a CTR cipher.Stream use key and iv

key: 16 or 24 or 32 length secret key is required

iv : 16 length iv is required

func PKCS5Padding

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

PKCS5 Padding

func PKCS5UnPadding

func PKCS5UnPadding(plainText []byte) ([]byte, error)

PKCS5 UnPadding

Types

This section is empty.

Jump to

Keyboard shortcuts

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