redacted / XKCD-password-generator

Generate secure multiword passwords/passphrases, inspired by XKCD
BSD 3-Clause "New" or "Revised" License
1.32k stars 185 forks source link

Can't use --max < 6 with spa-mich wordfile #141

Closed pabloab closed 10 months ago

pabloab commented 2 years ago

xkcdpass v1.16.5 crash when using --max below 6 and spa-mich wprdfile:

$ xkcdpass -w spa-mich --max 5 
Traceback (most recent call last):
  File "/usr/bin/xkcdpass", line 11, in <module>
    load_entry_point('xkcdpass==1.16.5', 'console_scripts', 'xkcdpass')()
  File "/usr/lib/python3/dist-packages/xkcdpass/xkcd_password.py", line 495, in main
    emit_passwords(my_wordlist, options)
  File "/usr/lib/python3/dist-packages/xkcdpass/xkcd_password.py", line 377, in emit_passwords
    generate_xkcdpassword(
  File "/usr/lib/python3/dist-packages/xkcdpass/xkcd_password.py", line 330, in generate_xkcdpassword
    return gen_passwd()
  File "/usr/lib/python3/dist-packages/xkcdpass/xkcd_password.py", line 322, in gen_passwd
    words = choose_words(wordlist, numwords)
  File "/usr/lib/python3/dist-packages/xkcdpass/xkcd_password.py", line 207, in choose_words
    return [rng().choice(wordlist) for i in xrange(numwords)]
  File "/usr/lib/python3/dist-packages/xkcdpass/xkcd_password.py", line 207, in <listcomp>
    return [rng().choice(wordlist) for i in xrange(numwords)]
  File "/usr/lib/python3.8/random.py", line 290, in choice
    raise IndexError('Cannot choose from an empty sequence') from None
IndexError: Cannot choose from an empty sequence

If a certain wordfile doesn't have terms with given criteria maybe a it should show a warning.