arshubham / cipher

A simple application for encoding and decoding text
GNU General Public License v3.0
18 stars 10 forks source link

Feature Request: Support for PGP/GPG keys and encryption/decryption #16

Open jos-henson opened 6 years ago

jos-henson commented 6 years ago

Hi there,

First of all, thanks for all your great work on this app, it is really a fantastic simple design and works like a charm.

Just wanted to ask though if it was possible to somehow implement very basic PGP/GPG encryption functionality.

I realise this isn't exactly the main purpose of this app, but I currently use GPA which works but is very ugly and other seahorse-type workflows are really ugly and so I think there is a real market/niche here you could fill here for very simple basic PGP encryption services for elementary OS users.

Specifically, what I would love is just the ability to import one PGP key, and then use it to encrypt/decrypt simple text via copy/pasting it into/from the app into emails etc. No plugins, or file/picture support necessary. Just a simple beautiful, user friendly way to quickly encrypt/decrypt messages.

Hopefully by avoiding adding into key creation tools or clipboard support etc, this would at least be slightly easier to implement and not add too much 'bloat' to the app, or drag it away from its core focus.

Anyway, I realise this is a big ask, but I thought it couldn't hurt to at least ask and I will definitely throw 10 euros/dollars/pounds your way via the app store (or patreon etc) if you can make this happen!!

Many thanks again for all your great work on the app, it really looks nice! :-)

arshubham commented 6 years ago

I will have look into it, maybe some vala bindings are available. Moreover I am interested in creating a separate app to manage keys like seahorse/GPA. Can you elaborate on your workflow, as in what feature are absolutely necessary for its initial release(images or a small video if possible). I recently started learning gtk-rs and it would be an interesting challenge.

jos-henson commented 6 years ago

Hi there,

Thanks for your reply and agreeing to at least look into this!

The app you describe is exactly what I have been looking for so I am definitely more than happy to help in any small way that I can. If it is helpful I will write up a quick 'proposal' tomorrow for you, with what I would love to have in my 'dream' version of this APP, and which I think might be very popular/useful for a lot of Elementary users, who have very 'basic' needs with regards to using PGP and therefore don't really need all the features of seahorse GPA and definitely don't benefit from the complexity of those apps!

Also, as requested, I can create a short screenshot of how I use GPA, and my PGP 'workflow', including a the full 'lifecycle' from start to finish, of creating a key and then using it to encrpt/decrypt messages etc.

Many thanks again for your interest in developing an app like this or adding the functionality into Cipher in some way!

jos-henson commented 6 years ago

Hi there,

Sorry I got swamped with work so didn't have time to put this together until now.

Firstly, I have written up a brief description about features I would like to see and think are the basic PGP needs for most elementary os users

Second I have created a screen recording showing the basic workflows I use with GPA right now, including creating a new key, deleting keys, encrypt/decrypting messages etc. (file was too big to upload here, but you can hopefully download it via this WeTransfer link below)

https://wetransfer.com/downloads/a6946a4d8e5a6fcebfe00661b0e5109320180214050054/abf813f0c81eb766023c557201d3866d20180214050054/e41000

Hope that is helpful, please let me know if I can help more, as I am actually trying to learn to code myself but am literally starting from 0, so it is slow going!

One thing I did find on the valadoc pages though was something related to implementing gpgme, which might be helpful (probably something you already found yourself though!!)

https://valadoc.org/gpgme/index.htm

PGP app specifications

Features shown in Screen Recording

Essential Features for average Elementary user

Wishlist Features for Elementary app

  1. Import user's public/private PGP keys via copy and paste (maybe easier to implement than importing .asc file)
  2. Encrypt a message using someone else's public PGP key without importing it
arshubham commented 6 years ago

Thanks for the detailed proposal. I will try to add gpgme functionality in cipher this weekend. And then will start work on a proper PGP app. And thanks again for the video. It helps a lot.

jos-henson commented 6 years ago

wow, that would be truly amazing!

Once you start throwing some rough code up on github I'm more than happy to help build from source/test it out for you.

cole-rogers commented 6 years ago

It might make sense to make a second app for encryption, given the more playful nature of this one. (Use the same UI, just with encryption instead of encoding).

arshubham commented 6 years ago

@retiform Yeah I am working on it. Just some scheduling issues. and the documentation in far from optimal. I will be creating a second app but basic functionality (text) can be included in this too. I created this app just to play around with Vala when I first started. Once I have implemented some basic functionality, I will start on a dedicated application. I am mostly free for atleast two months after the next 2 weeks, so expect a lot of work from me during that time. :smile: