Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/bitlytwiser/tinycrypt

Tiny library for encrypting files and byte streams
https://github.com/bitlytwiser/tinycrypt

encryption encryption-decryption files go golang

Last synced: 6 days ago
JSON representation

Tiny library for encrypting files and byte streams

Awesome Lists containing this project

README

        

# tinycrypt

[![Go Report Card](https://goreportcard.com/badge/github.com/BitlyTwiser/tinycrypt)](https://goreportcard.com/report/github.com/BitlyTwiser/tinycrypt)

Tiny library for encrypting files and byte streams.

# Installation:
```go get github.com/BitlyTwiser/tinychunk```

# Testing:
- Initially run ```go mod tidy``` to install necessary packages.
- One can test the module via utilizing the go test framework.
```go test tinycrypt_test.go -v```

# Usage:
- Example usage can be seen within the test file.

```
package tinycrypt_test

import (
. "github.com/BitlyTwiser/tinycrypt"
"testing"

"github.com/stretchr/testify/assert"
)

func TestOpenFile(t *testing.T) {
t.Skip("Do not run else it will erase the file for testing due to the append nature of opening the file. This is present for either a generic test run or viewing functionality")
badVal, fileData, _ := OpenFile("../IDoNotExist.txt")

//We expect nil here as the file does not exist.
assert.Nil(t, badVal)
assert.Nil(t, fileData)

existingVal, fileData, _ := OpenFile("./testing/testing_files/items.txt")

if assert.NotNil(t, *existingVal) && assert.NotNil(t, *fileData) {
t.Log("File exists properly")
}
}

func TestFileEncrypt(t *testing.T) {
enc := Encryption{FilePath: "./testing/testing_files/test.txt", SecureString: "Password123adar$"}

err := enc.Encrypt()

assert.Nil(t, err)
}

func TestFileDecrypt(t *testing.T) {
enc := Encryption{FilePath: "./testing/testing_files/test.txt", SecureString: "Password123adar$"}

err := enc.Decrypt()
//Ensure that decryption does not fail.
assert.Nil(t, err)
}

func TestPdfEncrypt(t *testing.T) {
enc := Encryption{FilePath: "./testing/testing_files/test.pdf", SecureString: "Password123adar$"}

err := enc.Encrypt()

assert.Nil(t, err)
}

func TestPdfDecrypt(t *testing.T) {
enc := Encryption{FilePath: "./testing/testing_files/test.pdf", SecureString: "Password123adar$"}

err := enc.Decrypt()
//Ensure that decryption does not fail.
assert.Nil(t, err)
}

func TestBadFileType(t *testing.T) {
enc := Encryption{FilePath: "./testing/testing_files/test", SecureString: "Password123adar$"}

err := enc.Encrypt()

assert.NotNil(t, err)
}

func TestEncryptAndDecryptOfFileStream(t *testing.T) {
testingPass := "Password123adar$"
t.Log("Testing Encryption of stream")
words := []byte("Blue Red Green")

stream, err := EncryptByteStream(testingPass, words)

assert.NotNil(t, stream)
assert.Nil(t, err)

t.Logf("Encrypted Stream: %v", stream)

t.Log("Testing Decryption of stream")

decryptedStream, err := DecryptByteStream(testingPass, *stream)

assert.Nil(t, err)
assert.NotNil(t, decryptedStream)

t.Logf("Decrypted String: %v", string(*decryptedStream))
}
```