diff options
Diffstat (limited to 'hgsshsign/__init__.py')
-rw-r--r-- | hgsshsign/__init__.py | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/hgsshsign/__init__.py b/hgsshsign/__init__.py index a6991db..b52dcc3 100644 --- a/hgsshsign/__init__.py +++ b/hgsshsign/__init__.py | |||
@@ -40,7 +40,7 @@ class SSHAuthority(object): | |||
40 | private_key = ui.config("sshsign", "private_key", None) | 40 | private_key = ui.config("sshsign", "private_key", None) |
41 | agent_socket = os.environ.get(SSHAgent.AGENT_SOCK_NAME) | 41 | agent_socket = os.environ.get(SSHAgent.AGENT_SOCK_NAME) |
42 | if private_key: | 42 | if private_key: |
43 | private_key = keys.load_private_key(absolute_path(private_key)) | 43 | private_key = keys.PrivateKey.from_file(absolute_path(private_key)) |
44 | elif agent_socket: | 44 | elif agent_socket: |
45 | private_key = SSHAgent(agent_socket, key=public_key.blob) | 45 | private_key = SSHAgent(agent_socket, key=public_key.blob) |
46 | else: | 46 | else: |
@@ -55,16 +55,14 @@ class SSHAuthority(object): | |||
55 | 55 | ||
56 | def verify(self, data, signature, whom): | 56 | def verify(self, data, signature, whom): |
57 | try: | 57 | try: |
58 | key = self.key_manifest[whom] # XXX: More elegant error handling. | 58 | key = self.key_manifest[whom] |
59 | except KeyError: | 59 | except KeyError: |
60 | raise util.Abort(_("No key found for %s" % whom)) | 60 | raise util.Abort(_("No key found for %s" % whom)) |
61 | 61 | ||
62 | return key.verify(data, signature) | 62 | return key.verify(data, signature) |
63 | 63 | ||
64 | def sign(self, data): | 64 | def sign(self, data): |
65 | import hgsshsign.keys as keys | 65 | return self.private_key.sign(data) |
66 | |||
67 | return keys.sign_like_agent(data, self.private_key) | ||
68 | 66 | ||
69 | 67 | ||
70 | def node2txt(repo, node, ver): | 68 | def node2txt(repo, node, ver): |