Add Dexios as a command-line file encryption tool #121
Replies: 0 comments 29 replies
-
You can post a link to your project and see what people think. Even if it doesn't get added initially if there's a discussion about it it can be reevaluated later on. |
Beta Was this translation helpful? Give feedback.
-
Great job with all the documentation and effort that's been put in. A few things that jumped out at me without glancing behind the scenes, which I couldn't do properly anyway because I despise the readability of Rust:
Sorry if I missed something, but I haven't currently got much time. |
Beta Was this translation helpful? Give feedback.
-
I added Deoxys support as I believe it has the potential to replace some of the other algorithms. I do not recommend it, you're right, but it has an amazing track record thus far - the only thing that's lacking is a good implementation.
It's authenticated in the sense that Dexios will fail if it's not valid, but there are no cryptographic checks against it.
Yes, I had plans to remove the compression entirely for the release of v8.3.0. It's pretty slow and unnecessary also.
Not hard enough, I'll admit. I can't remember them off the top of my head. Either way, they're going to be bumped up in v8.3.0 as it'll require an iteration of the header version. If you have any parameter recommendations, I'd love to hear them as I can't seem to find a good balance on memory usage and such. I only have a couple of machines to test with and they're both pretty powerful (and not a good baseline).
It goes straight into
This is how prior versions handled it, but I think it's much easier to just store that data within the header. It allows for more flexibility this way too.
You make a great point, I can definitely get to work on Windows. It shouldn't be too hard to migrate as there's only a few things that I can see being problematic within my code.
Not currently - I left this up to the
I was going to implement an automatic extension, and I suppose this could tie into the encrypting multiple files at once.
I believe you got everything! I love what you've done with Kryptor, and I hope our projects can co-exist in a friendly manner. Good luck in your exams :) |
Beta Was this translation helpful? Give feedback.
-
I thought I'd provide an update, in case anyone stumbles upon this.
I believe those are the major changes worth covering - once again, I'm open to any questions or criticism! Thank you for your time. |
Beta Was this translation helpful? Give feedback.
-
Some changes have been made recently, these include: A TL;DR:
There are a few other minor changes, but I believe this is most of them. |
Beta Was this translation helpful? Give feedback.
-
I've been having a look through the documents for this. The Rust implementation for this has been audited as @brxken128 points out https://brxken128.github.io/dexios/Introduction.html#security-notices I noticed the site said:
We might want to re-evaluate this after the re-write. Also just as a note, we're deprecating Github discussions, and instead use a proper forum https://discuss.privacyguides.net/. |
Beta Was this translation helpful? Give feedback.
-
Disclaimer: I wrote this tool!
It's called Dexios! I've been working on it for almost a month, and it's finally at the point where I'm happy to share it with people.
It offers secure, authenticated and fast command-line file encryption of files. It's written entirely in Rust, and is entirely open source. The encryption libraries used have received audits (excluding Deoxys).
It uses XChaCha20-Poly1305 by default, with the option for AES-256-GCM. There's also another option for Deoxys-II-256, but it's not ideal and there are many warnings in place surrounding it's usage.
Password hashing is done via
argon2id
. There's support for a keyfile, entering a password within the terminal and aDEXIOS_KEY
environment variable. Theargon2id
parameters are hard enough to be secure, but low enough to be portable and used on a wide range of devices(m = 256MiB, t = 8, p = 4)
dexios-core
library to isolate the cryptographic functions from the user-facing application. This makes it easier to manage security-critical features, and was added in v8.5.0It can encrypt in both STREAM mode (using a 31-bit little-endian counter), and by loading things into memory. Streaming modes are used for encrypting all files, and "memory" mode was kept in place for backwards-compatibility. Dexios' streaming implementation works perfectly for files less than 1MiB (the block size), so it is now the default for encrypting all files.
I've worked quite hard to get it both stable, and performant. I believe it hits both marks entirely.
It can encrypt
Fedora-Workstation-35-1.2.aarch64.raw.xz
(3.5GiB) in 5˜ seconds, and that's limited by the speed of my SSD.It is supported on Windows/Linux/FreeBSD/Android - Windows support was added in v8.3.0
I believe the PrivacyGuides section on file encryption software is rather populated, so I get if you'd rather not add another to the list.
Link to the repos: https://github.com/brxken128/dexios https://github.com/brxken128/dexios
Link to the docs: https://brxken128.github.io/dexios/
Link to the technical details: https://brxken128.github.io/dexios/dexios-core/
I'm open to any questions, criticism, or suggestions!
Beta Was this translation helpful? Give feedback.
All reactions