robert wrote: > I played around trying to encrypt/decrypt data through GPG on the fly > (or worse - by using a file) (on Windows first - later to try on Linux too) > > Using os.popen3 like > > >>> i,o,e=os.popen3('gpg -e -r Robert') > >>> # i.write('y\n') > >>> i.write('wefwef') > >>> i.close() > >>> # e.read(1) > >>> o.read(1) > > hangs on o.read or e.read. > > So its quite dark. Just a totally non-existing userid (-r) will result > significantly different like > > >>> i.write('wefwef') > Traceback (most recent call last): > File "<interactive input>", line 1, in ? > IOError: [Errno 22] Invalid argument > > > GPG asks confirmation stuff (and pwd upon -d or -c) on the command line. > How to get all this the right way? > >
I basically can handle it now by a os.popen3 cmd like 'gpg -e -r Robert --batch --always-trust', 'gpg -d -r Robert --batch --always-trust --passphrase-fd 0' and by using a thread for feeding the child_stdin stream (necessary for files of significant length / more than buffers) Robert -- http://mail.python.org/mailman/listinfo/python-list