Cryptix is a simple command-line utility that leverages advanced cryptographic algorithms to securely encrypt and decrypt messages. It combines the AES (Advanced Encryption Standard) algorithm for encrypting the content of the message with RSA for encrypting the AES encryption key. This ensures that only individuals with the corresponding RSA private key can decrypt the message.
- AES Encryption: Encrypts the message using the AES algorithm.
- RSA Encryption of AES Key and Decryption: The AES key is encrypted using an RSA public key, ensuring that the encrypted message can only be decrypted using the corresponding RSA private key.
- Sharing Option: The tool includes an option for sharing the encrypted data securely, through Google Drive.
- Download option: Downloadable link is provided for receiver and reciver can decrypt the data through the RSA private key.
This project is built using Go and is designed to provide robust and secure encryption for sensitive information.
This project, cryptix
, is built using the Go programming language. Below is a list of the main technologies, libraries, and dependencies used in this project.
generate-keys
encode
decrypt
send
The following technologies and libraries are used in the Cryptix project:
-
Go 1.23.4: The programming language used to build the tool.
-
sirupsen/logrus v1.9.3: A structured logger for Go, used for logging information and errors.
-
spf13/cobra v1.8.1: A library for creating powerful CLI applications.
-
crypt v0.33.0: A cryptography library for performing AES and RSA encryption and decryption operations, providing secure cryptographic functionality within the tool.
-
google.golang.org/api v0.220.0: Google API client libraries for interacting with Google Cloud services.
-
cloud.google.com/go/auth v0.14.1: Provides Google Cloud authentication methods.
-
gookit/color v1.5.4: A package for adding color to the terminal output.
-
joho/godotenv v1.5.1: A package for loading environment variables from
.env
files.
#CLI Info
CLI_NAME=stegomail
CLI_VERSION=1.0.0-stable
CLI_BINARY_PATH=bin/stegomail
#SMTP
FROM_EMAIL=
FROM_EMAIL_PASSWORD=
FROM_EMAIL_SMTP=smtp.gmail.com
SMTP_ADDR=smtp.gmail.com:587
SUBJECT_DESC=
HTML_TEMPLATE=""
OAUTH_CREDENTIALS_PATH=
#Format
TXT_FORMAT=.txt
JSON_FORMAT=.json
This Makefile
provides an easy interface to build, test, install, and clean the Cryptix project. It automates common tasks required for the development and deployment of the project.
-
BINARY_NAME: Specifies the name of the output binary file. In this case, it is set to
cryptix
. -
OUTPUT_DIR: Specifies the directory where the binary will be output. The default is
bin
. -
MAIN_FILE: Specifies the path to the main Go file. This is where the Go code for the project starts (default:
./main.go
). -
INSTALL_DIR: Specifies where the binary should be installed. By default, it installs to
$HOME/go/bin
if theGOBIN
environment variable is not set.
The Makefile has the following targets that automate the build process:
-
Description: Builds the binary from the main Go file and outputs it to the
bin
directory. -
Commands:
-
Creates the
bin
directory if it doesn't already exist. -
Runs the
go build
command to compile the Go project into a binary namedcryptix
. -
Outputs the path to the built binary.
-
-
Usage:
make build
-
Description: Runs the tests for the project using
go test
. -
Commands:
-
Executes the
go test
command on the entire project (./...
). -
Prints the results of the tests to the terminal.
-
-
Usage:
make test
-
Description: Builds the project and installs the binary to the
GOBIN
directory. -
Commands:
-
Runs the
build
target to compile the binary. -
Installs the binary to the directory specified by
GOBIN
.
-
-
Usage:
make install
-
Description: Cleans up the build directory by removing the
bin
directory and its contents. -
Commands:
-
Deletes the
bin
directory. -
Outputs a message when cleanup is complete.
-
-
Usage:
make clean
-
Build the binary:
To build the binary for the project, run:
make build
-
Test the code:
To run tests for the project, run:
make test
-
Install the binary:
To install the built binary to the default Go binary directory, run:
make install
-
Clean up:
To remove the generated binary files and clean up the build directory, run:make clean