sekrit

Crates.iosekrit
lib.rssekrit
version1.0.0
created_at2025-08-10 13:48:56.105201+00
updated_at2025-08-10 13:48:56.105201+00
descriptionEncrypt any file, decrypt anywhere. File encryption that doesn't suck.
homepagehttps://github.com/simplysabir/sekrit
repositoryhttps://github.com/simplysabir/sekrit
max_upload_size
id1788916
size74,060
Sabir Khan (simplysabir)

documentation

https://github.com/simplysabir/sekrit#readme

README

🤫 sekrit

keep ur stuff sekrit 🤫

Encrypt any file, decrypt anywhere. File encryption that doesn't suck.

Why sekrit?

  • Zero bullshit - Encrypt file, get encrypted file. That's it.
  • Military-grade crypto - ChaCha20-Poly1305 + Argon2
  • Restore original extensions - document.pdf.sekrit → document.pdf
  • Secure by default - No passwords in shell history
  • Cross-platform - Works everywhere Rust works

Install

cargo install sekrit

Usage

# Encrypt any file
sekrit encrypt --file secret.pdf
# Enter password: [hidden]
# ✅ Successfully encrypted to: "secret.pdf.sekrit"

# Decrypt anywhere  
sekrit decrypt --file secret.pdf.sekrit
# Enter password: [hidden]
# ✅ Successfully decrypted to: "secret.pdf"

Features

  • Interactive passwords - No CLI args, no shell history contamination
  • Smart file handling - Automatically restores original file extensions
  • Memory safety - Keys are securely zeroed after use
  • Battle-tested crypto - ChaCha20-Poly1305 (AEAD) + Argon2id (KDF)

Security

  • Encryption: ChaCha20-Poly1305 (256-bit)
  • Key derivation: Argon2id with random salt
  • Authentication: Built-in via AEAD
  • Memory protection: Automatic key zeroization

Docker

# Build
docker build -t sekrit .

# Run
docker run -it --rm -v $(pwd):/data sekrit encrypt --file /data/secret.txt

Library Usage

Add to your Cargo.toml:

[dependencies]
sekrit = "1.0"
use sekrit::{CryptoEngine, EncryptedFile, FileOps};

// Encrypt data
let data = b"secret data";
let encrypted_file = CryptoEngine::encrypt_file_data(data, "password")?;

// Save to disk
FileOps::write_encrypted_file(&path, &encrypted_file)?;

// Load and decrypt
let encrypted_file = FileOps::read_encrypted_file(&path)?;
let decrypted = CryptoEngine::decrypt_file_data(&encrypted_file, "password")?;

License

MIT - Use it, abuse it, whatever. Just keep your stuff sekrit 🤫

Commit count: 0

cargo fmt