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 eff63bc..bd612df 100644 --- a/hgsshsign/__init__.py +++ b/hgsshsign/__init__.py | |||
@@ -46,7 +46,7 @@ class SSHAuthority(object): | |||
46 | private_key = ui.config("sshsign", "private_key", None) | 46 | private_key = ui.config("sshsign", "private_key", None) |
47 | agent_socket = os.environ.get(SSHAgent.AGENT_SOCK_NAME) | 47 | agent_socket = os.environ.get(SSHAgent.AGENT_SOCK_NAME) |
48 | if private_key: | 48 | if private_key: |
49 | private_key = keys.load_private_key(absolute_path(private_key)) | 49 | private_key = keys.PrivateKey.from_file(absolute_path(private_key)) |
50 | elif agent_socket: | 50 | elif agent_socket: |
51 | private_key = SSHAgent(agent_socket, key=public_key.blob) | 51 | private_key = SSHAgent(agent_socket, key=public_key.blob) |
52 | else: | 52 | else: |
@@ -61,16 +61,14 @@ class SSHAuthority(object): | |||
61 | 61 | ||
62 | def verify(self, data, signature, whom): | 62 | def verify(self, data, signature, whom): |
63 | try: | 63 | try: |
64 | key = self.key_manifest[whom] # XXX: More elegant error handling. | 64 | key = self.key_manifest[whom] |
65 | except KeyError: | 65 | except KeyError: |
66 | raise util.Abort(_("No key found for %s" % whom)) | 66 | raise util.Abort(_("No key found for %s" % whom)) |
67 | 67 | ||
68 | return key.verify(data, signature) | 68 | return key.verify(data, signature) |
69 | 69 | ||
70 | def sign(self, data): | 70 | def sign(self, data): |
71 | import hgsshsign.keys as keys | 71 | return self.private_key.sign(data) |
72 | |||
73 | return keys.sign_like_agent(data, self.private_key) | ||
74 | 72 | ||
75 | 73 | ||
76 | def node2txt(repo, node, ver): | 74 | def node2txt(repo, node, ver): |