Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/crypto/heimdal/lib/gssapi/spnego/external.c
34907 views
1
/*
2
* Copyright (c) 2004, PADL Software Pty Ltd.
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
*
9
* 1. Redistributions of source code must retain the above copyright
10
* notice, this list of conditions and the following disclaimer.
11
*
12
* 2. Redistributions in binary form must reproduce the above copyright
13
* notice, this list of conditions and the following disclaimer in the
14
* documentation and/or other materials provided with the distribution.
15
*
16
* 3. Neither the name of PADL Software nor the names of its contributors
17
* may be used to endorse or promote products derived from this software
18
* without specific prior written permission.
19
*
20
* THIS SOFTWARE IS PROVIDED BY PADL SOFTWARE AND CONTRIBUTORS ``AS IS'' AND
21
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23
* ARE DISCLAIMED. IN NO EVENT SHALL PADL SOFTWARE OR CONTRIBUTORS BE LIABLE
24
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30
* SUCH DAMAGE.
31
*/
32
33
#include "spnego_locl.h"
34
#include <gssapi_mech.h>
35
36
/*
37
* RFC2478, SPNEGO:
38
* The security mechanism of the initial
39
* negotiation token is identified by the Object Identifier
40
* iso.org.dod.internet.security.mechanism.snego (1.3.6.1.5.5.2).
41
*/
42
#if 0
43
static gss_mo_desc spnego_mo[] = {
44
{
45
GSS_C_MA_SASL_MECH_NAME,
46
GSS_MO_MA,
47
"SASL mech name",
48
rk_UNCONST("SPNEGO"),
49
_gss_mo_get_ctx_as_string,
50
NULL
51
},
52
{
53
GSS_C_MA_MECH_NAME,
54
GSS_MO_MA,
55
"Mechanism name",
56
rk_UNCONST("SPNEGO"),
57
_gss_mo_get_ctx_as_string,
58
NULL
59
},
60
{
61
GSS_C_MA_MECH_DESCRIPTION,
62
GSS_MO_MA,
63
"Mechanism description",
64
rk_UNCONST("Heimdal SPNEGO Mechanism"),
65
_gss_mo_get_ctx_as_string,
66
NULL
67
},
68
{
69
GSS_C_MA_MECH_NEGO,
70
GSS_MO_MA
71
},
72
{
73
GSS_C_MA_MECH_PSEUDO,
74
GSS_MO_MA
75
}
76
};
77
#endif
78
79
static gssapi_mech_interface_desc spnego_mech = {
80
GMI_VERSION,
81
"spnego",
82
{6, rk_UNCONST("\x2b\x06\x01\x05\x05\x02") },
83
0,
84
_gss_spnego_acquire_cred,
85
_gss_spnego_release_cred,
86
_gss_spnego_init_sec_context,
87
_gss_spnego_accept_sec_context,
88
_gss_spnego_process_context_token,
89
_gss_spnego_internal_delete_sec_context,
90
_gss_spnego_context_time,
91
_gss_spnego_get_mic,
92
_gss_spnego_verify_mic,
93
_gss_spnego_wrap,
94
_gss_spnego_unwrap,
95
NULL, /* gm_display_status */
96
NULL, /* gm_indicate_mechs */
97
_gss_spnego_compare_name,
98
_gss_spnego_display_name,
99
_gss_spnego_import_name,
100
_gss_spnego_export_name,
101
_gss_spnego_release_name,
102
_gss_spnego_inquire_cred,
103
_gss_spnego_inquire_context,
104
_gss_spnego_wrap_size_limit,
105
gss_add_cred,
106
_gss_spnego_inquire_cred_by_mech,
107
_gss_spnego_export_sec_context,
108
_gss_spnego_import_sec_context,
109
NULL /* _gss_spnego_inquire_names_for_mech */,
110
_gss_spnego_inquire_mechs_for_name,
111
_gss_spnego_canonicalize_name,
112
_gss_spnego_duplicate_name,
113
_gss_spnego_inquire_sec_context_by_oid,
114
_gss_spnego_inquire_cred_by_oid,
115
_gss_spnego_set_sec_context_option,
116
_gss_spnego_set_cred_option,
117
_gss_spnego_pseudo_random,
118
#if 0
119
_gss_spnego_wrap_iov,
120
_gss_spnego_unwrap_iov,
121
_gss_spnego_wrap_iov_length,
122
#else
123
NULL,
124
NULL,
125
NULL,
126
#endif
127
NULL,
128
#if 0
129
_gss_spnego_export_cred,
130
_gss_spnego_import_cred,
131
#else
132
NULL,
133
NULL,
134
#endif
135
NULL,
136
NULL,
137
NULL,
138
NULL,
139
NULL,
140
NULL,
141
NULL,
142
#if 0
143
spnego_mo,
144
sizeof(spnego_mo) / sizeof(spnego_mo[0]),
145
#else
146
NULL,
147
0,
148
#endif
149
NULL,
150
NULL,
151
NULL,
152
NULL,
153
NULL,
154
NULL,
155
};
156
157
gssapi_mech_interface
158
__gss_spnego_initialize(void)
159
{
160
return &spnego_mech;
161
}
162
163