This is a Go implementation of the Advanced Encryption Standard (AES).
The objective of this project is to analyze the concurrent capabilities of Go, under various workloads, and to compare the performance between different languages.
The project is containerized, so you don't need to have Go installed on your machine.
The configuration is done through the src/.env
file (This file is built into the container). The following variables are available:
CORES
: Number of threads to be used in the encryption processREPEAT
: Number of times the encryption/decryption process will be repeatedPLAIN_TEXT
: Path to the file with the data to be encryptedENCRYPTED_TEXT
: Path to the file where the encrypted data will be storedDECRYPTED_TEXT
: Path to the file where the decrypted data will be stored
Having a
PLAIN_TEXT
andENCRYPTED_TEXT
will mean encrypting the data, while having aENCRYPTED_TEXT
andDECRYPTED_TEXT
will mean decrypting the data. Having all three will mean encrypting and decrypting the data.
make setup
: Creates needed directories and builds the image with the binarymake dummy_file
: Creates a dummy with data to be encrypted
make deploy
: Runs the binary and monitoring system in dockermake remove
: Stops and removes the containers and the imagemake logs
: Shows the logs of the running container
To run the tests:
cd src
go test ./...