52dcdd24e724550bda679e436b1a1b9f9274a917
[gssweb.git] / json_gssapi / src / commands / GSSCreateSecContextCommand.h
1 /*
2  * Copyright (c) 2014 <copyright holder> <email>
3  * 
4  * For license details, see the LICENSE file in the root of this project.
5  * 
6  */
7
8 #ifndef GSSCREATESECCONTEXTCOMMAND_H
9 #define GSSCREATESECCONTEXTCOMMAND_H
10
11 #include "GSSCommand.h"
12 #include <gssapi.h>
13
14 class GSSCreateSecContextCommand : public GSSCommand
15 {
16 public:
17
18     OM_uint32 retVal;
19     OM_uint32 minor_status;
20     gss_ctx_id_t context_handle;
21     gss_name_t target_name;
22     gss_OID mech_type;
23     OM_uint32 req_flags;
24     OM_uint32 time_req;
25     gss_buffer_desc input_token;
26     gss_OID actual_mech_type;
27     gss_buffer_desc output_token;
28     OM_uint32 ret_flags;
29     OM_uint32 time_rec;
30     
31   
32     void execute();
33     JSONObject *toJSON();
34     GSSCreateSecContextCommand(void *fn = (void *)&gss_init_sec_context);
35     GSSCreateSecContextCommand(JSONObject *params, void *fn = (void *)&gss_init_sec_context);
36     
37     bool loadParameters(JSONObject *params);
38     bool zeroOut(bool initialized = true);
39     
40     
41     // accessors
42     OM_uint32 getReqFlags() { return req_flags; }
43     OM_uint32 getTimeReq() { return time_req; }
44     gss_ctx_id_t getContextHandle() { return context_handle; }
45     void *getGSSFunction() { return function; }
46     
47     // complex accessors
48     const char * getTargetDisplayName();
49     const char * getMechType();
50     const char * getActualMechType();
51     
52 private:
53     void *function;
54     const char * oidToStr(gss_OID oid);
55 };
56
57 #endif // GSSCREATESECCONTEXTCOMMAND_H