multisig HMAC
Project description
multisig-hmac-python-version
Multisig scheme for HMAC authentication
Work in progress
Usage
Key management can happen in either of two modes, either by storing every of the component keys, or by storing a single master seed and using that to derive keys ad hoc.
Using stored keys:
m = MultisigHMAC()
# generate keys which need to be stored securely and need to be shared securely with each party
k1 = m.keygen()
k2 = m.keygen()
k3 = m.keygen()
# sign by each client with 2-of-3
data = b'Hello world'
s1 = m.sign(k1, data)
s3 = m.sign(k3, data)
out = m.combine([s1, s3])
sent = (out[0], base64.urlsafe_b64encode(out[1]))
# --- network ---
received = (sent[0], base64.urlsafe_b64decode(sent[1]))
# verify on the server
threshold = 2
keys = [k1, k2, k3]
signature = received
m.verify(keys, signature, data, threshold)
Using a derived master key:
m = MultisigHMAC()
# generate a master seed which needs to be stored securely
# this seed must NOT be shared with any other party
seed = m.seedgen()
k1 = m.keygen()
k2 = m.keygen()
k3 = m.keygen()
# sign by each client with 2-of-3
data = b'Hello world'
s1 = m.sign(k1, data)
s3 = m.sign(k3, data)
out = m.combine([s1, s3])
sent = (out[0], base64.urlsafe_b64encode(out[1]))
# --- network ---
received = (sent[0], base64.urlsafe_b64decode(sent[1]))
# verify on the server, but now keys are dynamically derived
threshold = 2
keys = [k1, k2, k3]
signature = received
m.verifyDerived(keys, signature, data, threshold)
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file multisig-hmac-AmalieDue-0.0.3.tar.gz.
File metadata
- Download URL: multisig-hmac-AmalieDue-0.0.3.tar.gz
- Upload date:
- Size: 3.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d47a7b228bbf4961b1ff9606d3a67403ac9f85c6217963e54e67e0c3fd3bb11d
|
|
| MD5 |
213d085830e045437236fd2e915d51b9
|
|
| BLAKE2b-256 |
1116b983ad7c45ec00239613ac71ff60b3d496ecf6881b2249aff4fc1557d63a
|
File details
Details for the file multisig_hmac_AmalieDue-0.0.3-py3-none-any.whl.
File metadata
- Download URL: multisig_hmac_AmalieDue-0.0.3-py3-none-any.whl
- Upload date:
- Size: 4.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1429be5ad22664ffc5876271fdb93cfa5e8ccf2d5b210aec130701a0b3608c99
|
|
| MD5 |
2d7dd7b921aabb340f981f2517293323
|
|
| BLAKE2b-256 |
422d1e1757bde16efa8bcaffa169ad7cf4969921159a6a48e3911fdcedb76856
|