1184588Sdfr#-
2184588Sdfr# Copyright (c) 2008 Isilon Inc http://www.isilon.com/
3184588Sdfr# Authors: Doug Rabson <dfr@rabson.org>
4184588Sdfr# Developed with Red Inc: Alfred Perlstein <alfred@freebsd.org>
5184588Sdfr#
6184588Sdfr# Redistribution and use in source and binary forms, with or without
7184588Sdfr# modification, are permitted provided that the following conditions
8184588Sdfr# are met:
9184588Sdfr# 1. Redistributions of source code must retain the above copyright
10184588Sdfr#    notice, this list of conditions and the following disclaimer.
11184588Sdfr# 2. Redistributions in binary form must reproduce the above copyright
12184588Sdfr#    notice, this list of conditions and the following disclaimer in the
13184588Sdfr#    documentation and/or other materials provided with the distribution.
14184588Sdfr#
15184588Sdfr# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16184588Sdfr# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17184588Sdfr# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18184588Sdfr# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19184588Sdfr# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20184588Sdfr# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21184588Sdfr# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22184588Sdfr# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23184588Sdfr# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24184588Sdfr# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25184588Sdfr# SUCH DAMAGE.
26184588Sdfr#
27184588Sdfr# $FreeBSD$
28184588Sdfr
29184588Sdfr# Interface for the in-kernel part of a GSS-API mechanism
30184588Sdfr
31184588Sdfr#include <kgssapi/gssapi.h>
32184588Sdfr#include "gssd.h"
33184588Sdfr
34184588SdfrINTERFACE kgss;
35184588Sdfr
36184588SdfrMETHOD void init {
37184588Sdfr	gss_ctx_id_t ctx;
38184588Sdfr};
39184588Sdfr
40184588SdfrMETHOD OM_uint32 import {
41184588Sdfr	gss_ctx_id_t ctx;
42184588Sdfr	enum sec_context_format format;
43184588Sdfr	const gss_buffer_t context_token;
44184588Sdfr};
45184588Sdfr
46184588SdfrMETHOD void delete {
47184588Sdfr	gss_ctx_id_t ctx;
48184588Sdfr	gss_buffer_t output_token;
49184588Sdfr};
50184588Sdfr
51184588SdfrMETHOD gss_OID mech_type {
52184588Sdfr	gss_ctx_id_t ctx;
53184588Sdfr};
54184588Sdfr
55184588SdfrMETHOD OM_uint32 get_mic {
56184588Sdfr	gss_ctx_id_t ctx;
57184588Sdfr	OM_uint32 *minor_status;
58184588Sdfr	gss_qop_t qop_req;
59184588Sdfr	struct mbuf *message_buffer;
60184588Sdfr	struct mbuf **message_token;
61184588Sdfr};
62184588Sdfr
63184588SdfrMETHOD OM_uint32 verify_mic {
64184588Sdfr	gss_ctx_id_t ctx;
65184588Sdfr	OM_uint32 *minor_status;
66184588Sdfr	struct mbuf *message_buffer;
67184588Sdfr	struct mbuf *token_buffer;
68184588Sdfr	gss_qop_t *qop_state;
69184588Sdfr};
70184588Sdfr
71184588SdfrMETHOD OM_uint32 wrap {
72184588Sdfr	gss_ctx_id_t ctx;
73184588Sdfr	OM_uint32 *minor_status;
74184588Sdfr	int conf_req_flag;
75184588Sdfr	gss_qop_t qop_req;
76184588Sdfr	struct mbuf **message_buffer;
77184588Sdfr	int *conf_state;
78184588Sdfr};
79184588Sdfr
80184588SdfrMETHOD OM_uint32 unwrap {
81184588Sdfr	gss_ctx_id_t ctx;
82184588Sdfr	OM_uint32 *minor_status;
83184588Sdfr	struct mbuf **message_buffer;
84184588Sdfr	int *conf_state;
85184588Sdfr	gss_qop_t *qop_state;
86184588Sdfr};
87184588Sdfr
88184588SdfrMETHOD OM_uint32 wrap_size_limit {
89184588Sdfr	gss_ctx_id_t ctx;
90184588Sdfr	OM_uint32 *minor_status;
91184588Sdfr	int conf_req_flag;
92184588Sdfr	gss_qop_t qop_req;
93184588Sdfr	OM_uint32 req_ouput_size;
94184588Sdfr	OM_uint32 *max_input_size;
95184588Sdfr}
96