# Copyright 2016 Lars Wirzenius # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # # =*= License: GPL-3+ =*= import pgpwordlist _words = pgpwordlist.pgp_word_list def get_word(hex, offset): hex = hex.lower() t = _words.get(hex) if t is None: raise KeyError(hex) return t[offset % 2] def get_hex(word): for hex, t in _words.items(): if word.lower() in t: return hex.lower() def hex_to_words(hexstr): words = [get_word(hex, i) for i, hex in enumerate(_hex_bytes(hexstr))] return ' '.join(words) def _hex_bytes(hexstr): for i in range(0, len(hexstr), 2): yield hexstr[i:i+2] def words_to_hex(wordstr): return ''.join(get_hex(w) for w in wordstr.split())