Skip to content

Zedeldi/PKIDB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PKIDB

GitHub license GitHub last commit Code style: black

Proof-of-concept PKI-based database.

Description

A Flask application to provide endpoints for setting/getting values.

All keys are relative to the fingerprint (SHA256(n)) of the public key.

A valid signature must be provided when setting data.

There are three endpoints:

  • /get - get value stored at key, relative to public key fingerprint
  • /set - set value of key, relative to public key fingerprint
  • /list - list all keys, optionally relative to parent

Currently, two database implementations are provided: dictionary (in-memory) or file-based.

Use Cases

PKIDB is useful where all data should be publicly accessible, but only writable by those with the corresponding private key.

Installation

After cloning the repository with: git clone https://github.com/Zedeldi/PKIDB.git

Build

  1. Install project: pip install .
  2. Run: pkidb-server [host] [port]

Development

  1. Install dependencies: pip install -r requirements.txt
  2. Run: python -m pkidb.api [host] [port]

Libraries:

  • Flask - web application
  • rsa - RSA implementation
  • benedict - keylist dictionary support

Testing

To test PKIDB, install pytest and run: python -m pytest

License

PKIDB is licensed under the MIT Licence for everyone to use, modify and share freely.

This project is distributed in the hope that it will be useful, but without any warranty.

Donate

If you found this project useful, please consider donating. Any amount is greatly appreciated! Thank you 😃

PayPal

Releases

No releases published

Packages

No packages published

Languages