11# 🌱 Seedtool
22
3- ** Version 1.0.0b1 ** <br />** April 8, 2020**
3+ ** Version 0.1.1 ** <br />** April 8, 2020**
44
55* Copyright © 2020 by Blockchain Commons, LLC* <br />* Licensed under the "BSD-2-Clause Plus Patent License"*
66
@@ -230,7 +230,7 @@ $ seedtool --out bits
230230#
231231
232232$ seedtool --in bits 1110110001110111
233- ed8f723f8216781a047886244f6f75c0
233+ 8d933e43b1bc8f2e3fc27adc98ad4534
234234
235235#
236236# Construct the same seed from those bits, providing them via stdin.
@@ -239,7 +239,7 @@ ed8f723f8216781a047886244f6f75c0
239239$ seedtool --in bits
2402401110110001110111
241241^D
242- ed8f723f8216781a047886244f6f75c0
242+ 8d933e43b1bc8f2e3fc27adc98ad4534
243243```
244244
245245```
@@ -257,14 +257,14 @@ $ seedtool --out cards
257257#
258258
259259$ seedtool --in cards 6c9s8c7c9c4cah6c2sjs7d5c2s4c4dqs
260- 2bcd58e32a6fa0f55b6a2e24d77e706f
260+ 7df301924511326d7350be14c9e7176d
261261
262262#
263263# Construct a longer 32-byte seed from those same playing cards.
264264#
265265
266266$ seedtool --count 32 --in cards 6c9s8c7c9c4cah6c2sjs7d5c2s4c4dqs
267- 2bcd58e32a6fa0f55b6a2e24d77e706fdd165482b36dcab10d271a262097bca4
267+ 7df301924511326d7350be14c9e7176d98e945f9ad0ed034726ad4ee0de59c25
268268```
269269
270270```
@@ -274,21 +274,21 @@ $ seedtool --count 32 --in cards 6c9s8c7c9c4cah6c2sjs7d5c2s4c4dqs
274274#
275275
276276$ seedtool --in dice 3343462611234633
277- d28e978aba2967adb66d4fec42ea6086
277+ 77ae0de807d60367311eb040c70690d2
278278
279279#
280280# Construct a 16-byte seed from any number of digits in [0-5].
281281#
282282
283283$ seedtool --in base6 3242235101442242
284- e57ff8f262fbeb623a2a86baa52935f0
284+ 51621269b3a91fe6482ceb7779f0d1d1
285285
286286#
287287# Construct a 16-byte seed from any number of digits in [0-9].
288288#
289289
290290$ seedtool --in base10 3190125
291- 61cfda662ecb32294f508fdac513ed9d
291+ a0ca21e20db54b4df7479737c145f6db
292292
293293#
294294# Construct a 16-byte seed from any number of integers in [0-255].
@@ -305,17 +305,17 @@ Output of one call to seedtool can be piped into another.
305305#
306306
307307$ seedtool --out dice | seedtool --in dice --count 32
308- 838e8c1f73d06282d852733e564430afd0ce2162a734c506167e4cce0d54a3f6
308+ 7bdf68608e30da4b9ec48af0cb48f2601b41d1bcc8859b4f625d6c0470f3a6dd
309309
310310#
311311# Roll 16 dice saving them to a file, and create a 16-byte seed
312312# from them.
313313#
314314
315315$ seedtool --out dice | tee dice.asc | seedtool --in dice
316- b67a2f937179e532821cfd9836aa56d4
316+ c13be193c8e3451a20b75e8dc0f69284
317317$ cat dice.asc
318- 4265544111216531
318+ 4435442555226432
319319```
320320
321321If a smaller or larger seed is desired, the ` --count ` option specifies how many bytes it contains.
@@ -326,21 +326,21 @@ If a smaller or larger seed is desired, the `--count` option specifies how many
326326#
327327
328328$ seedtool --in bits --count 8 0111100011000011
329- 1e4914918ce8f4dc
329+ 1a4783f9e4e8eb68
330330
331331#
332332# Create a 32-byte seed from any number of bits.
333333#
334334
335335$ seedtool --in bits --count 32 0111100011000011
336- 1e4914918ce8f4dc08755e0b4f97fb6d4715ce9692a91ef600526543543f1af1
336+ 1a4783f9e4e8eb6862cbd34acfe4f79ee8ee4e0e6f5726e589a36c7e8bf8a547
337337
338338#
339339# Create a 20-byte seed from any number of playing cards.
340340#
341341
342342$ seedtool --in cards --count 20 6c2c3hthacts6d4hkhtd2d7c6c3sqs6h
343- f44c7708363d99857e60cb313a803902a5363336
343+ 731e0a4c76189b2b55f4c705ccbb0105d3ee72c0
344344```
345345
346346` bip39 ` and ` slip39 ` output formats can be combined with the ` random ` (default) input format. If the ` --count N ` option is used with the ` hex ` input format, it results in a seed of ` N ` bytes being generated and used.
@@ -506,36 +506,36 @@ $ seedtool --out dice
506506#
507507
508508$ seedtool --in dice 5343553122555345
509- 122540402a49e1abb75c9d2754db1ce1
509+ 5d1c30bbc6f3cfd070067b63c851ffe7
510510
511511#
512512# Construct SLIP39 share from seed.
513513#
514514
515- $ seedtool --in hex --out slip39 122540402a49e1abb75c9d2754db1ce1
516- device aluminum academic academic crush engage exercise acquire genuine necklace radar twice tension photo float walnut remove lecture maximum biology
515+ $ seedtool --in hex --out slip39 5d1c30bbc6f3cfd070067b63c851ffe7
516+ edge enlarge academic academic body necklace surprise resident burden taxi painting slim research teammate peasant ivory weapon gesture voice flexible
517517
518518#
519519# Recover the seed from the SLIP39 share.
520520#
521521
522- $ seedtool --in slip39 "device aluminum academic academic crush engage exercise acquire genuine necklace radar twice tension photo float walnut remove lecture maximum biology "
523- 122540402a49e1abb75c9d2754db1ce1
522+ $ seedtool --in slip39 "edge enlarge academic academic body necklace surprise resident burden taxi painting slim research teammate peasant ivory weapon gesture voice flexible "
523+ 5d1c30bbc6f3cfd070067b63c851ffe7
524524
525525#
526526# Again construct SLIP39 share from the same seed. Notice the
527527# share is different than last time.
528528#
529529
530- $ seedtool --in hex --out slip39 122540402a49e1abb75c9d2754db1ce1
531- aunt branch academic academic declare pajamas firefly costume wrote advocate payroll ting answer graduate helpful column dilemma realize cylinder stilt
530+ $ seedtool --in hex --out slip39 5d1c30bbc6f3cfd070067b63c851ffe7
531+ result leader academic academic apart length alcohol adult patrol military counter enjoy animal standard club facility belong rumor problem answer
532532
533533#
534534# Recover the second share and notice that the seed is the same.
535535#
536536
537- $ seedtool --in slip39 "aunt branch academic academic declare pajamas firefly costume wrote advocate payroll ting answer graduate helpful column dilemma realize cylinder stilt "
538- 122540402a49e1abb75c9d2754db1ce1
537+ $ seedtool --in slip39 "result leader academic academic apart length alcohol adult patrol military counter enjoy animal standard club facility belong rumor problem answer "
538+ 5d1c30bbc6f3cfd070067b63c851ffe7
539539```
540540
541541
@@ -563,7 +563,7 @@ d551108c3e7831532beded6b29438683
563563#
564564
565565$ seedtool --deterministic test2
566- 68b275e740cb5f89bb5444694aaa2dbc82ab6aa4d9869b3995cb6aa3c622e6d1
566+ a97770028023ece0f9307bf867b4c740
567567```
568568
569569In this example, the same entropy is used twice in producing a SLIP39 share, which would normally result in two different shares being produced. But by providing ` --deterministic FOOBAR ` , the same results are produced.
@@ -581,29 +581,58 @@ $ seedtool --deterministic FOOBAR --out dice
581581#
582582
583583$ seedtool --in dice 1533324122434244
584- b00248aedff06ea356a6f0e362ed8a07
584+ 5cd271b50b98a869da1c26a526e1d3a8
585585
586586#
587587# Display our seed as a SLIP39 2-of-3 shares, using
588588# deterministic randomness.
589589#
590590
591- $ seedtool --deterministic FOOBAR --in hex --out slip39 --group 2-of-3 b00248aedff06ea356a6f0e362ed8a07
592- response lunch academic acid counter angel bucket trust guitar increase divorce stilt gasoline junk hearing crunch sprinkle sheriff pile salon
593- response lunch academic agency buyer wisdom salary mason superior tracks glasses picture adult capacity ultimate pistol biology enjoy snake satisfy
594- response lunch academic always alto wrap scroll music entrance easy lunch describe champion receiver artwork mouse false morning thunder video
591+ $ seedtool --deterministic FOOBAR --in hex --out slip39 --group 2-of-3 5cd271b50b98a869da1c26a526e1d3a8
592+ response lunch academic acid breathe ocean mixture traffic object sheriff rapids victim froth testify retreat patent prize human usual hobo
593+ response lunch academic agency activity fiber escape research earth pipeline prevent prepare activity erode grumpy problem justice vampire tension custody
594+ response lunch academic always crisis cards chemical expect muscle anxiety training thunder climate plan geology bulb scatter teacher gravity guilt
595595
596596#
597597# Do all of the above on a single line, and note that because
598598# of deterministic randomness, the same final output is produced.
599599#
600600
601601$ seedtool --deterministic FOOBAR --out dice | seedtool --in dice | seedtool --deterministic FOOBAR --in hex --out slip39 --group 2-of-3
602- response lunch academic acid counter angel bucket trust guitar increase divorce stilt gasoline junk hearing crunch sprinkle sheriff pile salon
603- response lunch academic agency buyer wisdom salary mason superior tracks glasses picture adult capacity ultimate pistol biology enjoy snake satisfy
604- response lunch academic always alto wrap scroll music entrance easy lunch describe champion receiver artwork mouse false morning thunder video
602+ response lunch academic acid breathe ocean mixture traffic object sheriff rapids victim froth testify retreat patent prize human usual hobo
603+ response lunch academic agency activity fiber escape research earth pipeline prevent prepare activity erode grumpy problem justice vampire tension custody
604+ response lunch academic always crisis cards chemical expect muscle anxiety training thunder climate plan geology bulb scatter teacher gravity guilt
605+ ```
606+
607+ ## Compatibility
608+
609+ * seedtool has been tested to give the same results as [ Ian Coleman's BIP39 tool] ( https://iancoleman.io/bip39/ ) for the following input methods: ` base6 ` , ` base10 ` , ` bits ` , and ` dice ` .
610+ * ` hex ` as an input method is already compatible if used with his tool in "raw entropy" mode.
611+ * ` cards ` is not currently compatible.
612+
613+ The example below can be replicated using Coleman's tool and selecting the following options:
614+
615+ * Show entropy
616+ * Base: 10
617+ * Entropy: 123456
618+ * Mnemonic length: 12 words
619+
620+ ```
621+ $ seedtool --in base10 123456 | seedtool --in hex --out bip39
622+ mirror reject rookie talk pudding throw happy era myth already payment owner
605623```
606624
607625## Version History
608626
609- ** 1.0.0b1, 4/8/2020:** First test release.
627+ ### 0.1.1, 4/8/2020
628+
629+ * Added compatibility with Ian Coleman's BIP39 tool for several input formats:
630+ * ` base6 ` , ` base10 ` , ` bits ` , and ` dice ` are now compatible.
631+ * ` hex ` as an input method is already compatible if used with his tool in "raw entropy" mode.
632+ * ` cards ` is not compatible as his algorithm is complex and possibly not worth spending the time on.
633+ * Updated MANUAL.md examples to remain accurate.
634+ * Added a section on Compatibility with other tools to MANUAL.md.
635+
636+ ### 0.1.0, 4/8/2020
637+
638+ * First test release.
0 commit comments