Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
720ae2c
Huge refactorization (see PROGRESSION.md : DAY-5 for more information…
VRAM-RAM Aug 25, 2026
e860b05
Added a section in the TUI that uses (Rusty Files Dialogs), and all…
VRAM-RAM Aug 28, 2026
74125e6
Modified TUI (Added EnkryptitTuiAction enum), beginned to add more te…
VRAM-RAM Aug 29, 2026
7c016e9
Added tests, modified frontend (See DAY-7 in PROGRESSION.md)
VRAM-RAM Aug 29, 2026
ee1b02e
Beginned the multithreading implementation
VRAM-RAM Aug 30, 2026
00a75b0
Updated format, added multithreading for file encryption, added tests…
VRAM-RAM Aug 30, 2026
8a9c0a2
DAY 9 : modified frontend, added tests, and created a crate for progr…
VRAM-RAM Aug 31, 2026
45409fa
Added an Auto *CompressionType* : Enkryptit can infer the *Compressio…
VRAM-RAM Sep 1, 2026
e66d8f9
DAY-10 and beginning of DAY-11 : added an Auto *ParallelismType*, fix…
VRAM-RAM Sep 2, 2026
c64427e
Fixed tests
VRAM-RAM Sep 4, 2026
7b4d39b
Beginned folder multithreading encryption
VRAM-RAM Sep 6, 2026
d3d4e17
Splitted folder encryption to make the architecture more modular, for…
VRAM-RAM Sep 6, 2026
91c6615
Implemented entry multithreading en/decryption; 2 tests fail.
VRAM-RAM Sep 6, 2026
c9aab0d
Fixed the folder multithreading encryption issue (bytes_written += 7)
VRAM-RAM Sep 6, 2026
490f64b
fixed offset in decrypt_folder_single
VRAM-RAM Sep 6, 2026
c442922
Some architectural changes in encryption/, added helpers, splitted en…
VRAM-RAM Sep 6, 2026
9716f4e
Added tests, beginned DAY-13
VRAM-RAM Sep 8, 2026
841a5ce
DAY-13 : Changed the progress bar display & choosed the roadmap direc…
VRAM-RAM Sep 8, 2026
d6b9938
Beginned the implementation of eck inspect
VRAM-RAM Sep 9, 2026
e9f2beb
ParallelismType maximum cpus modification and 'eck inspect <path>' im…
VRAM-RAM Sep 10, 2026
12db860
Created src/diagnostic directory that will contain all the code for *…
VRAM-RAM Sep 11, 2026
cd45181
Precised day-15 progression
VRAM-RAM Sep 13, 2026
2234390
Fixed tests
VRAM-RAM Sep 14, 2026
f41f0f0
Fixed an issue with rfd 0.17.2 (decreased to 0.16.0)
VRAM-RAM Sep 14, 2026
8cff701
DAY-16 : Updated TUI tests, huge frontend and error / outputs handlin…
VRAM-RAM Sep 17, 2026
1cc9e8c
Updated error printing, using EnkryptitDiagnostic and Snippets. Updat…
VRAM-RAM Sep 18, 2026
15a2e2e
Modified README and details
VRAM-RAM Sep 18, 2026
0d1549c
Beginned day-17
VRAM-RAM Sep 18, 2026
674756b
Beginned DAY-17
VRAM-RAM Sep 19, 2026
62248c4
Modified DAY-17 progression
VRAM-RAM Sep 19, 2026
cedfe9c
Beginned fuzzy testing
VRAM-RAM Sep 19, 2026
7804467
DAY-17 : fuzzy testing & cargo xtask
VRAM-RAM Sep 19, 2026
16b8a52
Fixed an issue with tests, and removed fuzzy testing
VRAM-RAM Sep 19, 2026
2563143
Flamegraphed
VRAM-RAM Sep 19, 2026
278a649
Mesured performances when using Enkryptit! intensely + flamegraph
VRAM-RAM Sep 19, 2026
b61b239
DAY 17 over, added fuzzy testing for compression and metadata.
VRAM-RAM Sep 19, 2026
d196fe6
DAY 17 specification
VRAM-RAM Sep 19, 2026
d4abfee
Un-ignore and commit Cargo.lock for Dependabot & reproducible CI
VRAM-RAM Sep 24, 2026
412ced5
DAY 18
VRAM-RAM Sep 26, 2026
f20c2c2
Added gif for showcase
VRAM-RAM Sep 26, 2026
1a9cf6b
Added cargo method
VRAM-RAM Sep 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[alias]
xtask = "run --package xtask --"
10 changes: 10 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
version: 2
updates:
- package-ecosystem: cargo
directory: "/"
schedule:
interval: weekly
- package-ecosystem: cargo
directory: "/eck/fuzz"
schedule:
interval: weekly
85 changes: 85 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
name: CI

on:
push:
branches: [dev, main]
paths-ignore:
- "doc/**"
- "**.md"
pull_request:
branches: [dev, main]
paths-ignore:
- "doc/**"
- "**.md"

env:
CARGO_TERM_COLOR: always

jobs:
# Static checks, tests, rustdoc, audit
checks:
name: fmt · clippy · test · doc · audit
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy

- uses: Swatinem/rust-cache@v2

- name: Check formatting
run: cargo fmt --all -- --check

- name: Clippy (all targets, warnings as errors)
run: cargo clippy --all-targets -- -D warnings

- name: Run tests (eck_tests harness)
run: cargo xtask test

- name: Build rustdoc (warnings as errors)
run: RUSTDOCFLAGS="-D warnings" cargo doc --no-deps

- name: Install cargo-audit
run: cargo install cargo-audit --locked

- name: cargo audit (allowlist in audit.toml)
run: cargo audit

# Bounded fuzz smoke (blocking)
fuzz:
name: fuzz smoke (${{ matrix.target }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
target: [decompress, compress_roundtrip, metadata]
steps:
- uses: actions/checkout@v4

- uses: dtolnay/rust-toolchain@nightly

- uses: Swatinem/rust-cache@v2
with:
workspaces: eck/fuzz

- name: Install cargo-fuzz
run: cargo install cargo-fuzz --locked

- name: Fuzz smoke — ${{ matrix.target }}
run: cargo +nightly xtask fuzz ${{ matrix.target }} -- -max_total_time=60

# OS keyring roundtrip (macOS only)
keyring:
name: OS keyring roundtrip (macOS)
runs-on: macos-latest
steps:
- uses: actions/checkout@v4

- uses: dtolnay/rust-toolchain@stable

- uses: Swatinem/rust-cache@v2

- name: Keyring roundtrip (#[ignore]d test)
run: cargo test --test=eck_tests encrypt_decrypt_os_keytype_roundtrip -- --ignored
108 changes: 108 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
name: Release

on:
push:
tags:
- "v*"

permissions:
contents: write

env:
CARGO_TERM_COLOR: always

jobs:
build:
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- name: linux-x86_64
os: ubuntu-latest
target: x86_64-unknown-linux-gnu
bin: eck
suffix: ""
- name: linux-aarch64
os: ubuntu-24.04-arm
target: aarch64-unknown-linux-gnu
bin: eck
suffix: ""
- name: macos-x86_64
os: macos-13
target: x86_64-apple-darwin
bin: eck
suffix: ""
- name: macos-arm64
os: macos-latest
target: aarch64-apple-darwin
bin: eck
suffix: ""
- name: windows-x86_64
os: windows-latest
target: x86_64-pc-windows-msvc
bin: eck.exe
suffix: ".exe"
steps:
- uses: actions/checkout@v4

- uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}

- uses: Swatinem/rust-cache@v2

- name: Build release binary
run: cargo build --release --target ${{ matrix.target }}

- name: Upload binary artifact
uses: actions/upload-artifact@v4
with:
name: eck-${{ matrix.target }}${{ matrix.suffix }}
path: target/${{ matrix.target }}/release/${{ matrix.bin }}
if-no-files-found: error

# ---- Draft GitHub release with checksums ----
release:
name: Draft release
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Download all build artifacts
uses: actions/download-artifact@v4
with:
path: artifacts
merge-multiple: true

- name: Generate checksums
run: |
cd artifacts
for f in *; do
sha256sum "$f" > "$f.sha256"
done
ls -la

- name: Create draft release
uses: softprops/action-gh-release@v2
with:
draft: true
generate_release_notes: true
files: |
artifacts/*
body: |
## Enkryptit! ${{ github.ref_name }}

> [!WARNING]
> Gatekeeper note (macOS)
> Release binaries are **not notarized/signed**. On first launch macOS may
> warn "cannot be opened because the developer cannot be verified".
> Workarounds: right-click => *Open*, or from a terminal:
> `xattr -dr com.apple.quarantine eck`
>
> Windows: SmartScreen may show an "unrecognized app" warning — click
> *More info : Run anyway*.

Checksums are provided as `*.sha256` files next to each binary.
17 changes: 16 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,20 @@
# Rust :
/target
/supply-chain

# eck (Enkryptit!) :
/eck/target

# xtask :
/xtask/target

# eck fuzz (cargo-fuzz) :
/eck/fuzz/target
/eck/fuzz/corpus
/eck/fuzz/artifacts

# MacOS :
.DS_Store
.DS_Store

# My personal checklist
TODO.md
6 changes: 4 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,15 +72,17 @@ Contributors should be able to explain:

For Enkryptit!, human review and security awareness take precedence over development speed.

## Code Style
## Code

General expectations:

* Follow idiomatic Rust practices.
* Follow idiomatic Rust practices (`cargo fmt` and `cargo clippy`)
* Prefer readable and maintainable code.
* Avoid unnecessary complexity.
* Add comments when the intent is not obvious.
* Document your contribution with **RustDoc** comments.
* Keep public APIs consistent and well documented.
* Launch `cargo audit` before and after coding.

Additional coding guidelines may be added as the project evolves.

Expand Down
Loading
Loading