1 #ifndef PROTON_SASL_PLUGIN_H
2 #define PROTON_SASL_PLUGIN_H 1
25 #include <proton/import_export.h>
26 #include <proton/type_compat.h>
71 typedef struct pnx_sasl_implementation
85 bool (*process_mechanisms)(
pn_transport_t *transport,
const char *mechs);
94 } pnx_sasl_implementation;
100 SASL_POSTED_MECHANISMS,
101 SASL_POSTED_RESPONSE,
102 SASL_POSTED_CHALLENGE,
103 SASL_RECVED_OUTCOME_SUCCEED,
104 SASL_RECVED_OUTCOME_FAIL,
110 PN_EXTERN
void pnx_sasl_logf(
pn_transport_t *transport,
const char *format, ...);
111 PN_EXTERN
void pnx_sasl_error(
pn_transport_t *transport,
const char* err,
const char* condition_name);
114 PN_EXTERN
void pnx_sasl_set_context(
pn_transport_t *transport,
void *context);
118 PN_EXTERN
bool pnx_sasl_is_transport_encrypted(
pn_transport_t *transport);
119 PN_EXTERN
bool pnx_sasl_get_allow_insecure_mechs(
pn_transport_t *transport);
120 PN_EXTERN
bool pnx_sasl_get_auth_required(
pn_transport_t *transport);
121 PN_EXTERN
const char *pnx_sasl_get_external_username(
pn_transport_t *transport);
122 PN_EXTERN
int pnx_sasl_get_external_ssf(
pn_transport_t *transport);
124 PN_EXTERN
const char *pnx_sasl_get_username(
pn_transport_t *transport);
125 PN_EXTERN
const char *pnx_sasl_get_password(
pn_transport_t *transport);
126 PN_EXTERN
void pnx_sasl_clear_password(
pn_transport_t *transport);
127 PN_EXTERN
const char *pnx_sasl_get_remote_fqdn(
pn_transport_t *transport);
128 PN_EXTERN
const char *pnx_sasl_get_selected_mechanism(
pn_transport_t *transport);
131 PN_EXTERN
void pnx_sasl_set_desired_state(
pn_transport_t *transport,
enum pnx_sasl_state desired_state);
132 PN_EXTERN
void pnx_sasl_set_selected_mechanism(
pn_transport_t *transport,
const char *mechanism);
133 PN_EXTERN
void pnx_sasl_set_local_hostname(
pn_transport_t * transport,
const char * fqdn);
134 PN_EXTERN
void pnx_sasl_succeed_authentication(
pn_transport_t *transport,
const char *username);
135 PN_EXTERN
void pnx_sasl_fail_authentication(
pn_transport_t *transport);
137 PN_EXTERN
void pnx_sasl_set_implementation(
pn_transport_t *transport,
const pnx_sasl_implementation *impl,
void *context);
138 PN_EXTERN
void pnx_sasl_set_default_implementation(
const pnx_sasl_implementation *impl);