Skip to content

Instantly share code, notes, and snippets.

@ataliba
Created July 19, 2021 00:02
Show Gist options
  • Save ataliba/edcab7ffc525ee8a651ccf3681172c19 to your computer and use it in GitHub Desktop.
Save ataliba/edcab7ffc525ee8a651ccf3681172c19 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python
import base64, json
import xml.etree.ElementTree as ET
verbose = False
root = ET.parse ('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()))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment