gssapi_client.hpp
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MPL-2.0 */
2 
3 #ifndef __ZMQ_GSSAPI_CLIENT_HPP_INCLUDED__
4 #define __ZMQ_GSSAPI_CLIENT_HPP_INCLUDED__
5 
6 #ifdef HAVE_LIBGSSAPI_KRB5
7 
9 
10 namespace zmq
11 {
12 class msg_t;
13 class session_base_t;
14 
15 class gssapi_client_t ZMQ_FINAL : public gssapi_mechanism_base_t
16 {
17  public:
18  gssapi_client_t (session_base_t *session_, const options_t &options_);
19  ~gssapi_client_t () ZMQ_FINAL;
20 
21  // mechanism implementation
22  int next_handshake_command (msg_t *msg_) ZMQ_FINAL;
23  int process_handshake_command (msg_t *msg_) ZMQ_FINAL;
24  int encode (msg_t *msg_) ZMQ_FINAL;
25  int decode (msg_t *msg_) ZMQ_FINAL;
26  status_t status () const ZMQ_FINAL;
27 
28  private:
29  enum state_t
30  {
31  call_next_init,
32  send_next_token,
33  recv_next_token,
34  send_ready,
35  recv_ready,
36  connected
37  };
38 
39  // Human-readable principal name of the service we are connecting to
40  char *service_name;
41 
42  gss_OID service_name_type;
43 
44  // Current FSM state
45  state_t state;
46 
47  // Points to either send_tok or recv_tok
48  // during context initialization
49  gss_buffer_desc *token_ptr;
50 
51  // The desired underlying mechanism
52  gss_OID_set_desc mechs;
53 
54  // True iff client considers the server authenticated
55  bool security_context_established;
56 
57  int initialize_context ();
58  int produce_next_token (msg_t *msg_);
59  int process_next_token (msg_t *msg_);
60 };
61 }
62 
63 #endif
64 
65 #endif
benchmarks.python.py_benchmark.const
const
Definition: py_benchmark.py:14
zmq
Definition: zmq.hpp:229
gssapi_mechanism_base.hpp
ZMQ_FINAL
Definition: unittest_ip_resolver.cpp:26
options_
DebugStringOptions options_
Definition: src/google/protobuf/descriptor.cc:2410


libaditof
Author(s):
autogenerated on Wed May 21 2025 02:06:53