#!/usr/bin/env python import base64, json import xml.etree.ElementTree as ET verbose = False root = ET.parse ('apps/org.fedorahosted.freeotp/sp/tokens.xml').getroot() for secrets in root.findall ('string'): name = secrets.get ('name') if name == 'tokenOrder': continue secret_json = secrets.text print ("secret name: {}".format(name)) if verbose: print ("secret json: {}".format(secret_json)) token = json.loads(secret_json); token_secret = token["secret"] if verbose: print("token secret: {}".format(token_secret)) secret = bytes((x + 256) & 255 for x in token_secret) if verbose: print("token secret bytes {}".format(secret)) code = base64.b32encode(secret) print("token secret base64: {}".format(code.decode()))