Simple, drag-and-drop, password-based file encryption

Overview

Cloaker

New Cloaker 4.0 downloads on the Releases page!

Mobile version available at https://cloaker.mobi! Static HTML/CSS/JS/WASM and interoperable with this version of Cloaker. Code here.

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. No installation required: on Windows it's a single .exe, on Mac an .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 the pwhash and secretstream APIs of libsodium via sodiumoxide.

Compilation instructions:

cd cloaker/adapter; cargo build --release.

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

If you want to make a distributable on...

Mac: use the macdeployqt script in your Qt installation's bin/ directory with the built .app bundle as argument.

On Linux and Windows: make sure Sources are installed for Qt 5.15.2 through the Qt Maintenance Tool.

Linux Mint 20: compiling Qt statically is a dark and arcane practice that I've wasted way too much time trying to understand. These instructions build a static version of Qt on Mint 20, and programs built with that Qt version run on a fresh installation of Ubuntu 20. However, you may still find libraries missing if you try to use the Cloaker 4.0 binary from the releases page on other distros. If you have trouble, open an issue, and I'll see if I can help. (Or, if you're using Linux, you might just want to use the CLI version which is much easier to compile.)

Install dependencies (partially-helpful reference here):

sudo apt install build-essential # C/C++ compiler
sudo apt install ^libxcb.*-dev # installs all libxcb dev packages
sudo apt install libx11-xcb-dev
sudo apt install libxkbcommon-dev libxkbcommon-x11-dev libglib2.0-dev libgtk-3-dev # keyboard, glib, and gtk packages we'll need for the flags we're going to use with the `configure` script

Then compile Qt statically with something like

$ mkdir ~/qt-static; cd ~/qt-static
$ ~/Qt/5.15.2/Src/configure -static -release -opensource -confirm-license -skip multimedia -skip webengine -skip wayland -no-compile-examples -nomake examples -no-openssl -no-opengl -ico -xcb -gif -gtk -qt-pcre -bundled-xcb-xinput
$ make -j8

More documentation on the configure command can be found here, and all the options can be seen by running ~/Qt/5.15.2/Src/configure -h. Other helpful resources are the pages on Linux deployment and X11 requirements.

Windows only: install Visual Studio 2019 Community (including the Desktop development with C++ feature), launch the x64 Native Tools Command Prompt (found in Start Menu > Visual Studio 2019) and compile Qt statically with something like:

> cd C:\; mkdir qt-static; cd qt-static
> C:\Qt\5.15.2\Src\configure.bat -release -static -no-pch -optimize-size -opengl desktop -platform win32-msvc -skip webengine -nomake tools -nomake tests -nomake examples
> nmake.exe

Run rustup default stable-x86_64-pc-windows-msvc to make sure you're using MSVC, and rerun cargo build --release from adapter/ if you weren't.

Finally, on Linux and Windows: go to Qt Creator > Project > Manage Kits > Qt Versions, add a new version of Qt, and point to ~/qt-static/qtbase/bin/qmake or C:\qt-static\qtbase\bin\qmake.exe. Add a new Kit in the Kits tab, and set its Qt version to be the static one you just added. On the Projects page, click the plus button by the new Kit under Build & Run. Now you can build with the static kit's Release profile in the bottom-left above the play and build buttons.

CLI compilation instructions

cd cli; cargo build --release. Executable will be at cloaker/cli/target/release/cloaker_cli(.exe).

Planned features:

  • Change minimum password length to 14 or 16?

Issues:

  • Please tell me about them.
  • Backward compatibility notes:
    • 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.
    • Cloaker version 4 can decrypt files that were encrypted with previous versions, but previous versions cannot decrypt files encrypted with version 4+.

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

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

Issues
  • Crashes when using custom file decryption path (Linux)

    Crashes when using custom file decryption path (Linux)

    Using Linux (Ubuntu 19.04) and Cloaker 2.0 (precompiled binary), when I want to decrypt a file using the GUI, if I try to select "/" or "Computer" as the path, or if I try to enter some path manually, the application crashes with:

     ./Cloaker.run 
    QApplication: invalid style override passed, ignoring it.
        Available styles: Windows, Fusion
    Case insensitive sorting unsupported in the posix collation implementation
    Numeric mode unsupported in the posix collation implementation
    Case insensitive sorting unsupported in the posix collation implementation
    Numeric mode unsupported in the posix collation implementation
    Case insensitive sorting unsupported in the posix collation implementation
    Numeric mode unsupported in the posix collation implementation
    Segmentation fault (core dumped)
    
    opened by logix2 22
  • Cloaker 2.1 Not Working Windows 7

    Cloaker 2.1 Not Working Windows 7

    I was able to encrypt a zip file fine on my Mac and then I went to test it and see if I could decrypt in on my Windows 7 laptop. For some reason Cloaker wouldn't even open on it even after it asked me if I wanted to run the file. How can I fix this or when will the next release be sent out with this fixed (if it's a known bug)?

    opened by evennotodd 10
  • File encrypted with Cloaker GUI can't be decrypted by Cloaker CLI (Linux)

    File encrypted with Cloaker GUI can't be decrypted by Cloaker CLI (Linux)

    A file I encrypted using Cloaker GUI (version 2.0 - I used the precompiled binary) can't be decrypted using Cloaker CLI (version 2.0 - I compiled the binary myself since the precompiled binary doesn't seem to include the CLI).

    I'm using Ubuntu 19.04.

    opened by logix2 9
  • Can't run on Linux

    Can't run on Linux

    Hello,

    When trying to run the .run file on Linux Mint Sylvia 18.3 I have this error:

    $  ./Cloaker.run ./Cloaker.run: error while loading shared libraries: libicui18n.so.60: cannot open shared object file: No such file or directory

    Thank you.

    opened by arnauldb 5
  • Ubuntu 20.04 with newer libicu library

    Ubuntu 20.04 with newer libicu library

    Hello,

    Since upgrading to Ubuntu 20.04, Cloaker does not work any longer - it throws exception related to libicu version. The version that comes with Ubuntu 20.04 is 66, but the version with which the binaries are compiled is 60. I tried first to create symlinks to simulate an older version but internal functions include a version in their name: ./Cloaker_linux: symbol lookup error: ./Cloaker_linux: undefined symbol: ucal_close_60 Is it possible to provide a prebuilt version for Ubuntu 20.04, please?

    Thank you in advance for your help!

    Best regards, SoftExpert

    opened by SoftExpert 5
  • Feature Request: Allow piping input and output from and to stdin/stdout

    Feature Request: Allow piping input and output from and to stdin/stdout

    At the moment it is only possible to read input files that are on the harddrive and save the output to another file on the harddrive. It would be really handy to be able to pipe the input and output to make chaining commands easier.

    opened by errhammr 3
  • [Feature Request] multiple files

    [Feature Request] multiple files

    It would be great if multiples files are encripted/decripted at the same time with the same password.

    opened by spring-haru 3
  • Decrypt the output file

    Decrypt the output file

    Can I make suggestions? After entering the decryption password, no matter whether the password is correct or not, a file will be generated instead of prompting that the password is incorrect. Will it be safer to fight against brute force?

    opened by R0FGV 2
  • Decrypting a previously encrypted empty file does not work

    Decrypting a previously encrypted empty file does not work

    Hello! I'm running cloaker_cli on OpenBSD.

    $ git describe --tags --always --dirty
    v3.1
    $ cloaker_cli -V                                   
    Cloaker v3.1
    

    I was playing around with it to evaluate what I could use it for. Out of curiosity I encrypted an empty file. This worked just fine. So I tried decrypting said file again and Cloaker wasn't having it.

    $ cloaker_cli -d /tmp/emptyfile.cloaker
    Password: 
    Error: File not big enough to have been encrypted
    

    I would expect Cloaker to be able to decrypt every file that it previously encrypted, even if it is empty.

    I have two ideas how to solve this:

    1. Allow decryption of previously encrypted empty files. This would leak the plain text version of the file since Cloaker is using a stream cipher that – without padding the plain text – leaks the length of the plain text and a length of 0 doesn't leave a lot of room for interpretation. I don't consider this a security risk because the contents of an empty file don't give an attacker much of an advantage.
    2. Prevent encryption of empty files in the first place. This would, however, break the general purpose file encryption functionality because files need to meet certain criteria (i.e. being non-empty) in order to be encryptable. In a hypothetical software product that encrypts arbitrary files in an automated way using Cloaker, an empty file would cause an error that doesn't really add any value to the software product.

    So if you ask me, please allow for empty files to be encrypted and decrypted just like any other file. I'd imagine this to be an easy fix but I have to admit that my Rust skills aren't quite there yet to create a PR.

    opened by errhammr 2
  • [Windows | Feature] Minimize to Tray

    [Windows | Feature] Minimize to Tray

    Maybe close button, minimize button, or another button?

    opened by Riajyuu 1
Releases(v4.0)
Owner
Theron Spiegl
AppSec at Latacora. Trying to make useful free & open source software. Interested in Rust, C, cryptography, and systems dev.
Theron Spiegl
🔑 Free Offline Password Manager

Free Offline-first Password Manager for MacOS, Windows and Linux. ❤️ it? Then ⭐️ it on GitHub or Tweet about it. Features Store Login/Password credent

Swifty 636 Jan 13, 2022
Simple macOS GateKeeper script.

macOS GateKeeper Helper Simple macOS GateKeeper script. ?? Table of Contents About Usage Tips ?? About This is a simple useful tool for users which al

Bahadır A. Güder 146 Jan 6, 2022
🔓✨🔒 An innovative, convenient and secure encryption app

Crypter An innovative, convenient and secure crypto app. Encrypt unlimited bits. Remember only a bit. Crypter is a cross-platform crypto app that make

Habib Rehman 414 Jan 12, 2022
A truly native Matrix client for macOS - written in Swift/Cocoa, with E2E encryption support

Seaglass Seaglass is a truly native macOS client for Matrix. It is written in Swift and uses the Cocoa user interface framework. Install Seaglass You

Neil Alexander 479 Jan 2, 2022
Multi-platform transparent client-side encryption of your files in the cloud

Supporting Cryptomator Cryptomator is provided free of charge as an open-source project despite the high development effort and is therefore dependent

Cryptomator 6.8k Jan 7, 2022
Jetpack Compose and SwiftUI based Kotlin Multiplatform sample project (based on CityBikes API).

Jetpack Compose and SwiftUI based Kotlin Multiplatform sample project (based on CityBikes API).

John O'Reilly 328 Jan 13, 2022
A modern, open source password manager for individuals and teams.

Padloc Simple, secure password and data management for individuals and teams (formerly known as Padlock). This repo is split into multiple packages: P

Padloc 1.1k Jan 3, 2022
A KeePass/Password Safe Client for iOS and OS X

Strongbox A Personal Password Manager for iOS & OSX that can be found on the Apple App Store here: https://apps.apple.com/app/strongbox-password-safe/

Strongbox 758 Jan 13, 2022
Simple and expressive file management in Swift

Installation • Usage • License • Documentation FileKit is a Swift framework that allows for simple and expressive file management. Development happens

Nikolai Vazquez 2.2k Jan 12, 2022
KeePassXC is a cross-platform community-driven port of the Windows application “Keepass Password Safe”.

KeePassXC KeePassXC is a modern, secure, and open-source password manager that stores and manages your most sensitive information. You can run KeePass

KeePassXC 11.8k Jan 12, 2022
Free cross-platform password manager compatible with KeePass

Free cross-platform password manager compatible with KeePass This webapp is a browser and desktop password manager compatible with KeePass databases.

KeeWeb 10.6k Jan 6, 2022
🔑 Free Offline Password Manager

Free Offline-first Password Manager for MacOS, Windows and Linux. ❤️ it? Then ⭐️ it on GitHub or Tweet about it. Features Store Login/Password credent

Swifty 636 Jan 13, 2022
Lightweight Lua-based IDE for Lua with code completion, syntax highlighting, live coding, remote debugger, and code analyzer; supports Lua 5.1, 5.2, 5.3, 5.4, LuaJIT and other Lua interpreters on Windows, macOS, and Linux

Project Description ZeroBrane Studio is a lightweight cross-platform Lua IDE with code completion, syntax highlighting, remote debugger, code analyzer

Paul Kulchenko 2.3k Jan 3, 2022
QOwnNotes is a plain-text file notepad and todo-list manager with markdown support and Nextcloud / ownCloud integration.

QOwnNotes Installation | Changelog | Issues | Shortcuts | Documentation | Screenshots | Nextcloud API | Nextcloud App Page | ownCloud API | Telegram G

Patrizio Bekerle 2.4k Jan 12, 2022
QOwnNotes is a plain-text file notepad and todo-list manager with markdown support and Nextcloud / ownCloud integration.

QOwnNotes Installation | Changelog | Issues | Shortcuts | Documentation | Screenshots | Nextcloud API | Nextcloud App Page | ownCloud API | Telegram G

Patrizio Bekerle 2.4k Jan 15, 2022
QOwnNotes is a plain-text file notepad and todo-list manager with markdown support and Nextcloud / ownCloud integration.

QOwnNotes Installation | Changelog | Issues | Shortcuts | Documentation | Screenshots | Nextcloud API | Nextcloud App Page | ownCloud API | Telegram G

Patrizio Bekerle 2.4k Jan 16, 2022
Next-gen, highly customizable content editor for the browser - based on React and Redux and written in TypeScript. WYSIWYG on steroids.

ReactPage ReactPage is a smart, extensible and modern editor ("WYSIWYG") for the web written in React. If you are fed up with the limitations of conte

null 8.7k Jan 12, 2022
This is an app for macOS that can (re)sign apps and bundle them into ipa files that are ready to be installed on an iOS device. Unrestricted by the applicationIdentifier in the ProvisioningProfile file.

ResignTool This is an app for macOS that can (re)sign apps and bundle them into ipa files that are ready to be installed on an iOS device. Unrestricte

Injoy 341 Dec 26, 2021
Encrypted file transfer over ad hoc WiFi. No network infrastructure required, just two laptops in close range. Linux, Mac, and Windows.

Flying Carpet To download, visit the releases page! Wireless, encrypted file transfer over automatically configured ad hoc networking. No network infr

Theron Spiegl 855 Jan 2, 2022
zip file I/O library for iOS, macOS and tvOS

ZipZap is a zip file I/O library for iOS, macOS and tvOS. The zip file is an ideal container for compound Objective-C documents. Zip files are widely

Glen Low 1.2k Jan 8, 2022
A micro-framework for observing file changes, both local and remote. Helpful in building developer tools.

KZFileWatchers Wouldn't it be great if we could adjust feeds and configurations of our native apps without having to sit back to Xcode, change code, r

Krzysztof Zabłocki 1k Dec 27, 2021
Simple Menu Bar (Status Bar) App for mac OS and simple table app for iOS listing local Bonjour websites (as Safari 11 no longer has Bonjour Bookmarks)

LocalSites - local bonjour websites menu About With Safari 11, Apple removed Bonjour bookmarks without warning (at least without warning in a way I he

Lukas Zeller 67 Dec 30, 2021
Safari extension that injects custom CSS and JS files based on page host.

PageExtender for Safari Extend pages with your own CSS and JS files Read announcement blog post Buy on Mac App Store ($5) If you want to run the softw

Philipe Fatio 107 Jan 9, 2022
:sunrise: A macOS app that sets your wallpaper based on sunrise and sunset.

Sunscreen is a fun, lightweight application that changes your desktop wallpaper based on sunrise and sunset. Simply drag and drop your favorite wallpa

David Celis 46 Nov 30, 2021
The standalone app based on official debugger of React Native, and includes React Inspector / Redux DevTools

React Native Debugger Run the redux example of react-navigation with Redux DevTools setup This is a standalone app for debugging React Native apps: Ba

Jhen-Jie Hong 9.1k Dec 30, 2021
Mac app that shows pull request last modified each line of a file, Written in SwiftUI

GitBlamePR Mac app that shows pull request last modified each line of a file.Written in SwiftUI. Xcode Source Editor Extension GitBlamePR.app bundles

Makoto Aoyama 23 Feb 24, 2021
Network file transfer application for Windows, OS X, Linux

Warning: the master branch is very unstable at the moment. If you want stable builds, please visit the releases page or checkout the 0.3.4 branch. Nit

NitroShare 1.3k Jan 9, 2022
Hosts file manager for OS X

Gas Mask Gas Mask is simple hosts file manager for macOS. It allows editing of host files and switching between them. System requirements Runs on Lion

Siim Raud 3.4k Jan 11, 2022