1   /*
   2    * Copyright 1996-2002 Sun Microsystems, Inc.  All rights reserved.
   3    * Use is subject to license terms.
   4    */
   5   
   6 | #pragma ident        "@(#)gen_oids.c        1.16        04/09/08 SMI"
   6 | #pragma ident        "@(#)gen_oids.c        1.15        02/02/26 SMI"
   7   
   8   /*
   9    * Copyright 1993 by OpenVision Technologies, Inc.
  10    *
  11    * Permission to use, copy, modify, distribute, and sell this software
  12    * and its documentation for any purpose is hereby granted without fee,
  13    * provided that the above copyright notice appears in all copies and
  14    * that both that copyright notice and this permission notice appear in
  15    * supporting documentation, and that the name of OpenVision not be used
  16    * in advertising or publicity pertaining to distribution of the software
  17    * without specific, written prior permission. OpenVision makes no
  18    * representations about the suitability of this software for any
  19    * purpose.  It is provided "as is" without express or implied warranty.
  20    *
  21    * OPENVISION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  22    * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
  23    * EVENT SHALL OPENVISION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  24    * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
  25    * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
  26    * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  27    * PERFORMANCE OF THIS SOFTWARE.
  28    */
  29   
  30   #include <mechglueP.h>
  31   
  32   /*
  33    * See krb5/gssapi_krb5.c for a description of the algorithm for
  34    * encoding an object identifier.
  35    */
  36   
  37   /*
  38    * The OID of user_name is(gss_nt_user_name, GSS_C_NT_USER_NAME):
  39    *         iso(1) member-body(2) US(840) mit(113554) infosys(1) gssapi(2)
  40    *         generic(1) user_name(1) = 1.2.840.113554.1.2.1.1
  41    * machine_uid_name(gss_nt_machine_uid_name, GSS_C_NT_MACHINE_UID_NAME):
  42    *         iso(1) member-body(2) US(840) mit(113554) infosys(1) gssapi(2)
  43    *         generic(1) machine_uid_name(2) = 1.2.840.113554.1.2.1.2
  44    * string_uid_name(gss_nt_string_uid_name,GSS_C_NT_STRING_UID_NAME):
  45    *         iso(1) member-body(2) US(840) mit(113554) infosys(1) gssapi(2)
  46    *         generic(1) string_uid_name(3) = 1.2.840.113554.1.2.1.3
  47    * service_name(gss_nt_service_name):
  48    *         iso(1) member-body(2) US(840) mit(113554) infosys(1) gssapi(2)
  49    *         generic(1) service_name(4) = 1.2.840.113554.1.2.1.4
  50 +  * hostbased_service_name(GSS_C_NT_HOSTBASED_SERVICE)
  51 +  *         iso(1) org(3) dod(6) 1(internet) 5(security) 6(nametypes)
  52 +  *           2(gss-host-based-services) == 1.3.6.1.5.6.2
  53 +  * anonymous_name(GSS_C_NT_ANONYMOUS)
  54 +  *         iso(1) org(3) dod(6) 1(internet) 5(security) 6(nametypes)
  55 +  *           3(anonymous) = 1.3.6.1.5.6.3
  56 +  * export_name(GSS_C_NT_EXPORT)
  57 +  *         iso(1) org(3) dod(6) 1(internet) 5(security) 6(nametypes)
  58 +  *           4(export) = 1.3.6.1.5.6.4
  59   */
  60   
  61   static const gss_OID_desc oids[] = {
  62           {10, "\052\206\110\206\367\022\001\002\001\001"},
  63           {10, "\052\206\110\206\367\022\001\002\001\002"},
  64           {10, "\052\206\110\206\367\022\001\002\001\003"},
  65           {10, "\052\206\110\206\367\022\001\002\001\004"},
  66           {6, "\053\006\001\005\006\002"},
  67           {6, "\053\006\001\005\006\003"},
  68           {6, "\053\006\001\005\006\004"},
  69   };
  70   
  71   const gss_OID_desc * const gss_nt_user_name = oids+0;
  72   const gss_OID_desc * const gss_nt_machine_uid_name = oids+1;
  73   const gss_OID_desc * const gss_nt_string_uid_name = oids+2;
  74   const gss_OID_desc * const gss_nt_service_name = oids+3;
  75 + /* XXXXX These are needed for Kerberos */
  76 + const gss_OID_desc * const gss_nt_service_name_v2 = oids+4;
  77 + const gss_OID_desc * const gss_nt_exported_name = oids+6;
  78 + 
  79 + 
  80 + /*
  81 +  * These are added to reflect definitions in the
  82 +  * gss c-bindings spec.
  83 +  */
  84 + 
  85 + /*
  86 +  * The use of the following defines are preferred over the above defines.
  87 +  * This is because the following are the only ones defined
  88 +  * in GSS-API Specs.
  89 +  */
  90 + const gss_OID GSS_C_NT_USER_NAME = (gss_OID)oids+0;
  91 + const gss_OID GSS_C_NT_MACHINE_UID_NAME = (gss_OID)oids+1;
  92 + const gss_OID GSS_C_NT_STRING_UID_NAME = (gss_OID)oids+2;
  93 + const gss_OID GSS_C_NT_HOSTBASED_SERVICE = (gss_OID)oids+4;
  94 + const gss_OID GSS_C_NT_ANONYMOUS = (gss_OID)oids+5;
  95 + const gss_OID GSS_C_NT_EXPORT_NAME = (gss_OID)oids+6;