hgext/gpg.py
changeset 2231 9a2f4b2e7cf1
parent 2165 d821918e3bee
child 2875 3d6efcbbd1c9
equal deleted inserted replaced
2230:332950340788 2231:9a2f4b2e7cf1
    19         gpgcmd = "%s --sign --detach-sign%s" % (self.path, self.key)
    19         gpgcmd = "%s --sign --detach-sign%s" % (self.path, self.key)
    20         return util.filter(data, gpgcmd)
    20         return util.filter(data, gpgcmd)
    21 
    21 
    22     def verify(self, data, sig):
    22     def verify(self, data, sig):
    23         """ returns of the good and bad signatures"""
    23         """ returns of the good and bad signatures"""
       
    24         sigfile = datafile = None
    24         try:
    25         try:
    25             # create temporary files
    26             # create temporary files
    26             fd, sigfile = tempfile.mkstemp(prefix="hg-gpg-", suffix=".sig")
    27             fd, sigfile = tempfile.mkstemp(prefix="hg-gpg-", suffix=".sig")
    27             fp = os.fdopen(fd, 'wb')
    28             fp = os.fdopen(fd, 'wb')
    28             fp.write(sig)
    29             fp.write(sig)
    32             fp.write(data)
    33             fp.write(data)
    33             fp.close()
    34             fp.close()
    34             gpgcmd = ("%s --logger-fd 1 --status-fd 1 --verify "
    35             gpgcmd = ("%s --logger-fd 1 --status-fd 1 --verify "
    35                       "\"%s\" \"%s\"" % (self.path, sigfile, datafile))
    36                       "\"%s\" \"%s\"" % (self.path, sigfile, datafile))
    36             ret = util.filter("", gpgcmd)
    37             ret = util.filter("", gpgcmd)
    37         except:
    38         finally:
    38             for f in (sigfile, datafile):
    39             for f in (sigfile, datafile):
    39                 try:
    40                 try:
    40                     if f: os.unlink(f)
    41                     if f: os.unlink(f)
    41                 except: pass
    42                 except: pass
    42             raise
       
    43         keys = []
    43         keys = []
    44         key, fingerprint = None, None
    44         key, fingerprint = None, None
    45         err = ""
    45         err = ""
    46         for l in ret.splitlines():
    46         for l in ret.splitlines():
    47             # see DETAILS in the gnupg documentation
    47             # see DETAILS in the gnupg documentation