Module jumpscale.tools.wireguard
Expand source code
import binascii
from nacl import public
from nacl.encoding import Base64Encoder
from nacl.signing import VerifyKey
def generate_zos_keys(node_public_key):
"""Generate a new set of wireguard key pair and encrypt
the private side using the public key of a 0-OS node.
Args:
node_public_key (str): hex encoded public key of 0-OS node.
Returns:
tuple: tuple containing 3 fields (private key, private key encrypted, public key)
"""
wg_private = public.PrivateKey.generate()
wg_public = wg_private.public_key
wg_private_base64 = wg_private.encode(Base64Encoder)
wg_public_base64 = wg_public.encode(Base64Encoder)
node_public_bin = binascii.unhexlify(node_public_key)
node_public = VerifyKey(node_public_bin)
box = public.SealedBox(node_public.to_curve25519_public_key())
wg_private_encrypted = box.encrypt(wg_private_base64)
wg_private_encrypted_hex = binascii.hexlify(wg_private_encrypted)
return (wg_private_base64.decode(), wg_private_encrypted_hex.decode(), wg_public_base64.decode())
def generate_key_pair():
wg_private = public.PrivateKey.generate()
wg_public = wg_private.public_key
wg_private_base64 = wg_private.encode(Base64Encoder)
wg_public_base64 = wg_public.encode(Base64Encoder)
return wg_private_base64, wg_public_base64
Functions
def generate_key_pair()
-
Expand source code
def generate_key_pair(): wg_private = public.PrivateKey.generate() wg_public = wg_private.public_key wg_private_base64 = wg_private.encode(Base64Encoder) wg_public_base64 = wg_public.encode(Base64Encoder) return wg_private_base64, wg_public_base64
def generate_zos_keys(node_public_key)
-
Generate a new set of wireguard key pair and encrypt the private side using the public key of a 0-OS node.
Args
node_public_key
:str
- hex encoded public key of 0-OS node.
Returns
tuple
- tuple containing 3 fields (private key, private key encrypted, public key)
Expand source code
def generate_zos_keys(node_public_key): """Generate a new set of wireguard key pair and encrypt the private side using the public key of a 0-OS node. Args: node_public_key (str): hex encoded public key of 0-OS node. Returns: tuple: tuple containing 3 fields (private key, private key encrypted, public key) """ wg_private = public.PrivateKey.generate() wg_public = wg_private.public_key wg_private_base64 = wg_private.encode(Base64Encoder) wg_public_base64 = wg_public.encode(Base64Encoder) node_public_bin = binascii.unhexlify(node_public_key) node_public = VerifyKey(node_public_bin) box = public.SealedBox(node_public.to_curve25519_public_key()) wg_private_encrypted = box.encrypt(wg_private_base64) wg_private_encrypted_hex = binascii.hexlify(wg_private_encrypted) return (wg_private_base64.decode(), wg_private_encrypted_hex.decode(), wg_public_base64.decode())