DexiosGUI - Simple cross-platform drag-and-drop Dexios file encryption

Overview

Build status Cargo Build License: GPL3

DexiosGUI

Simple cross-platform drag-and-drop Dexios file encryption.
Latest Windows x64 release is here.

DexiosGUI is a Qt/C++ app for encrypt and decrypt files with the Dexios format made by brxken128.

This app is a work in progress made in 3 hours ! Sorry for english typo, comments ect... I don't have much time. It use modifications of my encryption tool Cryptyrust to use Dexios format.

For a full CLI application, have a look to Dexios.

Demo
The gif demo is Cryptyrust, but Dexiosgui is similar.

Technical details:

For now, DexiosGUI include Dexios-core Git crate in this project for some reasons:

  • Test the latest encryption format before it was released.
  • Make a little modification of the encryption/decryption loop to return the progress percentage. (Add this in the future release of the crate can be interesting for have a progress in cli or gui application.)
  • Add the constant "CORE_VERSION" to display the Dexios-core version in the DexiosGUI about window.

DexiosGUI must be considered as Alpha and not be used as a production application. Please be patient !

Suggestion: DexiosGUI detect if the input file is a dexios encrypted file by ckecking the firsts 2 bytes. [0xDE, 0x01], [0xDE, 0x02] or [0xDE, 0x03] respectively Header version 1,2 and 3.
Checking only 2 Bytes is to short and some files can be wrongly identified by DexiosGUI (or OS) as Dexios files. I think the Dexios-core crate need to introduce a classic 4 bytes Magic Number in future major release.

Build Linux core instructions:

In the root folder build the rust core lib with cargo build --release

Build Windows core instructions:

  • Install Visual Studio Build Tools 2019
  • Make sure rust use msvc. Run in command line : rustup default stable-x86_64-pc-windows-msvc
  • Build rust core project : cargo build --release

C++ GUI Compilation instructions:

C++ GUI require Qt5 or Qt6 and rust core build with cargo build --release. After building the Rust core, Open qtgui/CMakeLists.txt with your IDE and build it. If You use qt creator, you can open project dexiosgui.pro to build it.

# With Linux command-line, open a terminal in qtgui folder
qmake dexiosgui.pro
make
# For Windows
cd qtgui
mkdir build
cd build
cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release ..
nmake

Data Loss Disclaimer:
if you lose or forget your password, your data cannot be recovered !
Use a password manager or another secure form of backup.

You might also like...
A simple command-line application to securely store secrets using encryption

rust-secret-vault A simple yet robust command-line tool designed to safely encrypt and store your sensitive information. Harnessing the power of AES-2

age-encrypted secrets for NixOS; drop-in replacement for agenix

ragenix ragenix provides age-encrypted secrets for NixOS systems which live in the Nix store and are decrypted on system activation. Using ragenix to

Drop-in Access Control via NFT Ownership
Drop-in Access Control via NFT Ownership

niftygate - Signature-Based Authenticating Proxy What is it? niftygate is a proxy for HTTP services, that validates signatures, providing an AuthN lay

Built on the Substrate-based runtime, this repository develops the Paralink Network, a cross-chain Oracle platform for secure and scalable data integration. Our goal is to create a robust infrastructure that ensures efficient and reliable data transmission across blockchain networks.
The protocol are designed and made for the future of cross-IP, cross-chain metaverse.

Avatar-protocol 化身协议 This project demonstrates how to use the Solana Javascript API to interact with programs on the Solana blockchain. The project co

End-to-end encryption and mutual authentication for distributed applications.
End-to-end encryption and mutual authentication for distributed applications.

✨ Hands-on Introduction: Build end-to-end encrypted, mutually-authenticated, secure messaging in Rust ✨ Rust and Elixir libraries for end-to-end encry

Meta-repository for Miscreant: misuse-resistant symmetric encryption library with AES-SIV (RFC 5297) and AES-PMAC-SIV support

The best crypto you've never heard of, brought to you by Phil Rogaway A misuse resistant symmetric encryption library designed to support authenticate

Cross-platform atomic wait and wake (aka futex) functionality for Rust.

Cross platform atomic wait and wake (aka futex) functionality. This crate only supports functionality that's available on all of Linux, Windows, and m

rabe is an Attribute Based Encryption library, written in Rust

Rabe rabe is a rust library implementing several Attribute Based Encryption (ABE) schemes using a modified version of the bn library of zcash (type-3

Comments
  • Validating that the file is a Dexios-encrypted file

    Validating that the file is a Dexios-encrypted file

    In your README, you mention that Dexios-Core should add a 4-byte "magic number" to identify files that were encrypted.

    I think this is a good idea, although it can still produce collisions and isn't foolproof.

    I'd like to suggest implementing what I have done in the Dexios header functions (strip, dump and restore), which is attempting to deserialize the header. If the header doesn't deserialize, you can assume that it isn't valid (and if the header deserializes, but the file can't be decrypted, you can assume that the header was tampered with in some way, or that the key was incorrect). I agree that two bytes is too short, which is why I made this change.

    See here for an example.

    opened by brxken128 1
Releases(4.0.2)
Owner
Fabrice Corraire
C++ ----> Rust
Fabrice Corraire
A simple to use, cross-platform aes encryption

About Project End to End encryption (AES) for multiple languages (cross-platform) with CBC Icon Item ?? Upcoming ⚖️ License ?? ChangeLog Usage (rust)

Zot Cryptography 2 Dec 15, 2022
CLI password manager with encryption: AES256, Salsa20 and Chacha20, with cross platform and exclusive features

Keep My House (CLI) CLI password manager with encryption: AES256, Salsa20 and Chacha20, with cross platform and exclusive features Features AES256 GCM

null 4 Sep 7, 2023
Authenticated Encryption with Associated Data Algorithms: high-level encryption ciphers

RustCrypto: Authenticated Encryption with Associated Data (AEAD) Algorithms Collection of Authenticated Encryption with Associated Data (AEAD) algorit

Rust Crypto 457 Jan 4, 2023
Rust encryption library for practical time-lock encryption.

tlock_age: Hybrid Timelock Encryption/Decryption in Rust tlock_age is a library to encrypt and decrypt age filekey using tlock scheme. It provides an

Thibault 5 Mar 29, 2023
🔐 UPLINK is a Rust lightweight (2MB) tool for file transfer and remote management that uses AES-GCM and Envelope Encryption over WebSockets.

UPLINK ░▒▓█▓▒░░▒▓█▓▒░▒▓███████▓▒░░▒▓█▓▒░ ░▒▓█▓▒░▒▓███████▓▒░░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░ ░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█

Krystian Bajno 5 Sep 28, 2024
Chargo is a tool for file encryption/decryption. It's based on Argon2 and ChaCha20Poly1305 algorithms.

| Documentation Chargo is a tool for file encryption/decryption with password. It's based on Argon2 and ChaCha20Poly1305 algorithms. From arg2u with ♥

Airat Galiullin 7 Jan 1, 2023
A Rust binary for file encryption to multiple participants.

Kaspa-miner A Rust binary for file encryption to multiple participants. Installation From Sources With Rust's package manager cargo, you can install k

Elichai Turkel 31 Dec 30, 2022
A secure file encryption utility, written in rust.

Dexios Dexios What is it? Building notes Checksums Performance Output file sizes Environment Variables Key Inputs Usage Examples To Do What is it? Dex

brxken 156 Dec 22, 2022
A fast, simple and powerful open-source cross platform utility tool for generating strong, unique and random passwords

password-generator-pro A fast, simple and powerful open-source cross platform utility tool for generating strong, unique and random passwords. Feature

Sebastien Rousseau 3 Dec 16, 2022
Simple to use CLI tool that makes encryption easy! Written in Rust.

?? eme: Encryption Made Easy an extremely simple AES-256 encryption tool written in Rust Usage: # To encrypt: eme --encrypt secret.png # To decrypt: e

null 5 Jan 3, 2023