add rolls12.py
This commit is contained in:
parent
190840a1b2
commit
05ac389349
@ -8,36 +8,6 @@
|
||||
#
|
||||
from hashlib import sha256
|
||||
|
||||
# Read input, remove whitespace around it
|
||||
r = input().strip()
|
||||
|
||||
# Calc sha256
|
||||
h = sha256(r.encode()).digest()
|
||||
|
||||
# Show the hash
|
||||
print(h.hex())
|
||||
print()
|
||||
|
||||
# Sanity check for empty input
|
||||
empty = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
if h.hex() == empty:
|
||||
print('WARNING: Input is empty. This is a known wallet\n')
|
||||
|
||||
# Warnings for short length
|
||||
if len(r) < 99:
|
||||
ae = 2.585 * len(r)
|
||||
print('WARNING: Input is only %d bits of entropy\n' % ae)
|
||||
|
||||
# Apply BIP39 to convert into seed words
|
||||
v = int.from_bytes(h, 'big') << 8
|
||||
w = []
|
||||
for i in range(24):
|
||||
v, m = divmod(v, 2048)
|
||||
w.insert(0, m)
|
||||
assert not v
|
||||
|
||||
# final 8 bits are a checksum
|
||||
w[-1] |= sha256(h).digest()[0]
|
||||
|
||||
# English wordlist
|
||||
wl = '''\
|
||||
@ -212,5 +182,42 @@ window wine wing wink winner winter wire wisdom wise wish witness wolf woman
|
||||
wonder wood wool word work world worry worth wrap wreck wrestle wrist write
|
||||
wrong yard year yellow you young youth zebra zero zone zoo'''.split()
|
||||
|
||||
# Print index number and each word (24)
|
||||
print('\n'.join('%4d: %s' % (n+1, wl[i]) for n, i in enumerate(w)))
|
||||
|
||||
def entropy_to_mnemonic24(entropy):
|
||||
# Apply BIP39 to convert entropy into seed words
|
||||
assert len(entropy) == 32
|
||||
v = int.from_bytes(entropy, 'big') << 8
|
||||
indexes = []
|
||||
for i in range(24):
|
||||
v, m = divmod(v, 2048)
|
||||
indexes.insert(0, m)
|
||||
assert not v
|
||||
# final 8 bits are a checksum
|
||||
indexes[-1] |= sha256(entropy).digest()[0]
|
||||
return [wl[i] for i in indexes]
|
||||
|
||||
|
||||
def main():
|
||||
# Read input, remove whitespace around it
|
||||
r = input().strip()
|
||||
# Calc sha256
|
||||
h = sha256(r.encode()).digest()
|
||||
# Show the hash
|
||||
print(h.hex())
|
||||
print()
|
||||
# Sanity check for empty input
|
||||
empty = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
if h.hex() == empty:
|
||||
print('WARNING: Input is empty. This is a known wallet\n')
|
||||
# Warnings for short length
|
||||
if len(r) < 99:
|
||||
ae = 2.585 * len(r)
|
||||
print('WARNING: Input is only %d bits of entropy\n' % ae)
|
||||
|
||||
mnemonic = entropy_to_mnemonic24(h)
|
||||
# Print index number and each word (24)
|
||||
print('\n'.join('%4d: %s' % (n + 1, word) for n, word in enumerate(mnemonic)))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
222
docs/rolls12.py
Normal file
222
docs/rolls12.py
Normal file
@ -0,0 +1,222 @@
|
||||
# Usage:
|
||||
#
|
||||
# echo 123456123456 | python3 rolls12.py
|
||||
#
|
||||
# - Requires python3 and nothing else!
|
||||
# - This file is <https://coldcardwallet.com/docs/rolls12.py>
|
||||
# - Public domain.
|
||||
#
|
||||
from hashlib import sha256
|
||||
|
||||
|
||||
# English wordlist
|
||||
wl = '''\
|
||||
abandon ability able about above absent absorb abstract absurd abuse access
|
||||
accident account accuse achieve acid acoustic acquire across act action actor
|
||||
actress actual adapt add addict address adjust admit adult advance advice
|
||||
aerobic affair afford afraid again age agent agree ahead aim air airport aisle
|
||||
alarm album alcohol alert alien all alley allow almost alone alpha already
|
||||
also alter always amateur amazing among amount amused analyst anchor ancient
|
||||
anger angle angry animal ankle announce annual another answer antenna antique
|
||||
anxiety any apart apology appear apple approve april arch arctic area arena
|
||||
argue arm armed armor army around arrange arrest arrive arrow art artefact
|
||||
artist artwork ask aspect assault asset assist assume asthma athlete atom
|
||||
attack attend attitude attract auction audit august aunt author auto autumn
|
||||
average avocado avoid awake aware away awesome awful awkward axis baby bachelor
|
||||
bacon badge bag balance balcony ball bamboo banana banner bar barely bargain
|
||||
barrel base basic basket battle beach bean beauty because become beef before
|
||||
begin behave behind believe below belt bench benefit best betray better between
|
||||
beyond bicycle bid bike bind biology bird birth bitter black blade blame blanket
|
||||
blast bleak bless blind blood blossom blouse blue blur blush board boat body
|
||||
boil bomb bone bonus book boost border boring borrow boss bottom bounce box
|
||||
boy bracket brain brand brass brave bread breeze brick bridge brief bright
|
||||
bring brisk broccoli broken bronze broom brother brown brush bubble buddy
|
||||
budget buffalo build bulb bulk bullet bundle bunker burden burger burst bus
|
||||
business busy butter buyer buzz cabbage cabin cable cactus cage cake call calm
|
||||
camera camp can canal cancel candy cannon canoe canvas canyon capable capital
|
||||
captain car carbon card cargo carpet carry cart case cash casino castle casual
|
||||
cat catalog catch category cattle caught cause caution cave ceiling celery
|
||||
cement census century cereal certain chair chalk champion change chaos chapter
|
||||
charge chase chat cheap check cheese chef cherry chest chicken chief child
|
||||
chimney choice choose chronic chuckle chunk churn cigar cinnamon circle citizen
|
||||
city civil claim clap clarify claw clay clean clerk clever click client cliff
|
||||
climb clinic clip clock clog close cloth cloud clown club clump cluster clutch
|
||||
coach coast coconut code coffee coil coin collect color column combine come
|
||||
comfort comic common company concert conduct confirm congress connect consider
|
||||
control convince cook cool copper copy coral core corn correct cost cotton
|
||||
couch country couple course cousin cover coyote crack cradle craft cram crane
|
||||
crash crater crawl crazy cream credit creek crew cricket crime crisp critic
|
||||
crop cross crouch crowd crucial cruel cruise crumble crunch crush cry crystal
|
||||
cube culture cup cupboard curious current curtain curve cushion custom cute
|
||||
cycle dad damage damp dance danger daring dash daughter dawn day deal debate
|
||||
debris decade december decide decline decorate decrease deer defense define
|
||||
defy degree delay deliver demand demise denial dentist deny depart depend
|
||||
deposit depth deputy derive describe desert design desk despair destroy detail
|
||||
detect develop device devote diagram dial diamond diary dice diesel diet differ
|
||||
digital dignity dilemma dinner dinosaur direct dirt disagree discover disease
|
||||
dish dismiss disorder display distance divert divide divorce dizzy doctor
|
||||
document dog doll dolphin domain donate donkey donor door dose double dove
|
||||
draft dragon drama drastic draw dream dress drift drill drink drip drive drop
|
||||
drum dry duck dumb dune during dust dutch duty dwarf dynamic eager eagle early
|
||||
earn earth easily east easy echo ecology economy edge edit educate effort egg
|
||||
eight either elbow elder electric elegant element elephant elevator elite else
|
||||
embark embody embrace emerge emotion employ empower empty enable enact end
|
||||
endless endorse enemy energy enforce engage engine enhance enjoy enlist enough
|
||||
enrich enroll ensure enter entire entry envelope episode equal equip era erase
|
||||
erode erosion error erupt escape essay essence estate eternal ethics evidence
|
||||
evil evoke evolve exact example excess exchange excite exclude excuse execute
|
||||
exercise exhaust exhibit exile exist exit exotic expand expect expire explain
|
||||
expose express extend extra eye eyebrow fabric face faculty fade faint faith
|
||||
fall false fame family famous fan fancy fantasy farm fashion fat fatal father
|
||||
fatigue fault favorite feature february federal fee feed feel female fence
|
||||
festival fetch fever few fiber fiction field figure file film filter final
|
||||
find fine finger finish fire firm first fiscal fish fit fitness fix flag flame
|
||||
flash flat flavor flee flight flip float flock floor flower fluid flush fly
|
||||
foam focus fog foil fold follow food foot force forest forget fork fortune
|
||||
forum forward fossil foster found fox fragile frame frequent fresh friend
|
||||
fringe frog front frost frown frozen fruit fuel fun funny furnace fury future
|
||||
gadget gain galaxy gallery game gap garage garbage garden garlic garment gas
|
||||
gasp gate gather gauge gaze general genius genre gentle genuine gesture ghost
|
||||
giant gift giggle ginger giraffe girl give glad glance glare glass glide glimpse
|
||||
globe gloom glory glove glow glue goat goddess gold good goose gorilla gospel
|
||||
gossip govern gown grab grace grain grant grape grass gravity great green grid
|
||||
grief grit grocery group grow grunt guard guess guide guilt guitar gun gym
|
||||
habit hair half hammer hamster hand happy harbor hard harsh harvest hat have
|
||||
hawk hazard head health heart heavy hedgehog height hello helmet help hen hero
|
||||
hidden high hill hint hip hire history hobby hockey hold hole holiday hollow
|
||||
home honey hood hope horn horror horse hospital host hotel hour hover hub huge
|
||||
human humble humor hundred hungry hunt hurdle hurry hurt husband hybrid ice
|
||||
icon idea identify idle ignore ill illegal illness image imitate immense immune
|
||||
impact impose improve impulse inch include income increase index indicate
|
||||
indoor industry infant inflict inform inhale inherit initial inject injury
|
||||
inmate inner innocent input inquiry insane insect inside inspire install intact
|
||||
interest into invest invite involve iron island isolate issue item ivory jacket
|
||||
jaguar jar jazz jealous jeans jelly jewel job join joke journey joy judge juice
|
||||
jump jungle junior junk just kangaroo keen keep ketchup key kick kid kidney
|
||||
kind kingdom kiss kit kitchen kite kitten kiwi knee knife knock know lab label
|
||||
labor ladder lady lake lamp language laptop large later latin laugh laundry
|
||||
lava law lawn lawsuit layer lazy leader leaf learn leave lecture left leg legal
|
||||
legend leisure lemon lend length lens leopard lesson letter level liar liberty
|
||||
library license life lift light like limb limit link lion liquid list little
|
||||
live lizard load loan lobster local lock logic lonely long loop lottery loud
|
||||
lounge love loyal lucky luggage lumber lunar lunch luxury lyrics machine mad
|
||||
magic magnet maid mail main major make mammal man manage mandate mango mansion
|
||||
manual maple marble march margin marine market marriage mask mass master match
|
||||
material math matrix matter maximum maze meadow mean measure meat mechanic
|
||||
medal media melody melt member memory mention menu mercy merge merit merry
|
||||
mesh message metal method middle midnight milk million mimic mind minimum minor
|
||||
minute miracle mirror misery miss mistake mix mixed mixture mobile model modify
|
||||
mom moment monitor monkey monster month moon moral more morning mosquito mother
|
||||
motion motor mountain mouse move movie much muffin mule multiply muscle museum
|
||||
mushroom music must mutual myself mystery myth naive name napkin narrow nasty
|
||||
nation nature near neck need negative neglect neither nephew nerve nest net
|
||||
network neutral never news next nice night noble noise nominee noodle normal
|
||||
north nose notable note nothing notice novel now nuclear number nurse nut oak
|
||||
obey object oblige obscure observe obtain obvious occur ocean october odor off
|
||||
offer office often oil okay old olive olympic omit once one onion online only
|
||||
open opera opinion oppose option orange orbit orchard order ordinary organ
|
||||
orient original orphan ostrich other outdoor outer output outside oval oven
|
||||
over own owner oxygen oyster ozone pact paddle page pair palace palm panda
|
||||
panel panic panther paper parade parent park parrot party pass patch path
|
||||
patient patrol pattern pause pave payment peace peanut pear peasant pelican
|
||||
pen penalty pencil people pepper perfect permit person pet phone photo phrase
|
||||
physical piano picnic picture piece pig pigeon pill pilot pink pioneer pipe
|
||||
pistol pitch pizza place planet plastic plate play please pledge pluck plug
|
||||
plunge poem poet point polar pole police pond pony pool popular portion position
|
||||
possible post potato pottery poverty powder power practice praise predict
|
||||
prefer prepare present pretty prevent price pride primary print priority prison
|
||||
private prize problem process produce profit program project promote proof
|
||||
property prosper protect proud provide public pudding pull pulp pulse pumpkin
|
||||
punch pupil puppy purchase purity purpose purse push put puzzle pyramid quality
|
||||
quantum quarter question quick quit quiz quote rabbit raccoon race rack radar
|
||||
radio rail rain raise rally ramp ranch random range rapid rare rate rather
|
||||
raven raw razor ready real reason rebel rebuild recall receive recipe record
|
||||
recycle reduce reflect reform refuse region regret regular reject relax release
|
||||
relief rely remain remember remind remove render renew rent reopen repair
|
||||
repeat replace report require rescue resemble resist resource response result
|
||||
retire retreat return reunion reveal review reward rhythm rib ribbon rice rich
|
||||
ride ridge rifle right rigid ring riot ripple risk ritual rival river road
|
||||
roast robot robust rocket romance roof rookie room rose rotate rough round
|
||||
route royal rubber rude rug rule run runway rural sad saddle sadness safe sail
|
||||
salad salmon salon salt salute same sample sand satisfy satoshi sauce sausage
|
||||
save say scale scan scare scatter scene scheme school science scissors scorpion
|
||||
scout scrap screen script scrub sea search season seat second secret section
|
||||
security seed seek segment select sell seminar senior sense sentence series
|
||||
service session settle setup seven shadow shaft shallow share shed shell sheriff
|
||||
shield shift shine ship shiver shock shoe shoot shop short shoulder shove
|
||||
shrimp shrug shuffle shy sibling sick side siege sight sign silent silk silly
|
||||
silver similar simple since sing siren sister situate six size skate sketch
|
||||
ski skill skin skirt skull slab slam sleep slender slice slide slight slim
|
||||
slogan slot slow slush small smart smile smoke smooth snack snake snap sniff
|
||||
snow soap soccer social sock soda soft solar soldier solid solution solve
|
||||
someone song soon sorry sort soul sound soup source south space spare spatial
|
||||
spawn speak special speed spell spend sphere spice spider spike spin spirit
|
||||
split spoil sponsor spoon sport spot spray spread spring spy square squeeze
|
||||
squirrel stable stadium staff stage stairs stamp stand start state stay steak
|
||||
steel stem step stereo stick still sting stock stomach stone stool story stove
|
||||
strategy street strike strong struggle student stuff stumble style subject
|
||||
submit subway success such sudden suffer sugar suggest suit summer sun sunny
|
||||
sunset super supply supreme sure surface surge surprise surround survey suspect
|
||||
sustain swallow swamp swap swarm swear sweet swift swim swing switch sword
|
||||
symbol symptom syrup system table tackle tag tail talent talk tank tape target
|
||||
task taste tattoo taxi teach team tell ten tenant tennis tent term test text
|
||||
thank that theme then theory there they thing this thought three thrive throw
|
||||
thumb thunder ticket tide tiger tilt timber time tiny tip tired tissue title
|
||||
toast tobacco today toddler toe together toilet token tomato tomorrow tone
|
||||
tongue tonight tool tooth top topic topple torch tornado tortoise toss total
|
||||
tourist toward tower town toy track trade traffic tragic train transfer trap
|
||||
trash travel tray treat tree trend trial tribe trick trigger trim trip trophy
|
||||
trouble truck true truly trumpet trust truth try tube tuition tumble tuna
|
||||
tunnel turkey turn turtle twelve twenty twice twin twist two type typical ugly
|
||||
umbrella unable unaware uncle uncover under undo unfair unfold unhappy uniform
|
||||
unique unit universe unknown unlock until unusual unveil update upgrade uphold
|
||||
upon upper upset urban urge usage use used useful useless usual utility vacant
|
||||
vacuum vague valid valley valve van vanish vapor various vast vault vehicle
|
||||
velvet vendor venture venue verb verify version very vessel veteran viable
|
||||
vibrant vicious victory video view village vintage violin virtual virus visa
|
||||
visit visual vital vivid vocal voice void volcano volume vote voyage wage wagon
|
||||
wait walk wall walnut want warfare warm warrior wash wasp waste water wave way
|
||||
wealth weapon wear weasel weather web wedding weekend weird welcome west wet
|
||||
whale what wheat wheel when where whip whisper wide width wife wild will win
|
||||
window wine wing wink winner winter wire wisdom wise wish witness wolf woman
|
||||
wonder wood wool word work world worry worth wrap wreck wrestle wrist write
|
||||
wrong yard year yellow you young youth zebra zero zone zoo'''.split()
|
||||
|
||||
|
||||
def entropy_to_mnemonic12(entropy):
|
||||
# Apply BIP39 to convert entropy into seed words
|
||||
assert len(entropy) == 16
|
||||
v = int.from_bytes(entropy, 'big') << 4
|
||||
indexes = []
|
||||
for i in range(12):
|
||||
v, m = divmod(v, 2048)
|
||||
indexes.insert(0, m)
|
||||
# final 4 bits are a checksum
|
||||
indexes[-1] += sha256(entropy).digest()[0] >> 4
|
||||
return [wl[i] for i in indexes]
|
||||
|
||||
|
||||
def main():
|
||||
# Read input, remove whitespace around it
|
||||
r = input().strip()
|
||||
# Calc sha256
|
||||
h = sha256(r.encode()).digest()[:16]
|
||||
# Show the hash
|
||||
print(h.hex())
|
||||
print()
|
||||
# Sanity check for empty input
|
||||
empty = "e3b0c44298fc1c149afbf4c8996fb924"
|
||||
if h.hex() == empty:
|
||||
print('WARNING: Input is empty. This is a known wallet\n')
|
||||
# Warnings for short length
|
||||
if len(r) < 50:
|
||||
ae = 2.585 * len(r)
|
||||
print('WARNING: Input is only %d bits of entropy\n' % ae)
|
||||
|
||||
mnemonic = entropy_to_mnemonic12(h)
|
||||
# Print index number and each word (12)
|
||||
print('\n'.join('%4d: %s' % (n + 1, word) for n, word in enumerate(mnemonic)))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@ -3,6 +3,7 @@
|
||||
- Enhancement: Add ability to import extended private key via Virtual Disk and via NFC
|
||||
- Enhancement: Offer import/export from/to Virtual Disk in UI
|
||||
- Enhancement: Ability to import seed in compact/truncated form (max 4 letters of each word)
|
||||
- Enhancement: Add 'rolls12.py' script for verifying dice rolls math for 12 word seeds
|
||||
- Bugfix: allow export of Wasabi skeleton for Bitcoin Regtest
|
||||
|
||||
## 5.0.7 - 2022-10-05
|
||||
|
||||
@ -210,9 +210,10 @@ def main():
|
||||
result = []
|
||||
for test_module in test_modules:
|
||||
test_args = DEFAULT_SIMULATOR_ARGS
|
||||
if test_module in ["test_rng.py", "test_pincodes.py"]:
|
||||
if test_module in ["test_rng.py", "test_pincodes.py", "test_rolls.py"]:
|
||||
# test_pincodes.py can only be run against real device
|
||||
# test_rng.py not needed when using simulator
|
||||
# test_rolls.py should be run alone as it does not need simulator
|
||||
print("Skipped", test_module)
|
||||
continue
|
||||
print("Started", test_module)
|
||||
|
||||
101
testing/test_rolls.py
Normal file
101
testing/test_rolls.py
Normal file
@ -0,0 +1,101 @@
|
||||
from docs.rolls import entropy_to_mnemonic24
|
||||
from docs.rolls12 import entropy_to_mnemonic12
|
||||
|
||||
|
||||
bip39_vectors_12 = [
|
||||
(
|
||||
"c0ba5a8e914111210f2bd131f3d5e08d",
|
||||
"scheme spot photo card baby mountain device kick cradle pact join borrow",
|
||||
),
|
||||
(
|
||||
"23db8160a31d3e0dca3688ed941adbf3",
|
||||
"cat swing flag economy stadium alone churn speed unique patch report train",
|
||||
),
|
||||
(
|
||||
"f30f8c1da665478f49b001d94c5fc452",
|
||||
"vessel ladder alter error federal sibling chat ability sun glass valve picture",
|
||||
),
|
||||
(
|
||||
"9e885d952ad362caeb4efe34a8e91bd2",
|
||||
"ozone drill grab fiber curtain grace pudding thank cruise elder eight picnic",
|
||||
),
|
||||
(
|
||||
"00000000000000000000000000000000",
|
||||
"abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about",
|
||||
),
|
||||
(
|
||||
"7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f",
|
||||
"legal winner thank year wave sausage worth useful legal winner thank yellow",
|
||||
),
|
||||
(
|
||||
"80808080808080808080808080808080",
|
||||
"letter advice cage absurd amount doctor acoustic avoid letter advice cage above",
|
||||
),
|
||||
(
|
||||
"ffffffffffffffffffffffffffffffff",
|
||||
"zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo wrong",
|
||||
),
|
||||
(
|
||||
"bdfd931e398288992f60945db9e4e28a",
|
||||
"sadness uncle shy indoor chuckle erode rural barely frozen song december bicycle"
|
||||
),
|
||||
(
|
||||
"96d646b36079d8c1197da69188b54388",
|
||||
"nothing rate proud science outside gauge grass regular muscle east extend axis"
|
||||
),
|
||||
]
|
||||
|
||||
bip39_vectors_24 = [
|
||||
(
|
||||
"0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon art",
|
||||
),
|
||||
(
|
||||
"7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f",
|
||||
"legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth title",
|
||||
),
|
||||
(
|
||||
"8080808080808080808080808080808080808080808080808080808080808080",
|
||||
"letter advice cage absurd amount doctor acoustic avoid letter advice cage absurd amount doctor acoustic avoid letter advice cage absurd amount doctor acoustic bless",
|
||||
),
|
||||
(
|
||||
"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
|
||||
"zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo vote",
|
||||
),
|
||||
(
|
||||
"9f6a2878b2520799a44ef18bc7df394e7061a224d2c33cd015b157d746869863",
|
||||
"panda eyebrow bullet gorilla call smoke muffin taste mesh discover soft ostrich alcohol speed nation flash devote level hobby quick inner drive ghost inside",
|
||||
),
|
||||
(
|
||||
"066dca1a2bb7e8a1db2832148ce9933eea0f3ac9548d793112d9a95c9407efad",
|
||||
"all hour make first leader extend hole alien behind guard gospel lava path output census museum junior mass reopen famous sing advance salt reform",
|
||||
),
|
||||
(
|
||||
"f585c11aec520db57dd353c69554b21a89b20fb0650966fa0a9d6f74fd989d8f",
|
||||
"void come effort suffer camp survey warrior heavy shoot primary clutch crush open amazing screen patrol group space point ten exist slush involve unfold",
|
||||
),
|
||||
(
|
||||
"551bf03d054209b3d512dc4090a5067ae4bd41e487d9f14e5f709551d23564fe",
|
||||
"fence test aunt appear calm supreme february fortune dog lunch dose volume envelope path must will vanish indicate switch click brush boy negative skate"
|
||||
),
|
||||
(
|
||||
"2debf1019b6e9f94c23236c1f481491cfdd684ad2ababa759025273c508fa83f",
|
||||
"combine garbage document cycle try skill angle egg sea piano false delay talent drastic regret firm risk prosper announce example shallow elephant path toddler"
|
||||
),
|
||||
(
|
||||
"690a5584effb0b696ed901454cf88ce5aaa0785b5e00c1e859a10f4d0e0e06f7",
|
||||
"harbor famous gentle that radar regret rocket cage earn guitar case slender present destroy hope scale sea drift hair burden special alpha bridge valid"
|
||||
),
|
||||
]
|
||||
|
||||
|
||||
def test_entropy_to_mnemonic12():
|
||||
for entropy, target_mnemonic in bip39_vectors_12:
|
||||
entropy_bytes = bytes.fromhex(entropy)
|
||||
assert " ".join(entropy_to_mnemonic12(entropy_bytes)) == target_mnemonic
|
||||
|
||||
|
||||
def test_entropy_to_mnemonic24():
|
||||
for entropy, target_mnemonic in bip39_vectors_24:
|
||||
entropy_bytes = bytes.fromhex(entropy)
|
||||
assert " ".join(entropy_to_mnemonic24(entropy_bytes)) == target_mnemonic
|
||||
Loading…
Reference in New Issue
Block a user