diff options
Diffstat (limited to 'include/libssh/agent.h')
-rw-r--r-- | include/libssh/agent.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/include/libssh/agent.h b/include/libssh/agent.h index 42cb230..fca577d 100644 --- a/include/libssh/agent.h +++ b/include/libssh/agent.h @@ -1,6 +1,8 @@ #ifndef __AGENT_H #define __AGENT_H +#include "libssh/libssh.h" + /* Messages for the authentication agent connection. */ #define SSH_AGENTC_REQUEST_RSA_IDENTITIES 1 #define SSH_AGENT_RSA_IDENTITIES_ANSWER 2 @@ -45,5 +47,51 @@ #define SSH_AGENT_OLD_SIGNATURE 0x01 +struct ssh_agent_struct { + struct socket *sock; + ssh_buffer ident; + unsigned int count; +}; + +#ifndef _WIN32 +/* agent.c */ +/** + * @brief Create a new ssh agent structure. + * + * @return An allocated ssh agent structure or NULL on error. + */ +struct ssh_agent_struct *agent_new(struct ssh_session_struct *session); + +void agent_close(struct ssh_agent_struct *agent); + +/** + * @brief Free an allocated ssh agent structure. + * + * @param agent The ssh agent structure to free. + */ +void agent_free(struct ssh_agent_struct *agent); + +/** + * @brief Check if the ssh agent is running. + * + * @param session The ssh session to check for the agent. + * + * @return 1 if it is running, 0 if not. + */ +int agent_is_running(struct ssh_session_struct *session); + +int agent_get_ident_count(struct ssh_session_struct *session); + +struct ssh_public_key_struct *agent_get_next_ident(struct ssh_session_struct *session, + char **comment); + +struct ssh_public_key_struct *agent_get_first_ident(struct ssh_session_struct *session, + char **comment); + +ssh_string agent_sign_data(struct ssh_session_struct *session, + struct ssh_buffer_struct *data, + struct ssh_public_key_struct *pubkey); +#endif + #endif /* __AGENT_H */ /* vim: set ts=2 sw=2 et cindent: */ |