Giter Site home page Giter Site logo

keevol / cloaker Goto Github PK

View Code? Open in Web Editor NEW

This project forked from spieglt/cloaker

0.0 1.0 0.0 4.3 MB

Simple password-based file encryption

License: GNU General Public License v3.0

Shell 0.10% Rust 39.66% Batchfile 0.06% QMake 7.48% C++ 52.69%

cloaker's Introduction

Cloaker

Ready-to-use downloads on the Releases page

Version 2.0 improvements: added automatic mode detection, removed Encrypt and Decrypt buttons, deleted Windows MFC GUI in favor of Qt on all 3 platforms.

Very simple cross-platform file encryption

Have you ever wanted to protect a file with a password and found it unnecessarily difficult to do so? Cloaker aims to provide the most straightforward file encryption possible. Just drop a file onto the window, set a password, and choose where to save it. To decrypt, drop the encrypted file on the window, enter the password, and choose the output location. (Tip: decrypt to a ramdisk for temporary use to avoid writing data to permanent storage.) No installation required! On Windows it's a single .exe, on Mac a standard .app bundle, and on Linux a single executable .run file.

Demo

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. Cloaker uses stream encryption from the sodium-oxide Rust wrapper of libsodium (xchacha20poly1305).

Compilation instructions:

cd adapter && cargo build && cargo build --release.

Then open gui/cloaker/cloaker.pro in Qt Creator (Qt 5.12), make sure kit is 64bit, and build.

If you want to make a distributable on...

Mac: use macqtdeploy with the built .app bundle as argument.

Linux only: compile a static version of Qt with something like:

(Mint 19 example, you'll probably have to install libgtk-3-dev)

$ mkdir ~/qt-static && cd ~/qt-static
$ mkdir build install; cd build
$ ~/Qt/5.12.3/Src/configure -prefix ~/qt-static/install -static -release -opensource -confirm-license -skip multimedia -skip webengine -skip wayland -no-compile-examples -nomake examples -no-openssl -ico -gtk -gif -qt-xcb
$ make -j8

(Ubuntu 19.04 example, you'll probably have to install extra fontconfig and freetype dependencies)

$ mkdir ~/qt-static && cd ~/qt-static
$ mkdir build install; cd build
$ ~/Qt/5.13.0/Src/configure -prefix ~/qt-static/install -static -release -opensource -confirm-license -skip multimedia -skip webengine -skip wayland -no-compile-examples -nomake examples -no-openssl -ico -gtk -gif -fontconfig
$ make -j8

Windows only: compile Qt statically with something like:

> cd c:\; mkdir qt-static; cd qt-static
> C:\Qt\5.12.0\Src\configure.bat -prefix C:\qt-static\5.12.0 -static -release -opensource -confirm-license -skip multimedia -no-compile-examples -nomake examples -no-openssl -no-opengl
> mingw32-make.exe

Then run rustup toolchain install stable-x86_64-pc-windows-gnu and rustup set default-host x86_64-pc-windows-gnu. (Linking Qt statically requires compiling with MinGW, which requires linking against Rust libs compiled with MinGW.) Then cd to cloaker\adapter, delete the target directory, run cargo build --release again, go into the new target\release directory, and rename adapter.lib to libadapter.a. (rust-lang/rust#43749)

Then, on Linux and Windows: go to Qt Creator settings, add a new version of Qt, and point to wherever/it/is/qt-static/qtbase/bin/qmake. Then add a new "Kit" that points to this Qt version, and build Release version with that kit selected. (Use your preexisting dynamically-linked version of Qt for debugging.)

Planned features:

  • Progress indicator/speed staticstics?
  • CLI: add password length requirement, and a real flag parser with an output parameter
  • Mobile version someday?

Issues:

  • Tell me about them
  • Backward compatibility note: to decrypt a file made with version 1.0 or 1.1 of Cloaker (with Encrypt and Decrypt buttons), the filename must end with the ".cloaker" extension. Files encrypted with later versions are not subject to this restriction.

If you've used Cloaker, please send me feedback and thank you for your interest!

You might also like: https://github.com/spieglt/flyingcarpet

cloaker's People

Contributors

spieglt avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.