erchive is a go program that compresses and encrypts files and entire directories into .zep files (encrypted zip files).

erchive/zep

erchive is a go program that compresses and encrypts files and entire directories into .zep files (encrypted zip files). it compresses using go's built-in zip compression and it encrypts using go's built-in advanced encryption standard algorithm. it was built to be able to encrypt entire directories using only a single password; the compress is just a bonus.

erchive

download

the only way to download the executable is to download the source code. the compiled binaries can be seen in the .bin folder where each version will be listed along with a zip of it. the binaries are the compiled program from my Windows machine using arm64. other platform binaries will be released later on you may also compile the source code yourself using the golang compiler. a real download method will be developed and the binaries will be removed.

compile

to compile the source code one must have a go.17+ compiler installed. compile like a normal go program.

usage

to use erchive one must pass in console arguments for the directory or file to erchive and the password to use during encryption. example:

  • erchive.exe ./backup backup-password
  • erchive.exe ./secrets secrets-password
  • erchive ./secrets secrets-password

folder structure

the folder and project structure was designed when I was learning many different system design patterns. this heavily influenced the decisions I made in this project and I may have been too eager to try some. the structure should be rethought and redesigned when a bigger picture can be seen.

.bin

the temporary location of the compiled binaries. each version can be found here alongside a zip version of each.

data

the data access layer of the application. this application only needs to access the file system to read and write the files erchive.

service

the service layer of the application. an encrypter service is used to handle encryption and decryption of byte data. a hasher service is used to generate hashed bytes from byte data

files

.zip

represents a file format that is compressed using several algorithms. deflate is used in this implementation

.zap

represents a file format that is compressed using the deflate algorithm and encrypted using the advanced encryption standard algorithm. data is protected by a password

Owner
Christopher Walters
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand" (Martin Fowler, 2008).
Christopher Walters
Similar Resources

Custom GPG pinentry program for macOS that allows using Touch ID for fetching the password from the macOS keychain.

Custom GPG pinentry program for macOS that allows using Touch ID for fetching the password from the macOS keychain.

pinentry-touchid Custom GPG pinentry program for macOS that allows using Touch ID for fetching the password from the macOS keychain. Macbook Pro devic

Jan 1, 2023

Program brute forcing the passphrase of a private key

Description This project provide a program brute forcing the passphrase of a private key (EC/RSA). ℹ️ This project was created to allow me to learn th

Oct 12, 2022

Simple attempt at making a program to Brute Force Gift codes for Roberts Space Industries AKA Star Citizen.

Simple attempt at making a program to Brute Force Gift codes for Roberts Space Industries AKA Star Citizen.

Roberts Space Industries: Gift Generator Simple attempt at making a program to Brute Force Gift codes for Roberts Space Industries AKA Star Citizen. I

Nov 2, 2021

A small server for verifing if a given java program is succeptibel to CVE-2021-44228

CVE-2021-44228-Test-Server A small server for verifing if a given java program is succeptibel to CVE-2021-44228 Usage Build the program using go build

Nov 9, 2022

Cameradar hacks its way into RTSP videosurveillance cameras

Cameradar hacks its way into RTSP videosurveillance cameras

Cameradar An RTSP stream access tool that comes with its library Cameradar allows you to Detect open RTSP hosts on any accessible target host Detect w

Jan 3, 2023

Gorsair hacks its way into remote docker containers that expose their APIs

Gorsair hacks its way into remote docker containers that expose their APIs

Gorsair Gorsair is a penetration testing tool for discovering and remotely accessing Docker APIs from vulnerable Docker containers. Once it has access

Dec 26, 2022

Hotdog is a set of OCI hooks used to inject the Log4j Hot Patch into containers.

Hotdog Hotdog is a set of OCI hooks used to inject the Log4j Hot Patch into containers. How it works When runc sets up the container, it invokes hotdo

Nov 12, 2022

Integrate Snyk into Harbor

Harbor Snyk Scanner Harbor Snyk Scanner is a scanner adaptor for Harbor to integrate scan results from Snyk. The project is currently work in progress

Sep 6, 2022

Govuln - How to patch a vulnerability indirectly lifted into a Go Lang application in a manner which satsfies Twistlock scanning

govuln Desire to learn how to patch a vulnerability indirectly lifted into a Go

Feb 2, 2022
Comments
  • Access Denied

    Access Denied

    While running on a drive root, I got the following error:

    G:>erchive . password panic: open System Volume Information: Access is denied.

    goroutine 1 [running]: main.handleCompression(...) C:/Users/christopher/go/src/erchive/main.go:107 main.main() C:/Users/christopher/go/src/erchive/main.go:69 +0x3ce`

Related tags
DirDar is a tool that searches for (403-Forbidden) directories to break it and get dir listing on it
DirDar is a tool that searches for (403-Forbidden) directories to break it and get dir listing on it

DirDar v1.0 Description ??‍☠️ bypass forbidden directories - find and identify dir listing - you can use it as directory brute-forcer as well Compatab

Jan 1, 2023
Dec 28, 2022
End-to-end encrypted file transfer for Android. An Android Magic Wormhole client.
End-to-end encrypted file transfer for Android. An Android Magic Wormhole client.

wormhole-william-mobile This is a Magic Wormhole client for Android. (Perhaps someday this will also support iOS). Some current limitations: Receiving

Jan 4, 2023
Secretsmanager - Secrets management that allows you to store your secrets encrypted in git

I created secretsmanager to store some secrets within a repository. The secrets are encrypted at rest, with readable keys and editable JSON, so you can rename a key or delete it by hand. The cli tool handles the bare minumum of requirements.

May 6, 2022
A Go-based program to find links from the list of Js files.
A Go-based program to find links from the list of Js files.

linkinjs - A Go based program to find links from list of Js files quickly Installation go get -u github.com/rc4ne/linkinjs Efficient Usage with other

Sep 30, 2022
Automatic HTTPS for any Go program: fully-managed TLS certificate issuance and renewal
Automatic HTTPS for any Go program: fully-managed TLS certificate issuance and renewal

Easy and Powerful TLS Automation The same library used by the Caddy Web Server Caddy's automagic TLS features—now for your own Go programs—in one powe

Jan 6, 2023
Check and exploit log4j2 vulnerability with single Go program.
Check and exploit log4j2 vulnerability with single Go program.

log4j2-exp Check and exploit log4j2 vulnerability with single Go program. You don't need to install anything except develop it. It supports ldaps and

Nov 9, 2022
Check and exploit log4j2 vulnerability with single Go program.
Check and exploit log4j2 vulnerability with single Go program.

Log4Shell Check and exploit log4j2 vulnerability with single Go program. You don't need to install anything except develop it. It supports ldaps and h

Jan 6, 2023
Barebones Go program to issue DDNS updates to Amazon Route 53 service.

Route53 DDNS Very simple DDNS using AWS Route 53 #/bin/bash # AWS_ACCESS_KEY_ID example (fake) export AWS_ACCESS_KEY_ID=KkRbWpoyqLHo69dvoskn # AWS_

May 17, 2021