18#ifndef PROTOCORE_TRANSPORT_PHASE_MACHINE_H
19#define PROTOCORE_TRANSPORT_PHASE_MACHINE_H
23#if PROTOCORE_ENABLE_SSH || PROTOCORE_ENABLE_SSH_CLIENT
60} PhaseMachineResetArgs;
66} PhaseMachineIdentDoneArgs;
72} PhaseMachineKexinitDoneArgs;
78} PhaseMachineKexDoneArgs;
84} PhaseMachineNewkeysDoneArgs;
90} PhaseMachineServiceDoneArgs;
96} PhaseMachineAuthDoneArgs;
102} PhaseMachineRekeyBeginArgs;
108} PhaseMachineAdmitsIdentArgs;
114} PhaseMachineAdmitsKexinitArgs;
120} PhaseMachineKexinitNeedsReplyArgs;
126} PhaseMachineAdmitsKexdhInitArgs;
132} PhaseMachineAdmitsNewkeysArgs;
138} PhaseMachineAdmitsServiceRequestArgs;
144} PhaseMachineAdmitsUserauthArgs;
150} PhaseMachineAuthCompleteArgs;
156} PhaseMachineAdmitsRekeyArgs;
162} PhaseMachineIsOpenArgs;
223 PhaseMachineGetArgs get_args;
224 PhaseMachineIsArgs is_args;
225 PhaseMachineResetArgs reset_args;
226 PhaseMachineIdentDoneArgs ident_done_args;
227 PhaseMachineKexinitDoneArgs kexinit_done_args;
228 PhaseMachineKexDoneArgs kex_done_args;
229 PhaseMachineNewkeysDoneArgs newkeys_done_args;
230 PhaseMachineServiceDoneArgs service_done_args;
231 PhaseMachineAuthDoneArgs auth_done_args;
232 PhaseMachineRekeyBeginArgs rekey_begin_args;
233 PhaseMachineAdmitsIdentArgs admits_ident_args;
234 PhaseMachineAdmitsKexinitArgs admits_kexinit_args;
235 PhaseMachineKexinitNeedsReplyArgs kexinit_needs_reply_args;
236 PhaseMachineAdmitsKexdhInitArgs admits_kexdh_init_args;
237 PhaseMachineAdmitsNewkeysArgs admits_newkeys_args;
238 PhaseMachineAdmitsServiceRequestArgs admits_service_request_args;
239 PhaseMachineAdmitsUserauthArgs admits_userauth_args;
240 PhaseMachineAuthCompleteArgs auth_complete_args;
241 PhaseMachineAdmitsRekeyArgs admits_rekey_args;
242 PhaseMachineIsOpenArgs is_open_args;
248extern PhaseMachineVars PhaseMachineV;
253 void (*
const get)(uint8_t *work);
254 void (*
const is)(uint8_t *work);
255 void (*
const reset)(uint8_t *work);
256 void (*
const ident_done)(uint8_t *work);
257 void (*
const kexinit_done)(uint8_t *work);
258 void (*
const kex_done)(uint8_t *work);
259 void (*
const newkeys_done)(uint8_t *work);
260 void (*
const service_done)(uint8_t *work);
261 void (*
const auth_done)(uint8_t *work);
262 void (*
const rekey_begin)(uint8_t *work);
263 void (*
const admits_ident)(uint8_t *work);
264 void (*
const admits_kexinit)(uint8_t *work);
265 void (*
const kexinit_needs_reply)(uint8_t *work);
266 void (*
const admits_kexdh_init)(uint8_t *work);
267 void (*
const admits_newkeys)(uint8_t *work);
268 void (*
const admits_service_request)(uint8_t *work);
269 void (*
const admits_userauth)(uint8_t *work);
270 void (*
const auth_complete)(uint8_t *work);
271 void (*
const admits_rekey)(uint8_t *work);
272 void (*
const is_open)(uint8_t *work);
277void protocore_phase_machine_get(uint8_t *work);
278void protocore_phase_machine_is(uint8_t *work);
279void protocore_phase_machine_reset(uint8_t *work);
280void protocore_phase_machine_ident_done(uint8_t *work);
281void protocore_phase_machine_kexinit_done(uint8_t *work);
282void protocore_phase_machine_kex_done(uint8_t *work);
283void protocore_phase_machine_newkeys_done(uint8_t *work);
284void protocore_phase_machine_service_done(uint8_t *work);
285void protocore_phase_machine_auth_done(uint8_t *work);
286void protocore_phase_machine_rekey_begin(uint8_t *work);
287void protocore_phase_machine_admits_ident(uint8_t *work);
288void protocore_phase_machine_admits_kexinit(uint8_t *work);
289void protocore_phase_machine_kexinit_needs_reply(uint8_t *work);
290void protocore_phase_machine_admits_kexdh_init(uint8_t *work);
291void protocore_phase_machine_admits_newkeys(uint8_t *work);
292void protocore_phase_machine_admits_service_request(uint8_t *work);
293void protocore_phase_machine_admits_userauth(uint8_t *work);
294void protocore_phase_machine_auth_complete(uint8_t *work);
295void protocore_phase_machine_admits_rekey(uint8_t *work);
296void protocore_phase_machine_is_open(uint8_t *work);
302static const PhaseMachineNs PhaseMachine __attribute__((unused)) = {
303 .get = protocore_phase_machine_get,
304 .is = protocore_phase_machine_is,
305 .reset = protocore_phase_machine_reset,
306 .ident_done = protocore_phase_machine_ident_done,
307 .kexinit_done = protocore_phase_machine_kexinit_done,
308 .kex_done = protocore_phase_machine_kex_done,
309 .newkeys_done = protocore_phase_machine_newkeys_done,
310 .service_done = protocore_phase_machine_service_done,
311 .auth_done = protocore_phase_machine_auth_done,
312 .rekey_begin = protocore_phase_machine_rekey_begin,
313 .admits_ident = protocore_phase_machine_admits_ident,
314 .admits_kexinit = protocore_phase_machine_admits_kexinit,
315 .kexinit_needs_reply = protocore_phase_machine_kexinit_needs_reply,
316 .admits_kexdh_init = protocore_phase_machine_admits_kexdh_init,
317 .admits_newkeys = protocore_phase_machine_admits_newkeys,
318 .admits_service_request = protocore_phase_machine_admits_service_request,
319 .admits_userauth = protocore_phase_machine_admits_userauth,
320 .auth_complete = protocore_phase_machine_auth_complete,
321 .admits_rekey = protocore_phase_machine_admits_rekey,
322 .is_open = protocore_phase_machine_is_open,
PROTO_ENUM_PACKED
Application protocol spoken on a listener port or connection slot.
#define PROTOCORE_BEGIN_DECLS
Give a header's declarations C linkage, so their symbol names carry no parameter types.
_Bool proto_bool
The truth value.
#define PROTOCORE_END_DECLS