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