# tpre-python This project is designed for the National Cryptography Competition and is implemented in Python to execute the TPRE algorithm. ## Project Principle The project uses the Chinese national standard cryptography algorithm to implement distributed proxy re-encryption (TPRE). ## Project Structure . ├── basedockerfile (being used to build base iamge) ├── dockerfile (being used to build application) ├── doc (development documents) ├── gmssl (gmssl source code) ├── LICENSE ├── README_en.md ├── README.md ├── requirements.txt └── src (application source code) ## Environment Dependencies ### Bare mental version(UNTESTED) System requirements: - Linux - Windows(may need to complie and install gmssl yourself) The project relies on the following software: - Python 3.12 - gmssl v3.1.1 - gmssl-python 2.2.2 ### Docker installer ```bash apt update && apt install mosh -y chmod +x install_docker.sh ./install_docker.sh ``` ### Docker version docker version: - Version: 24.0.5 - API version: 1.43 - Go version: go1.20.6 ## Installation Steps ### Pre-installation This project depends on gmssl, so you need to compile it from source first. Visit [GmSSL](https://github.com/guanzhi/GmSSL) to learn how to install. Or we use git submodule to reference repo of gmssl. ```bash git clone --recursive https://git.mamahaha.work/sangge/tpre-python.git chmod +x install_gmssl.sh ./install_gmssl.sh ``` Then install essential python libs ```bash pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple ``` ## Docker Installation ### Use base image and build yourself ```bash docker build . -f basedockerfile -t git.mamahaha.work/sangge/tpre:base (or docker pull git.mamahaha.work/sangge/tpre:base) docker build . -t your_image_name ``` ### Use pre-build image ```bash docker pull git.mamahaha.work/sangge/tpre:latest ``` ## Usage Instructions details in [docs](doc/README_app_en.md) ## References [TPRE Algorithm Blog Post](https://www.cnblogs.com/pam-sh/p/17364656.html#tprelib%E7%AE%97%E6%B3%95) [Gmssl-python library](https://github.com/GmSSL/GmSSL-Python) ## License GNU GENERAL PUBLIC LICENSE v3