289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/*
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * Copyright (C) 2006, 2007, 2016 Internet Systems Consortium, Inc. ("ISC")
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews *
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * This Source Code Form is subject to the terms of the Mozilla Public
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * License, v. 2.0. If a copy of the MPL was not distributed with this
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * file, You can obtain one at http://mozilla.org/MPL/2.0/.
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews
70e5a7403f0e0a3bd292b8287c5fed5772c15270Automatic Updater/* $Id: spnego.h,v 1.4 2007/06/19 23:47:16 tbox Exp $ */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/*! \file
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * \brief
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * Entry points into portable SPNEGO implementation.
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * See spnego.c for information on the SPNEGO implementation itself.
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews#ifndef _SPNEGO_H_
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews#define _SPNEGO_H_
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/*%
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * Wrapper for GSSAPI gss_init_sec_context(), using portable SPNEGO
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * implementation instead of the one that's part of the GSSAPI
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * library. Takes arguments identical to the standard GSSAPI
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * function, uses standard gss_init_sec_context() to handle
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * everything inside the SPNEGO wrapper.
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews */
289ae548d52bc8f982d9823af64cafda7bd92232Mark AndrewsOM_uint32
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrewsgss_init_sec_context_spnego(OM_uint32 *,
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews const gss_cred_id_t,
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews gss_ctx_id_t *,
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews const gss_name_t,
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews const gss_OID,
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews OM_uint32,
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews OM_uint32,
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews const gss_channel_bindings_t,
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews const gss_buffer_t,
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews gss_OID *,
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews gss_buffer_t,
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews OM_uint32 *,
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews OM_uint32 *);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/*%
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * Wrapper for GSSAPI gss_accept_sec_context(), using portable SPNEGO
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * implementation instead of the one that's part of the GSSAPI
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * library. Takes arguments identical to the standard GSSAPI
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * function. Checks the OID of the input token to see if it's SPNEGO;
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * if so, processes it, otherwise hands the call off to the standard
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * gss_accept_sec_context() function.
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews */
289ae548d52bc8f982d9823af64cafda7bd92232Mark AndrewsOM_uint32 gss_accept_sec_context_spnego(OM_uint32 *,
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews gss_ctx_id_t *,
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews const gss_cred_id_t,
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews const gss_buffer_t,
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews const gss_channel_bindings_t,
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews gss_name_t *,
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews gss_OID *,
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews gss_buffer_t,
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews OM_uint32 *,
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews OM_uint32 *,
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews gss_cred_id_t *);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews#endif