xref: /freebsd/sys/kgssapi/kgss_if.m (revision 031beb4e239bfce798af17f5fe8dba8bcaf13d99)
1a9148abdSDoug Rabson#-
2a9148abdSDoug Rabson# Copyright (c) 2008 Isilon Inc http://www.isilon.com/
3a9148abdSDoug Rabson# Authors: Doug Rabson <dfr@rabson.org>
4a9148abdSDoug Rabson# Developed with Red Inc: Alfred Perlstein <alfred@freebsd.org>
5a9148abdSDoug Rabson#
6a9148abdSDoug Rabson# Redistribution and use in source and binary forms, with or without
7a9148abdSDoug Rabson# modification, are permitted provided that the following conditions
8a9148abdSDoug Rabson# are met:
9a9148abdSDoug Rabson# 1. Redistributions of source code must retain the above copyright
10a9148abdSDoug Rabson#    notice, this list of conditions and the following disclaimer.
11a9148abdSDoug Rabson# 2. Redistributions in binary form must reproduce the above copyright
12a9148abdSDoug Rabson#    notice, this list of conditions and the following disclaimer in the
13a9148abdSDoug Rabson#    documentation and/or other materials provided with the distribution.
14a9148abdSDoug Rabson#
15a9148abdSDoug Rabson# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16a9148abdSDoug Rabson# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17a9148abdSDoug Rabson# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18a9148abdSDoug Rabson# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19a9148abdSDoug Rabson# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20a9148abdSDoug Rabson# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21a9148abdSDoug Rabson# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22a9148abdSDoug Rabson# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23a9148abdSDoug Rabson# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24a9148abdSDoug Rabson# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25a9148abdSDoug Rabson# SUCH DAMAGE.
26a9148abdSDoug Rabson#
27a9148abdSDoug Rabson
28a9148abdSDoug Rabson# Interface for the in-kernel part of a GSS-API mechanism
29a9148abdSDoug Rabson
30a9148abdSDoug Rabson#include <kgssapi/gssapi.h>
31a9148abdSDoug Rabson#include "gssd.h"
32a9148abdSDoug Rabson
33a9148abdSDoug RabsonINTERFACE kgss;
34a9148abdSDoug Rabson
35a9148abdSDoug RabsonMETHOD void init {
36a9148abdSDoug Rabson	gss_ctx_id_t ctx;
37a9148abdSDoug Rabson};
38a9148abdSDoug Rabson
39a9148abdSDoug RabsonMETHOD OM_uint32 import {
40a9148abdSDoug Rabson	gss_ctx_id_t ctx;
41a9148abdSDoug Rabson	enum sec_context_format format;
42a9148abdSDoug Rabson	const gss_buffer_t context_token;
43a9148abdSDoug Rabson};
44a9148abdSDoug Rabson
45a9148abdSDoug RabsonMETHOD void delete {
46a9148abdSDoug Rabson	gss_ctx_id_t ctx;
47a9148abdSDoug Rabson	gss_buffer_t output_token;
48a9148abdSDoug Rabson};
49a9148abdSDoug Rabson
50a9148abdSDoug RabsonMETHOD gss_OID mech_type {
51a9148abdSDoug Rabson	gss_ctx_id_t ctx;
52a9148abdSDoug Rabson};
53a9148abdSDoug Rabson
54a9148abdSDoug RabsonMETHOD OM_uint32 get_mic {
55a9148abdSDoug Rabson	gss_ctx_id_t ctx;
56a9148abdSDoug Rabson	OM_uint32 *minor_status;
57a9148abdSDoug Rabson	gss_qop_t qop_req;
58a9148abdSDoug Rabson	struct mbuf *message_buffer;
59a9148abdSDoug Rabson	struct mbuf **message_token;
60a9148abdSDoug Rabson};
61a9148abdSDoug Rabson
62a9148abdSDoug RabsonMETHOD OM_uint32 verify_mic {
63a9148abdSDoug Rabson	gss_ctx_id_t ctx;
64a9148abdSDoug Rabson	OM_uint32 *minor_status;
65a9148abdSDoug Rabson	struct mbuf *message_buffer;
66a9148abdSDoug Rabson	struct mbuf *token_buffer;
67a9148abdSDoug Rabson	gss_qop_t *qop_state;
68a9148abdSDoug Rabson};
69a9148abdSDoug Rabson
70a9148abdSDoug RabsonMETHOD OM_uint32 wrap {
71a9148abdSDoug Rabson	gss_ctx_id_t ctx;
72a9148abdSDoug Rabson	OM_uint32 *minor_status;
73a9148abdSDoug Rabson	int conf_req_flag;
74a9148abdSDoug Rabson	gss_qop_t qop_req;
75a9148abdSDoug Rabson	struct mbuf **message_buffer;
76a9148abdSDoug Rabson	int *conf_state;
77a9148abdSDoug Rabson};
78a9148abdSDoug Rabson
79a9148abdSDoug RabsonMETHOD OM_uint32 unwrap {
80a9148abdSDoug Rabson	gss_ctx_id_t ctx;
81a9148abdSDoug Rabson	OM_uint32 *minor_status;
82a9148abdSDoug Rabson	struct mbuf **message_buffer;
83a9148abdSDoug Rabson	int *conf_state;
84a9148abdSDoug Rabson	gss_qop_t *qop_state;
85a9148abdSDoug Rabson};
86a9148abdSDoug Rabson
87a9148abdSDoug RabsonMETHOD OM_uint32 wrap_size_limit {
88a9148abdSDoug Rabson	gss_ctx_id_t ctx;
89a9148abdSDoug Rabson	OM_uint32 *minor_status;
90a9148abdSDoug Rabson	int conf_req_flag;
91a9148abdSDoug Rabson	gss_qop_t qop_req;
92a9148abdSDoug Rabson	OM_uint32 req_ouput_size;
93a9148abdSDoug Rabson	OM_uint32 *max_input_size;
94a9148abdSDoug Rabson}
95