As an university cryptography project, this repository contains a secure storage system implemented in Python. Besides aforementioned, it also includes a Certificate Authority (CA) for managing digital certificates, i.e. a Public Key Infrastructure (PKI).
The system is organized into several modules:
admin.py
: Contains the Admin class for managing administrative tasks.ca.py
: Implements a Certificate Authority (CA) for signing Certificate Signing Requests (CSR) and managing certificates.cryptoalgorithms.py
: Contains various cryptographic algorithms used throughout the system.entry.py
: Defines the Entry class as an app entry-point.system.py
: Contains the System class for managing the overall system.user.py
: Defines the User class for creating and managing users.utils.py
: Contains utility functions used throughout the system.
The res/
directory contains user-specific data, including encryption history and notifications. The certs/
directory stores the digital certificates of users, and the requests/
directory holds the Certificate Signing Requests (CSR) of users. The cached/
directory contains the current user key-pair, as well as his certificate.
To use the system, run the entry.py
script. This will prompt you for various inputs depending on the operation you want to perform, such as creating a new user, encrypting data, or viewing encryption history.