1169695Skan#-
2169695Skan# Copyright (c) 2008 Isilon Inc http://www.isilon.com/
3169695Skan# Authors: Doug Rabson <dfr@rabson.org>
4169695Skan# Developed with Red Inc: Alfred Perlstein <alfred@freebsd.org>
5169695Skan#
6169695Skan# Redistribution and use in source and binary forms, with or without
7169695Skan# modification, are permitted provided that the following conditions
8169695Skan# are met:
9169695Skan# 1. Redistributions of source code must retain the above copyright
10169695Skan#    notice, this list of conditions and the following disclaimer.
11169695Skan# 2. Redistributions in binary form must reproduce the above copyright
12169695Skan#    notice, this list of conditions and the following disclaimer in the
13169695Skan#    documentation and/or other materials provided with the distribution.
14169695Skan#
15169695Skan# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16169695Skan# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17169695Skan# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18169695Skan# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19169695Skan# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20169695Skan# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21169695Skan# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22169695Skan# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23169695Skan# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24169695Skan# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25169695Skan# SUCH DAMAGE.
26169695Skan#
27169695Skan
28169695Skan# Interface for the in-kernel part of a GSS-API mechanism
29169695Skan
30169695Skan#include <kgssapi/gssapi.h>
31169695Skan#include "gssd.h"
32169695Skan
33169695SkanINTERFACE kgss;
34169695Skan
35169695SkanMETHOD void init {
36169695Skan	gss_ctx_id_t ctx;
37169695Skan};
38169695Skan
39169695SkanMETHOD OM_uint32 import {
40169695Skan	gss_ctx_id_t ctx;
41169695Skan	enum sec_context_format format;
42169695Skan	const gss_buffer_t context_token;
43169695Skan};
44169695Skan
45169695SkanMETHOD void delete {
46169695Skan	gss_ctx_id_t ctx;
47169695Skan	gss_buffer_t output_token;
48169695Skan};
49169695Skan
50169695SkanMETHOD gss_OID mech_type {
51169695Skan	gss_ctx_id_t ctx;
52169695Skan};
53169695Skan
54169695SkanMETHOD OM_uint32 get_mic {
55169695Skan	gss_ctx_id_t ctx;
56169695Skan	OM_uint32 *minor_status;
57169695Skan	gss_qop_t qop_req;
58169695Skan	struct mbuf *message_buffer;
59169695Skan	struct mbuf **message_token;
60169695Skan};
61169695Skan
62169695SkanMETHOD OM_uint32 verify_mic {
63169695Skan	gss_ctx_id_t ctx;
64169695Skan	OM_uint32 *minor_status;
65169695Skan	struct mbuf *message_buffer;
66169695Skan	struct mbuf *token_buffer;
67169695Skan	gss_qop_t *qop_state;
68169695Skan};
69169695Skan
70169695SkanMETHOD OM_uint32 wrap {
71169695Skan	gss_ctx_id_t ctx;
72169695Skan	OM_uint32 *minor_status;
73169695Skan	int conf_req_flag;
74169695Skan	gss_qop_t qop_req;
75169695Skan	struct mbuf **message_buffer;
76169695Skan	int *conf_state;
77169695Skan};
78169695Skan
79169695SkanMETHOD OM_uint32 unwrap {
80169695Skan	gss_ctx_id_t ctx;
81169695Skan	OM_uint32 *minor_status;
82169695Skan	struct mbuf **message_buffer;
83169695Skan	int *conf_state;
84169695Skan	gss_qop_t *qop_state;
85169695Skan};
86169695Skan
87169695SkanMETHOD OM_uint32 wrap_size_limit {
88169695Skan	gss_ctx_id_t ctx;
89169695Skan	OM_uint32 *minor_status;
90169695Skan	int conf_req_flag;
91169695Skan	gss_qop_t qop_req;
92169695Skan	OM_uint32 req_ouput_size;
93169695Skan	OM_uint32 *max_input_size;
94169695Skan}
95169695Skan