improve gpg-agent.py

This commit is contained in:
NIIBE Yutaka
2013-01-20 20:40:19 +09:00
parent 32094099dd
commit ea2191105f

View File

@@ -27,6 +27,7 @@ class gpg_agent(object):
s.connect(path) s.connect(path)
self.sock = s self.sock = s
self.buf_remained = "" self.buf_remained = ""
self.response = None
def read_line(self): def read_line(self):
line = "" line = ""
@@ -44,23 +45,21 @@ class gpg_agent(object):
line = line + chunk line = line + chunk
chunk = self.sock.recv(BUFLEN) chunk = self.sock.recv(BUFLEN)
def get_response(self):
return self.response
def send_command(self, cmd): def send_command(self, cmd):
self.sock.send(cmd) self.sock.send(cmd)
self.response = ""
def get_response(self):
response = ""
while True: while True:
while True: while True:
l = self.read_line() l = self.read_line()
if l[0] != '#': if l[0] != '#':
break break
if l[0] == 'D': if l[0] == 'D':
response += l[2:] self.response += l[2:]
elif l[0] == 'O' and l[1] == 'K': elif l[0] == 'O' and l[1] == 'K':
if response != "": return True
return response
else:
return True
elif l[0] == 'E' and l[1] == 'R' and l[2] == 'R': elif l[0] == 'E' and l[1] == 'R' and l[2] == 'R':
return False return False
else: # XXX: S, INQUIRE, END else: # XXX: S, INQUIRE, END
@@ -75,9 +74,9 @@ class gpg_agent(object):
# Test # Test
g = gpg_agent() g = gpg_agent()
print g.read_line() print g.read_line()
g.send_command("KEYINFO --list --data\n") print g.send_command("KEYINFO --list --data\n")
print g.get_response() print g.get_response()
g.send_command("READKEY 5D6C89682D07CCFC034AF508420BF2276D8018ED\n") print g.send_command("READKEY 5D6C89682D07CCFC034AF508420BF2276D8018ED\n")
r = g.get_response() r = g.get_response()
import binascii import binascii
print binascii.hexlify(r) print binascii.hexlify(r)