Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/alivx/encryption-service
This project like a Encryption as service somehow, this service provide a high performance, and secure way to store text based data using Themis and Redis.
https://github.com/alivx/encryption-service
curl docker docker-compose encryption fastapi redis service themis
Last synced: 23 days ago
JSON representation
This project like a Encryption as service somehow, this service provide a high performance, and secure way to store text based data using Themis and Redis.
- Host: GitHub
- URL: https://github.com/alivx/encryption-service
- Owner: alivx
- Created: 2020-04-11T21:01:12.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-05-10T14:08:22.000Z (9 months ago)
- Last Synced: 2024-12-25T20:03:22.122Z (30 days ago)
- Topics: curl, docker, docker-compose, encryption, fastapi, redis, service, themis
- Language: HTML
- Homepage: https://github.com/alivx/encryption-service
- Size: 25.4 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# API Encryption Service
This project like an Encryption as service somehow, this service provide high performance and secure way to store text-based data using [Themis](https://www.cossacklabs.com/themis/) and [Redis](https://redis.io/).
### Use cases:
1. Share sensitive information for a period.
2. Save sensitive information for a set of time.
3. Vault key management.### Installation
##### Using Docker
First Build the images
```Bash
docker build -f Dockerfile-redis . -t alivx:enc_redis
docker build -f Dockerfile . -t alivx:enc_api
```
Then run the service using docker-compose.yml
```Bash
docker-compose up ## to run it in background use '-d'
```
output
```Bash
docker-compose up
Starting encryptionservice_redis_1 ...
Starting encryptionservice_redis_1 ... done
Recreating encryptionservice_api_1 ...
Recreating encryptionservice_api_1 ... done
Attaching to encryptionservice_redis_1, encryptionservice_api_1
```### Todo
1. Add nginx with SSL setup to get encryption in transit.
2. add a web interface to call the API.
3. add the ability to upload files.### Usages
After startup the docker-compose, two services will be up and running.
1. Encryption API server on port 1992.
2. Redis server on port 6379.> Setting data:
calling the API using `curl`
Info:
* value: anything you need to be encrypted.
* Password: password key
* TTL: time to live (set time in second)```Bash
curl -X PUT "http://localhost:1992/set/" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"value\":\"http://localhost:8000/docs#/default/read_items_seturl__put\",\"ttl\":500,\"password\":\"123\"}"
```
returned value `{"_id":"DJGNOGVV2eab7054"}`> Getting Data
```Bash
curl -X GET "http://localhost:1992/get/?_id=DJGNOGVV2eab7054&password=123" -H "accept: application/json"
```returned data:`{"value":"http://localhost:8000/docs#/default/read_items_seturl__put"}`
#### How it works:
After putting some text/something need to be encrypted. the API sends the data into redis using `Themis module for Redis database`
Redis Content:
```Bash
127.0.0.1:6379> keys '*'
1) "WP52978Nc290f53d"
2) "GPMNRNNQ9d396717"
3) "7NW8388G60755d45"
4) "EWGN9NVR1b402e2a"
5) "Q6YGLPGNc648e448"
127.0.0.1:6379> get Q6YGLPGNc648e448
"\x00\x01\x01@\x0c\x00\x00\x00\x10\x00\x00\x00:\x00\x00\x00f\xedRv\xc2\x17\xeb#\xe7h\n\xf2\xf2;\x97\xc87}\xb7_\xbe\xad\xc8\x8eR7\xde\xa9$\xf6\x12\xc9\x1d\xade\xf2\xbeq\xd1y]\x9f\xa5\xf4`\x8d\x17\xf1w\x13\x80\xf3\x8a\xc9\xe9\xdb\xb6\xc7\xbbu7\x1eFc\xe6,\xd1t\x85d \x85m\x9c\x8a\xca\xcd\x1e\xb3\x80zXw\xeb0\n"
127.0.0.1:6379>
```