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
Hashes for crypto_vault-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c161863451f7469d7ef6c02541980dce133d1edd38b9bf6317de03cc8aa01de |
|
MD5 | 2f018c5c7686dc6543ab433697cffa6d |
|
BLAKE2b-256 | f27030bd922d1e044af869acd978cd116bb22919ad71600bfbe53f867054d395 |