X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=ticket.py;h=1904b81cc109361355cf788ea57c86ed02810a1c;hb=48a73b18fd7daed13c645c1adeddb57b560e7a2d;hp=8ba00d2f39a8472e3f775372cf38502dddf73437;hpb=191f762aee7f7412e3d3b3840de914b9326aa888;p=nodemanager.git diff --git a/ticket.py b/ticket.py index 8ba00d2..1904b81 100644 --- a/ticket.py +++ b/ticket.py @@ -5,14 +5,18 @@ You must already have the key in the keyring. """ from subprocess import PIPE, Popen -from xmlrpclib import dumps, loads +from xmlrpc.client import dumps, loads GPG = '/usr/bin/gpg' +def _popen_gpg(*args): + """Return a Popen object to GPG.""" + return Popen((GPG, '--batch', '--no-tty') + args, + stdin=PIPE, stdout=PIPE, stderr=PIPE, close_fds=True) def sign(data): """Return signed with the default GPG key.""" - msg = dumps((data,)) + msg = dumps((data,), methodresponse = True) p = _popen_gpg('--armor', '--sign', '--keyring', '/etc/planetlab/secring.gpg', '--no-default-keyring') p.stdin.write(msg) p.stdin.close() @@ -30,11 +34,8 @@ def verify(signed_msg): msg = p.stdout.read() p.stdout.close() p.stderr.close() - if p.wait(): return None # verification failed + if p.wait(): + return None # verification failed else: data, = loads(msg)[0] return data - -def _popen_gpg(*args): - """Return a Popen object to GPG.""" - return Popen((GPG, '--batch', '--no-tty') + args, stdin=PIPE, stdout=PIPE, stderr=PIPE)