tpre-python/README_en.md

102 lines
2.2 KiB
Markdown

# 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