1 
2 GSSAPI::Context_out
3 new(class)
4 	char *	class
5     CODE:
6 	RETVAL = 0;
7     OUTPUT:
8 	RETVAL
9 
10 void
11 DESTROY(context)
12 	GSSAPI::Context_opt	context
13     PREINIT:
14 	OM_uint32		minor;
15 	OM_uint32		major;
16     CODE:
17 	if (context != NULL) {
18 
19 	    major = gss_delete_sec_context(&minor, &context, GSS_C_NO_BUFFER);
20 	    if ( major == GSS_S_FAILURE) {
21 	       warn("failed gss_delete_sec_context(), GSS_S_FAILURE, module Context.xs");
22 	    }
23 	}
24 
25 GSSAPI::Status
26 init(context, cred, name, in_mech, in_flags, in_time, binding, in_token, out_mech, out_token, out_flags, out_time)
27 	GSSAPI::Context_opt	context
28 	GSSAPI::Cred_opt	cred
29 	GSSAPI::Name		name
30 	GSSAPI::OID_opt		in_mech
31 	OM_uint32		in_flags
32 	OM_uint32		in_time
33 	GSSAPI::Binding_opt	binding
34 	gss_buffer_desc		in_token
35     PREINIT:
36 	GSSAPI__OID		out_mech_real;
37 	OM_uint32		out_flags_real;
38 	OM_uint32		out_time_real;
39     INPUT:
40 	GSSAPI::OID_optout	out_mech
41 	gss_buffer_desc_out	out_token
42 	OM_uint32_optout	out_flags
43 	OM_uint32_optout	out_time
44     CODE:
45 	RETVAL.major =
46 		gss_init_sec_context(&RETVAL.minor, cred, &context, name,
47 				     in_mech, in_flags, in_time, binding,
48 				     &in_token, out_mech, &out_token,
49 				     out_flags, out_time);
50     OUTPUT:
51 	RETVAL
52 	context
53 	out_mech
54 	out_token
55 	out_flags
56 	out_time
57 
58 GSSAPI::Status
59 accept(context, acc_cred, in_token, binding, out_name, out_mech, out_token, out_flags, out_time, delegated_cred)
60 	GSSAPI::Context_opt	context
61 	GSSAPI::Cred_opt	acc_cred
62 	gss_buffer_desc		in_token
63 	GSSAPI::Binding_opt	binding
64     PREINIT:
65 	GSSAPI__Name		out_name_real;
66 	GSSAPI__OID		out_mech_real;
67 	OM_uint32		out_flags_real;
68 	OM_uint32		out_time_real;
69 	GSSAPI__Cred		delegated_cred_real;
70     INPUT:
71 	GSSAPI::Name_optout	out_name
72 	GSSAPI::OID_optout	out_mech
73 	gss_buffer_desc_out	out_token
74 	OM_uint32_optout	out_flags
75 	OM_uint32_optout	out_time
76 	GSSAPI::Cred_optout	delegated_cred
77     CODE:
78 	RETVAL.major =
79 		gss_accept_sec_context(&RETVAL.minor, &context, acc_cred,
80 				       &in_token, binding, out_name, out_mech,
81 				       &out_token, out_flags, out_time,
82 				       delegated_cred);
83     OUTPUT:
84 	RETVAL
85 	context
86 	out_name
87 	out_mech
88 	out_token
89 	out_flags
90 	out_time
91 	delegated_cred
92 
93 GSSAPI::Status
94 delete(context, out_token)
95 	GSSAPI::Context_opt	context
96 	gss_buffer_desc_out	out_token
97     CODE:
98 	if (context != NULL) {
99 	    RETVAL.major = gss_delete_sec_context(&RETVAL.minor, &context,
100 						  &out_token);
101 	} else {
102 	    RETVAL.major = GSS_S_COMPLETE;
103 	    RETVAL.minor = 0;
104 	}
105     OUTPUT:
106 	RETVAL
107 	context
108 	out_token
109 
110 GSSAPI::Status
111 process_token(context, token)
112 	GSSAPI::Context		context
113 	gss_buffer_desc		token
114     CODE:
115 	RETVAL.major =
116 		gss_process_context_token(&RETVAL.minor, context, &token);
117     OUTPUT:
118 	RETVAL
119 
120 GSSAPI::Status
121 valid_time_left(context, out_time)
122 	GSSAPI::Context		context
123     PREINIT:
124 	OM_uint32		out_time_real;
125     INPUT:
126 	OM_uint32_optout	out_time
127     CODE:
128 	RETVAL.major = gss_context_time(&RETVAL.minor, context, out_time);
129     OUTPUT:
130 	RETVAL
131 	out_time
132 
133 GSSAPI::Status
134 wrap_size_limit(context, flags, qop, req_output_size, max_input_size)
135 	GSSAPI::Context		context
136 	OM_uint32		flags
137 	OM_uint32		qop
138 	OM_uint32		req_output_size
139     PREINIT:
140 	OM_uint32		max_input_size_real;
141     INPUT:
142 	OM_uint32_optout	max_input_size
143     CODE:
144 	RETVAL.major =
145 		gss_wrap_size_limit(&RETVAL.minor, context, flags, qop,
146 				    req_output_size, max_input_size);
147     OUTPUT:
148 	RETVAL
149 	max_input_size
150 
151 
152 GSSAPI::Status
153 inquire(context, src_name, targ_name, lifetime, mech, flags, locally_initiated, open)
154 	GSSAPI::Context		context;
155     PREINIT:
156 	GSSAPI__Name		src_name_real;
157 	GSSAPI__Name		targ_name_real;
158 	OM_uint32		lifetime_real;
159 	GSSAPI__OID		mech_real;
160 	OM_uint32		flags_real;
161 	int			locally_initiated_real;
162 	int			open_real;
163     INPUT:
164 	GSSAPI::Name_optout	src_name
165 	GSSAPI::Name_optout	targ_name
166 	OM_uint32_optout	lifetime
167 	GSSAPI::OID_optout	mech
168 	OM_uint32_optout	flags
169 	int_optout		locally_initiated
170 	int_optout		open
171     CODE:
172 	RETVAL.major =
173 		gss_inquire_context(&RETVAL.minor, context, src_name,
174 				    targ_name, lifetime, mech, flags,
175 				    locally_initiated, open);
176     OUTPUT:
177 	RETVAL
178 	src_name
179 	targ_name
180 	lifetime
181 	mech
182 	flags
183 	locally_initiated
184 	open
185 
186 GSSAPI::Status
187 export(context, token)
188 	GSSAPI::Context		context
189 	gss_buffer_desc_out	token
190     CODE:
191 	RETVAL.major = gss_export_sec_context(&RETVAL.minor, &context, &token);
192     OUTPUT:
193 	RETVAL
194 	context
195 	token
196 
197 GSSAPI::Status
198 import(class, context, token)
199 	char *			class
200 	GSSAPI::Context_out	context
201 	gss_buffer_desc		token
202     CODE:
203 	RETVAL.major = gss_import_sec_context(&RETVAL.minor, &token, &context);
204     OUTPUT:
205 	RETVAL
206 	context
207 
208 GSSAPI::Status
209 get_mic(context, qop, buffer, token)
210 	GSSAPI::Context		context
211 	OM_uint32		qop
212 	gss_buffer_desc		buffer
213 	gss_buffer_desc_out	token
214     CODE:
215 	RETVAL.major =
216 		gss_get_mic(&RETVAL.minor, context, qop, &buffer, &token);
217     OUTPUT:
218 	RETVAL
219 	token
220 
221 GSSAPI::Status
222 verify_mic(context, buffer, token, qop)
223 	GSSAPI::Context		context
224 	gss_buffer_desc		buffer
225 	gss_buffer_desc		token
226     PREINIT:
227 	OM_uint32		qop_real;
228     INPUT:
229 	OM_uint32_optout	qop
230     CODE:
231 	RETVAL.major =
232 		gss_verify_mic(&RETVAL.minor, context, &buffer, &token, qop);
233     OUTPUT:
234 	RETVAL
235 	qop
236 
237 GSSAPI::Status
238 wrap(context, conf_flag, qop, in_buffer, conf_state, out_buffer)
239 	GSSAPI::Context		context
240 	int			conf_flag
241 	OM_uint32		qop
242 	gss_buffer_desc		in_buffer
243     PREINIT:
244 	int			conf_state_real;
245     INPUT:
246 	int_optout		conf_state
247 	gss_buffer_desc_out	out_buffer
248     CODE:
249 	RETVAL.major = gss_wrap(&RETVAL.minor, context, conf_flag, qop,
250 				&in_buffer, conf_state, &out_buffer);
251     OUTPUT:
252 	RETVAL
253 	conf_state
254 	out_buffer
255 
256 GSSAPI::Status
257 unwrap(context, in_buffer, out_buffer, conf_state, qop)
258 	GSSAPI::Context		context
259 	gss_buffer_desc		in_buffer
260 	gss_buffer_desc_out	out_buffer
261     PREINIT:
262 	int			conf_state_real;
263 	OM_uint32		qop_real;
264     INPUT:
265 	int_optout		conf_state
266 	OM_uint32_optout	qop
267     CODE:
268 	RETVAL.major = gss_unwrap(&RETVAL.minor, context, &in_buffer,
269 				  &out_buffer, conf_state, qop);
270     OUTPUT:
271 	RETVAL
272 	out_buffer
273 	conf_state
274 	qop
275