linux/include/linux/sunrpc/gss_err.h
<<
>>
Prefs
   1/*
   2 *  linux/include/sunrpc/gss_err.h
   3 *
   4 *  Adapted from MIT Kerberos 5-1.2.1 include/gssapi/gssapi.h
   5 *
   6 *  Copyright (c) 2002 The Regents of the University of Michigan.
   7 *  All rights reserved.
   8 *
   9 *  Andy Adamson   <andros@umich.edu>
  10 */
  11
  12/*
  13 * Copyright 1993 by OpenVision Technologies, Inc.
  14 * 
  15 * Permission to use, copy, modify, distribute, and sell this software
  16 * and its documentation for any purpose is hereby granted without fee,
  17 * provided that the above copyright notice appears in all copies and
  18 * that both that copyright notice and this permission notice appear in
  19 * supporting documentation, and that the name of OpenVision not be used
  20 * in advertising or publicity pertaining to distribution of the software
  21 * without specific, written prior permission. OpenVision makes no
  22 * representations about the suitability of this software for any
  23 * purpose.  It is provided "as is" without express or implied warranty.
  24 * 
  25 * OPENVISION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  26 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
  27 * EVENT SHALL OPENVISION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  28 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
  29 * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
  30 * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  31 * PERFORMANCE OF THIS SOFTWARE.
  32 */
  33
  34#ifndef _LINUX_SUNRPC_GSS_ERR_H
  35#define _LINUX_SUNRPC_GSS_ERR_H
  36
  37typedef unsigned int OM_uint32;
  38
  39/*
  40 * Flag bits for context-level services.
  41 */
  42#define GSS_C_DELEG_FLAG 1
  43#define GSS_C_MUTUAL_FLAG 2
  44#define GSS_C_REPLAY_FLAG 4
  45#define GSS_C_SEQUENCE_FLAG 8
  46#define GSS_C_CONF_FLAG 16
  47#define GSS_C_INTEG_FLAG 32
  48#define GSS_C_ANON_FLAG 64
  49#define GSS_C_PROT_READY_FLAG 128
  50#define GSS_C_TRANS_FLAG 256
  51
  52/*
  53 * Credential usage options
  54 */
  55#define GSS_C_BOTH 0
  56#define GSS_C_INITIATE 1
  57#define GSS_C_ACCEPT 2
  58
  59/*
  60 * Status code types for gss_display_status
  61 */
  62#define GSS_C_GSS_CODE 1
  63#define GSS_C_MECH_CODE 2
  64
  65
  66/*
  67 * Expiration time of 2^32-1 seconds means infinite lifetime for a
  68 * credential or security context
  69 */
  70#define GSS_C_INDEFINITE ((OM_uint32) 0xfffffffful)
  71
  72
  73/* Major status codes */
  74
  75#define GSS_S_COMPLETE 0
  76
  77/*
  78 * Some "helper" definitions to make the status code macros obvious.
  79 */
  80#define GSS_C_CALLING_ERROR_OFFSET 24
  81#define GSS_C_ROUTINE_ERROR_OFFSET 16
  82#define GSS_C_SUPPLEMENTARY_OFFSET 0
  83#define GSS_C_CALLING_ERROR_MASK ((OM_uint32) 0377ul)
  84#define GSS_C_ROUTINE_ERROR_MASK ((OM_uint32) 0377ul)
  85#define GSS_C_SUPPLEMENTARY_MASK ((OM_uint32) 0177777ul)
  86
  87/*
  88 * The macros that test status codes for error conditions.  Note that the
  89 * GSS_ERROR() macro has changed slightly from the V1 GSSAPI so that it now
  90 * evaluates its argument only once.
  91 */
  92#define GSS_CALLING_ERROR(x) \
  93  ((x) & (GSS_C_CALLING_ERROR_MASK << GSS_C_CALLING_ERROR_OFFSET))
  94#define GSS_ROUTINE_ERROR(x) \
  95  ((x) & (GSS_C_ROUTINE_ERROR_MASK << GSS_C_ROUTINE_ERROR_OFFSET))
  96#define GSS_SUPPLEMENTARY_INFO(x) \
  97  ((x) & (GSS_C_SUPPLEMENTARY_MASK << GSS_C_SUPPLEMENTARY_OFFSET))
  98#define GSS_ERROR(x) \
  99  ((x) & ((GSS_C_CALLING_ERROR_MASK << GSS_C_CALLING_ERROR_OFFSET) | \
 100          (GSS_C_ROUTINE_ERROR_MASK << GSS_C_ROUTINE_ERROR_OFFSET)))
 101
 102/*
 103 * Now the actual status code definitions
 104 */
 105
 106/*
 107 * Calling errors:
 108 */
 109#define GSS_S_CALL_INACCESSIBLE_READ \
 110                             (((OM_uint32) 1ul) << GSS_C_CALLING_ERROR_OFFSET)
 111#define GSS_S_CALL_INACCESSIBLE_WRITE \
 112                             (((OM_uint32) 2ul) << GSS_C_CALLING_ERROR_OFFSET)
 113#define GSS_S_CALL_BAD_STRUCTURE \
 114                             (((OM_uint32) 3ul) << GSS_C_CALLING_ERROR_OFFSET)
 115
 116/*
 117 * Routine errors:
 118 */
 119#define GSS_S_BAD_MECH (((OM_uint32) 1ul) << GSS_C_ROUTINE_ERROR_OFFSET)
 120#define GSS_S_BAD_NAME (((OM_uint32) 2ul) << GSS_C_ROUTINE_ERROR_OFFSET)
 121#define GSS_S_BAD_NAMETYPE (((OM_uint32) 3ul) << GSS_C_ROUTINE_ERROR_OFFSET)
 122#define GSS_S_BAD_BINDINGS (((OM_uint32) 4ul) << GSS_C_ROUTINE_ERROR_OFFSET)
 123#define GSS_S_BAD_STATUS (((OM_uint32) 5ul) << GSS_C_ROUTINE_ERROR_OFFSET)
 124#define GSS_S_BAD_SIG (((OM_uint32) 6ul) << GSS_C_ROUTINE_ERROR_OFFSET)
 125#define GSS_S_NO_CRED (((OM_uint32) 7ul) << GSS_C_ROUTINE_ERROR_OFFSET)
 126#define GSS_S_NO_CONTEXT (((OM_uint32) 8ul) << GSS_C_ROUTINE_ERROR_OFFSET)
 127#define GSS_S_DEFECTIVE_TOKEN (((OM_uint32) 9ul) << GSS_C_ROUTINE_ERROR_OFFSET)
 128#define GSS_S_DEFECTIVE_CREDENTIAL \
 129     (((OM_uint32) 10ul) << GSS_C_ROUTINE_ERROR_OFFSET)
 130#define GSS_S_CREDENTIALS_EXPIRED \
 131     (((OM_uint32) 11ul) << GSS_C_ROUTINE_ERROR_OFFSET)
 132#define GSS_S_CONTEXT_EXPIRED \
 133     (((OM_uint32) 12ul) << GSS_C_ROUTINE_ERROR_OFFSET)
 134#define GSS_S_FAILURE (((OM_uint32) 13ul) << GSS_C_ROUTINE_ERROR_OFFSET)
 135#define GSS_S_BAD_QOP (((OM_uint32) 14ul) << GSS_C_ROUTINE_ERROR_OFFSET)
 136#define GSS_S_UNAUTHORIZED (((OM_uint32) 15ul) << GSS_C_ROUTINE_ERROR_OFFSET)
 137#define GSS_S_UNAVAILABLE (((OM_uint32) 16ul) << GSS_C_ROUTINE_ERROR_OFFSET)
 138#define GSS_S_DUPLICATE_ELEMENT \
 139     (((OM_uint32) 17ul) << GSS_C_ROUTINE_ERROR_OFFSET)
 140#define GSS_S_NAME_NOT_MN \
 141     (((OM_uint32) 18ul) << GSS_C_ROUTINE_ERROR_OFFSET)
 142
 143/*
 144 * Supplementary info bits:
 145 */
 146#define GSS_S_CONTINUE_NEEDED (1 << (GSS_C_SUPPLEMENTARY_OFFSET + 0))
 147#define GSS_S_DUPLICATE_TOKEN (1 << (GSS_C_SUPPLEMENTARY_OFFSET + 1))
 148#define GSS_S_OLD_TOKEN (1 << (GSS_C_SUPPLEMENTARY_OFFSET + 2))
 149#define GSS_S_UNSEQ_TOKEN (1 << (GSS_C_SUPPLEMENTARY_OFFSET + 3))
 150#define GSS_S_GAP_TOKEN (1 << (GSS_C_SUPPLEMENTARY_OFFSET + 4))
 151
 152/* XXXX these are not part of the GSSAPI C bindings!  (but should be) */
 153
 154#define GSS_CALLING_ERROR_FIELD(x) \
 155   (((x) >> GSS_C_CALLING_ERROR_OFFSET) & GSS_C_CALLING_ERROR_MASK)
 156#define GSS_ROUTINE_ERROR_FIELD(x) \
 157   (((x) >> GSS_C_ROUTINE_ERROR_OFFSET) & GSS_C_ROUTINE_ERROR_MASK)
 158#define GSS_SUPPLEMENTARY_INFO_FIELD(x) \
 159   (((x) >> GSS_C_SUPPLEMENTARY_OFFSET) & GSS_C_SUPPLEMENTARY_MASK)
 160
 161/* XXXX This is a necessary evil until the spec is fixed */
 162#define GSS_S_CRED_UNAVAIL GSS_S_FAILURE
 163
 164#endif /* __LINUX_SUNRPC_GSS_ERR_H */
 165