components/samba/samba/Solaris/gssapi_krb5.h
author Jiri Sasek <Jiri.Sasek@Oracle.COM>
Sat, 30 May 2015 14:41:57 -0700
changeset 4433 d35242d8330c
parent 4371 29fdb14099eb
permissions -rw-r--r--
PSARC/2015/008 Update Samba to release 4 18462092 Update to Samba 4.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4371
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
     1
/*
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
     2
 * Copyright (c) 2009, 2015, Oracle and/or its affiliates. All rights reserved
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
     3
 */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
     4
/*
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
     5
 * This file is a local copy of:
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
     6
 * ON:usr/src/uts/common/gssapi/mechs/krb5/include/gssapi_krb5.h
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
     7
 * which is not published as the public API in /usr/include/gssapi/
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
     8
 * It is extended by gss_krb5_import_cred() entry needed for Samba4
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
     9
 * build.
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    10
 */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    11
/*
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    12
 * Copyright 1993 by OpenVision Technologies, Inc.
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    13
 * 
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    14
 * Permission to use, copy, modify, distribute, and sell this software
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    15
 * and its documentation for any purpose is hereby granted without fee,
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    16
 * provided that the above copyright notice appears in all copies and
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    17
 * that both that copyright notice and this permission notice appear in
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    18
 * supporting documentation, and that the name of OpenVision not be used
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    19
 * in advertising or publicity pertaining to distribution of the software
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    20
 * without specific, written prior permission. OpenVision makes no
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    21
 * representations about the suitability of this software for any
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    22
 * purpose.  It is provided "as is" without express or implied warranty.
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    23
 * 
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    24
 * OPENVISION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    25
 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    26
 * EVENT SHALL OPENVISION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    27
 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    28
 * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    29
 * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    30
 * PERFORMANCE OF THIS SOFTWARE.
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    31
 */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    32
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    33
#ifndef _GSSAPI_KRB5_H_
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    34
#define _GSSAPI_KRB5_H_
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    35
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    36
#include <gssapi/gssapi.h>
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    37
#include <gssapi/gssapi_ext.h>
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    38
#include <krb5.h>
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    39
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    40
/* SUNW15resync */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    41
#ifndef GSS_DLLIMP
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    42
#define GSS_DLLIMP
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    43
#endif
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    44
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    45
/* C++ friendlyness */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    46
#ifdef __cplusplus
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    47
extern "C" {
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    48
#endif /* __cplusplus */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    49
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    50
/* Reserved static storage for GSS_oids.  See rfc 1964 for more details. */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    51
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    52
/* 2.1.1. Kerberos Principal Name Form: */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    53
GSS_DLLIMP extern const gss_OID_desc * const GSS_KRB5_NT_PRINCIPAL_NAME;
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    54
/* This name form shall be represented by the Object Identifier {iso(1)
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    55
 * member-body(2) United States(840) mit(113554) infosys(1) gssapi(2)
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    56
 * krb5(2) krb5_name(1)}.  The recommended symbolic name for this type
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    57
 * is "GSS_KRB5_NT_PRINCIPAL_NAME". */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    58
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    59
/* 2.1.2. Host-Based Service Name Form */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    60
#define GSS_KRB5_NT_HOSTBASED_SERVICE_NAME GSS_C_NT_HOSTBASED_SERVICE
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    61
/* This name form shall be represented by the Object Identifier {iso(1)
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    62
 * member-body(2) United States(840) mit(113554) infosys(1) gssapi(2)
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    63
 * generic(1) service_name(4)}.  The previously recommended symbolic
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    64
 * name for this type is "GSS_KRB5_NT_HOSTBASED_SERVICE_NAME".  The
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    65
 * currently preferred symbolic name for this type is
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    66
 * "GSS_C_NT_HOSTBASED_SERVICE". */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    67
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    68
/* 2.2.1. User Name Form */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    69
#define GSS_KRB5_NT_USER_NAME GSS_C_NT_USER_NAME    
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    70
/* This name form shall be represented by the Object Identifier {iso(1)
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    71
 * member-body(2) United States(840) mit(113554) infosys(1) gssapi(2)
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    72
 * generic(1) user_name(1)}.  The recommended symbolic name for this
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    73
 * type is "GSS_KRB5_NT_USER_NAME". */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    74
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    75
/* 2.2.2. Machine UID Form */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    76
#define GSS_KRB5_NT_MACHINE_UID_NAME GSS_C_NT_MACHINE_UID_NAME
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    77
/* This name form shall be represented by the Object Identifier {iso(1)
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    78
 * member-body(2) United States(840) mit(113554) infosys(1) gssapi(2)
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    79
 * generic(1) machine_uid_name(2)}.  The recommended symbolic name for
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    80
 * this type is "GSS_KRB5_NT_MACHINE_UID_NAME". */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    81
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    82
/* 2.2.3. String UID Form */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    83
#define GSS_KRB5_NT_STRING_UID_NAME GSS_C_NT_STRING_UID_NAME
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    84
/* This name form shall be represented by the Object Identifier {iso(1)
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    85
 * member-body(2) United States(840) mit(113554) infosys(1) gssapi(2)
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    86
 * generic(1) string_uid_name(3)}.  The recommended symbolic name for
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    87
 * this type is "GSS_KRB5_NT_STRING_UID_NAME". */ 
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    88
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    89
GSS_DLLIMP extern const gss_OID_desc * const gss_mech_krb5;
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    90
GSS_DLLIMP extern const gss_OID_desc * const gss_mech_krb5_old;
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    91
GSS_DLLIMP extern const gss_OID_desc * const gss_mech_krb5_wrong;
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    92
GSS_DLLIMP extern const gss_OID_set_desc * const gss_mech_set_krb5;
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    93
GSS_DLLIMP extern const gss_OID_set_desc * const gss_mech_set_krb5_old;
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    94
GSS_DLLIMP extern const gss_OID_set_desc * const gss_mech_set_krb5_both;
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    95
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    96
GSS_DLLIMP extern const gss_OID_desc * const gss_nt_krb5_name;
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    97
GSS_DLLIMP extern const gss_OID_desc * const gss_nt_krb5_principal;
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    98
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
    99
GSS_DLLIMP extern const gss_OID_desc krb5_gss_oid_array[];
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   100
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   101
#define gss_krb5_nt_general_name	gss_nt_krb5_name
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   102
#define gss_krb5_nt_principal		gss_nt_krb5_principal
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   103
#define gss_krb5_nt_service_name	gss_nt_service_name
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   104
#define gss_krb5_nt_user_name		gss_nt_user_name
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   105
#define gss_krb5_nt_machine_uid_name	gss_nt_machine_uid_name
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   106
#define gss_krb5_nt_string_uid_name	gss_nt_string_uid_name
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   107
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   108
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   109
#if defined(_WIN32)
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   110
typedef  unsigned __int64 gss_uint64;
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   111
#else /*windows*/
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   112
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   113
#ifdef _KERNEL
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   114
#include <sys/inttypes.h>
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   115
#else /* _KERNEL */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   116
#include <inttypes.h>
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   117
#endif /* _KERNEL */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   118
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   119
typedef  uint64_t gss_uint64;
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   120
#endif
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   121
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   122
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   123
typedef struct gss_krb5_lucid_key {
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   124
	OM_uint32	type;		/* key encryption type */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   125
	OM_uint32	length;		/* length of key data */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   126
	void *		data;		/* actual key data */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   127
} gss_krb5_lucid_key_t;
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   128
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   129
typedef struct gss_krb5_rfc1964_keydata {
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   130
	OM_uint32	sign_alg;	/* signing algorthm */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   131
	OM_uint32	seal_alg;	/* seal/encrypt algorthm */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   132
	gss_krb5_lucid_key_t	ctx_key;
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   133
					/* Context key
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   134
					   (Kerberos session key or subkey) */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   135
} gss_krb5_rfc1964_keydata_t;
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   136
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   137
typedef struct gss_krb5_cfx_keydata {
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   138
	OM_uint32		have_acceptor_subkey;
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   139
					/* 1 if there is an acceptor_subkey
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   140
					   present, 0 otherwise */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   141
	gss_krb5_lucid_key_t	ctx_key;
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   142
					/* Context key
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   143
					   (Kerberos session key or subkey) */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   144
	gss_krb5_lucid_key_t	acceptor_subkey;
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   145
					/* acceptor-asserted subkey or
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   146
					   0's if no acceptor subkey */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   147
} gss_krb5_cfx_keydata_t;
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   148
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   149
typedef struct gss_krb5_lucid_context_v1 {
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   150
	OM_uint32	version;	/* Structure version number (1)
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   151
					   MUST be at beginning of struct! */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   152
	OM_uint32	initiate;	/* Are we the initiator? */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   153
	OM_uint32	endtime;	/* expiration time of context */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   154
	gss_uint64	send_seq;	/* sender sequence number */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   155
	gss_uint64	recv_seq;	/* receive sequence number */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   156
	OM_uint32	protocol;	/* 0: rfc1964,
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   157
					   1: draft-ietf-krb-wg-gssapi-cfx-07 */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   158
	/*
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   159
	 * if (protocol == 0) rfc1964_kd should be used
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   160
	 * and cfx_kd contents are invalid and should be zero
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   161
	 * if (protocol == 1) cfx_kd should be used
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   162
	 * and rfc1964_kd contents are invalid and should be zero
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   163
	 */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   164
	gss_krb5_rfc1964_keydata_t rfc1964_kd;
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   165
	gss_krb5_cfx_keydata_t	   cfx_kd;
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   166
} gss_krb5_lucid_context_v1_t;
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   167
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   168
/*
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   169
 * Mask for determining the returned structure version.
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   170
 * See example below for usage.
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   171
 */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   172
typedef struct gss_krb5_lucid_context_version {
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   173
	OM_uint32	version;	/* Structure version number */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   174
} gss_krb5_lucid_context_version_t;
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   175
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   176
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   177
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   178
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   179
/* Alias for Heimdal compat. */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   180
#define gsskrb5_register_acceptor_identity krb5_gss_register_acceptor_identity
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   181
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   182
OM_uint32 KRB5_CALLCONV krb5_gss_register_acceptor_identity(const char *);
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   183
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   184
OM_uint32 KRB5_CALLCONV gss_krb5_copy_ccache
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   185
	(OM_uint32 *minor_status,
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   186
		   gss_cred_id_t cred_handle,
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   187
		   krb5_ccache out_ccache);
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   188
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   189
OM_uint32 KRB5_CALLCONV gss_krb5_ccache_name
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   190
	(OM_uint32 *minor_status, const char *name,
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   191
		   const char **out_name);
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   192
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   193
/*
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   194
 * gss_krb5_set_allowable_enctypes
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   195
 *
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   196
 * This function may be called by a context initiator after calling
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   197
 * gss_acquire_cred(), but before calling gss_init_sec_context(),
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   198
 * to restrict the set of enctypes which will be negotiated during
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   199
 * context establishment to those in the provided array.
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   200
 *
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   201
 * 'cred' must be a valid credential handle obtained via
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   202
 * gss_acquire_cred().  It may not be GSS_C_NO_CREDENTIAL.
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   203
 * gss_acquire_cred() may have been called to get a handle to
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   204
 * the default credential.
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   205
 *
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   206
 * The purpose of this function is to limit the keys that may
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   207
 * be exported via gss_krb5_export_lucid_sec_context(); thus it
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   208
 * should limit the enctypes of all keys that will be needed
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   209
 * after the security context has been established.
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   210
 * (i.e. context establishment may use a session key with a
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   211
 * stronger enctype than in the provided array, however a
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   212
 * subkey must be established within the enctype limits
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   213
 * established by this function.)
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   214
 *
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   215
 */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   216
OM_uint32 KRB5_CALLCONV
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   217
gss_krb5_set_allowable_enctypes(OM_uint32 *minor_status, 
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   218
				gss_cred_id_t cred,
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   219
				OM_uint32 num_ktypes,
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   220
				krb5_enctype *ktypes);
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   221
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   222
/*
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   223
 * Returns a non-opaque (lucid) version of the internal context
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   224
 * information.  
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   225
 *
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   226
 * Note that context_handle must not be used again by the caller
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   227
 * after this call.  The GSS implementation is free to release any
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   228
 * resources associated with the original context.  It is up to the
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   229
 * GSS implementation whether it returns pointers to existing data,
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   230
 * or copies of the data.  The caller should treat the returned
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   231
 * lucid context as read-only.
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   232
 * 
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   233
 * The caller must call gss_krb5_free_lucid_context() to free
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   234
 * the context and allocated resources when it is finished with it.
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   235
 *
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   236
 * 'version' is an integer indicating the highest version of lucid
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   237
 * context understood by the caller.  The highest version
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   238
 * understood by both the caller and the GSS implementation must
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   239
 * be returned.  The caller can determine which version of the
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   240
 * structure was actually returned by examining the version field
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   241
 * of the returned structure.  gss_krb5_lucid_context_version_t
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   242
 * may be used as a mask to examine the returned structure version.
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   243
 *
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   244
 * If there are no common versions, an error should be returned.
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   245
 * (XXX Need error definition(s))
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   246
 *
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   247
 * For example:
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   248
 *	void *return_ctx;
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   249
 *	gss_krb5_lucid_context_v1_t *ctx;
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   250
 *	OM_uint32 min_stat, maj_stat;
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   251
 *	OM_uint32 vers;
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   252
 *	gss_ctx_id_t *ctx_handle;
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   253
 *
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   254
 *	maj_stat = gss_krb5_export_lucid_sec_context(&min_stat,
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   255
 *			ctx_handle, 1, &return_ctx);
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   256
 *	// Verify success 
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   257
 *
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   258
 *	vers = ((gss_krb5_lucid_context_version_t *)return_ctx)->version;
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   259
 *	switch (vers) {
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   260
 *	case 1:
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   261
 *		ctx = (gss_krb5_lucid_context_v1_t *) return_ctx;
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   262
 *		break;
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   263
 *	default:
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   264
 *		// Error, unknown version returned
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   265
 *		break;
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   266
 *	}
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   267
 *
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   268
 */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   269
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   270
OM_uint32 KRB5_CALLCONV
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   271
gss_krb5_export_lucid_sec_context(OM_uint32 *minor_status,
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   272
				  gss_ctx_id_t *context_handle,
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   273
				  OM_uint32 version,
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   274
				  void **kctx);
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   275
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   276
/*
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   277
 * Frees the allocated storage associated with an
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   278
 * exported struct gss_krb5_lucid_context.
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   279
 */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   280
OM_uint32 KRB5_CALLCONV
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   281
gss_krb5_free_lucid_sec_context(OM_uint32 *minor_status,
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   282
				void *kctx);
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   283
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   284
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   285
OM_uint32 KRB5_CALLCONV
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   286
gsskrb5_extract_authz_data_from_sec_context(OM_uint32 *minor_status,
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   287
                                            const gss_ctx_id_t context_handle,
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   288
                                            int ad_type,
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   289
                                            gss_buffer_t ad_data);
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   290
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   291
OM_uint32 KRB5_CALLCONV
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   292
gss_krb5_set_cred_rcache(OM_uint32 *minor_status,
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   293
                         gss_cred_id_t cred,
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   294
                         krb5_rcache rcache);
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   295
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   296
OM_uint32 KRB5_CALLCONV
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   297
gsskrb5_extract_authtime_from_sec_context(OM_uint32 *, gss_ctx_id_t, krb5_timestamp *);
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   298
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   299
/*
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   300
 * gss_krb5_import_cred contains bare minimum functionality to make Samba 4
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   301
 * work. It does not conform to API MIT Kerberos v5 1.9(+) specification. 
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   302
 */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   303
OM_uint32 KRB5_CALLCONV
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   304
gss_krb5_import_cred(OM_uint32 *minor_status,
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   305
                     krb5_ccache id,
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   306
                     krb5_principal keytab_principal,
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   307
                     krb5_keytab keytab,
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   308
                     gss_cred_id_t *cred);
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   309
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   310
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   311
#ifdef __cplusplus
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   312
}
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   313
#endif /* __cplusplus */
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   314
29fdb14099eb PSARC/2015/008 Update Samba to release 4
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff changeset
   315
#endif /* _GSSAPI_KRB5_H_ */