marcwebbie / passpie

:closed_lock_with_key: Multiplatform command-line password manager
http://passpie.readthedocs.org/
MIT License
921 stars 68 forks source link

passpie init: UnicodeEncodeError: 'ascii' codec can't encode character #36

Closed jbd closed 9 years ago

jbd commented 9 years ago

Hello,

I'm trying to use passpie on my debian testing and it seems that I cannot use a passphrase with a "é" in it:

$ python --version
Python 2.7.9
$ virtualenv passpie
$ source passpie/bin/activate
(passpie)$ pip install --upgrade https://github.com/marcwebbie/passpie/tarball/master
(passpie)$ which passpie
/home/jbd/tmp/passpie/bin/passpie

Try to use a passphrase with some accentued characters in it does not work:

(passpie)$ passpie init
Passphrase: 
Repeat for confirmation: 
Traceback (most recent call last):
  File "/home/jbd/tmp/passpie/bin/passpie", line 9, in <module>
    load_entry_point('passpie==0.1', 'console_scripts', 'passpie')()
  File "/home/jbd/tmp/passpie/local/lib/python2.7/site-packages/click/core.py", line 664, in __call__
    return self.main(*args, **kwargs)
  File "/home/jbd/tmp/passpie/local/lib/python2.7/site-packages/click/core.py", line 644, in main
    rv = self.invoke(ctx)
  File "/home/jbd/tmp/passpie/local/lib/python2.7/site-packages/click/core.py", line 991, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/jbd/tmp/passpie/local/lib/python2.7/site-packages/click/core.py", line 837, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/jbd/tmp/passpie/local/lib/python2.7/site-packages/click/core.py", line 464, in invoke
    return callback(*args, **kwargs)
  File "/home/jbd/tmp/passpie/local/lib/python2.7/site-packages/passpie/cli.py", line 141, in init
    cryptor.create_keys(passphrase)
  File "/home/jbd/tmp/passpie/local/lib/python2.7/site-packages/passpie/crypt.py", line 57, in create_keys
    keys = self._gpg.gen_key(KEY_INPUT.format(passphrase))
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 0: ordinal not in range(128)
marcwebbie commented 9 years ago

Hello @jbd

Thanks for opening the issue. Just as another example to reproduce:

passpie -D /tmp/passpie init --passphrase é