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