Efficiently encrypt data off-chain and store securely on the blockchain
Project description
Crypto Vault (off-chain)
Version 0.1.0
About
Crypto Vault is a Python library designed to securely encrypt and store secrets on-chain. It facilitates off-chain encryption followed by on-chain storage through smart contracts, offering a robust solution for managing sensitive data in blockchain applications.
Currently deployed on the Polygon Mumbai testnet only.
Requirements
- Python 3.9^
- Polygon wallet with enough MATIC to pay gas
- HTTP provider URL (Polygon-mumbai RPC)
Installation
pip install crypto-vault
Usage
Basic Workflow:
- Initialize Crypto Vault with a private key and HTTP provider.
- Store, retrieve, and update secrets on-chain.
- Encrypt and decrypt data off-chain.
Code Examples
Generate secure encryption key with Encryption
from crypto_vault import Encryption
# Generate encryption key
encryption_key = Encryption.generate_key()
Initialize Crypto Vault:
from crypto_vault.crypto_vault import CryptoVault
crypto_vault = CryptoVault(
app="myApp",
env="prod",
private_key="private_key",
encryption_key=encryption_key,
http_provider="http-provider-url-with-api-key",
)
Store, retrieve, and update secrets
# Store
crypto_vault.store(data={"password": "secret", "foo": "bar"})
# Retrieve secrets
secrets = crypto_vault.retrieve()
# Retrieve single secret
password = crypto_vault.retrieve(value_name="password")
# Update single secret
crypto_vault.update(data={"foo": "Hello world!"})
# Update secrets -> To update all secrets use crypto_vault.store()
Encrypt and decrypt data
# Encrypt
encrypted_data = crypto_vault.encrypt(data="secret")
# Decrypt
decrypted_data = crypto_vault.decrypt(data=encrypted_data)
Crypto Vault API
- Storage
- Store data. Input parameters: data(k: v)
- Retrieve data. Params: value_name(optional)
- Update parameter. Params: data
- Encryption
- Generate encryption key
- Encrypt data(str, int, list, dict). Params: value, key
- Decrypt data(bytes32). Params: value, key
Crypto Vault Smart Contract
The smart contract is designed to store encrypted data on-chain. It is deployed on the Polygon Mumbai testnet.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file crypto-vault-0.1.1.tar.gz
.
File metadata
- Download URL: crypto-vault-0.1.1.tar.gz
- Upload date:
- Size: 10.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a32a0123f480da1dd4787c0fef5c0f0c202a1f2ddf85cc6963006f7a70f6f711 |
|
MD5 | 23098f892be18ad6200c41bb9ebfca73 |
|
BLAKE2b-256 | 07b18586c8ad108feaaa4a96875316e8ff60a33bed0a9950e4df88eb7d8c1214 |
File details
Details for the file crypto_vault-0.1.1-py3-none-any.whl
.
File metadata
- Download URL: crypto_vault-0.1.1-py3-none-any.whl
- Upload date:
- Size: 9.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c161863451f7469d7ef6c02541980dce133d1edd38b9bf6317de03cc8aa01de |
|
MD5 | 2f018c5c7686dc6543ab433697cffa6d |
|
BLAKE2b-256 | f27030bd922d1e044af869acd978cd116bb22919ad71600bfbe53f867054d395 |