bundlewrap/libs/keys.py
Franzi 58ca3fa9ae
All checks were successful
bundlewrap/pipeline/head This commit looks good
bundles/wireguard: add netdev and network files, add iptables rules
2020-11-21 15:38:38 +01:00

16 lines
585 B
Python

import base64
from nacl.public import PrivateKey
from nacl.encoding import Base64Encoder
from bundlewrap.utils import Fault
def gen_privkey(repo, identifier):
return repo.vault.random_bytes_as_base64_for(identifier)
def get_pubkey_from_privkey(repo, identifier, privkey):
# FIXME this assumes the privkey is always a base64 encoded string
def derive_pubkey():
pub_key = PrivateKey(base64.b64decode(str(privkey))).public_key
return pub_key.encode(encoder=Base64Encoder).decode('ascii')
return Fault(f'pubkey from privkey {identifier}', derive_pubkey)