1#!/usr/bin/env python3
2
3from base64 import b64encode
4import ed25519
5import json
6
7signing_key, verifying_key = ed25519.create_keypair()
8
9print ("Signing key:", b64encode(signing_key.to_bytes()).decode('utf-8'))
10print ("Verifying key:", b64encode(verifying_key.to_bytes()).decode('utf-8'))
11
12sample_token = {
13    "username": "bob",
14    "flags": ["mod", "host"],
15    "nonce": "0102030405060708",
16    }
17
18serialized_token = b64encode(json.dumps(sample_token).encode('utf-8'))
19
20signature = signing_key.sign(b'1.' + serialized_token, encoding="base64")
21
22print ("Auth token version: 1")
23print ("Payload: " + serialized_token.decode('utf-8'))
24print ("Signature: " + signature.decode('utf-8'))
25print ("Token: 1." + serialized_token.decode('utf-8') + "." + signature.decode('utf-8'))
26
27