Giter Site home page Giter Site logo

vladimiry / electronmail Goto Github PK

View Code? Open in Web Editor NEW
1.5K 28.0 96.0 15.46 MB

Unofficial ProtonMail Desktop App

License: GNU General Public License v3.0

TypeScript 88.58% HTML 7.50% Shell 0.49% NSIS 0.10% SCSS 2.86% PowerShell 0.27% EJS 0.21%
protonmail electron typescript desktop angular

electronmail's Introduction

ElectronMail is an Electron-based unofficial desktop client for ProtonMail. The app aims to provide enhanced desktop user experience enabling features that are not supported by the official in-browser web clients. It is written in TypeScript and uses Angular.

GitHub Actions CI License GitHub top language

view-toggling

Download

The download page with Linux/macOS/Windows installation packages is here.

The way of verifying that the installation packages attached to the releases have been assembled from the source code is being provided.

Some package types are available for installing from the repositories:

Maintainer
AUR version @vladimiry since v5.1.8 (@joshirio before)
Snapcraft version @vladimiry since v5.1.8 (@joshirio before)
Flathub version @vladimiry
MPR version @taivlam since #675 (@hiddeninthesand before)
Chocolatey version @vladimiry
Scoop version no specific maintainer (community)
Winget version no specific maintainer (community)

Features

  • :octocat: Open Source.

  • ⚙️ Reproducible builds. See details in #183.

  • ⚙️ Cross platform. The app works on Linux/macOS/Windows platforms. Binary installation packages located here.

  • 🔎 Full-text search. Including email body content scanning capability. Enabled with v2.2.0 release. See the respective issue for details.

  • 🔎 JavaScript-based/unlimited messages filtering. Enabled since v4.11.0 release. See the respective #257 for details. Requires local store feature to be enabled.

  • 📦 Offline access to the email messages (attachments content not stored locally, but emails body content). The local store feature enables storing your messages in the encrypted database.bin file (see FAQ for file purpose details). So the app allows you to view your messages offline, running full-text search against them, exporting them to EML/JSON files. etc. Enabled since v2.0.0 release.

  • 📫 Multi accounts support including supporting individual API entry points. For example, you can force the specific email account added in the app connect to the email provider via the Tor only by selecting the Tor version 3 address API entry point in the dropdown list and configuring a proxy as described in this message.

  • 🔓 Automatic login into the app with a remembered the system keychain remembered master (keep me signed in feature). Integration with as a system keychain is done with the keytar module. By the way, on Linux KeePassXC implements the Secret Service interface and so it can be acting as a system keychain (for details, see the "automatic login into the app"-related point in the FAQ).

  • 🔓 Automatic login into the email accounts, including filling 2FA tokens. Two auto-login delay scenarios supported in order to make it harder to correlate the identities, see the respective issue.

  • 🔓 Persistent email account sessions. The feature introduced since v4.2.0 version with the experimental label, #227. The feature enables the scenario when you to enter the account credentials on the login form only once, manually or automatically by the app, and then you never see the login form anymore for this email account even if you restart the app (unless you explicitly dropped the session in the admin area or it got dropped by the service due to the inactivity/expiration). If this feature is enabled for the account, manual credentials filling is the preferred option as a more secure option since you don't save the account credentials anywhere (credentials are encrypted though even if saved, see settings.bin file description in the FAQ).

  • 🔐 Encrypted local storage with switchable predefined key derivation and encryption presets. Argon2 is used as the default key derivation function.

  • ⚙️ Switchable accounts handle buttons positioning (top , left, left-thin). See details in #36 and #175. Demo screenshots placed in the images folder (specifically this image).

  • 📦 Batch emails export to EML files (attachments can optionally be exported in online / live mode, not available in offline mode since not stored locally). Feature released with v2.0.0-beta.4 version, requires local store feature to be enabled.

  • 🔐 Built-in/prepackaged web clients. The prepackaged with the app proton web clients assembled from source code, see the respective official repositories. See 79 and 80 issues for details.

  • ⚙️ Configuring proxy per account support. Enabled since v3.0.0 release. See 113 and 120 issues for details.

  • 🌔 Dark mode support. See details in #242.

  • 🔔 System tray icon with a total number of unread messages shown on top of it. Enabling local store improves this feature, see #30.

  • ⚙️ Starting minimized to tray and closing to tray opt-out features.

  • 🔔 Native notifications for individual accounts clicking on which focuses the app window and selects respective account in the accounts list.

  • 📆 Calendar notifications / alarms regardless of the open page (mail/calendar/settings/account/drive). The opt-in feature has been enabled since v4.9.0. See #229 for details.

  • 😎 Making all email "read" in a single mouse click. Enabled since v3.8.0. Requires local store feature to be enabled.

  • 😎 Routing images through proxy. The opt-in feature has been enabled since v4.9.0. See #312 for details.

  • 😎 Batch mails removing bypassing the trash. Enabled since v4.9.0. Requires local store feature to be enabled.

  • 😎 Batch mails moving between folders. Enabled since v4.5.0. Requires local store feature to be enabled.

  • 😎 Per-account custom CSS injection (per-account styling). Enabled since v4.10.0. See #355 for details.

  • 📝 Spell Checking.

FAQ

You got it here.

How to build your own installation package from source code

Building on Continuous Integration server

The reproducible builds idea is respected by the project. So the simplest way to prepare your own installation package from the source code is to clone the project. The respective GitHub Actions CI config file comes with the project.

Building locally

  • Regardless of the platform you are working on, you will need to have Node.js v16/lts installed. You might want to use Node Version Manager to be able to switch between the Node.js versions:
    • Install NVM.
    • Run nvm install 16.
    • Run nvm use 16.
  • Make sure you are using npm v7+, not the v6 (run npm -v to see the version).
  • Some native modules require compiling process to be involved and for that Python and C++ compiler need to be installed on the system:
    • On Windows: the simplest way to install all the needed stuff on Windows is to run npm install --global --production windows-build-tools CLI command.
    • On Linux: python, make and a C/C++ compiler toolchain, like GCC are most likely already installed. Besides keytar needs libsecret library to be installed.
    • On macOS: python and Xcode need to be installed. You also need to install the Command Line Tools via Xcode, can be found under the Xcode -> Preferences -> Downloads menu.
  • ProtonMail's WebClient requires yarn to be available on your system. Additional setup is required if you run Windows, see.
  • Clone this project to your local device. If you are going to contribute, consider cloning the forked into your own GitHub account project.
  • Install pnpm.
  • Install dependencies running pnpm install --frozen-lockfile (setting PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 environment variable might speed up the process).
  • Build app running pnpm run app:dist.
  • Build a package to install running pnpm run electron-builder:dist command to build Windows/Mac OS X package and one of the following commands to build Linux package:
    • pnpm run electron-builder:dist:linux:appimage
    • pnpm run electron-builder:dist:linux:deb
    • pnpm run electron-builder:dist:linux:freebsd
    • pnpm run electron-builder:dist:linux:pacman
    • pnpm run electron-builder:dist:linux:rpm
    • pnpm run electron-builder:dist:linux:snap
  • The assembled installation package comes into the ./dist folder.

To recap, considering that all the described build requirements are met, the short command to build let's say Arch Linux package will be pnpm install --frozen-lockfile && pnpm run app:dist && pnpm run electron-builder:dist:linux:pacman.

Data/config files created and used by the app

If you want to backup the app data these are only files you need to take care of (files localed in the settings folder):

  • config.json file keeps config parameters. There is no sensitive data in this file, so unencrypted.
  • settings.bin file keeps added to the app accounts including credentials if a user decided to save them. The file is encrypted with 32 bytes length key derived from the master password.
  • database.bin file is a local database that keeps fetched emails/folders/contacts entities if the local store feature was enabled for at least one account. The file is encrypted with 32 bytes length key randomly generated and stored in settings.bin. The app by design flushes and loads to memory the database.bin file as a whole thing but not like encrypting only the specific columns of the database. It's of course not an optimal approach in terms of performance and resource consumption but it allows keeping the metadata hidden. You can see some details here.
  • database-session.bin file is being used in the same way and for the same purpose as database.bin but it holds the current session data only. The data from this file will be merged to the database.bin on the next app unlocking with the master password.
  • session.bin file holds the session data of the email accounts. The file is used if the Persistent Session feature is enabled for at least one account (the feature introduced since v4.2.0 version with experimental label, #227). The file is encrypted with 32 bytes length key randomly generated and stored in settings.bin.
  • log.log file keeps log lines. The log level by default is set to error (see config.json file).

Removing the app

It's recommended to perform the following actions before uninstalling the app:

  • If you had the Keep me signed in feature enabled (see screenshot), click Log-out action in the app menu (see screenshot). That will remove locally stored master password (done with node-keytar). You can also remove it having the app already uninstalled, but that would be a more complicated way as you will have to manually edit the system's keychain.
  • Remove settings folder manually. You can locate settings folder path clicking Open setting folder app/tray menu item (see screenshot) or reading app.getPath(name ="userData") related app.getPath(name) section here.

electronmail's People

Contributors

arch-btw avatar coliff avatar joshirio avatar knakamura8 avatar sitiom avatar taivlam avatar vladimiry avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

electronmail's Issues

NSIS installer crashes

NSIS installer is still broken in version 0.2.3. In version 0.2.2 the crash was immediately after I tried to run the exe. In version 0.2.3 the crash is after I click "next" if option "Only for me (username)" is selected. And weird thing is, if I choose "Anyone who uses this computer (all users)", then click next, then click back, change to "Only for me (username)" and click "next" again, then there is no crash.

Option to set app as default mail client

Hello,
I am a tutanota user and I need to make your client the default client in Windows.
I have a program that exports images straight to the associated default desktop mail client, so I do not need to first export the images to desktop and then to import them to the desktop client.
I use win 7 pro and win 10 home.
It seems I can make your app the default client.
Please inform.

Failed to start in Linux Mint 18.2 (Cinnamon, 64-bit)

Provided error log:
Unhandled Promise Rejection Error: Cannot find module '../tray' at Function.Module._resolveFilename (/opt/protonmail-desktop-app/resources/electron.asar/common/reset-search-paths.js:35:12) at Object.get as Tray at Object.<anonymous> (/opt/protonmail-desktop-app/resources/app.asar/app/electron/main/index.js:1665:36) at Generator.next (<anonymous>) at /opt/protonmail-desktop-app/resources/app.asar/app/electron/main/index.js:207:71 at Promise (<anonymous>)

non protonmail http connection attempts

I have in my firewall enabled only https connection to mail.protonmail.com for this application. Everything works fine, but i've noticed in firewall log, that program constantly tries to connect also to these addresses. See blocked connections on this screenshot:
https://lut.im/Mu2eD4ZyNo/5rpxPJJHUpmTFgsJ.png
Why are there these connection attempts and how can I disable them in the settings?

Failed to run on Ubuntu 16.04 report

v0.2.0-beta.1

Error: libsodium.so.23: cannot open shared object file: No such file or directory
at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:172:20)
at Object.Module._extensions..node (module.js:598:18)
at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:186:18)
at Module.load (module.js:503:32)
at tryModuleLoad (module.js:466:12)
at Function.Module._load (module.js:458:3)
at Module.require (module.js:513:17)
at require (internal/module.js:11:18)
at load (/opt/protonmail-desktop-app/resources/app.asar/node_modules/node-gyp-build/index.js:13:10)
at Object. (/opt/protonmail-desktop-app/resources/app.asar/node_modules/sodium-native/index.js:1:194)

If you launch ProtonMail Desktop App while it is already launched, the following message appears instead of just opening window

Unhandled Promise Rejection
Error: Cannot find module '../tray'
at Function.Module._resolveFilename (/opt/protonmail-desktop-app/resources/electron.asar/common/reset-search-paths.js:35:12)
at Object.get [as Tray] (/opt/protonmail-desktop-app/resources/electron.asar/browser/api/exports/electron.js:11:16)
at Object. (/opt/protonmail-desktop-app/resources/app.asar/app/electron/main/index.js:1697:36)
at Generator.next ()
at /opt/protonmail-desktop-app/resources/app.asar/app/electron/main/index.js:208:71
at Promise ()

App should handle network errors more properly

Errors like:

  • Connection timeout.
  • Switching to the offline mode during the fetching (connection reset/abort).
  • [protonmail] 503 error with Service Unavailable status text. Calls to Protonmail's API, unfortunately, quite often end up with such error.

The goal is to make such errors handling less annoying to the end user and with no functionality loss.

Local messages store

This is considered as a priority one missed major feature:

  • Supported by app email providers get DDoSed quite often especially in the recent time. So you can't send or get new messages, but it would be nice to at least have access to your already locally stored messages.
  • You don't want to be vendor locked. You want to at any time be able to at least process your messages in your own, like for example exporting all your messages into the unencrypted .eml format.
  • Having email messages stored locally we could enhance email provider's features by adding not yet supported things like for example full-text search for ProtonMail or batch export.

There potentially might be many email messages content getting options, like at least:

  • Using Service Workers. Considered as a too specific and limited approach.
  • Listening for email view actions happening in the email provider's UI, also very limited option. The good part is that it would work in a fully passive mode, not producing addition requests to the email provider's backend. But in JavaScript it's not always possible to listen/intercept all the needed actions happening, especially if the code is implemented with an intention to prevent interception happening. Besides going with such option we can only get content of the email message that has ever been explicitly opened/viewed by a user. The simplest in implementation option though.
  • Direct backend endpoints calling (Rest, WebSocket, etc). The most flexible option. Email provider's endpoints API is not yet well documented, but I believe it can be researched to a sufficient extent. The good side benefit of going with this option is that over a time getting messages logic can be moved from app code to an individual module. Like has been done with modules published here, so developers could used that module building their own programs.

At the initial stage it's not going to be a comprehensive bridge-like thing, but more like email provider's web UI supporting thing. The initial implementation is not going to keep locally stored messages in sync with the server/actual state. Means it would be a one-off putting to local cache action, with no further message state updating (message got unread state, got removed, got changed folder/label, etc).

A brief workflow steps description:

  • Local messages cache can be enabled per account. Disabled by default.
  • Having it enabled app starts a background messages fetching job, which starts working with some interval, let's say each 60 minutes. Besides if there is a rate limiter put on top of the endpoints by a backend, then app delays individual requests accordingly.
  • Producing a fetching request to the backend, job adds at least lastFetchedEmailItemCreateTime-like, portion size and sort order parameters, depending on the email provider's API endpoints format. That lastFetchedEmailItemCreateTime parameter would be added as a portion start request parameter. So app doesn't fetch the same messages twice. If we go with fetching all the messages during each job iteration, we can keep locally cached messages in sync with the server/actual state, but a more optimal approach would be in going with message state changing queue. So app as a client gets notified about some message state change action happened and patches locally saved message accordingly, but this can't be implemented having no control on the backend, but looks like at least Tutanota has it implemented already (see EntityEventBatchTypeRef entities fetching).
  • The local store would be built using some encrypted embedded SQLite-like database. Encryption key would be automatically generated and stored in the already used encrypted settings.bin file.
  • Email providers differ in supported features, but at this stage I'd prefer to keep a single set of local messages store table columns. So it would be a single table with a compound primary key=(id, emailProviderType = "protonmail | tutanota", login). App would also store in a raw form an original message blob provided by email provider backend.
  • If needed, getting and storing attachments can be added later, as an individual background job.

Website

Are there plans to have a website about this app so people can find it easier and not have to navigate through a GitHub page?

temporary node file with random name

Hi, I'm trying this software on Win 7 64bit and this software is creating on every start new temp .node file in the windows temp folder. Problem is this file is temporary binary executable file with random file name and that's the reason I cannot create for it proper rules in my security software. It's simply new file again and again and I need to create/confirm these rules again and again. Is there chance to change this behaviour in future builds?

Blank window?

Thanks for the repo, I've tried using the 0.3.1 and 0.3.2 AppImages but I'm just getting a blank window with the dev tools on the right when launching the app.

Linux 4.16.3-1-ARCH #1 SMP PREEMPT

image

[Bug] email doesn't unlock

i've noticed that sometimes some of my emails don't unlock after starting the program
on first glance it seems like this happens mainly on tutanota emails
EDIT: seems like it's also happening on protonmail sometimes, sometimes it gets stuck on the 2FA
not sure what is causing this
screenshot from 2018-07-23 10-05-36

macOS specific issues

Hello, thanks for this app, works great on linux and I like the auto-login feature which other alternative community protonmail electron apps don't provide. I'm looking to make an AUR package for it (Manjaro, Antergos and Arch).

Now, I noticed that on macOS there are a few issues:

  1. The tray icon is too big:
    tray

  2. Context menu (right click action) shows the menu for half a second and then it disappears and copy/pasting (via cmd + c/v) is not possible on the settings page:

context menu and copypaste

  1. Multiple accounts don't work on macOS, the second account shows a blank page, looks like it's stuck while logging in:

2ndaccount

Keep it up, nice work so far.

Feature request: change order of email tabs

pretty much the title
being able to put the different mail-addresses in a specific order would be nice
right now the only way to do this is to remove your email-accounts and re-add them in the correct order

Sudden spike in CPU usage

For some reason, I will get a sudden spike in CPU usage. Not exactly sure when it started happening, but it might have been today after updating Firefox to 63.0.
capture

Make folder selection in database view mode less freezing

Folder selection noticeable freezes on 300+ emails in the folder, depending on hardware resources. The straightforward approach would be in rendering emails by portions following the continuous scrolling idea. Besides, probably some logic can be improved.

Desktop notifications not working

Hello, for the desktop notifications on Windows 10 doesn't appear to be working. When I receive an email, there will be a little red circle on the app's icon on the taskbar. However, there is no desktop notification like ones windows give through notification centre. Is this a bug? I have enabled the "Unread messages desktop notifications" settings and I do not have Do not disturb on windows turned on.

Improve getting unread emails count for Tutanota

Tutanota currently doesn't provide a convenient option to get unread count value not producing additional request to the server, but listening only. Hopefully it will be improved after the tutao/tutanota#234 and tutao/tutanota#229 issues resolving. I presume unread value will be provided by backend as a stream.

As for now, getting unread emails count in this app for Tutanota is done as Rest API polling, interval is 60 seconds. Checking of only the most 50 recent messages is happening and only in the inbox folder. So If there are unread messages, then it will be shown by app, but possible older unread messages or messages in other folders will not be taken into the account. Number 50 can be increased, but that will increase load on Tutanota Rest API.

Unknown or unsupported transport “disabled” for address “disabled:”

os: manjaro kde.
installed yesterday on my home pc and it worked great, now installing it on my laptop gives me these error.

the app wont even run unless called with sudo on the terminal.

got these terminal errors:

`(email-securely-app:2046): libappindicator-WARNING **: 11:46:55.647: Unable to get the session bus: Unknown or unsupported transport “disabled” for address “disabled:”

(email-securely-app:2046): LIBDBUSMENU-GLIB-WARNING **: 11:46:55.647: Unable to get session bus: Unknown or unsupported transport “disabled” for address “disabled:”

`

Feature request, use of a $BROWSER variable or add option to set default browser

I know chromium on linux uses xdg-open, but I dislike xdg as I don't know how to configure it or how to set a default browser. I think maybe many other users could be left puzzled why their links are being openned in firefox instead of they default browser.

Maybe if $BROWSER would exist, use that one instead?

Just an idea mainly for linux users.

No copy and paste functionality?

Am I the only one experiencing a total lack of copy and paste functionality? It's definitely annoying for password input, but mostly for day to day copying of peoples words in emails...

Toggling app through launcher is very slow.

If app is running and minized in the tray arrea, running the cli command ~$ email-securely-app will correctly shows the windows however this takes a long time :(
But if I click on the tray arrea the windows is drawn instantly.

I want to toggle email-securely-app from keyboard shortcut and my script is looking like this

#!/bin/bash
FOUNDONE=0

wmctrl -l | grep "Unofficial desktop app for E2E encrypted email providers"
if [ $? -eq 0 ]; then ((FOUNDONE++)) 
fi

echo $FOUNDONE

if [ $FOUNDONE -eq 0 ]; then
    email-securely-app
else 
    wmctrl -c "Unofficial desktop app for E2E encrypted email providers"
fi

But I have to wait half a second until the windows is raised.

Is there some signal I could send to the running app that would have the same effect as the "toogle window" option in the tray menu?

Copy action of the context menu is broken

It currently works properly only in one case - Tutanota accounts view. Might be related to the recent Electron.js version upgrade.

The workaround is using copy hotkey instead of the menu action, like ctrl+c.

Here is the issue related to the original implementation #11

Add option to connect more securely

Protonmail has a Tor Hidden Service since early 2017 (https://protonirockerxow.onion/, as described here: https://protonmail.com/tor).

It would be nice if protonmail-desktop-app had an option to connect through onion address instead of mail.protonmail.com for extra privacy for TOR users (no need for stream isolation, no exit node)

Also, as .com TLD is owned by USA, i'd recommend to use "app.protonmail.ch" instead of "mail.protonmail.com" as default domain. this is the original hostname for protonmail service, and it is owned by switzerland as are they server, so we keep theorical attack surface smaller (read this: https://protonmail.com/support/knowledge-base/what-is-the-difference-between-protonmail-com-and-protonmail-ch/).

I am used to submit pull requests, but i took a look in the code and have been scared as i never wrote a single line of typescript :/

Anyway, your tool is one of the rare tools that allows automatic connection to protonmail, and it is super nice. Thank you for the awesome work.

macOS: system tray icon no longer shows message count only a red dot

Not sure which version caused the regression since I haven't been updating the app on a few macs for a couple of months.

The dock icon works fine, showing the unread message count, while the system icon shows only a red dot with a white artifact.

tray

dock

This is just a minor issue but still wanted to report it.

Thanks.

keep me signed in logouts after some time

I've noticed if I check "keep me signed in" on the login screen, it doesn't stay logged in forever. Usually after few days and few PC restarts it needs to enter the master password again.

The name is so lame

The name email-securely-app doesn't sound like an attractive one. Would suggest changing that to something better.

Feature request, focused window after it's drawn.

Hi,

I like your app, would it be possible for protonmail tab have the inner window focused?

I can't use the protonmail's J, K keys for navigation right after the window pops up. I have to use mouse to click anywhere inside the protonmail window view to have J, K keyboard navigation.

I use Arch linux, so I cannot comment about other platforms.

Disable portable builds for Windows

Desktop notifications feature doesn't work with portable packages. So it makes sense to stop shipping packages of such kind in order to avoid issues like this happening.

tutanota (beta): EntityEventController.notificationReceived now takes array of update items, one item before

The change doesn't break the app completely but only affects the reactive event processing logic. Which means currently if any update happened the local app cache won't notice the change immediately. So local cache update reactivity got broken.

There are 3 events fetching triggers enabled and so local app cache still gets the updates but with 3 minutes lag:

  • reacting to the update - this one got broken
  • fetching every 3 minutes - this one is functional (ie it makes database get new updates)
  • fetching on window.online event - this one is functional.

Consider saving all the app data and setting using encrypted overlay filesystem

all the app data means including stuff that Electron generates in app data folder (you can go to this folder clicking Open Settings Folder app/tray menu item). App strives to avoid persistence of any sensitive data in web related storages (IndexedDB, Cookies, LocalStorage, etc) going with in-memory / default webview persistence mode (in contrast of how for example Rambox does it). This is why app has to login into the email accounts each time being opened. But still, some information saved by Electron in app data folder might be considered as sensitive.

Full app data folder encryption can be done manually of courses, for example, using tools like gocryptfs / cppcryptfs / sirikali, and I guess some users already go with either similar overlay filesystems or full disk encryption. But it would be nice if this app would be capable to mount/unmount encrypted file systems by its own with an already used master password and CLI of the mentioned above gocryptfs/cppcryptfs tools.

For example, having such a feature implemented and undisabable there would be no need to care about enabling encryption explicitly in all the different cases, like keeping a messages database in memory. But even if support of encrypted overlay filesystem will be enabled in this app, it's not going to be undisabable, since it brings a certain level of inconvenience (a need to install additional tools), brings more runtime dependencies, and can be already done by user manually (though using one more password).

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.