Wrapper to use keyctl command in Python
Project description
python-keyctl
Basic management of keys in the Linux kernel keyring in Python. Also comes with a small gui.
Table of contents
Description
This is a small library to make use of some functions of the kernel keyring in Python. You can read, add and delete keys.
It simply uses the keyctl command (invoking it via subprocess), so this util must be installed.
Available functions:
list (list all keys in keyring)
describe (retrieve key name/description)
read/pipe/print (retrieve key content)
update (modify key content)
add (add key)
revoke/unlink (delete key)
search/request (search for a key by name)
clear (remove all keys from keyring)
There are many more functions with keys in the kernel keyring (e.g. permissions) that is needed for proper keymanagement. But for my usecase I just needed the given simple functionality.
Requirements
Python 2.7
$ sudo apt-get install python2.7 $ python --version Python 2.7.3
pip
$ sudo apt-get install python-pip $ pip --version pip 9.0.1 from .... (python 2.7)
The ‘keyctl’ command
$ sudo apt-get install keyutils $ dpkg -s keyutils | grep Version Version: 1.5.2-2
For the GUI you also need:
Qt4
google it for your distribution
PySide
$ pip install pyside $ pip show pyside | grep Version Version: 1.2.4
Installation
$ pip install keyctl
Ready to use.
Usage
Module
Get all keys:
from keyctl import Key
keylist = Key.list()
for mykey in keylist:
print mykey.id
Read existing key:
from keyctl import Key
mykey = Key(123)
print mykey.name
print mykey.data
print mykey.data_hex
Find key by name:
from keyctl import Key
mykey = Key.search('test key')
print mykey.id
Add key:
from keyctl import Key
mykey = Key.add('test key', 'test content')
print mykey.id
Delete key:
from keyctl import Key
mykey = Key(123)
mykey.delete()
Update key:
from keyctl import Key
mykey = Key(123)
mykey.update('new content')
GUI
To open the GUI, run the installed command.
$ keyctlgui
Development
Warning
If you run the integrated tests, your user keyring will be cleared. Don’t do this when you have active keys e.g. for encryption.
Similar projects
Similar projects you might want to checkout:
https://github.com/sassoftware/python-keyutils (more complete, available in debian repo)
https://github.com/jdukes/pykeyctl (more complete, direct library wrapper)
License
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.