fuskovic / sym

:lock: :key: Extending symmetric encryption on the std lib for those too lazy to generate their own IV's.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Sym

Go Reference Go Report Card gopherbadger-tag-do-not-edit CI

A light wrapper around how you would use the standard library for symmetric encryption/decryption anyway.

Install

go get -u github.com/fuskovic/sym

Examples

Encrypt/Decrypt Strings

    // The key needs to be either 16, 24, or 32 characters in length
    key := os.Getenv("SYMMETRIC_KEY")

    ciphertext, err := sym.EncryptString(key, "hello world")
    if err != nil {
        // handle error
    }

    plaintext, err := sym.DecryptString(key, ciphertext)
    if err != nil {
        // handle error
    }

Encrypt/Decrypt Bytes

    // The key needs to be either 16, 24, or 32 characters in length
    key := os.Getenv("SYMMETRIC_KEY")

    ciphertext, err := sym.EncryptBytes(key, []byte("hello world"))
    if err != nil {
        // handle error
    }

    plaintext, err := sym.DecryptBytes(key, ciphertext)
    if err != nil {
        // handle error
    }

Encrypt/Decrypt Files

    // The key needs to be either 16, 24, or 32 characters in length
    key := os.Getenv("SYMMETRIC_KEY")

    err := sym.EncryptFile(key,
        "/path/to/existing/plaintext/file.txt",
        "/path/to/write/the/encrypted/file/to.enc",
    )

    if err != nil {
        // handle error
    }

    err = sym.DecryptFile(key,
        "/path/to/encrypted/file.enc",
        "/path/to/write/decrypted/file/to.txt",
    )

    if err != nil {
        // handle error
    }

About

:lock: :key: Extending symmetric encryption on the std lib for those too lazy to generate their own IV's.

License:MIT License


Languages

Language:Go 94.2%Language:Shell 3.4%Language:Makefile 2.4%