Coder Social home page Coder Social logo

cjermain / gnome-gocryptfs Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 1.0 134 KB

gocryptfs managed with the GNOME keyring (fork of gnome-encfs)

License: GNU General Public License v3.0

Python 78.27% Shell 21.73%
gnome gnome-gocryptfs gocryptfs keyring

gnome-gocryptfs's People

Contributors

cjermain avatar fredericlespez avatar obensonne avatar smessmer avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Forkers

fredericlespez

gnome-gocryptfs's Issues

Switch to ArgumentParser

Currently the code uses optparse, which was deprecated since Python 3.2. This ticket tracks porting the code to use argparse. It's worth introducing sub-commands to help simplify the CLI.

Editing Gnome Keyring entry fails

The gnome-gocryptfs is currently failing with the following error. I am seeing the same error on gnome-encfs.

Gkr-Message: secret service operation failed: No such property 'Type'                                                                                                                                                                         
Traceback (most recent call last):
  File "/home/colin/Projects/gnome-gocryptfs/tests/../gnome-gocryptfs", line 467, in <module>
    rc = main()                                 
  File "/home/colin/Projects/gnome-gocryptfs/tests/../gnome-gocryptfs", line 457, in main
    rc = edit_item(opts.p1)                                                                                                                                                                                                                   
  File "/home/colin/Projects/gnome-gocryptfs/tests/../gnome-gocryptfs", line 376, in edit_item
    gk.item_set_info_sync(KEYRING, item.item_id, info)
gnomekeyring.IOError                  

When debugging, I don't see a type in the info object.

> gnome-gocryptfs/gnome-gocryptfs(376)edit_item()
-> gk.item_set_info_sync(KEYRING, item.item_id, info)                                                                                                                                                                                                                                            
(Pdb) l                                                                                      
371             attributes["auto-mount"] = amount                                                                                                                                                                                             
372             attributes["gocryptfs-config"] = econfig                                                                   
373             gk.item_set_attributes_sync(KEYRING, item.item_id, attributes)                                                                                                                                                                
374             info = gk.item_get_info_sync(KEYRING, item.item_id)                           
375             info.set_secret(secret)                                                                                                                                                                                                        
376  ->         gk.item_set_info_sync(KEYRING, item.item_id, info)                                                                                             
377                                                                                                                                                                                                                                           
378             global _items_cached                                                          
379             _items_cached = None                                                                                                                                                                                                          
380                                                                                          
381         return RC_OK                                                                                                                        
(Pdb) item                                                                                   
<GnomeKeyringFound at 0x1ab8900>                                                                                                                              
(Pdb) info                                                                                   
<GnomeKeyringItemInfo at 0x1ab8600>                                                                           
(Pdb) dir(info)                                                                               
['__class__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__gtype__', '__hash__', '__init__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__',
 '__sizeof__', '__str__', '__subclasshook__', 'copy', 'get_ctime', 'get_display_name', 'get_mtime', 'get_secret', 'set_display_name', 'set_secret', 'set_type']

It appears that the gnomekeyring Python library is actual shipped as a shared object, since it is wrapping C code.

$ dpkg-query -L python-gnomekeyring                                                                                                                                                                
...
/usr/lib/python2.7/dist-packages/gtk-2.0/gnomekeyring.so
...
/usr/lib/pyshared/python2.7/gtk-2.0/gnomekeyring.so

There is no gnomekeyring library for Python 3, and this library appears to be deprecated. It may be worth finding another library for interacting with the keyring.

Refactor attributes into Key object

This issue tracks adding a Key object to encapsulate all of the relevant data stored in the keyring for each mount. This can help simplify the data, and make it easier to improve the tests in the future.

Add Debian package build CI

This issue tracks adding a CI workflow that builds Debian packages for both Ubuntu 16.04 and 18.04. The goal is to provide them with the release.

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.