00001 #ifndef __AGENT_H
00002 #define __AGENT_H
00003
00004 #include "libssh/libssh.h"
00005
00006
00007 #define SSH_AGENTC_REQUEST_RSA_IDENTITIES 1
00008 #define SSH_AGENT_RSA_IDENTITIES_ANSWER 2
00009 #define SSH_AGENTC_RSA_CHALLENGE 3
00010 #define SSH_AGENT_RSA_RESPONSE 4
00011 #define SSH_AGENT_FAILURE 5
00012 #define SSH_AGENT_SUCCESS 6
00013 #define SSH_AGENTC_ADD_RSA_IDENTITY 7
00014 #define SSH_AGENTC_REMOVE_RSA_IDENTITY 8
00015 #define SSH_AGENTC_REMOVE_ALL_RSA_IDENTITIES 9
00016
00017
00018 #define SSH2_AGENTC_REQUEST_IDENTITIES 11
00019 #define SSH2_AGENT_IDENTITIES_ANSWER 12
00020 #define SSH2_AGENTC_SIGN_REQUEST 13
00021 #define SSH2_AGENT_SIGN_RESPONSE 14
00022 #define SSH2_AGENTC_ADD_IDENTITY 17
00023 #define SSH2_AGENTC_REMOVE_IDENTITY 18
00024 #define SSH2_AGENTC_REMOVE_ALL_IDENTITIES 19
00025
00026
00027 #define SSH_AGENTC_ADD_SMARTCARD_KEY 20
00028 #define SSH_AGENTC_REMOVE_SMARTCARD_KEY 21
00029
00030
00031 #define SSH_AGENTC_LOCK 22
00032 #define SSH_AGENTC_UNLOCK 23
00033
00034
00035 #define SSH_AGENTC_ADD_RSA_ID_CONSTRAINED 24
00036 #define SSH2_AGENTC_ADD_ID_CONSTRAINED 25
00037 #define SSH_AGENTC_ADD_SMARTCARD_KEY_CONSTRAINED 26
00038
00039 #define SSH_AGENT_CONSTRAIN_LIFETIME 1
00040 #define SSH_AGENT_CONSTRAIN_CONFIRM 2
00041
00042
00043 #define SSH2_AGENT_FAILURE 30
00044
00045
00046 #define SSH_COM_AGENT2_FAILURE 102
00047
00048 #define SSH_AGENT_OLD_SIGNATURE 0x01
00049
00050 struct ssh_agent_struct {
00051 struct socket *sock;
00052 ssh_buffer ident;
00053 unsigned int count;
00054 };
00055
00056 #ifndef _WIN32
00057
00063 struct ssh_agent_struct *agent_new(struct ssh_session_struct *session);
00064
00065 void agent_close(struct ssh_agent_struct *agent);
00066
00072 void agent_free(struct ssh_agent_struct *agent);
00073
00081 int agent_is_running(struct ssh_session_struct *session);
00082
00083 int agent_get_ident_count(struct ssh_session_struct *session);
00084
00085 struct ssh_public_key_struct *agent_get_next_ident(struct ssh_session_struct *session,
00086 char **comment);
00087
00088 struct ssh_public_key_struct *agent_get_first_ident(struct ssh_session_struct *session,
00089 char **comment);
00090
00091 ssh_string agent_sign_data(struct ssh_session_struct *session,
00092 struct ssh_buffer_struct *data,
00093 struct ssh_public_key_struct *pubkey);
00094 #endif
00095
00096 #endif
00097