HEIMDAL: move code from source4/heimdal* to third_party/heimdal*
[samba.git] / third_party / heimdal / lib / gssapi / mech / doxygen.c
1 /*
2  * Copyright (c) 2009 Kungliga Tekniska Högskolan
3  * (Royal Institute of Technology, Stockholm, Sweden).
4  * All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  *
10  * 1. Redistributions of source code must retain the above copyright
11  *    notice, this list of conditions and the following disclaimer.
12  *
13  * 2. Redistributions in binary form must reproduce the above copyright
14  *    notice, this list of conditions and the following disclaimer in the
15  *    documentation and/or other materials provided with the distribution.
16  *
17  * 3. Neither the name of the Institute nor the names of its contributors
18  *    may be used to endorse or promote products derived from this software
19  *    without specific prior written permission.
20  *
21  * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
22  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24  * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
25  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31  * SUCH DAMAGE.
32  */
33
34 /*! @mainpage Heimdal GSS-API Library
35  *
36  * Heimdal implements the following mechanisms:
37  *
38  * - Kerberos 5
39  * - SPNEGO
40  * - NTLM
41  *
42  * @sa
43  *
44  * - @ref gssapi_services_intro
45  * - @ref gssapi_mechs
46  * - @ref gssapi_api_INvsMN
47  * - The project web page: http://www.h5l.org/
48  */
49
50 /**
51  * @page gssapi_services_intro Introduction to GSS-API services
52  * @section gssapi_services GSS-API services
53  *
54  * @subsection gssapi_services_context Context creation
55  *
56  *  - delegation
57  *  - mutual authentication
58  *  - anonymous
59  *  - use per message before context creation has completed
60  *
61  *  return status:
62  *  - support conf
63  *  - support int
64  *
65  * @subsection gssapi_context_flags Context creation flags
66  *
67  * - GSS_C_DELEG_FLAG
68  * - GSS_C_MUTUAL_FLAG
69  * - GSS_C_REPLAY_FLAG
70  * - GSS_C_SEQUENCE_FLAG
71  * - GSS_C_CONF_FLAG
72  * - GSS_C_INTEG_FLAG
73  * - GSS_C_ANON_FLAG
74  * - GSS_C_PROT_READY_FLAG
75  * - GSS_C_TRANS_FLAG
76  * - GSS_C_DCE_STYLE
77  * - GSS_C_IDENTIFY_FLAG
78  * - GSS_C_EXTENDED_ERROR_FLAG
79  * - GSS_C_DELEG_POLICY_FLAG
80  *
81  *
82  * @subsection gssapi_services_permessage Per-message services
83  *
84  *  - conf
85  *  - int
86  *  - message integrity
87  *  - replay detection
88  *  - out of sequence
89  *
90  */
91
92 /**
93  * @page gssapi_mechs_intro GSS-API mechanisms
94  * @section gssapi_mechs GSS-API mechanisms
95  *
96  * - Kerberos 5 - GSS_KRB5_MECHANISM
97  * - SPNEGO - GSS_SPNEGO_MECHANISM
98  * - NTLM - GSS_NTLM_MECHANISM
99
100  */
101
102
103 /**
104  * @page internalVSmechname Internal names and mechanism names
105  * @section gssapi_api_INvsMN Name forms
106  *
107  * There are two name representations in GSS-API: Internal form and
108  * Contiguous string ("flat") form. Functions gss_export_name() and
109  * gss_import_name() can be used to convert between the two forms.
110  *
111  * - The contiguous string form is described by an oid specificing the
112  *   type and an octet string. A special form of the contiguous
113  *   string form is the exported name object. The exported name
114  *   defined for each mechanism, is something that can be stored and
115  *   compared later. The exported name is what should be used for
116  *   ACLs comparisons.
117  *
118  * - The Internal form is opaque to the application programmer and
119  *   is implementation-dependent.
120  *
121  * - There is also a special form of the Internal Name (IN), and that is
122  *   the Mechanism Name (MN). In the mechanism name all the generic
123  *   information is stripped of and only contain the information for
124  *   one mechanism.  In GSS-API some function return MN and some
125  *   require MN as input. Each of these function is marked up as such.
126  *
127  * @FIXME Describe relationship between import_name, canonicalize_name,
128  * export_name and friends.  Also, update for RFC2743 language
129  * ("contiguous" and "flat" are gone, leaving just "exported name
130  * token", "internal", and "MN").
131  */
132
133 /** @defgroup gssapi Heimdal GSS-API functions */