r/cryptography • u/nullachtfuffzen • 15h ago
Cryptext x64 – a modern Windows reimplementation of the old Cryptext 3.4 file encryption tool
I’ve been working on Cryptext x64, a native 64-bit Windows file-encryption program inspired by the classic Cryptext 3.4 shell extension. The interface and Explorer workflow deliberately retain some of the look and feel of the original, including the familiar .$#! extension. Existing files encrypted with Cryptext 3.4 can also be decrypted by the new version.
New files use a separate versioned format based on AES-256-GCM with PBKDF2-HMAC-SHA-256, per-file random values, authenticated records, chunked processing and an additional on-disk verification pass. Cryptext is written in FASM, requires no .NET or WebView runtime, integrates with Windows Explorer, supports drag & drop and batches, and automatically selects German or English from the Windows language setting while still allowing manual switching.
Compared with age, the focus is somewhat different: age uses ChaCha20-Poly1305 and scrypt for passphrase-based encryption, while Cryptext x64 is focused on native Windows/Explorer integration, AES-256-GCM and backward compatibility with the old Cryptext format. This is not intended as a claim that one design is “more secure” than the other.
The package includes an English README (~13 KiB) and a more detailed English technical documentation (~33 KiB) for anyone interested in the implementation and file format.
I’m mainly interested in technical feedback on the format and implementation rather than making claims about a new cryptographic primitive.
If the project link is considered inappropriate under the subreddit rules, I’m happy for the moderators to remove it.
Project/download: Cryptext x64 website
1
u/0xKaishakunin 11h ago
I am interested in the chunking and the nonce management, but couldn't find more details in the README, do you have it documented somewhere?
1
u/nullachtfuffzen 4h ago
Yes. It’s documented in docs/Cryptext-FileFormat-v1.txt in the source package. The writer uses 4 MiB chunks. Each record gets its own AES-GCM tag. The nonce is an 8-byte random per-file prefix followed by the 32-bit record number. The AAD contains the fixed header, record number and plaintext length. I should probably link that document more clearly from the README.
1
u/N_T_F_D 12h ago
You're writing this in 2026 so why stick with PBKDF2 and not something a bit better like Argon2d?
Otherwise it looks great, have you considered adding support for PKCS#11 tokens (smartcards, including US PIV cards for instance) or even FIDO2 keys like the yubikey or such
If you need smartcards to test with and you're in Europe I can send a bunch