What is it?
Dexios-Core is a library used for managing cryptographic functions and headers that adhere to the Dexios format.
Security
Dexios-Core uses modern, secure and audited1 AEADs for encryption and decryption.
You may find the audits for both AES-256-GCM and XChaCha20-Poly1305 on the NCC Group's website.
1 Deoxys-II-256 does not have an official audit, so use it at your own risk
Who uses Dexios-Core?
This library is implemented by Dexios, a secure command-line file encryption utility.
Dexios-Core makes it easy to integrate the Dexios format into your own projects (and if there's a feature that you'd like to see, please don't hesitate to open a Github issue). The documentation is packed with information to help you get started!
Features
- Convenience functions for encrypting/decrypting
- 3 AEADs (XChaCha20-Poly1305, AES-256-GCM, Deoxys-II-256)
- Easy management of encrypted headers (no more worrying about where to store a nonce!)
- Easy
argon2id
hashing with secure parameters - Easy
balloon
hashing with secure parameters and BLAKE3 - Frequent updates and feature additions!
Donating
If you like my work, and want to help support Dexios, or Dexios-Core, feel free to donate! This is not necessary by any means, so please don't feel obliged to do so.
XMR: 84zSGS18aHtT3CZjZUnnWpCsz1wmA5f65G6BXisbrvAiH7PxZpP8GorbdjAQYRtfeiANZywwUPjZcHu8eXJeWdafJQFK46G
BTC: bc1q8x0r7khrfj40qd0zr5xv3t9nl92rz2387pu48u
ETH: 0x9630f95F11dFa8703b71DbF746E5c83A31A3F2DD
Examples
Deserializing a header:
let header_bytes: = ;
let mut cursor = new;
// the cursor may be a file, this is just an example
let = deserialize.unwrap;
Writing a header to a file:
let mut output_file = create.unwrap;
header.write.unwrap;
Encrypting and decrypting in-memory:
// obviously the key should contain data, not be an empty vec
let raw_key = new;
let salt = gen_salt;
let key = balloon_hash.unwrap;
let cipher = initialize.unwrap;
let secret = "super secret information";
let nonce = gen_nonce;
let encrypted_data = cipher.encrypt.unwrap;
let decrypted_data = cipher.decrypt.unwrap;
assert_eq!;
You can read more about Dexios, Dexios-Core and the technical details in the project's main documentation!
Thank you!
Dexios-Core exclusively uses AEADs provided by the RustCrypto Team, so I'd like to give them a huge thank you for their hard work (this wouldn't have been possible without them!)