{"id":36736283,"url":"https://github.com/pandarudra/ecrypto","last_synced_at":"2026-01-21T16:08:46.470Z","repository":{"id":332026944,"uuid":"1131265361","full_name":"pandarudra/ecrypto","owner":"pandarudra","description":"Secure folder encryption with modern cryptography (XChaCha20-Poly1305 + Argon2id)","archived":false,"fork":false,"pushed_at":"2026-01-14T03:47:29.000Z","size":168,"stargazers_count":4,"open_issues_count":3,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-17T05:07:33.672Z","etag":null,"topics":["cli","clitool","decryption","ecrypto","encryption","go","golang","security"],"latest_commit_sha":null,"homepage":"https://pandarudra.github.io/ecrypto/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pandarudra.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-09T18:15:00.000Z","updated_at":"2026-01-14T03:38:27.000Z","dependencies_parsed_at":"2026-01-12T11:00:03.175Z","dependency_job_id":null,"html_url":"https://github.com/pandarudra/ecrypto","commit_stats":null,"previous_names":["pandarudra/ecrypto"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/pandarudra/ecrypto","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandarudra%2Fecrypto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandarudra%2Fecrypto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandarudra%2Fecrypto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandarudra%2Fecrypto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pandarudra","download_url":"https://codeload.github.com/pandarudra/ecrypto/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandarudra%2Fecrypto/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28635927,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T15:01:31.228Z","status":"ssl_error","status_checked_at":"2026-01-21T14:42:58.942Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","clitool","decryption","ecrypto","encryption","go","golang","security"],"created_at":"2026-01-12T12:21:39.271Z","updated_at":"2026-01-21T16:08:46.464Z","avatar_url":"https://github.com/pandarudra.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🔐 ECRYPTO\n\n![ecrypto](assets/image.png)\n\n\u003cdiv align=\"center\"\u003e\n\n**Military-Grade Folder Encryption Tool**\n\nEncrypt entire folders into a single secure container using **XChaCha20-Poly1305** (AEAD) and **Argon2id** (KDF).  \nProtects filenames, metadata, and contents with cutting-edge cryptography.\n\n[![Release](https://img.shields.io/github/v/release/pandarudra/ecrypto)](https://github.com/pandarudra/ecrypto/releases/latest)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n[![Go Version](https://img.shields.io/badge/go-1.24+-00ADD8.svg)](https://golang.org)\n\n[Download](#-installation) • [Quick Start](#-quick-start) • [Documentation](#-usage-examples) • [Security](#-security)\n\n\u003c/div\u003e\n\n---\n\n## ✨ Features\n\n- 🔒 **Military-Grade Encryption**: XChaCha20-Poly1305 AEAD cipher (256-bit keys)\n- 🔑 **Flexible Key Management**: Use passphrases or raw 32-byte key files\n- 📦 **Single Secure Container**: Compress + encrypt entire folders into `.ecrypt` files\n- 🎨 **Beautiful Interactive UI**: User-friendly menu system or powerful command-line interface\n- 🛡️ **Secure by Default**: Argon2id KDF (256MB memory, 3 iterations) - winner of Password Hashing Competition\n- ↶ **Undo Feature**: Easily decrypt and restore recently encrypted folders\n- ⚡ **Fast \u0026 Lightweight**: Single binary, zero dependencies, cross-platform ready\n- 🔍 **Tamper Detection**: Authentication tags prevent file modifications\n- 📊 **Progress Tracking**: Real-time visual feedback during operations\n- 🌐 **Cross-Platform**: Works on Windows, macOS, and Linux\n\n---\n\n## 📥 Installation\n\n### Option 1: Download Pre-built Binary (Recommended)\n\n#### Windows\n\n```powershell\n# Download the latest release\nInvoke-WebRequest -Uri \"https://github.com/pandarudra/ecrypto/releases/latest/download/ecrypto-windows-amd64.exe\" -OutFile \"ecrypto.exe\"\n\n# Run it\n.\\ecrypto.exe\n```\n\n**Or manually:**\n\n1. Go to **[Releases](https://github.com/pandarudra/ecrypto/releases/latest)** 📦\n2. Download `ecrypto-windows-amd64.exe`\n3. Rename to `ecrypto.exe` and run!\n\n#### macOS\n\n```bash\n# Download the latest release\ncurl -L -o ecrypto \"https://github.com/pandarudra/ecrypto/releases/latest/download/ecrypto-darwin-amd64\"\nchmod +x ecrypto\n\n# Move to PATH (optional)\nsudo mv ecrypto /usr/local/bin/\n```\n\n#### Linux\n\n```bash\n# Download the latest release\nwget -O ecrypto \"https://github.com/pandarudra/ecrypto/releases/latest/download/ecrypto-linux-amd64\"\nchmod +x ecrypto\n\n# Move to PATH (optional)\nsudo mv ecrypto /usr/local/bin/\n```\n\n### Option 2: Install via npm (Global CLI)\n\nQuickly install ECRYPTO as a global command-line tool:\n\n```bash\nnpm install -g ecrypto-cli\n\n# Then use it anywhere\necrypto-cli --help\n```\n\n**Benefits:**\n\n- Available from any directory\n- Automatic updates: `npm update -g ecrypto-cli`\n- Cross-platform (Windows, macOS, Linux)\n- No manual binary management\n\n### Option 3: Build from Source\n\n**Requirements**: Go 1.24+\n\n```bash\ngit clone https://github.com/pandarudra/ecrypto.git\ncd ecrypto\ngo build -o ecrypto\n\n# On Windows, this creates ecrypto.exe\n# On macOS/Linux, run: chmod +x ecrypto\n```\n\n---\n\n## 🚀 Quick Start\n\n### 🎯 Interactive Mode (Perfect for Beginners!)\n\nThe easiest way to use ECRYPTO - just run the executable with no arguments:\n\n```powershell\n.\\ecrypto.exe\n```\n\nYou'll see an intuitive interactive menu:\n\n```\n██████ ▄█████ █████▄  ██  ██ █████▄ ██████ ▄████▄\n██▄▄   ██     ██▄▄██▄  ▀██▀  ██▄▄█▀   ██   ██  ██\n██▄▄▄▄ ▀█████ ██   ██   ██   ██       ██   ▀████▀\n\n[1] [ENCRYPT]  Encrypt a Folder\n[2] [DECRYPT]  Decrypt a File\n[3] [KEYGEN]   Generate Encryption Key\n[4] [INFO]     View Container Info\n[5] [UNDO]     Undo Recent Operation\n[6] [EXIT]     Quit Application\n```\n\n**Step-by-step walkthrough:**\n\n1. Select `[1] ENCRYPT`\n2. Enter your folder path (e.g., `C:\\MyDocuments`)\n3. Choose output location (e.g., `D:\\backup.ecrypt`)\n4. Enter a strong passphrase\n5. Done! Your folder is now encrypted\n\n### ⚡ Command-Line Mode (For Power Users)\n\n#### If installed via npm:\n\n```bash\n# All commands use 'ecrypto-cli' instead of '.\\ecrypto.exe'\necrypto-cli encrypt --in \"path/to/folder\" --out \"backup.ecrypt\" --pass \"YourPassword\"\necrypto-cli decrypt --in \"backup.ecrypt\" --out \"restored\" --pass \"YourPassword\"\necrypto-cli keygen --out mykey.txt\n```\n\n#### If using direct binary:\n\n```powershell\n# Encrypt a folder with passphrase:\n.\\ecrypto.exe encrypt --in \"C:\\MyFolder\" --out \"backup.ecrypt\" --pass \"YourStrongPassphrase123!\"\n\n# Decrypt a container:\n.\\ecrypto.exe decrypt --in \"backup.ecrypt\" --out \"restored\" --pass \"YourStrongPassphrase123!\"\n\n# Generate a random 32-byte encryption key:\n.\\ecrypto.exe keygen --out mykey.txt\n\n# Encrypt with a raw key file (maximum security):\n.\\ecrypto.exe encrypt --in \"C:\\MyFolder\" --out \"backup.ecrypt\" --key-file mykey.txt\n\n# View container information (no decryption required):\n.\\ecrypto.exe info --file backup.ecrypt\n```\n\n**Pro Tip:** Key files provide stronger security than passphrases. Store them in a password manager!\n\n---\n\n## 📖 Usage Examples\n\n### 💼 Example 1: Backup Personal Documents\n\nPerfect for creating encrypted backups of your important files:\n\n```powershell\n# Encrypt your documents folder\n.\\ecrypto.exe encrypt --in \"C:\\Users\\YourName\\Documents\" --out \"documents_backup.ecrypt\" --pass \"MySecurePassword123!\"\n\n# Later, restore to a new location\n.\\ecrypto.exe decrypt --in \"documents_backup.ecrypt\" --out \"C:\\Restored\\Documents\" --pass \"MySecurePassword123!\"\n```\n\n**Use Case:** Regular backups, cloud storage, disaster recovery\n\n### 🔐 Example 2: Secure File Transfer\n\nShare sensitive data securely by encrypting with a key file:\n\n```powershell\n# Step 1: Generate a random encryption key\n.\\ecrypto.exe keygen --out transfer_key.txt\n\n# Step 2: Encrypt your sensitive data\n.\\ecrypto.exe encrypt --in \"C:\\SensitiveData\" --out \"transfer.ecrypt\" --key-file transfer_key.txt\n\n# Step 3: Send transfer.ecrypt via one channel (email/cloud)\n#         Send transfer_key.txt via a DIFFERENT secure channel (Signal/WhatsApp)\n\n# Recipient decrypts with the key:\n.\\ecrypto.exe decrypt --in \"transfer.ecrypt\" --out \"received_data\" --key-file transfer_key.txt\n```\n\n**Use Case:** Confidential file sharing, client deliverables, HIPAA/GDPR compliance\n\n### 🖥️ Example 3: Optimize for Different Hardware\n\nAdjust Argon2 parameters for slower machines or faster encryption:\n\n```powershell\n# Lower settings for older machines (128MB memory, 2 iterations)\n.\\ecrypto.exe encrypt --in \"C:\\MyFolder\" --out \"backup.ecrypt\" --pass \"password\" --argon-m 131072 --argon-t 2\n\n# Higher security for critical data (512MB memory, 5 iterations)\n.\\ecrypto.exe encrypt --in \"C:\\TopSecret\" --out \"critical.ecrypt\" --pass \"password\" --argon-m 524288 --argon-t 5\n```\n\n**Use Case:** Performance tuning, high-security requirements, legacy systems\n\n### 📂 Example 4: Batch Operations\n\nEncrypt multiple folders programmatically:\n\n```powershell\n# Encrypt multiple project folders\n$folders = @(\"C:\\Project1\", \"C:\\Project2\", \"C:\\Project3\")\nforeach ($folder in $folders) {\n    $name = Split-Path $folder -Leaf\n    .\\ecrypto.exe encrypt --in $folder --out \"D:\\Backups\\$name.ecrypt\" --pass \"YourPassword\"\n}\n```\n\n**Use Case:** Automated backups, CI/CD pipelines, scheduled tasks\n\n### ↶ Example 5: Undo \u0026 Restore\n\nAccidentally encrypted something? Restore it with one click:\n\n```powershell\n# Encrypted a folder\n.\\ecrypto.exe encrypt --in \"C:\\MyFiles\" --out \"backup.ecrypt\" --pass \"password\"\n\n# Later: Need to undo the encryption\n.\\ecrypto.exe\n→ [5] [UNDO] Undo Recent Operation\n→ Select: C:\\MyFiles | 450 files | 1.24 GB\n→ Passphrase: password\n→ ✓ Restored to: C:\\MyFiles_restored\n```\n\n**Use Case:** Testing encryption settings, accidental encryption, backup verification\n\n---\n\n## 🔒 Security\n\n### 🛡️ Cryptography Details\n\nECRYPTO uses industry-leading cryptographic standards:\n\n- **Encryption Cipher**: XChaCha20-Poly1305\n\n  - AEAD (Authenticated Encryption with Associated Data)\n  - 256-bit keys for maximum security\n  - ChaCha20 stream cipher + Poly1305 MAC\n  - [RFC 8439](https://tools.ietf.org/html/rfc8439) compliant\n\n- **Key Derivation**: Argon2id\n\n  - Winner of the Password Hashing Competition (2015)\n  - Resistant to GPU/ASIC attacks\n  - Default: 256 MB memory, 3 iterations, 1 thread\n  - [RFC 9106](https://datatracker.ietf.org/doc/html/rfc9106) compliant\n\n- **Random Generation**: Cryptographically secure (Go's `crypto/rand`)\n\n  - 24-byte XChaCha20 nonce (never reused)\n  - 16-byte Argon2 salt\n  - True randomness from OS entropy sources\n\n- **Data Integrity**: Poly1305 authentication tag\n  - 16-byte MAC prevents tampering\n  - Header authenticated as AAD (Additional Authenticated Data)\n\n### ✅ What ECRYPTO Protects Against\n\n| Threat                    | Protection                                  |\n| ------------------------- | ------------------------------------------- |\n| Unauthorized file access  | ✅ Strong 256-bit encryption                |\n| Filename/metadata leakage | ✅ Everything encrypted in container        |\n| Brute-force attacks       | ✅ Argon2id makes cracking impractical      |\n| File tampering            | ✅ Authentication tag detects modifications |\n| Rainbow table attacks     | ✅ Unique salt per container                |\n| Nonce reuse attacks       | ✅ Random 24-byte nonce per encryption      |\n\n### ⚠️ Limitations \u0026 Threat Model\n\nECRYPTO **does NOT** protect against:\n\n| Threat                       | Mitigation                                         |\n| ---------------------------- | -------------------------------------------------- |\n| Physical memory extraction   | Use full-disk encryption (BitLocker, FileVault)    |\n| Weak passphrases             | Use 16+ character passphrases or key files         |\n| Malware/keyloggers on system | Keep OS updated, use antivirus software            |\n| Loss of encryption key       | **Always backup your keys/passphrases!**           |\n| Side-channel attacks         | Not designed for hostile multi-tenant environments |\n\n### 🔐 Security Best Practices\n\n#### 1. **Strong Passphrases**\n\n```\n❌ Weak:   password123, qwerty, admin\n✅ Strong: Correct-Horse-Battery-Staple-2026!\n✅ Better: Use a key file generated with `keygen`\n```\n\nRecommendations:\n\n- Minimum 16 characters\n- Mix uppercase, lowercase, numbers, symbols\n- Use a password manager (1Password, Bitwarden, KeePass)\n- Never reuse passphrases across containers\n\n#### 2. **Key File Security**\n\n```powershell\n# Generate key files for maximum security\n.\\ecrypto.exe keygen --out project_key.txt\n\n# Store in password manager or encrypted USB drive\n# Never store keys next to encrypted files\n```\n\n#### 3. **Backup Strategy**\n\n```\nOriginal Files → Encrypt → .ecrypt container\n     ↓              ↓            ↓\n  (Delete)      (Backup)    (Store securely)\n                   ↓\n         Cloud Storage / External Drive\n```\n\n**Critical:** Test decryption BEFORE deleting original files!\n\n#### 4. **Secure Deletion of Originals**\n\nWindows:\n\n```powershell\n# Use SDelete (Sysinternals) for secure deletion\nsdelete -p 3 \"C:\\OriginalFolder\"\n```\n\nLinux/macOS:\n\n```bash\n# Use shred for secure deletion\nshred -vfz -n 3 /path/to/file\n```\n\n#### 5. **Container Storage**\n\n- ✅ Cloud storage (Google Drive, Dropbox) - encrypted container is safe\n- ✅ External drives with additional disk encryption\n- ✅ Network shares with proper access controls\n- ❌ Public file-sharing sites (risk of corruption)\n\n### 🔍 Verification \u0026 Testing\n\n```powershell\n# 1. Check container integrity\n.\\ecrypto.exe info --file backup.ecrypt\n\n# 2. Test decryption to temporary location\n.\\ecrypto.exe decrypt --in backup.ecrypt --out test_restore --pass \"YourPassword\"\n\n# 3. Verify files are intact\n# Compare checksums or spot-check files\n\n# 4. Delete test restore\nRemove-Item -Recurse test_restore\n```\n\n### 📊 Security Audit\n\nECRYPTO has been designed with security in mind:\n\n- ✅ No hardcoded secrets or backdoors\n- ✅ Open-source code available for review\n- ✅ Standard cryptographic libraries (Go's `crypto/*`)\n- ✅ Minimal dependencies reduce attack surface\n- ✅ No network connections or telemetry\n\n**Want to contribute to security?** Report vulnerabilities via [GitHub Issues](https://github.com/pandarudra/ecrypto/issues) (use \"Security\" label)\n\n---\n\n## 🛠️ Command Reference\n\n### `encrypt`\n\n| Flag         | Description             | Default        |\n| ------------ | ----------------------- | -------------- |\n| `--in`       | Input folder path       | (required)     |\n| `--out`      | Output .ecrypt file     | (required)     |\n| `--pass`     | Passphrase (Argon2id)   | -              |\n| `--key-file` | 32-byte Base64 key file | -              |\n| `--argon-m`  | Argon2 memory (KiB)     | 262144 (256MB) |\n| `--argon-t`  | Argon2 iterations       | 3              |\n| `--argon-p`  | Argon2 parallelism      | 1              |\n\n### `decrypt`\n\n| Flag         | Description        | Default    |\n| ------------ | ------------------ | ---------- |\n| `--in`       | Input .ecrypt file | (required) |\n| `--out`      | Output folder path | (required) |\n| `--pass`     | Passphrase         | -          |\n| `--key-file` | Key file           | -          |\n\n### `keygen`\n\n| Flag    | Description     | Default            |\n| ------- | --------------- | ------------------ |\n| `--out` | Output key file | (prints to stdout) |\n\n### `info`\n\n| Flag     | Description       | Default    |\n| -------- | ----------------- | ---------- |\n| `--file` | .ecrypt file path | (required) |\n\n---\n\n## 🏗️ Architecture\n\n```\n.ecrypt Container Format (v1):\n┌────────────────────────────────────────┐\n│ Header (59 bytes)                      │\n│  - Magic: \"ECRYPT01\"                   │\n│  - Version: 1                          │\n│  - KDF: 0=raw, 1=Argon2id              │\n│  - Argon2 params (m, t, p)             │\n│  - Salt (16 bytes)                     │\n│  - Nonce (24 bytes)                    │\n├────────────────────────────────────────┤\n│ Encrypted Data (XChaCha20-Poly1305)    │\n│  - Compressed folder (ZIP)             │\n│  - Authentication Tag (16 bytes)       │\n└────────────────────────────────────────┘\n```\n\n**File Flow:**\n\n```\nInput Folder → ZIP Archive → Encrypt (XChaCha20) → .ecrypt Container\n```\n\n---\n\n## 🐛 Troubleshooting\n\n### Common Issues \u0026 Solutions\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e❌ \"Access is denied\" error when encrypting\u003c/strong\u003e\u003c/summary\u003e\n\n**Problem:** Output path is a directory instead of a file.\n\n**Solution:** Specify a file path ending with `.ecrypt`:\n\n```powershell\n# ❌ Wrong - this is a directory\n.\\ecrypto.exe encrypt --in folder --out D:\\backup\n\n# ✅ Correct - this is a file\n.\\ecrypto.exe encrypt --in folder --out D:\\backup.ecrypt\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e🔑 \"Decryption failed: authentication tag mismatch\"\u003c/strong\u003e\u003c/summary\u003e\n\n**Problem:** Wrong passphrase/key or corrupted file.\n\n**Solutions:**\n\n1. Double-check your passphrase (case-sensitive!)\n2. Verify you're using the correct key file\n3. Check file integrity with `info` command:\n   ```powershell\n   .\\ecrypto.exe info --file backup.ecrypt\n   ```\n4. Ensure the file wasn't modified or corrupted during transfer\n5. Try re-downloading the file if transferred over network\n\n**Prevention:** Always test decryption immediately after encryption!\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e📁 \"File not found\" in interactive mode\u003c/strong\u003e\u003c/summary\u003e\n\n**Problem:** Paths with spaces not recognized.\n\n**Solution:** Use quotes around paths:\n\n```\nEnter folder path: \"C:\\My Documents\\Folder\"\n```\n\nOr use paths without spaces:\n\n```\nEnter folder path: C:\\Users\\John\\Documents\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e⚠️ \"Out of memory\" during encryption\u003c/strong\u003e\u003c/summary\u003e\n\n**Problem:** Argon2 memory settings too high for your system.\n\n**Solution:** Reduce Argon2 memory parameter:\n\n```powershell\n# Default is 256MB - reduce to 128MB\n.\\ecrypto.exe encrypt --in folder --out backup.ecrypt --pass \"password\" --argon-m 131072\n\n# For very low-memory systems (64MB)\n.\\ecrypto.exe encrypt --in folder --out backup.ecrypt --pass \"password\" --argon-m 65536\n```\n\n**Note:** Lower memory = faster cracking, so use strongest your system can handle.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e🐌 Encryption/decryption is very slow\u003c/strong\u003e\u003c/summary\u003e\n\n**Causes \u0026 Solutions:**\n\n1. **Large Argon2 parameters:** Reduce `--argon-m` and `--argon-t`\n2. **Large folders:** This is expected - compression + encryption takes time\n3. **Slow storage:** Move to SSD instead of HDD\n4. **Antivirus scanning:** Add exception for ecrypto or `.ecrypt` files\n\n**Performance tips:**\n\n- Use key files instead of passphrases (skips Argon2)\n- Split large folders into smaller containers\n- Disable real-time antivirus scanning during operations\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e❓ \"Invalid command\" errors\u003c/strong\u003e\u003c/summary\u003e\n\n**Solution:** Check command syntax:\n\n```powershell\n# Correct syntax\n.\\ecrypto.exe \u003ccommand\u003e --flag value\n\n# Common mistakes\n.\\ecrypto.exe --in folder encrypt  # ❌ Command must come first\n.\\ecrypto.exe encrypt -in folder   # ❌ Use -- for flags\n```\n\nUse `--help` for syntax help:\n\n```powershell\n.\\ecrypto.exe --help\n.\\ecrypto.exe encrypt --help\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e🔄 \"Cannot restore folder structure\"\u003c/strong\u003e\u003c/summary\u003e\n\n**Problem:** Permissions issues or invalid output path.\n\n**Solutions:**\n\n1. Run as Administrator (right-click → Run as administrator)\n2. Ensure output directory exists and is writable\n3. Check available disk space\n4. Avoid network drives if experiencing issues\n\u003c/details\u003e\n\n### Still Having Issues?\n\n1. **Check the logs:** Look for error messages in terminal output\n2. **Verify system requirements:** Go 1.24+ if building from source\n3. **Test with small files first:** Isolate whether issue is size-related\n4. **Report bugs:** [Open an issue](https://github.com/pandarudra/ecrypto/issues) with:\n   - Operating system \u0026 version\n   - ECRYPTO version (`.\\ecrypto.exe --version`)\n   - Command you ran (redact sensitive info)\n   - Full error message\n\n---\n\n## 🤝 Contributing\n\nWe welcome contributions from the community! Here's how you can help:\n\n### Ways to Contribute\n\n- 🐛 **Report bugs** - Found an issue? [Create a bug report](https://github.com/pandarudra/ecrypto/issues/new?labels=bug)\n- 💡 **Suggest features** - Have an idea? [Open a feature request](https://github.com/pandarudra/ecrypto/issues/new?labels=enhancement)\n- 📖 **Improve docs** - Fix typos, add examples, clarify instructions\n- 🔐 **Security audits** - Review cryptographic implementation\n- 💻 **Code contributions** - Fix bugs, implement features\n\n### Development Setup\n\n```bash\n# Clone the repository\ngit clone https://github.com/pandarudra/ecrypto.git\ncd ecrypto\n\n# Install dependencies\ngo mod download\n\n# Run tests\ngo test ./...\n\n# Build\ngo build -o ecrypto\n```\n\n### Contribution Workflow\n\n1. **Fork** the repository\n2. **Create** a feature branch (`git checkout -b feature/amazing-feature`)\n3. **Make** your changes with clear commit messages\n4. **Test** thoroughly (`go test ./...`)\n5. **Commit** changes (`git commit -m 'Add amazing feature'`)\n6. **Push** to your fork (`git push origin feature/amazing-feature`)\n7. **Open** a Pull Request with detailed description\n\n### Code Guidelines\n\n- Follow Go best practices and `gofmt` formatting\n- Add tests for new features\n- Update documentation for user-facing changes\n- Keep commits atomic and well-described\n- Ensure backwards compatibility with `.ecrypt` format\n\n### Security Contributions\n\nFound a security vulnerability? Please:\n\n1. **DO NOT** open a public issue\n2. Email details to [security contact] or use GitHub Security Advisories\n3. Include: description, steps to reproduce, potential impact\n4. We'll respond within 48 hours\n\n---\n\n## 📝 License\n\nThis project is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for details.\n\n**TL;DR:** You can use, modify, and distribute this software freely. Just include the license notice.\n\n---\n\n## 🔗 Links \u0026 Resources\n\n### Project Links\n\n- 📦 **[Download Latest Release](https://github.com/pandarudra/ecrypto/releases/latest)**\n- 🐛 **[Report a Bug](https://github.com/pandarudra/ecrypto/issues/new?labels=bug)**\n- 💡 **[Request a Feature](https://github.com/pandarudra/ecrypto/issues/new?labels=enhancement)**\n- 📖 **[Documentation \u0026 Wiki](https://github.com/pandarudra/ecrypto/wiki)**\n- 💬 **[Discussions](https://github.com/pandarudra/ecrypto/discussions)**\n\n### Documentation\n\n- 📘 **[How It Works](docs/index.html)** - Visual explanation of encryption pipeline\n- ↶ **[Undo Feature](docs/UNDO_FEATURE.md)** - Restore encrypted folders easily\n- 🎨 **[UI Enhancements](docs/UI_ENHANCEMENTS.md)** - User-friendly terminal experience\n\n### Related Resources\n\n- 📚 [XChaCha20-Poly1305 Specification](https://tools.ietf.org/html/rfc8439)\n- 🔐 [Argon2 Password Hashing](https://datatracker.ietf.org/doc/html/rfc9106)\n- 🛡️ [OWASP Cryptographic Storage](https://cheatsheetseries.owasp.org/cheatsheets/Cryptographic_Storage_Cheat_Sheet.html)\n- 🔑 [Password Manager Recommendations](https://www.privacyguides.org/passwords/)\n\n---\n\n## ⭐ Support This Project\n\nIf you find ECRYPTO useful, please consider:\n\n- ⭐ **Starring the repository** - Helps others discover the project\n- 🐛 **Reporting bugs** - Makes the tool better for everyone\n- 📢 **Sharing** - Tell colleagues and friends\n- 💻 **Contributing** - Submit PRs or improve documentation\n- ☕ **Sponsoring** - Support ongoing development\n\n### Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=pandarudra/ecrypto\u0026type=Date)](https://star-history.com/#pandarudra/ecrypto\u0026Date)\n\n---\n\n## 🙏 Acknowledgments\n\nECRYPTO is built on top of excellent open-source libraries:\n\n- **[golang.org/x/crypto](https://pkg.go.dev/golang.org/x/crypto)** - Cryptographic implementations\n- **[github.com/spf13/cobra](https://github.com/spf13/cobra)** - CLI framework\n- **[github.com/charmbracelet/lipgloss](https://github.com/charmbracelet/lipgloss)** - Terminal styling\n\nSpecial thanks to the cryptography community for their research and implementations.\n\n---\n\n## 📊 Project Stats\n\n![GitHub release (latest by date)](https://img.shields.io/github/v/release/pandarudra/ecrypto)\n![GitHub all releases](https://img.shields.io/github/downloads/pandarudra/ecrypto/total)\n![GitHub stars](https://img.shields.io/github/stars/pandarudra/ecrypto)\n![GitHub issues](https://img.shields.io/github/issues/pandarudra/ecrypto)\n![GitHub license](https://img.shields.io/github/license/pandarudra/ecrypto)\n\n---\n\n## 🎯 Roadmap\n\nPlanned features for future releases:\n\n- [ ] npm package for easy installation\n- [ ] GUI application (Windows/macOS/Linux)\n- [ ] Compression algorithm selection (ZSTD, GZIP)\n- [ ] Multiple key support (multi-party encryption)\n- [ ] Hardware security module (HSM) integration\n- [ ] Cloud storage integration (S3, Azure Blob)\n- [ ] Automated backup scheduling\n- [ ] Mobile app (iOS/Android)\n\nVote for features in [Discussions](https://github.com/pandarudra/ecrypto/discussions/categories/ideas)!\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**Made with ❤️ for Privacy and Security**\n\n_\"Your data, your control, your peace of mind.\"_\n\n[⬆ Back to Top](#-ecrypto)\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpandarudra%2Fecrypto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpandarudra%2Fecrypto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpandarudra%2Fecrypto/lists"}