libssh 0.12.0
The SSH library
Loading...
Searching...
No Matches
callbacks.h
1/*
2 * This file is part of the SSH Library
3 *
4 * Copyright (c) 2009 Aris Adamantiadis <aris@0xbadc0de.be>
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 */
20
21/* callback.h
22 * This file includes the public declarations for the libssh callback mechanism
23 */
24
25#ifndef _SSH_CALLBACK_H
26#define _SSH_CALLBACK_H
27
28#include <libssh/libssh.h>
29#include <string.h>
30#include <stdbool.h>
31
32#ifdef __cplusplus
33extern "C" {
34#endif
35
44
50typedef void (*ssh_callback_int) (int code, void *user);
51
60typedef size_t (*ssh_callback_data) (const void *data, size_t len, void *user);
61
62typedef void (*ssh_callback_int_int) (int code, int errno_code, void *user);
63
64typedef int (*ssh_message_callback) (ssh_session, ssh_message message, void *user);
65typedef int (*ssh_channel_callback_int) (ssh_channel channel, int code, void *user);
66typedef int (*ssh_channel_callback_data) (ssh_channel channel, int code, void *data, size_t len, void *user);
67
75typedef void (*ssh_log_callback) (ssh_session session, int priority,
76 const char *message, void *userdata);
77
91typedef void (*ssh_logging_callback) (int priority,
92 const char *function,
93 const char *buffer,
94 void *userdata);
95
103typedef void (*ssh_status_callback) (ssh_session session, float status,
104 void *userdata);
105
113typedef void (*ssh_global_request_callback) (ssh_session session,
114 ssh_message message, void *userdata);
115
127typedef void (*ssh_pong_callback)(ssh_session session,
128 const void *payload,
129 size_t payload_len,
130 void *userdata);
131
141typedef void (*ssh_connect_status_callback)(void *userdata, float status);
142
154typedef ssh_channel (*ssh_channel_open_request_x11_callback) (ssh_session session,
155 const char * originator_address, int originator_port, void *userdata);
156
166typedef ssh_channel (*ssh_channel_open_request_auth_agent_callback) (ssh_session session,
167 void *userdata);
168
184typedef ssh_channel (*ssh_channel_open_request_forwarded_tcpip_callback) (ssh_session session,
185 const char *destination_address, int destination_port,
186 const char *originator_address, int originator_port,
187 void *userdata);
188
232typedef struct ssh_callbacks_struct *ssh_callbacks;
233
236
248typedef int (*ssh_auth_password_callback) (ssh_session session, const char *user, const char *password,
249 void *userdata);
250
262typedef int (*ssh_auth_none_callback) (ssh_session session, const char *user, void *userdata);
263
279typedef int (*ssh_auth_gssapi_mic_callback) (ssh_session session, const char *user, const char *principal,
280 void *userdata);
281
296typedef int (*ssh_auth_pubkey_callback) (ssh_session session, const char *user, struct ssh_key_struct *pubkey,
297 char signature_state, void *userdata);
298
309typedef int (*ssh_auth_kbdint_callback) (ssh_message message, ssh_session session, void *userdata);
310
319typedef int (*ssh_service_request_callback) (ssh_session session, const char *service, void *userdata);
320
329typedef ssh_channel (*ssh_channel_open_request_session_callback) (ssh_session session, void *userdata);
330
343typedef ssh_string (*ssh_gssapi_select_oid_callback) (ssh_session session, const char *user,
344 int n_oid, ssh_string *oids, void *userdata);
345
358typedef int (*ssh_gssapi_accept_sec_ctx_callback) (ssh_session session,
359 ssh_string input_token, ssh_string *output_token, void *userdata);
360
372typedef int (*ssh_gssapi_verify_mic_callback) (ssh_session session,
373 ssh_string mic, void *mic_buffer, size_t mic_buffer_size, void *userdata);
374
391 ssh_session session,
392 const char *destination_address,
393 int destination_port,
394 const char *originator_address,
395 int originator_port,
396 void *userdata);
397
401
460typedef struct ssh_server_callbacks_struct *ssh_server_callbacks;
461
486LIBSSH_API int ssh_set_server_callbacks(ssh_session session, ssh_server_callbacks cb);
487
496 void *userdata;
501 ssh_callback_data data;
505 ssh_callback_int controlflow;
509 ssh_callback_int_int exception;
513 ssh_callback_int_int connected;
514};
515typedef struct ssh_socket_callbacks_struct *ssh_socket_callbacks;
516
517#define SSH_SOCKET_FLOW_WRITEWILLBLOCK 1
518#define SSH_SOCKET_FLOW_WRITEWONTBLOCK 2
519
520#define SSH_SOCKET_EXCEPTION_EOF 1
521#define SSH_SOCKET_EXCEPTION_ERROR 2
522
523#define SSH_SOCKET_CONNECTED_OK 1
524#define SSH_SOCKET_CONNECTED_ERROR 2
525#define SSH_SOCKET_CONNECTED_TIMEOUT 3
526
534#define ssh_callbacks_init(p) do {\
535 (p)->size=sizeof(*(p)); \
536} while(0);
537
547#define ssh_callbacks_exists(p,c) (\
548 (p != NULL) && ( (char *)&((p)-> c) < (char *)(p) + (p)->size ) && \
549 ((p)-> c != NULL) \
550 )
551
565#define ssh_callbacks_execute_list(list, cbtype, c, ...) \
566 do { \
567 struct ssh_iterator *i = ssh_list_get_iterator(list); \
568 cbtype cb; \
569 while (i != NULL){ \
570 cb = ssh_iterator_value(cbtype, i); \
571 if (ssh_callbacks_exists(cb, c)) \
572 cb-> c (__VA_ARGS__, cb->userdata); \
573 i = i->next; \
574 } \
575 } while(0)
576
597#define ssh_callbacks_iterate(_cb_list, _cb_type, _cb_name) \
598 do { \
599 struct ssh_iterator *_cb_i = ssh_list_get_iterator(_cb_list); \
600 _cb_type _cb; \
601 for (; _cb_i != NULL; _cb_i = _cb_i->next) { \
602 _cb = ssh_iterator_value(_cb_type, _cb_i); \
603 if (ssh_callbacks_exists(_cb, _cb_name))
604
611#define ssh_callbacks_iterate_exec(_cb_name, ...) \
612 _cb->_cb_name(__VA_ARGS__, _cb->userdata)
613
617#define ssh_callbacks_iterate_end() \
618 } \
619 } while(0)
620
633typedef int (*ssh_packet_callback) (ssh_session session, uint8_t type, ssh_buffer packet, void *user);
634
637#define SSH_PACKET_USED 1
640#define SSH_PACKET_NOT_USED 2
641
642
650#define SSH_PACKET_CALLBACK(name) \
651 int name (ssh_session session, uint8_t type, ssh_buffer packet, void *user)
652
653struct ssh_packet_callbacks_struct {
655 uint8_t start;
657 uint8_t n_callbacks;
659 ssh_packet_callback *callbacks;
663 void *user;
664};
665
666typedef struct ssh_packet_callbacks_struct *ssh_packet_callbacks;
667
692LIBSSH_API int ssh_set_callbacks(ssh_session session, ssh_callbacks cb);
693
705typedef int (*ssh_channel_data_callback) (ssh_session session,
706 ssh_channel channel,
707 void *data,
708 uint32_t len,
709 int is_stderr,
710 void *userdata);
711
718typedef void (*ssh_channel_eof_callback) (ssh_session session,
719 ssh_channel channel,
720 void *userdata);
721
728typedef void (*ssh_channel_close_callback) (ssh_session session,
729 ssh_channel channel,
730 void *userdata);
731
739typedef void (*ssh_channel_signal_callback) (ssh_session session,
740 ssh_channel channel,
741 const char *signal,
742 void *userdata);
743
751typedef void (*ssh_channel_exit_status_callback) (ssh_session session,
752 ssh_channel channel,
753 int exit_status,
754 void *userdata);
755
766typedef void (*ssh_channel_exit_signal_callback) (ssh_session session,
767 ssh_channel channel,
768 const char *signal,
769 int core,
770 const char *errmsg,
771 const char *lang,
772 void *userdata);
773
787typedef int (*ssh_channel_pty_request_callback) (ssh_session session,
788 ssh_channel channel,
789 const char *term,
790 int width, int height,
791 int pxwidth, int pwheight,
792 void *userdata);
793
802typedef int (*ssh_channel_shell_request_callback) (ssh_session session,
803 ssh_channel channel,
804 void *userdata);
813typedef void (*ssh_channel_auth_agent_req_callback) (ssh_session session,
814 ssh_channel channel,
815 void *userdata);
816
829typedef void (*ssh_channel_x11_req_callback) (ssh_session session,
830 ssh_channel channel,
831 int single_connection,
832 const char *auth_protocol,
833 const char *auth_cookie,
834 uint32_t screen_number,
835 void *userdata);
848typedef int (*ssh_channel_pty_window_change_callback) (ssh_session session,
849 ssh_channel channel,
850 int width, int height,
851 int pxwidth, int pwheight,
852 void *userdata);
853
863typedef int (*ssh_channel_exec_request_callback) (ssh_session session,
864 ssh_channel channel,
865 const char *command,
866 void *userdata);
867
880typedef int (*ssh_channel_env_request_callback) (ssh_session session,
881 ssh_channel channel,
882 const char *env_name,
883 const char *env_value,
884 void *userdata);
894typedef int (*ssh_channel_subsystem_request_callback) (ssh_session session,
895 ssh_channel channel,
896 const char *subsystem,
897 void *userdata);
898
913typedef int (*ssh_channel_write_wontblock_callback) (ssh_session session,
914 ssh_channel channel,
915 uint32_t bytes,
916 void *userdata);
917
925typedef void (*ssh_channel_open_resp_callback) (ssh_session session,
926 ssh_channel channel,
927 bool is_success,
928 void *userdata);
929
936typedef void (*ssh_channel_request_resp_callback) (ssh_session session,
937 ssh_channel channel,
938 void *userdata);
939
940struct ssh_channel_callbacks_struct {
942 size_t size;
946 void *userdata;
950 ssh_channel_data_callback channel_data_function;
954 ssh_channel_eof_callback channel_eof_function;
958 ssh_channel_close_callback channel_close_function;
962 ssh_channel_signal_callback channel_signal_function;
966 ssh_channel_exit_status_callback channel_exit_status_function;
970 ssh_channel_exit_signal_callback channel_exit_signal_function;
974 ssh_channel_pty_request_callback channel_pty_request_function;
978 ssh_channel_shell_request_callback channel_shell_request_function;
982 ssh_channel_auth_agent_req_callback channel_auth_agent_req_function;
986 ssh_channel_x11_req_callback channel_x11_req_function;
990 ssh_channel_pty_window_change_callback channel_pty_window_change_function;
994 ssh_channel_exec_request_callback channel_exec_request_function;
998 ssh_channel_env_request_callback channel_env_request_function;
1002 ssh_channel_subsystem_request_callback channel_subsystem_request_function;
1006 ssh_channel_write_wontblock_callback channel_write_wontblock_function;
1010 ssh_channel_open_resp_callback channel_open_response_function;
1014 ssh_channel_request_resp_callback channel_request_response_function;
1015};
1016
1017typedef struct ssh_channel_callbacks_struct *ssh_channel_callbacks;
1018
1046LIBSSH_API int ssh_set_channel_callbacks(ssh_channel channel,
1047 ssh_channel_callbacks cb);
1048
1065LIBSSH_API int ssh_add_channel_callbacks(ssh_channel channel,
1066 ssh_channel_callbacks cb);
1067
1080LIBSSH_API int ssh_remove_channel_callbacks(ssh_channel channel,
1081 ssh_channel_callbacks cb);
1082
1084
1088
1095typedef int (*ssh_thread_callback) (void **lock);
1096
1101typedef unsigned long (*ssh_thread_id_callback) (void);
1102struct ssh_threads_callbacks_struct {
1103 const char *type;
1104 ssh_thread_callback mutex_init;
1105 ssh_thread_callback mutex_destroy;
1106 ssh_thread_callback mutex_lock;
1107 ssh_thread_callback mutex_unlock;
1108 ssh_thread_id_callback thread_id;
1109};
1110
1128LIBSSH_API int ssh_threads_set_callbacks(struct ssh_threads_callbacks_struct
1129 *cb);
1130
1140LIBSSH_API struct ssh_threads_callbacks_struct *ssh_threads_get_default(void);
1141
1148LIBSSH_API struct ssh_threads_callbacks_struct *ssh_threads_get_pthread(void);
1149
1160LIBSSH_API struct ssh_threads_callbacks_struct *ssh_threads_get_noop(void);
1162
1171
1178
1187typedef int (*ssh_jump_before_connection_callback)(ssh_session session,
1188 void *userdata);
1189
1198typedef int (*ssh_jump_verify_knownhost_callback)(ssh_session session,
1199 void *userdata);
1200
1208typedef int (*ssh_jump_authenticate_callback)(ssh_session session,
1209 void *userdata);
1210
1221 ssh_jump_before_connection_callback before_connection;
1223 ssh_jump_verify_knownhost_callback verify_knownhost;
1225 ssh_jump_authenticate_callback authenticate;
1226};
1227
1228/* Security key callbacks */
1229
1230/*
1231 * Forward declarations for structs that have been defined in sk_api.h.
1232 * If you need to work with the fields inside them, please include
1233 * libssh/sk_api.h
1234 */
1235struct sk_enroll_response;
1236struct sk_sign_response;
1237struct sk_resident_key;
1238struct sk_option;
1239
1240#define LIBSSH_SK_API_VERSION_MAJOR 0x000a0000
1241
1263typedef uint32_t (*sk_api_version_callback)(void);
1264
1284typedef int (*sk_enroll_callback)(uint32_t alg,
1285 const uint8_t *challenge,
1286 size_t challenge_len,
1287 const char *application,
1288 uint8_t flags,
1289 const char *pin,
1290 struct sk_option **options,
1291 struct sk_enroll_response **enroll_response);
1292
1314typedef int (*sk_sign_callback)(uint32_t alg,
1315 const uint8_t *data,
1316 size_t data_len,
1317 const char *application,
1318 const uint8_t *key_handle,
1319 size_t key_handle_len,
1320 uint8_t flags,
1321 const char *pin,
1322 struct sk_option **options,
1323 struct sk_sign_response **sign_response);
1324
1341typedef int (*sk_load_resident_keys_callback)(
1342 const char *pin,
1343 struct sk_option **options,
1344 struct sk_resident_key ***resident_keys,
1345 size_t *num_keys_found);
1346
1359 size_t size;
1360
1367 sk_api_version_callback api_version;
1368
1376 sk_enroll_callback enroll;
1377
1384 sk_sign_callback sign;
1385
1392 sk_load_resident_keys_callback load_resident_keys;
1393};
1394
1395typedef struct ssh_sk_callbacks_struct *ssh_sk_callbacks;
1396
1397const struct ssh_sk_callbacks_struct *ssh_sk_get_default_callbacks(void);
1398
1399#ifdef __cplusplus
1400}
1401#endif
1402
1403#endif /*_SSH_CALLBACK_H */
1404
1405/* @} */
int(* ssh_auth_callback)(const char *prompt, char *buf, size_t len, int echo, int verify, void *userdata)
SSH authentication callback for password and publickey auth.
Definition libssh.h:757
void(* ssh_channel_request_resp_callback)(ssh_session session, ssh_channel channel, void *userdata)
SSH channel request response callback. Called when a response to the pending request is received.
Definition callbacks.h:936
int(* ssh_channel_pty_request_callback)(ssh_session session, ssh_channel channel, const char *term, int width, int height, int pxwidth, int pwheight, void *userdata)
SSH channel PTY request from a client.
Definition callbacks.h:787
LIBSSH_API int ssh_set_callbacks(ssh_session session, ssh_callbacks cb)
Set the session callback functions.
Definition callbacks.c:56
LIBSSH_API int ssh_add_channel_callbacks(ssh_channel channel, ssh_channel_callbacks cb)
Add channel callback functions.
Definition callbacks.c:118
int(* ssh_channel_pty_window_change_callback)(ssh_session session, ssh_channel channel, int width, int height, int pxwidth, int pwheight, void *userdata)
SSH channel PTY windows change (terminal size) from a client.
Definition callbacks.h:848
int(* ssh_channel_exec_request_callback)(ssh_session session, ssh_channel channel, const char *command, void *userdata)
SSH channel Exec request from a client.
Definition callbacks.h:863
void(* ssh_channel_x11_req_callback)(ssh_session session, ssh_channel channel, int single_connection, const char *auth_protocol, const char *auth_cookie, uint32_t screen_number, void *userdata)
SSH X11 request from the client. This request is sent by a client when X11 forwarding is requested(an...
Definition callbacks.h:829
int(* ssh_channel_shell_request_callback)(ssh_session session, ssh_channel channel, void *userdata)
SSH channel Shell request from a client.
Definition callbacks.h:802
int(* ssh_channel_data_callback)(ssh_session session, ssh_channel channel, void *data, uint32_t len, int is_stderr, void *userdata)
SSH channel data callback. Called when data is available on a channel.
Definition callbacks.h:705
void(* ssh_channel_eof_callback)(ssh_session session, ssh_channel channel, void *userdata)
SSH channel eof callback. Called when a channel receives EOF.
Definition callbacks.h:718
void(* ssh_channel_close_callback)(ssh_session session, ssh_channel channel, void *userdata)
SSH channel close callback. Called when a channel is closed by remote peer.
Definition callbacks.h:728
void(* ssh_channel_signal_callback)(ssh_session session, ssh_channel channel, const char *signal, void *userdata)
SSH channel signal callback. Called when a channel has received a signal.
Definition callbacks.h:739
int(* ssh_auth_pubkey_callback)(ssh_session session, const char *user, struct ssh_key_struct *pubkey, char signature_state, void *userdata)
SSH authentication callback.
Definition callbacks.h:296
int(* ssh_packet_callback)(ssh_session session, uint8_t type, ssh_buffer packet, void *user)
Prototype for a packet callback, to be called when a new packet arrives.
Definition callbacks.h:633
int(* ssh_auth_kbdint_callback)(ssh_message message, ssh_session session, void *userdata)
SSH authentication callback. Tries to authenticates user with the "keyboard-interactive" method.
Definition callbacks.h:309
void(* ssh_channel_exit_status_callback)(ssh_session session, ssh_channel channel, int exit_status, void *userdata)
SSH channel exit status callback. Called when a channel has received an exit status.
Definition callbacks.h:751
ssh_channel(* ssh_channel_open_request_x11_callback)(ssh_session session, const char *originator_address, int originator_port, void *userdata)
Handles an SSH new channel open X11 request. This happens when the server sends back an X11 connectio...
Definition callbacks.h:154
void(* ssh_pong_callback)(ssh_session session, const void *payload, size_t payload_len, void *userdata)
SSH PONG callback.
Definition callbacks.h:127
ssh_channel(* ssh_channel_open_request_direct_tcpip_callback)(ssh_session session, const char *destination_address, int destination_port, const char *originator_address, int originator_port, void *userdata)
Handles an SSH new channel open "direct-tcpip" request. This happens when the client forwards an inco...
Definition callbacks.h:390
int(* ssh_auth_none_callback)(ssh_session session, const char *user, void *userdata)
SSH authentication callback. Tries to authenticates user with the "none" method which is anonymous or...
Definition callbacks.h:262
void(* ssh_channel_open_resp_callback)(ssh_session session, ssh_channel channel, bool is_success, void *userdata)
SSH channel open callback. Called when a channel open succeeds or fails.
Definition callbacks.h:925
void(* ssh_log_callback)(ssh_session session, int priority, const char *message, void *userdata)
SSH log callback. All logging messages will go through this callback.
Definition callbacks.h:75
int(* ssh_service_request_callback)(ssh_session session, const char *service, void *userdata)
Handles an SSH service request.
Definition callbacks.h:319
ssh_channel(* ssh_channel_open_request_forwarded_tcpip_callback)(ssh_session session, const char *destination_address, int destination_port, const char *originator_address, int originator_port, void *userdata)
Handles an SSH new channel open "forwarded-tcpip" request. This happens when the server forwards an i...
Definition callbacks.h:184
LIBSSH_API int ssh_set_server_callbacks(ssh_session session, ssh_server_callbacks cb)
Set the session server callback functions.
Definition callbacks.c:141
ssh_channel(* ssh_channel_open_request_auth_agent_callback)(ssh_session session, void *userdata)
Handles an SSH new channel open "auth-agent" request. This happens when the server sends back an "aut...
Definition callbacks.h:166
int(* ssh_channel_write_wontblock_callback)(ssh_session session, ssh_channel channel, uint32_t bytes, void *userdata)
SSH channel write will not block (flow control).
Definition callbacks.h:913
int(* ssh_auth_gssapi_mic_callback)(ssh_session session, const char *user, const char *principal, void *userdata)
SSH authentication callback. Tries to authenticates user with the "gssapi-with-mic" method.
Definition callbacks.h:279
void(* ssh_logging_callback)(int priority, const char *function, const char *buffer, void *userdata)
SSH log callback.
Definition callbacks.h:91
void(* ssh_status_callback)(ssh_session session, float status, void *userdata)
SSH Connection status callback.
Definition callbacks.h:103
ssh_channel(* ssh_channel_open_request_session_callback)(ssh_session session, void *userdata)
Handles an SSH new channel open session request.
Definition callbacks.h:329
void(* ssh_channel_exit_signal_callback)(ssh_session session, ssh_channel channel, const char *signal, int core, const char *errmsg, const char *lang, void *userdata)
SSH channel exit signal callback. Called when a channel has received an exit signal.
Definition callbacks.h:766
LIBSSH_API int ssh_set_channel_callbacks(ssh_channel channel, ssh_channel_callbacks cb)
Set the channel callback functions.
Definition callbacks.c:113
int(* ssh_auth_password_callback)(ssh_session session, const char *user, const char *password, void *userdata)
SSH authentication callback.
Definition callbacks.h:248
void(* ssh_connect_status_callback)(void *userdata, float status)
SSH connect status callback. These are functions that report the status of the connection i,...
Definition callbacks.h:141
LIBSSH_API int ssh_remove_channel_callbacks(ssh_channel channel, ssh_channel_callbacks cb)
Remove a channel callback.
Definition callbacks.c:123
int(* ssh_channel_env_request_callback)(ssh_session session, ssh_channel channel, const char *env_name, const char *env_value, void *userdata)
SSH channel environment request from a client.
Definition callbacks.h:880
void(* ssh_global_request_callback)(ssh_session session, ssh_message message, void *userdata)
SSH global request callback. All global request will go through this callback.
Definition callbacks.h:113
void(* ssh_channel_auth_agent_req_callback)(ssh_session session, ssh_channel channel, void *userdata)
SSH auth-agent-request from the client. This request is sent by a client when agent forwarding is ava...
Definition callbacks.h:813
int(* ssh_channel_subsystem_request_callback)(ssh_session session, ssh_channel channel, const char *subsystem, void *userdata)
SSH channel subsystem request from a client.
Definition callbacks.h:894
LIBSSH_API ssh_logging_callback ssh_get_log_callback(void)
Get the pointer to the logging callback function.
Definition log.c:275
LIBSSH_API int ssh_set_log_callback(ssh_logging_callback cb)
Set the logging callback function.
Definition log.c:256
LIBSSH_API struct ssh_threads_callbacks_struct * ssh_threads_get_pthread(void)
Returns a pointer on the pthread threads callbacks, to be used with ssh_threads_set_callbacks.
Definition pthread.c:137
LIBSSH_API struct ssh_threads_callbacks_struct * ssh_threads_get_default(void)
Returns a pointer to the appropriate callbacks structure for the environment, to be used with ssh_thr...
Definition noop.c:65
unsigned long(* ssh_thread_id_callback)(void)
Callback to retrieve the current thread identifier.
Definition callbacks.h:1101
int(* ssh_thread_callback)(void **lock)
Callback for thread mutex operations (init, destroy, lock, unlock).
Definition callbacks.h:1095
LIBSSH_API struct ssh_threads_callbacks_struct * ssh_threads_get_noop(void)
Get the noop threads callbacks structure.
Definition noop.c:71
LIBSSH_API int ssh_threads_set_callbacks(struct ssh_threads_callbacks_struct *cb)
Set the thread callbacks structure.
Definition threads.c:73
Response structure for FIDO2/U2F key enrollment operations.
Definition sk_api.h:84
uint8_t * key_handle
Opaque credential handle/ID used to identify this key.
Definition sk_api.h:113
uint8_t flags
FIDO2/U2F authenticator flags from the enrollment operation.
Definition sk_api.h:91
size_t key_handle_len
Length of key_handle buffer in bytes.
Definition sk_api.h:119
Configuration option structure for FIDO2/U2F operations.
Definition sk_api.h:263
Structure representing a resident/discoverable credential.
Definition sk_api.h:204
Response structure for FIDO2/U2F key signing operations.
Definition sk_api.h:167
Definition callbacks.h:192
ssh_channel_open_request_auth_agent_callback channel_open_request_auth_agent_function
Definition callbacks.h:221
ssh_connect_status_callback connect_status_function
Definition callbacks.h:211
ssh_log_callback log_function
Definition callbacks.h:206
ssh_auth_callback auth_function
Definition callbacks.h:202
ssh_channel_open_request_x11_callback channel_open_request_x11_function
Definition callbacks.h:218
void * userdata
Definition callbacks.h:198
ssh_channel_open_request_forwarded_tcpip_callback channel_open_request_forwarded_tcpip_function
Definition callbacks.h:226
size_t size
Definition callbacks.h:194
ssh_pong_callback pong_function
Definition callbacks.h:230
ssh_global_request_callback global_request_function
Definition callbacks.h:215
Callback collection for managing an SSH proxyjump connection.
Definition callbacks.h:1217
ssh_jump_authenticate_callback authenticate
Definition callbacks.h:1225
ssh_jump_before_connection_callback before_connection
Definition callbacks.h:1221
ssh_jump_verify_knownhost_callback verify_knownhost
Definition callbacks.h:1223
void * userdata
Definition callbacks.h:1219
Definition callbacks.h:402
ssh_gssapi_accept_sec_ctx_callback gssapi_accept_sec_ctx_function
Definition callbacks.h:443
ssh_service_request_callback service_request_function
Definition callbacks.h:432
ssh_gssapi_verify_mic_callback gssapi_verify_mic_function
Definition callbacks.h:446
size_t size
Definition callbacks.h:404
ssh_auth_kbdint_callback auth_kbdint_function
Definition callbacks.h:457
ssh_auth_none_callback auth_none_function
Definition callbacks.h:417
ssh_auth_gssapi_mic_callback auth_gssapi_mic_function
Definition callbacks.h:422
ssh_channel_open_request_session_callback channel_open_request_session_function
Definition callbacks.h:436
ssh_auth_password_callback auth_password_function
Definition callbacks.h:412
ssh_auth_pubkey_callback auth_pubkey_function
Definition callbacks.h:427
ssh_channel_open_request_direct_tcpip_callback channel_open_request_direct_tcpip_function
Definition callbacks.h:452
void * userdata
Definition callbacks.h:408
ssh_gssapi_select_oid_callback gssapi_select_oid_function
Definition callbacks.h:440
FIDO2/U2F security key callbacks structure.
Definition callbacks.h:1357
sk_sign_callback sign
Definition callbacks.h:1384
sk_enroll_callback enroll
Definition callbacks.h:1376
sk_api_version_callback api_version
Definition callbacks.h:1367
size_t size
Definition callbacks.h:1359
sk_load_resident_keys_callback load_resident_keys
Definition callbacks.h:1392
Definition callbacks.h:492
void * userdata
Definition callbacks.h:496
ssh_callback_data data
Definition callbacks.h:501
ssh_callback_int_int connected
Definition callbacks.h:513
ssh_callback_int controlflow
Definition callbacks.h:505
ssh_callback_int_int exception
Definition callbacks.h:509