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