From b03203c8cb991c16ac8a3d74c8c4078182d0bb48 Mon Sep 17 00:00:00 2001 From: Nishanth Amuluru Date: Tue, 11 Jan 2011 22:41:51 +0530 Subject: removed all the buildout files --- .../hgext/gpg.py | 288 --------------------- 1 file changed, 288 deletions(-) delete mode 100644 eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/gpg.py (limited to 'eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/gpg.py') diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/gpg.py b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/gpg.py deleted file mode 100644 index b13ec1e..0000000 --- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/hgext/gpg.py +++ /dev/null @@ -1,288 +0,0 @@ -# Copyright 2005, 2006 Benoit Boissinot -# -# This software may be used and distributed according to the terms of the -# GNU General Public License version 2 or any later version. - -'''commands to sign and verify changesets''' - -import os, tempfile, binascii -from mercurial import util, commands, match -from mercurial import node as hgnode -from mercurial.i18n import _ - -class gpg(object): - def __init__(self, path, key=None): - self.path = path - self.key = (key and " --local-user \"%s\"" % key) or "" - - def sign(self, data): - gpgcmd = "%s --sign --detach-sign%s" % (self.path, self.key) - return util.filter(data, gpgcmd) - - def verify(self, data, sig): - """ returns of the good and bad signatures""" - sigfile = datafile = None - try: - # create temporary files - fd, sigfile = tempfile.mkstemp(prefix="hg-gpg-", suffix=".sig") - fp = os.fdopen(fd, 'wb') - fp.write(sig) - fp.close() - fd, datafile = tempfile.mkstemp(prefix="hg-gpg-", suffix=".txt") - fp = os.fdopen(fd, 'wb') - fp.write(data) - fp.close() - gpgcmd = ("%s --logger-fd 1 --status-fd 1 --verify " - "\"%s\" \"%s\"" % (self.path, sigfile, datafile)) - ret = util.filter("", gpgcmd) - finally: - for f in (sigfile, datafile): - try: - if f: - os.unlink(f) - except: - pass - keys = [] - key, fingerprint = None, None - err = "" - for l in ret.splitlines(): - # see DETAILS in the gnupg documentation - # filter the logger output - if not l.startswith("[GNUPG:]"): - continue - l = l[9:] - if l.startswith("ERRSIG"): - err = _("error while verifying signature") - break - elif l.startswith("VALIDSIG"): - # fingerprint of the primary key - fingerprint = l.split()[10] - elif (l.startswith("GOODSIG") or - l.startswith("EXPSIG") or - l.startswith("EXPKEYSIG") or - l.startswith("BADSIG")): - if key is not None: - keys.append(key + [fingerprint]) - key = l.split(" ", 2) - fingerprint = None - if err: - return err, [] - if key is not None: - keys.append(key + [fingerprint]) - return err, keys - -def newgpg(ui, **opts): - """create a new gpg instance""" - gpgpath = ui.config("gpg", "cmd", "gpg") - gpgkey = opts.get('key') - if not gpgkey: - gpgkey = ui.config("gpg", "key", None) - return gpg(gpgpath, gpgkey) - -def sigwalk(repo): - """ - walk over every sigs, yields a couple - ((node, version, sig), (filename, linenumber)) - """ - def parsefile(fileiter, context): - ln = 1 - for l in fileiter: - if not l: - continue - yield (l.split(" ", 2), (context, ln)) - ln += 1 - - # read the heads - fl = repo.file(".hgsigs") - for r in reversed(fl.heads()): - fn = ".hgsigs|%s" % hgnode.short(r) - for item in parsefile(fl.read(r).splitlines(), fn): - yield item - try: - # read local signatures - fn = "localsigs" - for item in parsefile(repo.opener(fn), fn): - yield item - except IOError: - pass - -def getkeys(ui, repo, mygpg, sigdata, context): - """get the keys who signed a data""" - fn, ln = context - node, version, sig = sigdata - prefix = "%s:%d" % (fn, ln) - node = hgnode.bin(node) - - data = node2txt(repo, node, version) - sig = binascii.a2b_base64(sig) - err, keys = mygpg.verify(data, sig) - if err: - ui.warn("%s:%d %s\n" % (fn, ln , err)) - return None - - validkeys = [] - # warn for expired key and/or sigs - for key in keys: - if key[0] == "BADSIG": - ui.write(_("%s Bad signature from \"%s\"\n") % (prefix, key[2])) - continue - if key[0] == "EXPSIG": - ui.write(_("%s Note: Signature has expired" - " (signed by: \"%s\")\n") % (prefix, key[2])) - elif key[0] == "EXPKEYSIG": - ui.write(_("%s Note: This key has expired" - " (signed by: \"%s\")\n") % (prefix, key[2])) - validkeys.append((key[1], key[2], key[3])) - return validkeys - -def sigs(ui, repo): - """list signed changesets""" - mygpg = newgpg(ui) - revs = {} - - for data, context in sigwalk(repo): - node, version, sig = data - fn, ln = context - try: - n = repo.lookup(node) - except KeyError: - ui.warn(_("%s:%d node does not exist\n") % (fn, ln)) - continue - r = repo.changelog.rev(n) - keys = getkeys(ui, repo, mygpg, data, context) - if not keys: - continue - revs.setdefault(r, []) - revs[r].extend(keys) - for rev in sorted(revs, reverse=True): - for k in revs[rev]: - r = "%5d:%s" % (rev, hgnode.hex(repo.changelog.node(rev))) - ui.write("%-30s %s\n" % (keystr(ui, k), r)) - -def check(ui, repo, rev): - """verify all the signatures there may be for a particular revision""" - mygpg = newgpg(ui) - rev = repo.lookup(rev) - hexrev = hgnode.hex(rev) - keys = [] - - for data, context in sigwalk(repo): - node, version, sig = data - if node == hexrev: - k = getkeys(ui, repo, mygpg, data, context) - if k: - keys.extend(k) - - if not keys: - ui.write(_("No valid signature for %s\n") % hgnode.short(rev)) - return - - # print summary - ui.write("%s is signed by:\n" % hgnode.short(rev)) - for key in keys: - ui.write(" %s\n" % keystr(ui, key)) - -def keystr(ui, key): - """associate a string to a key (username, comment)""" - keyid, user, fingerprint = key - comment = ui.config("gpg", fingerprint, None) - if comment: - return "%s (%s)" % (user, comment) - else: - return user - -def sign(ui, repo, *revs, **opts): - """add a signature for the current or given revision - - If no revision is given, the parent of the working directory is used, - or tip if no revision is checked out. - - See :hg:`help dates` for a list of formats valid for -d/--date. - """ - - mygpg = newgpg(ui, **opts) - sigver = "0" - sigmessage = "" - - date = opts.get('date') - if date: - opts['date'] = util.parsedate(date) - - if revs: - nodes = [repo.lookup(n) for n in revs] - else: - nodes = [node for node in repo.dirstate.parents() - if node != hgnode.nullid] - if len(nodes) > 1: - raise util.Abort(_('uncommitted merge - please provide a ' - 'specific revision')) - if not nodes: - nodes = [repo.changelog.tip()] - - for n in nodes: - hexnode = hgnode.hex(n) - ui.write(_("Signing %d:%s\n") % (repo.changelog.rev(n), - hgnode.short(n))) - # build data - data = node2txt(repo, n, sigver) - sig = mygpg.sign(data) - if not sig: - raise util.Abort(_("error while signing")) - sig = binascii.b2a_base64(sig) - sig = sig.replace("\n", "") - sigmessage += "%s %s %s\n" % (hexnode, sigver, sig) - - # write it - if opts['local']: - repo.opener("localsigs", "ab").write(sigmessage) - return - - msigs = match.exact(repo.root, '', ['.hgsigs']) - s = repo.status(match=msigs, unknown=True, ignored=True)[:6] - if util.any(s) and not opts["force"]: - raise util.Abort(_("working copy of .hgsigs is changed " - "(please commit .hgsigs manually " - "or use --force)")) - - repo.wfile(".hgsigs", "ab").write(sigmessage) - - if '.hgsigs' not in repo.dirstate: - repo[None].add([".hgsigs"]) - - if opts["no_commit"]: - return - - message = opts['message'] - if not message: - # we don't translate commit messages - message = "\n".join(["Added signature for changeset %s" - % hgnode.short(n) - for n in nodes]) - try: - repo.commit(message, opts['user'], opts['date'], match=msigs) - except ValueError, inst: - raise util.Abort(str(inst)) - -def node2txt(repo, node, ver): - """map a manifest into some text""" - if ver == "0": - return "%s\n" % hgnode.hex(node) - else: - raise util.Abort(_("unknown signature version")) - -cmdtable = { - "sign": - (sign, - [('l', 'local', None, _('make the signature local')), - ('f', 'force', None, _('sign even if the sigfile is modified')), - ('', 'no-commit', None, _('do not commit the sigfile after signing')), - ('k', 'key', '', - _('the key id to sign with'), _('ID')), - ('m', 'message', '', - _('commit message'), _('TEXT')), - ] + commands.commitopts2, - _('hg sign [OPTION]... [REVISION]...')), - "sigcheck": (check, [], _('hg sigcheck REVISION')), - "sigs": (sigs, [], _('hg sigs')), -} - -- cgit