Browse Source

modified: mmgen/tool.py

philemon 10 years ago
parent
commit
c821f796e9
1 changed files with 23 additions and 9 deletions
  1. 23 9
      mmgen/tool.py

+ 23 - 9
mmgen/tool.py

@@ -53,6 +53,8 @@ commands = {
 	"unhexdump":    ['<infile> [str]'],
 	"hex2mn":       ['<hexadecimal string> [str]','wordlist [str="electrum"]'],
 	"mn2hex":       ['<mnemonic> [str]', 'wordlist [str="electrum"]'],
+	"b32tohex":     ['<b32 num> [str]'],
+	"hextob32":     ['<hex num> [str]'],
 	"mn_rand128":   ['wordlist [str="electrum"]'],
 	"mn_rand192":   ['wordlist [str="electrum"]'],
 	"mn_rand256":   ['wordlist [str="electrum"]'],
@@ -83,20 +85,15 @@ commands = {
 }
 
 command_help = """
-  Bitcoin address/key operations (compressed addresses supported):
+  Bitcoin address/key operations (compressed public keys supported):
   addr2hexaddr - convert Bitcoin address from base58 to hex format
-  b58randenc   - generate a random 32-byte number and convert it to base 58
-  b58tohex     - convert a base 58 number to hexadecimal
-  b58tostr     - convert a base 58 number to a string
   hex2wif      - convert a private key from hex to WIF format
   hexaddr2addr - convert Bitcoin address from hex to base58 format
-  hextob58     - convert a hexadecimal number to base 58
   privhex2addr - generate Bitcoin address from private key in hex format
   pubkey2addr  - convert Bitcoin public key to address
   pubkey2hexaddr - convert Bitcoin public key to address in hex format
   randpair     - generate a random private key/address pair
   randwif      - generate a random private key in WIF format
-  strtob58     - convert a string to base 58
   wif2addr     - generate a Bitcoin address from a key in WIF format
   wif2hex      - convert a private key from WIF to hex format
 
@@ -107,14 +104,21 @@ command_help = """
   viewtx        - show raw/signed {pnm} transaction in human-readable form
 
   General utilities:
-  bytespec     - convert a byte specifier such as '1GB' into a plain integer
   hexdump      - encode data into formatted hexadecimal form (file or stdin)
+  unhexdump    - decode formatted hexadecimal data (file or stdin)
+  bytespec     - convert a byte specifier such as '1GB' into an integer
   hexlify      - display string in hexadecimal format
   hexreverse   - reverse bytes of a hexadecimal string
   rand2file    - write 'n' bytes of random data to specified file
   randhex      - print 'n' bytes (default 32) of random data in hex format
   sha256x2     - compute a double sha256 hash of data
-  unhexdump    - decode formatted hexadecimal data (file or stdin)
+  b58randenc   - generate a random 32-byte number and convert it to base 58
+  b58tostr     - convert a base 58 number to a string
+  strtob58     - convert a string to base 58
+  b58tohex     - convert a base 58 number to hexadecimal
+  hextob58     - convert a hexadecimal number to base 58
+  b32tohex     - convert a base 32 number to hexadecimal
+  hextob32     - convert a hexadecimal number to base 32
 
   File encryption:
   encrypt      - encrypt a file
@@ -126,7 +130,7 @@ command_help = """
 
   {pnm}-specific operations:
   addrfile_chksum    - compute checksum for {pnm} address file
-  keyaddrfile_chksum - compute checksum for {pnm} key file
+  keyaddrfile_chksum - compute checksum for {pnm} key-address file
   find_incog_data    - Use an Incog ID to find hidden incognito wallet data
   id6          - generate 6-character {pnm} ID for a file (or stdin)
   id8          - generate 8-character {pnm} ID for a file (or stdin)
@@ -317,6 +321,16 @@ def mn2hex(s,wordlist="electrum"):
 	wl = get_wordlist(wordlist)
 	print ba.hexlify(get_seed_from_mnemonic(s.split(),wl,True))
 
+def b32tohex(s):
+	b32a = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"
+	import mmgen.mnemonic
+	print baseNtohex(32,s,b32a)
+
+def hextob32(s):
+	b32a = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"
+	import mmgen.mnemonic
+	print "".join(hextobaseN(32,s,b32a))
+
 def mn_stats(wordlist="electrum"):
 	l = get_wordlist(wordlist)
 	check_wordlist(l,wordlist)