modified: Getting-Started-with-MMGen.md

philemon 2014-08-03 16:15:01 +04:00
commit 90ab5a7118

@ -357,8 +357,9 @@ wallet filename. Now export your new toughened wallet to incognito format:
...
Incognito wallet data saved to file '89ABCDEF-87654321-ECA86420[256,5].mmincog'
'ECA86420' is the IV (init vector) ID. This can be used to find your wallet
within random data if you've forgotten where you hid it **(TBD)**.
'ECA86420' is the Incog ID. This can be used by the 'mmgen-tool' utility to
search through a file or partition and locate your wallet if you've forgotten
where you hid it.
Repeat the same export operation, but output to hexadecimal:
@ -372,9 +373,10 @@ Repeat the same export operation, but output to hexadecimal:
3706 c5ce 56e0 7590 e677 6c6e 750a d057
b43a 21f9 82c7 6bd1 fe96 bad9 2d54 c4c0
Note that the IV ID is different here: the IV is generated randomly each time,
leading to the incog data as a whole being different as well. This allows you
to store your incog data in multiple insecure locations without being detected.
Note that the Incog ID is different here: it's generated from the init vector,
which is randomly generated each time, leading to the incog data as a whole
being different as well. This allows you to store your incog data in multiple
insecure locations without being detected.
As you can see, this data is ideally suited for a paper wallet. Just print it
out on a printer and you're ready to go. This hex dump of apparently random
@ -396,17 +398,21 @@ with 1 GB of random data:
$ dd if=/dev/urandom of=random.dat bs=1K count=1M
Or better, yet, use `mmgen-tool rand2file` to do the same job but with
some additional user entropy and a progress meter:
$ mmgen-tool -r40 rand2file random.dat 1G
Export your wallet to incog format, hiding it in this file at offset 123456789:
$ mmgen-walletchk -G random.dat,123456789 89ABCDEF-87654321[256,5].mmdat
...
IV ID: ED1F2ACB
Incog ID: ED1F2ACB
Data written to file 'random.dat' at offset 123456789
The IV ID is useful. If you forget the offset, it can be used to find your
wallet data **(TBD)**. The file 'random.dat' can now be uploaded to your
favorite cloud storage service, for example (in a real-life situation you'd
choose a less obvious offset than '123456789' though).
The file 'random.dat' can now be uploaded to your favorite cloud storage
service, for example (in a real-life situation you'd choose a less obvious
offset than '123456789' though).
Generate ten addresses with your hidden incog data:
@ -420,59 +426,3 @@ Sign a transaction with your hidden incog data:
Note that the seed length parameter here will always be '256' unless you're
using a non-default seed length.
### Test suite (unsupported - much of this functionality is now in 'mmgen-tool'):
The test suite can be run from within the MMGen source directory. You might
find the following tests to be of interest:
#### Bitcoin module:
> Show available tests:
mmgen/tests/bitcoin.py
> Compare 10 addresses generated by 'keyconv' with mmgen's internally-generated
> ones:
mmgen/tests/bitcoin.py keyconv_compare_randloop 10
> Convert a string to base 58 and back:
mmgen/tests/bitcoin.py strtob58 'a string'
> Convert a hex number to base 58 and back:
mmgen/tests/bitcoin.py hextob58 deadbeef
> Perform 1000 hex -> base58 -> hex conversions, comparing results stringwise:
mmgen/tests/bitcoin.py hextob58_pad_randloop 1000
#### Mnemonic module:
> Show available tests:
mmgen/tests/mnemonic.py
> Generate a 12-word mnemonic from a random 128-bit seed:
mmgen/tests/mnemonic.py random128
>> or an 18-word mnemonic from a random 192-bit seed:
mmgen/tests/mnemonic.py random192
>> or a 24-word mnemonic from a random 256-bit seed:
mmgen/tests/mnemonic.py random256
> Show statistics for the Electrum wordlist:
mmgen/tests/mnemonic.py electrum
> Print the Electrum wordlist:
mmgen/tests/mnemonic.py electrum_print