Giter Club home page Giter Club logo

Comments (8)

hluk avatar hluk commented on August 21, 2024

Encrypting all tabs could be the simplest solution and it would be very useful.

Now, how to do this.

Preferences dialog can contain a button for entering new password (with nice lock/unlock icon to see if encryption is used, i.e. password was entered or not). Clicking the button opens dialog with three input lines:

  • old password (disabled if none),
  • new password (encryption disabled if empty) and
  • repeat the new password (disabled if new password is empty).

Submit button for this new password dialog is disabled until following conditions are met:

  • old password was correctly entered,
  • user correctly repeated the new password.

Internally, submitting preferences will save a phrase encrypted with the password for checking if password is correct and save items in all tabs in encrypted files (tab names should be encrypted too).

Restarting the application opens dialog with entry field for password. Correct password needs to be entered to continue (internally, this tries to decode the phrase stored previously).

If password is lost, user will have to delete saved tabs manually, which is not user-friendly.

Any ideas or suggestions?

I'm not sure how to do the re-prompting for password. Is there desktop application that does this? I would rather leave that on desktop environment (i.e. lock desktop functionality).

from copyq.

akwala avatar akwala commented on August 21, 2024

The UI you describe generally sounds OK. So far I only use a single tab, the one with the clipboard history, so global encryption of all tabs would be OK with me -- in this case, after setting up the encryption, none of the tabs would be available without the password. If one uses multiple tabs, one may want to selectively encrypt tabs, e.g., encrypt the clipboard tab but not the ToDo tab.

Since the app provides the ability to have multiple tabs, it makes sense to provide the option to encrypt separately on every tab, i.e., if one has N tabs, the no. of encrypted tabs could be between 0 and N. There can be a single password/key for all encrypted tabs.

It would also be good to have the option to decrypt the tabs upon login -- I haven't implemented anything like this but have seen it work w/ gnome keyrings. I agree w/ you re leaving the reprompt to the OS/screen lock.

If one does not have the password for any reason, one would have to reset the encryption as you describe.

from copyq.

hluk avatar hluk commented on August 21, 2024

I'm not sure about having some tabs encrypted and others not. The only case, I can think of, this can be useful is that other than the first tab (the clipboard tab) is encrypted so there is no need to enter password when application starts -- enter it the first time the tab is accessed.

If you encrypt the clipboard tab then you'll have to enter password when application starts otherwise application won't be able to use the tab to store new clipboard content.

The other problem is to find and use library for encrypting (I should only use some encryption algorithm to keep the code small with few dependencies) and accessing various keyring applications -- that would be really helpful.

So I would go with one password for all tabs and entering password when application starts (at least until I find suitable library).

from copyq.

hluk avatar hluk commented on August 21, 2024

Lets put encryption aside, at least until I have a good library or code I can use.

For now I've implemented a simple option to clear items at exit (in options, "History" tab). Basically it won't save items on disk (and removes previous data if any) so it's fairly safe.

from copyq.

akwala avatar akwala commented on August 21, 2024

Good enough.

For commands there are events related to adding/moving items. If events
could be created for app start/stop or tab open/close, and one could define
commands to run before/after such events, then users would have the
flexibility to set up tab maintenance for those events. I could thus have
my script run consistently w/out having to rely on my memory to do so
manually.

--aslam

Sent from my mobile phone.
On Jun 4, 2013 1:03 PM, "Lukas Holecek" [email protected] wrote:

Lets put encryption aside, at least until I have a good library or code I
can use.

For now I've implemented a simple option to clear items at exit (in
options, "History" tab). Basically it won't save items on disk (and removes
previous data if any) so it's fairly safe.


Reply to this email directly or view it on GitHubhttps://github.com//issues/55#issuecomment-18923471
.

from copyq.

hluk avatar hluk commented on August 21, 2024

That could be useful. I've created a new task for that: #59

from copyq.

hluk avatar hluk commented on August 21, 2024

I've implemented encryption using GnuPG.

New plugin "Encrypted" is available under "Items" configuration tab. First time you'll need to generate keys for encryption/decryption -- this can take a while (some entropy is gathered from system activity).

You can encrypt/decrypt whole tabs, plus (under "History" config tab) you can choose to unload/expire tabs so that it will require the password to be entered again -- this depends on gpg-agent application, which is used for password dialog -- the password is cached usually for 10 minutes, so you don't have to enter the password too often.

Single item encryption can be achieved using new commands under "Command" config tab.

Commits:
b0c6929
284276f
3bb18bd
aeab8a5

Expire tab:
bc5a292

from copyq.

akwala avatar akwala commented on August 21, 2024

Nice! Look fwd to the update.

from copyq.

Related Issues (20)

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.