This workspace contains 50 standalone password-file encryption applications. The rule is literal: x1 through x50 use 50 different payload-encryption algorithm families. A KDF change, key-size change, mode change, or chunk-size change does not count as a different payload algorithm.
All apps keep the same command-line contract:
xN E|D <input> <output>
The password prompt, bounded password derivation, authenticated record framing, temporary-output handling, and no-clobber commit are shared safety concepts. Each crate still owns its implementation, format ID, dependencies, payload primitive, tests, and README. Ciphertexts are deliberately rejected by every sibling app.
| App | Payload algorithm | Record protection | Intended status |
|---|---|---|---|
| x1 | AES-256-GCM | Native AEAD | Modern |
| x2 | ChaCha20-Poly1305 | Native AEAD | Modern |
| x3 | Ascon-AEAD128 | Native AEAD | Standardized; crate unaudited |
| x4 | AEGIS-256 | Native AEAD | Experimental |
| x5 | XSalsa20-Poly1305 | Secretbox | Established construction |
| x6 | Deoxys-II-256 | Native AEAD | Experimental |
| x7 | ISAP-Keccak-128A | Native AEAD | Experimental |
| x8 | MORUS-1280-128 | Native AEAD | Experimental |
| x9 | Gimli-AEAD | Native AEAD | Educational |
| x10 | Xoodyak | Native AEAD | Experimental |
| x11 | Forro14-Poly1305 | Native AEAD | Experimental |
| x12 | KCipher-2 | HMAC Encrypt-then-MAC | Specialized |
| x13 | SNOW-V-GCM | Native AEAD | Experimental |
| x14 | Strumok | HMAC Encrypt-then-MAC | Specialized |
| x15 | Enocoro-128v2 | HMAC Encrypt-then-MAC | Educational |
| x16 | HC-128 | HMAC Encrypt-then-MAC | Educational |
| x17 | Turing | HMAC Encrypt-then-MAC | Educational |
| x18 | NORX64-4-1 | Native AEAD | Experimental / legacy |
| x19 | Grain-128AEADv2 | Native AEAD | Experimental |
| x20 | Romulus-M | Native AEAD | Experimental |
| x21 | Saturnin-CTR-Cascade | Native AEAD | Experimental |
| x22 | MKV128-256-GCM | Native AEAD | Experimental |
| x23 | BLAKE3-AEAD | Native authenticated cipher | Research-only |
| x24 | Kalyna-256/256-GCM | Native AEAD | Specialized |
| x25 | ZUC-128 | HMAC Encrypt-then-MAC | Specialized |
| x26 | SIMON128-256 | HMAC Encrypt-then-MAC | Educational |
| x27 | SPECK128-256 | HMAC Encrypt-then-MAC | Educational |
| x28 | CAST6-256 | HMAC Encrypt-then-MAC | Legacy |
| x29 | RC6-256 | HMAC Encrypt-then-MAC | Legacy |
| x30 | IDEA-128 | HMAC Encrypt-then-MAC | Legacy |
| x31 | SEED-128 | HMAC Encrypt-then-MAC | Legacy |
| x32 | PRESENT-128 | HMAC Encrypt-then-MAC | Educational |
| x33 | Magma | HMAC Encrypt-then-MAC | Legacy |
| x34 | Trivium | HMAC Encrypt-then-MAC | Educational |
| x35 | ARIA-256 | HMAC Encrypt-then-MAC | Standardized; crate unaudited |
| x36 | Camellia-256 | HMAC Encrypt-then-MAC | Standardized; crate unaudited |
| x37 | Serpent-256 | HMAC Encrypt-then-MAC | AES finalist; crate unaudited |
| x38 | Twofish-256 | HMAC Encrypt-then-MAC | AES finalist; crate unaudited |
| x39 | Kuznyechik | HMAC Encrypt-then-MAC | Standardized; crate unaudited |
| x40 | SM4 | HMAC Encrypt-then-MAC | Standardized; crate unaudited |
| x41 | Blowfish | HMAC Encrypt-then-MAC | Legacy; educational only |
| x42 | BELT-DWP | Native AEAD plus outer HMAC EtM | Standardized; crate unaudited |
| x43 | GIFT-128 | HMAC Encrypt-then-MAC | Experimental |
| x44 | Threefish-256 | HMAC Encrypt-then-MAC | Experimental |
| x45 | LEA-256 | HMAC Encrypt-then-MAC | Specialized |
| x46 | Spritz | HMAC Encrypt-then-MAC | Educational only |
| x47 | Rabbit | HMAC Encrypt-then-MAC | Legacy |
| x48 | TEA-32 | HMAC Encrypt-then-MAC | Broken / educational only |
| x49 | Skipjack | HMAC Encrypt-then-MAC | Broken / educational only |
| x50 | RC4-drop3072 | HMAC Encrypt-then-MAC | Broken / educational only |
Run the workspace guard before accepting changes:
./verify-algorithms.ps1
cargo test --workspaceThe verifier requires 50 declared payload algorithms and 50 distinct src/main.rs hashes. These custom file formats have not had an independent cryptographic audit. The legacy and educational apps exist to meet the explicit algorithm-diversity requirement and must not be used for sensitive data.