diff --git a/README.md b/README.md new file mode 100644 index 0000000..55f3464 --- /dev/null +++ b/README.md @@ -0,0 +1,42 @@ +# crype + +![](https://img.shields.io/badge/written%20in-C%2B%2B%2C%20C-blue) + +Deterministic syncable/diffable encryption, for files or pipes. + +`crype` is a tool providing rsyncable deterministic-encryption (like rsyncrypto for pipes). It encrypts data using a common decision function over plaintext, allowing rsync-like tools to still work efficiently over the encrypted data. It uses HMAC-SHA1-PBKDF2 and the ChaCha stream cipher. + +Compression is also implemented, as this improves both portabiity and rsyncability compared to a separate `gzip --rsyncable` pass. + +See `crype --help` for usage instructions. Binaries are provided for 32-bit Windows, 32-bit Cygwin, and 64-bit Debian 7. + +## License + +Source code is made available freely under the terms of the ISC license. The source code distribution includes library code under {public-domain, BSD, Unlicense} licenses. + +The provided binaries are likewise freely redistributable for any purpose. + +## TODO + +- Reduce peak memory usage by using stream functions for decompression +- Parallel compression/encryption +- Distro packages, static binaries + +## Changelog + +2014-05-24: r59 +- Add file header for version compatibility detection +- Add plaintext comment to file header +- Allow configuring compression level +- Support Debian 7 (amd64) +- Support Cygwin (i386) +- Security: Improve security by switching chunk IVs based on truncated plaintext HMAC (incompatible change) +- Security: Read encryption passwords from file +- Security: Warn when reading encryption password from argument +- [⬇️ crype-r59.zip](dist-archive/crype-r59.zip) *(205.77 KiB)* + + +2014-05-14: r30 +- Initial release +- [⬇️ crype-r30.zip](dist-archive/crype-r30.zip) *(133.55 KiB)* + diff --git a/dist-archive/crype-r30.zip b/dist-archive/crype-r30.zip new file mode 100644 index 0000000..99c4b3f Binary files /dev/null and b/dist-archive/crype-r30.zip differ diff --git a/dist-archive/crype-r59.zip b/dist-archive/crype-r59.zip new file mode 100644 index 0000000..45c38a3 Binary files /dev/null and b/dist-archive/crype-r59.zip differ diff --git a/doc/screenshot.png b/doc/screenshot.png new file mode 100644 index 0000000..735196b Binary files /dev/null and b/doc/screenshot.png differ