# SPDX-FileCopyrightText: 2026 Marco Ricci # # SPDX-License-Identifier: Zlib """Types for the fake SSH agent.""" from __future__ import annotations import enum class SSH_AGENTC(int, enum.Enum): # noqa: N801 """SSH agent protocol numbers: client requests. Attributes: REQUEST_IDENTITIES (int): List identities. Expecting [`SSH_AGENT.IDENTITIES_ANSWER`][]. SIGN_REQUEST (int): Sign data. Expecting [`SSH_AGENT.SIGN_RESPONSE`][]. ADD_IDENTITY (int): Add an (SSH2) identity. REMOVE_IDENTITY (int): Remove an (SSH2) identity. ADD_ID_CONSTRAINED (int): Add an (SSH2) identity, including key constraints. EXTENSION (int): Issue a named request that isn't part of the core agent protocol. Expecting [`SSH_AGENT.EXTENSION_RESPONSE`][] or [`SSH_AGENT.EXTENSION_FAILURE`][] if the named request is supported, [`SSH_AGENT.FAILURE`][] otherwise. """ REQUEST_IDENTITIES = 11 """""" SIGN_REQUEST = 13 """""" ADD_IDENTITY = 17 """""" REMOVE_IDENTITY = 18 """""" ADD_ID_CONSTRAINED = 25 """""" EXTENSION = 27 """""" def __bytes__(self) -> bytes: # pragma: no cover [unused] """Return the corresponding request code.""" return int.to_bytes(self, 1, "big", signed=False) class SSH_AGENT(int, enum.Enum): # noqa: N801 """SSH agent protocol numbers: server replies. Attributes: FAILURE (int): Generic failure code. SUCCESS (int): Generic success code. IDENTITIES_ANSWER (int): Successful answer to [`SSH_AGENTC.REQUEST_IDENTITIES`][]. SIGN_RESPONSE (int): Successful answer to [`SSH_AGENTC.SIGN_REQUEST`][]. EXTENSION_FAILURE (int): Unsuccessful answer to [`SSH_AGENTC.EXTENSION`][]. EXTENSION_RESPONSE (int): Successful answer to [`SSH_AGENTC.EXTENSION`][]. """ FAILURE = 5 """""" SUCCESS = 6 """""" IDENTITIES_ANSWER = 12 """""" SIGN_RESPONSE = 14 """""" EXTENSION_FAILURE = 28 """""" EXTENSION_RESPONSE = 29 """""" def __bytes__(self) -> bytes: # pragma: no cover [unused] """Return the corresponding response code.""" return int.to_bytes(self, 1, "big", signed=False)