def suggest_brain_key(): from graphenebase.account import BrainKey bkObject = BrainKey() newBrainkey = BrainKey(bkObject.suggest()) result = { "brain_private_key": newBrainkey.get_brainkey(), "public_key": str(newBrainkey.get_public()), "private_key": str(newBrainkey.get_private()) } return result
def main(): parser = argparse.ArgumentParser( description='Generate CSV table with brain key, pub key and private key' ) parser.add_argument('--number', type=int, help='Number of brain keys to generate') parser.add_argument('--filename', type=str, help='filename to store CSV file in') parser.set_defaults(number=10) args = parser.parse_args() t = PrettyTable(["wif", "pub", "brainkey"]) for i in range(0, args.number): b = BrainKey() t.add_row([b.get_private(), b.get_private().pubkey, b.get_brainkey()]) print(t.get_string()) if args.filename: with open(args.filename, 'w') as csvfile: spamwriter = csv.writer(csvfile, delimiter=' ; ') spamwriter.writerow(t.field_names) for r in t._rows: spamwriter.writerow(r)
def test_BrainKey_normalize(self): b = "COLORER BICORN KASBEKE FAERIE LOCHIA GOMUTI SOVKHOZ Y GERMAL AUNTIE PERFUMY TIME FEATURE GANGAN CELEMIN MATZO" self.assertEqual([BrainKey(b + "").get_brainkey(), BrainKey(b + " ").get_brainkey(), BrainKey(b + " ").get_brainkey(), BrainKey(b + "\t").get_brainkey(), BrainKey(b + "\t\t").get_brainkey(), BrainKey(b.replace(" ", "\t")).get_brainkey(), BrainKey(b.replace(" ", " ")).get_brainkey(), ], [b, b, b, b, b, b, b])
def test_BrainKey_sequences(self): b = BrainKey("COLORER BICORN KASBEKE FAERIE LOCHIA GOMUTI SOVKHOZ Y GERMAL AUNTIE PERFUMY TIME FEATURE GANGAN CELEMIN MATZO") keys = ["5Hsbn6kXio4bb7eW5bX7kTp2sdkmbzP8kGWoau46Cf7en7T1RRE", "5K9MHEyiSye5iFL2srZu3ZVjzAZjcQxUgUvuttcVrymovFbU4cc", "5JBXhzDWQdYPAzRxxuGtzqM7ULLKPK7GZmktHTyF9foGGfbtDLT", "5Kbbfbs6DmJFNddWiP1XZfDKwhm5dkn9KX5AENQfQke2RYBBDcz", "5JUqLwgxn8f7myNz4gDwo5e77HZgopHMDHv4icNVww9Rxu1GDG5", "5JNBVj5QVh86N8MUUwY3EVUmsZwChZftxnuJx22DzEtHWC4rmvK", "5JdvczYtxPPjQdXMki1tpNvuSbvPMxJG5y4ndEAuQsC5RYMQXuC", "5HsUSesU2YB4EA3dmpGtHh8aPAwEdkdhidG8hcU2Nd2tETKk85t", "5JpveiQd1mt91APyQwvsCdAXWJ7uag3JmhtSxpGienic8vv1k2W", "5KDGhQUqQmwcGQ9tegimSyyT4vmH8h2fMzoNe1MT9bEGvRvR6kD"] for i in keys: p = b.next_sequence().get_private() self.assertEqual(str(p), i)
def test_BrainKey(self): self.assertEqual([str(BrainKey("COLORER BICORN KASBEKE FAERIE LOCHIA GOMUTI SOVKHOZ Y GERMAL AUNTIE PERFUMY TIME FEATURE GANGAN CELEMIN MATZO").get_private()), str(BrainKey("NAK TILTING MOOTING TAVERT SCREENY MAGIC BARDIE UPBORNE CONOID MAUVE CARBON NOTAEUM BITUMEN HOOEY KURUMA COWFISH").get_private()), str(BrainKey("CORKITE CORDAGE FONDISH UNDER FORGET BEFLEA OUTBUD ZOOGAMY BERLINE ACANTHA STYLO YINCE TROPISM TUNKET FALCULA TOMENT").get_private()), str(BrainKey("MURZA PREDRAW FIT LARIGOT CRYOGEN SEVENTH LISP UNTAWED AMBER CRETIN KOVIL TEATED OUTGRIN POTTAGY KLAFTER DABB").get_private()), str(BrainKey("VERDICT REPOUR SUNRAY WAMBLY UNFILM UNCOUS COWMAN REBUOY MIURUS KEACORN BENZOLE BEMAUL SAXTIE DOLENT CHABUK BOUGHED").get_private()), str(BrainKey("HOUGH TRUMPH SUCKEN EXODY MAMMATE PIGGIN CRIME TEPEE URETHAN TOLUATE BLINDLY CACOEPY SPINOSE COMMIE GRIECE FUNDAL").get_private()), str(BrainKey("OERSTED ETHERIN TESTIS PEGGLE ONCOST POMME SUBAH FLOODER OLIGIST ACCUSE UNPLAT OATLIKE DEWTRY CYCLIZE PIMLICO CHICOT").get_private()), ], ["5JfwDztjHYDDdKnCpjY6cwUQfM4hbtYmSJLjGd9KTpk9J4H2jDZ", "5JcdQEQjBS92rKqwzQnpBndqieKAMQSiXLhU7SFZoCja5c1JyKM", "5JsmdqfNXegnM1eA8HyL6uimHp6pS9ba4kwoiWjjvqFC1fY5AeV", "5J2KeFptc73WTZPoT1Sd59prFep6SobGobCYm7T5ZnBKtuW9RL9", "5HryThsy6ySbkaiGK12r8kQ21vNdH81T5iifFEZNTe59wfPFvU9", "5Ji4N7LSSv3MAVkM3Gw2kq8GT5uxZYNaZ3d3y2C4Ex1m7vshjBN", "5HqSHfckRKmZLqqWW7p2iU18BYvyjxQs2sksRWhXMWXsNEtxPZU", ])
def main() : parser = argparse.ArgumentParser(description='Generate CSV table with brain key, pub key and private key') parser.add_argument('--number', type=int, help='Number of brain keys to generate') parser.add_argument('--filename', type=str, help='filename to store CSV file in') parser.add_argument('-encrypt', help='Encrypt private key with BIP38!', action='store_true') parser.set_defaults(number=10) args = parser.parse_args() ''' Optionally encrypt with BIP38 ''' pw = "" if args.encrypt : import getpass while True : pw = getpass.getpass('Passphrase: ') pwck = getpass.getpass('Retype passphrase: ') if(pw == pwck) : break else : print("Given Passphrases do not match!") t = PrettyTable(["wif", "pub", "sequence"]) b = BrainKey() for i in range(0, args.number) : wif = b.get_private() pub = format(b.get_private().pubkey, prefix) if args.encrypt : # (optionally) encrypt paper wallet try : wif = format(bip38.encrypt(wif, pw), "encwif") except : raise Exception("Error encoding the privkey for pubkey %s. Already encrypted?" % pub) assert format(b.get_private(), 'wif') == format(bip38.decrypt(wif, pw), 'wif') qrwif = StringIO() qr = qrcode.QRCode(error_correction=qrcode.ERROR_CORRECT_H) qr.add_data(wif) qr.print_ascii(out=qrwif, tty=False, invert=False) qrpub = StringIO() qr = qrcode.QRCode(error_correction=qrcode.ERROR_CORRECT_H) qr.add_data(pub) qr.print_ascii(out=qrpub, tty=False, invert=False) t.add_row(["%s%s" % (qrwif.getvalue(), wif), "%s%s" % (qrpub.getvalue(), pub), b.sequence]) b.next_sequence() print("This is your (unencrypted) Brainkey. Make sure to store it savely:") print("\n\n\t%s\n\n" % b.get_brainkey()) t.hrules = 1 t.vrules = 1 t.padding_width = 1 t.header = False data = t.get_string() print(data) if args.filename : with open(args.filename, 'w') as file: file.write("# This is your (unencrypted) Brainkey. Make sure to store it savely:\n") file.write("#\n#\t%s\n#\n" % b.get_brainkey()) with open(args.filename, 'a') as csvfile: spamwriter = csv.writer(csvfile, delimiter=';') spamwriter.writerow(t.field_names) for r in t._rows : spamwriter.writerow(r)