Marco Ricci commited on 2024-06-30 16:37:52
Zeige 2 geänderte Dateien mit 14 Einfügungen und 4 Löschungen.
| ... | ... |
@@ -23,6 +23,9 @@ __version__ = "0.1.0" |
| 23 | 23 |
|
| 24 | 24 |
_socket = socket |
| 25 | 25 |
|
| 26 |
+class TrailingDataError(RuntimeError): |
|
| 27 |
+ """The result contained trailing data.""" |
|
| 28 |
+ |
|
| 26 | 29 |
class SSHAgentClient: |
| 27 | 30 |
"""A bare-bones SSH agent client supporting signing and key listing. |
| 28 | 31 |
|
| ... | ... |
@@ -252,8 +255,10 @@ class SSHAgentClient: |
| 252 | 255 |
Raises: |
| 253 | 256 |
EOFError: |
| 254 | 257 |
The response from the SSH agent is truncated or missing. |
| 255 |
- RuntimeError: |
|
| 258 |
+ TrailingDataError: |
|
| 256 | 259 |
The response from the SSH agent is too long. |
| 260 |
+ RuntimeError: |
|
| 261 |
+ The agent failed to complete the request. |
|
| 257 | 262 |
|
| 258 | 263 |
""" |
| 259 | 264 |
response_code, response = self.request( |
| ... | ... |
@@ -286,7 +291,7 @@ class SSHAgentClient: |
| 286 | 291 |
# Both `key` and `comment` are not wrapped as SSH strings. |
| 287 | 292 |
keys.append(KeyCommentPair(key, comment)) |
| 288 | 293 |
if response_stream: |
| 289 |
- raise RuntimeError('overlong response from SSH agent')
|
|
| 294 |
+ raise TrailingDataError('overlong response from SSH agent')
|
|
| 290 | 295 |
return keys |
| 291 | 296 |
|
| 292 | 297 |
def sign( |
| ... | ... |
@@ -319,7 +324,7 @@ class SSHAgentClient: |
| 319 | 324 |
Raises: |
| 320 | 325 |
EOFError: |
| 321 | 326 |
The response from the SSH agent is truncated or missing. |
| 322 |
- RuntimeError: |
|
| 327 |
+ TrailingDataError: |
|
| 323 | 328 |
The response from the SSH agent is too long. |
| 324 | 329 |
RuntimeError: |
| 325 | 330 |
The agent failed to complete the request. |
| ... | ... |
@@ -273,7 +273,12 @@ class TestAgentInteraction: |
| 273 | 273 |
[ |
| 274 | 274 |
(255, b'', RuntimeError, 'error return from SSH agent:'), |
| 275 | 275 |
(12, b'\x00\x00\x00\x01', EOFError, 'truncated response'), |
| 276 |
- (12, b'\x00\x00\x00\x00abc', RuntimeError, 'overlong response'), |
|
| 276 |
+ ( |
|
| 277 |
+ 12, |
|
| 278 |
+ b'\x00\x00\x00\x00abc', |
|
| 279 |
+ ssh_agent_client.TrailingDataError, |
|
| 280 |
+ 'overlong response', |
|
| 281 |
+ ), |
|
| 277 | 282 |
] |
| 278 | 283 |
) |
| 279 | 284 |
def test_320_list_keys_error_responses(self, monkeypatch, response_code, |
| 280 | 285 |