00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef __AGENT_H
00022 #define __AGENT_H
00023
00024 #include "libssh/libssh.h"
00025
00026
00027 #define SSH_AGENTC_REQUEST_RSA_IDENTITIES 1
00028 #define SSH_AGENT_RSA_IDENTITIES_ANSWER 2
00029 #define SSH_AGENTC_RSA_CHALLENGE 3
00030 #define SSH_AGENT_RSA_RESPONSE 4
00031 #define SSH_AGENT_FAILURE 5
00032 #define SSH_AGENT_SUCCESS 6
00033 #define SSH_AGENTC_ADD_RSA_IDENTITY 7
00034 #define SSH_AGENTC_REMOVE_RSA_IDENTITY 8
00035 #define SSH_AGENTC_REMOVE_ALL_RSA_IDENTITIES 9
00036
00037
00038 #define SSH2_AGENTC_REQUEST_IDENTITIES 11
00039 #define SSH2_AGENT_IDENTITIES_ANSWER 12
00040 #define SSH2_AGENTC_SIGN_REQUEST 13
00041 #define SSH2_AGENT_SIGN_RESPONSE 14
00042 #define SSH2_AGENTC_ADD_IDENTITY 17
00043 #define SSH2_AGENTC_REMOVE_IDENTITY 18
00044 #define SSH2_AGENTC_REMOVE_ALL_IDENTITIES 19
00045
00046
00047 #define SSH_AGENTC_ADD_SMARTCARD_KEY 20
00048 #define SSH_AGENTC_REMOVE_SMARTCARD_KEY 21
00049
00050
00051 #define SSH_AGENTC_LOCK 22
00052 #define SSH_AGENTC_UNLOCK 23
00053
00054
00055 #define SSH_AGENTC_ADD_RSA_ID_CONSTRAINED 24
00056 #define SSH2_AGENTC_ADD_ID_CONSTRAINED 25
00057 #define SSH_AGENTC_ADD_SMARTCARD_KEY_CONSTRAINED 26
00058
00059 #define SSH_AGENT_CONSTRAIN_LIFETIME 1
00060 #define SSH_AGENT_CONSTRAIN_CONFIRM 2
00061
00062
00063 #define SSH2_AGENT_FAILURE 30
00064
00065
00066 #define SSH_COM_AGENT2_FAILURE 102
00067
00068 #define SSH_AGENT_OLD_SIGNATURE 0x01
00069
00070 struct ssh_agent_struct {
00071 struct ssh_socket_struct *sock;
00072 ssh_buffer ident;
00073 unsigned int count;
00074 ssh_channel channel;
00075 };
00076
00077 #ifndef _WIN32
00078
00084 struct ssh_agent_struct *agent_new(struct ssh_session_struct *session);
00085
00086 void agent_close(struct ssh_agent_struct *agent);
00087
00093 void agent_free(struct ssh_agent_struct *agent);
00094
00102 int agent_is_running(struct ssh_session_struct *session);
00103
00104 int ssh_agent_get_ident_count(struct ssh_session_struct *session);
00105
00106 ssh_key ssh_agent_get_next_ident(struct ssh_session_struct *session,
00107 char **comment);
00108
00109 ssh_key ssh_agent_get_first_ident(struct ssh_session_struct *session,
00110 char **comment);
00111
00112 ssh_string ssh_agent_sign_data(ssh_session session,
00113 const ssh_key pubkey,
00114 struct ssh_buffer_struct *data);
00115 #endif
00116
00117 #endif
00118