27#include <gssapi/gssapi.h>
32#define GSSAPI_KEY_EXCHANGE_SUPPORTED "gss-group14-sha256-," \
33 "gss-group16-sha512-," \
34 "gss-nistp256-sha256-," \
35 "gss-curve25519-sha256-"
37typedef struct ssh_gssapi_struct *ssh_gssapi;
44enum ssh_gssapi_state_e {
45 SSH_GSSAPI_STATE_NONE,
46 SSH_GSSAPI_STATE_RCV_TOKEN,
47 SSH_GSSAPI_STATE_RCV_MIC,
50struct ssh_gssapi_struct{
51 enum ssh_gssapi_state_e state;
52 gss_cred_id_t server_creds;
53 gss_cred_id_t client_creds;
55 gss_name_t client_name;
59 gss_name_t server_name;
63 gss_cred_id_t client_deleg_creds;
68int ssh_gssapi_handle_userauth(ssh_session session,
const char *user, uint32_t n_oid, ssh_string *oids);
71int ssh_gssapi_server_oids(gss_OID_set *selected);
79int ssh_gssapi_init(ssh_session session);
80void ssh_gssapi_log_error(
int verb,
const char *msg_a,
int maj_stat,
int min_stat);
81int ssh_gssapi_auth_mic(ssh_session session);
82void ssh_gssapi_free(ssh_session session);
83int ssh_gssapi_client_identity(ssh_session session, gss_OID_set *valid_oids);
84char *ssh_gssapi_name_to_char(gss_name_t name);
85int ssh_gssapi_import_name(
struct ssh_gssapi_struct *gssapi,
const char *host);
86OM_uint32 ssh_gssapi_init_ctx(
struct ssh_gssapi_struct *gssapi,
87 gss_buffer_desc *input_token,
88 gss_buffer_desc *output_token,
89 OM_uint32 *ret_flags);
91char *ssh_gssapi_oid_hash(ssh_string oid);
92char *ssh_gssapi_kex_mechs(ssh_session session);
93int ssh_gssapi_check_client_config(ssh_session session);
94ssh_buffer ssh_gssapi_build_mic(ssh_session session,
const char *context);
95int ssh_gssapi_auth_keyex_mic(ssh_session session,
96 gss_buffer_desc *mic_token_buf);
#define SSH_PACKET_CALLBACK(name)
This macro declares a packet callback handler.
Definition callbacks.h:624