30 #ifndef __ZMQ_GSSAPI_MECHANISM_BASE_HPP_INCLUDED__    31 #define __ZMQ_GSSAPI_MECHANISM_BASE_HPP_INCLUDED__    33 #include "platform.hpp"    35 #ifdef HAVE_LIBGSSAPI_KRB5    37 #if HAVE_GSSAPI_GSSAPI_GENERIC_H    38 #include <gssapi/gssapi_generic.h>    40 #include <gssapi/gssapi_krb5.h>    54     class gssapi_mechanism_base_t:
    58         gssapi_mechanism_base_t (
const options_t &options_);
    59         virtual ~gssapi_mechanism_base_t () = 0;
    64         int produce_initiate (msg_t *msg_, 
void *data_, 
size_t data_len_);
    68         int process_initiate (msg_t *msg_, 
void **data_, 
size_t &data_len_);
    71         int produce_ready (msg_t *msg_);
    74         int process_ready (msg_t *msg_);
    78         int encode_message (msg_t *msg_);
    82         int decode_message (msg_t *msg_);
    86         static int acquire_credentials (
char * principal_name_,
    87                                         gss_cred_id_t * cred_);
    91         gss_buffer_desc send_tok;
    94         gss_buffer_desc recv_tok;
    97         gss_name_t target_name;
   100         char * principal_name;
   110         OM_uint32 init_sec_min_stat;
   122         gss_ctx_id_t context;