xref: /freebsd/lib/libgssapi/gss_acquire_cred.3 (revision c0b9f4fe659b6839541970eb5675e57f4d814969)
1c0b9f4feSDoug Rabson.\" -*- nroff -*-
2c0b9f4feSDoug Rabson.\"
3c0b9f4feSDoug Rabson.\" Copyright (c) 2005 Doug Rabson
4c0b9f4feSDoug Rabson.\" All rights reserved.
5c0b9f4feSDoug Rabson.\"
6c0b9f4feSDoug Rabson.\" Redistribution and use in source and binary forms, with or without
7c0b9f4feSDoug Rabson.\" modification, are permitted provided that the following conditions
8c0b9f4feSDoug Rabson.\" are met:
9c0b9f4feSDoug Rabson.\" 1. Redistributions of source code must retain the above copyright
10c0b9f4feSDoug Rabson.\"    notice, this list of conditions and the following disclaimer.
11c0b9f4feSDoug Rabson.\" 2. Redistributions in binary form must reproduce the above copyright
12c0b9f4feSDoug Rabson.\"    notice, this list of conditions and the following disclaimer in the
13c0b9f4feSDoug Rabson.\"    documentation and/or other materials provided with the distribution.
14c0b9f4feSDoug Rabson.\"
15c0b9f4feSDoug Rabson.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16c0b9f4feSDoug Rabson.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17c0b9f4feSDoug Rabson.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18c0b9f4feSDoug Rabson.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19c0b9f4feSDoug Rabson.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20c0b9f4feSDoug Rabson.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21c0b9f4feSDoug Rabson.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22c0b9f4feSDoug Rabson.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23c0b9f4feSDoug Rabson.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24c0b9f4feSDoug Rabson.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25c0b9f4feSDoug Rabson.\" SUCH DAMAGE.
26c0b9f4feSDoug Rabson.\"
27c0b9f4feSDoug Rabson.\"	$FreeBSD$
28c0b9f4feSDoug Rabson.\"
29c0b9f4feSDoug Rabson.\" Copyright (C) The Internet Society (2000).  All Rights Reserved.
30c0b9f4feSDoug Rabson.\"
31c0b9f4feSDoug Rabson.\" This document and translations of it may be copied and furnished to
32c0b9f4feSDoug Rabson.\" others, and derivative works that comment on or otherwise explain it
33c0b9f4feSDoug Rabson.\" or assist in its implementation may be prepared, copied, published
34c0b9f4feSDoug Rabson.\" and distributed, in whole or in part, without restriction of any
35c0b9f4feSDoug Rabson.\" kind, provided that the above copyright notice and this paragraph are
36c0b9f4feSDoug Rabson.\" included on all such copies and derivative works.  However, this
37c0b9f4feSDoug Rabson.\" document itself may not be modified in any way, such as by removing
38c0b9f4feSDoug Rabson.\" the copyright notice or references to the Internet Society or other
39c0b9f4feSDoug Rabson.\" Internet organizations, except as needed for the purpose of
40c0b9f4feSDoug Rabson.\" developing Internet standards in which case the procedures for
41c0b9f4feSDoug Rabson.\" copyrights defined in the Internet Standards process must be
42c0b9f4feSDoug Rabson.\" followed, or as required to translate it into languages other than
43c0b9f4feSDoug Rabson.\" English.
44c0b9f4feSDoug Rabson.\"
45c0b9f4feSDoug Rabson.\" The limited permissions granted above are perpetual and will not be
46c0b9f4feSDoug Rabson.\" revoked by the Internet Society or its successors or assigns.
47c0b9f4feSDoug Rabson.\"
48c0b9f4feSDoug Rabson.\" This document and the information contained herein is provided on an
49c0b9f4feSDoug Rabson.\" "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
50c0b9f4feSDoug Rabson.\" TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
51c0b9f4feSDoug Rabson.\" BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
52c0b9f4feSDoug Rabson.\" HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
53c0b9f4feSDoug Rabson.\" MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
54c0b9f4feSDoug Rabson.\"
55c0b9f4feSDoug Rabson.\" The following commands are required for all man pages.
56c0b9f4feSDoug Rabson.Dd November 12, 2005
57c0b9f4feSDoug Rabson.Os
58c0b9f4feSDoug Rabson.Dt GSS_ACQUIRE_CRED 3 PRM
59c0b9f4feSDoug Rabson.Sh NAME
60c0b9f4feSDoug Rabson.Nm gss_acquire_cred
61c0b9f4feSDoug Rabson.Nd Obtain a GSS-API credential handle for pre-existing credentials
62c0b9f4feSDoug Rabson.\" This next command is for sections 2 and 3 only.
63c0b9f4feSDoug Rabson.\" .Sh LIBRARY
64c0b9f4feSDoug Rabson.Sh SYNOPSIS
65c0b9f4feSDoug Rabson.In "gssapi/gssapi.h"
66c0b9f4feSDoug Rabson.Ft OM_uint32
67c0b9f4feSDoug Rabson.Fo gss_acquire_cred
68c0b9f4feSDoug Rabson.Fa "OM_uint32 *minor_status"
69c0b9f4feSDoug Rabson.Fa "const gss_name_t desired_name"
70c0b9f4feSDoug Rabson.Fa "OM_uint32 time_req"
71c0b9f4feSDoug Rabson.Fa "const gss_OID_set desired_mechs"
72c0b9f4feSDoug Rabson.Fa "gss_cred_usage_t cred_usage"
73c0b9f4feSDoug Rabson.Fa "gss_cred_id_t *output_cred_handle"
74c0b9f4feSDoug Rabson.Fa "gss_OID_set *actual_mechs"
75c0b9f4feSDoug Rabson.Fa "OM_uint32 *time_rec"
76c0b9f4feSDoug Rabson.Fc
77c0b9f4feSDoug Rabson.Sh DESCRIPTION
78c0b9f4feSDoug RabsonAllows an application to acquire a handle for a pre-existing
79c0b9f4feSDoug Rabsoncredential by name.
80c0b9f4feSDoug RabsonGSS-API implementations must impose a local
81c0b9f4feSDoug Rabsonaccess-control policy on callers of this routine to prevent
82c0b9f4feSDoug Rabsonunauthorized callers from acquiring credentials to which they are not
83c0b9f4feSDoug Rabsonentitled.
84c0b9f4feSDoug RabsonThis routine is not intended to provide a "login to the
85c0b9f4feSDoug Rabsonnetwork" function, as such a function would involve the creation of
86c0b9f4feSDoug Rabsonnew credentials rather than merely acquiring a handle to existing
87c0b9f4feSDoug Rabsoncredentials.
88c0b9f4feSDoug RabsonSuch functions, if required, should be defined in
89c0b9f4feSDoug Rabsonimplementation-specific extensions to the API.
90c0b9f4feSDoug Rabson.Pp
91c0b9f4feSDoug RabsonIf desired_name is
92c0b9f4feSDoug Rabson.Dv GSS_C_NO_NAME ,
93c0b9f4feSDoug Rabsonthe call is interpreted as a
94c0b9f4feSDoug Rabsonrequest for a credential handle that will invoke default behavior
95c0b9f4feSDoug Rabsonwhen passed to
96c0b9f4feSDoug Rabson.Fn gss_init_sec_context
97c0b9f4feSDoug Rabson(if cred_usage is
98c0b9f4feSDoug Rabson.Dv GSS_C_INITIATE
99c0b9f4feSDoug Rabsonor
100c0b9f4feSDoug Rabson.Dv GSS_C_BOTH )
101c0b9f4feSDoug Rabsonor
102c0b9f4feSDoug Rabson.Fn gss_accept_sec_context
103c0b9f4feSDoug Rabson(if cred_usage is
104c0b9f4feSDoug Rabson.Dv GSS_C_ACCEPT
105c0b9f4feSDoug Rabsonor
106c0b9f4feSDoug Rabson.Dv GSS_C_BOTH ).
107c0b9f4feSDoug Rabson.Pp
108c0b9f4feSDoug RabsonMechanisms should honor the
109c0b9f4feSDoug Rabson.Fa desired_mechs
110c0b9f4feSDoug Rabsonparameter,
111c0b9f4feSDoug Rabsonand return a credential that is suitable to use only with the
112c0b9f4feSDoug Rabsonrequested mechanisms.
113c0b9f4feSDoug RabsonAn exception to this is the case where one underlying credential
114c0b9f4feSDoug Rabsonelement can be shared by multiple mechanisms;
115c0b9f4feSDoug Rabsonin this case it is permissible for an implementation to indicate all
116c0b9f4feSDoug Rabsonmechanisms with which the credential element may be used.
117c0b9f4feSDoug RabsonIf
118c0b9f4feSDoug Rabson.Fa desired_mechs
119c0b9f4feSDoug Rabsonis an empty set, behavior is undefined.
120c0b9f4feSDoug Rabson.Pp
121c0b9f4feSDoug RabsonThis routine is expected to be used primarily by context acceptors,
122c0b9f4feSDoug Rabsonsince implementations are likely to provide mechanism-specific ways
123c0b9f4feSDoug Rabsonof obtaining GSS-API initiator credentials from the system login
124c0b9f4feSDoug Rabsonprocess.
125c0b9f4feSDoug RabsonSome implementations may therefore not support the acquisition of
126c0b9f4feSDoug Rabson.Dv GSS_C_INITIATE
127c0b9f4feSDoug Rabsonor
128c0b9f4feSDoug Rabson.Dv GSS_C_BOTH
129c0b9f4feSDoug Rabsoncredentials via
130c0b9f4feSDoug Rabson.Fn gss_acquire_cred
131c0b9f4feSDoug Rabsonfor any name other than
132c0b9f4feSDoug Rabson.Dv GSS_C_NO_NAME ,
133c0b9f4feSDoug Rabsonor a name produced by applying either
134c0b9f4feSDoug Rabson.Fn gss_inquire_cred
135c0b9f4feSDoug Rabsonto a valid credential, or
136c0b9f4feSDoug Rabson.Fn gss_inquire_context
137c0b9f4feSDoug Rabsonto an active context.
138c0b9f4feSDoug Rabson.Pp
139c0b9f4feSDoug RabsonIf credential acquisition is time-consuming for a mechanism,
140c0b9f4feSDoug Rabsonthe mechanism may choose to delay the actual acquisition until the
141c0b9f4feSDoug Rabsoncredential is required
142c0b9f4feSDoug Rabson(e.g. by
143c0b9f4feSDoug Rabson.Fn gss_init_sec_context
144c0b9f4feSDoug Rabsonor
145c0b9f4feSDoug Rabson.Fn gss_accept_sec_context ).
146c0b9f4feSDoug RabsonSuch mechanism-specific implementation
147c0b9f4feSDoug Rabsondecisions should be invisible to the calling application;
148c0b9f4feSDoug Rabsonthus a call of
149c0b9f4feSDoug Rabson.Fn gss_inquire_cred
150c0b9f4feSDoug Rabsonimmediately following the call of
151c0b9f4feSDoug Rabson.Fn gss_acquire_cred
152c0b9f4feSDoug Rabsonmust return valid credential data,
153c0b9f4feSDoug Rabsonand may therefore incur the overhead of a deferred credential acquisition.
154c0b9f4feSDoug Rabson.Sh PARAMETERS
155c0b9f4feSDoug Rabson.Bl -tag
156c0b9f4feSDoug Rabson.It desired_name
157c0b9f4feSDoug RabsonName of principal whose credential should be acquired.
158c0b9f4feSDoug Rabson.It time_req
159c0b9f4feSDoug RabsonNumber of seconds that credentials should remain valid.
160c0b9f4feSDoug RabsonSpecify
161c0b9f4feSDoug Rabson.Dv GSS_C_INDEFINITE
162c0b9f4feSDoug Rabsonto request that the credentials have the maximum
163c0b9f4feSDoug Rabsonpermitted lifetime.
164c0b9f4feSDoug Rabson.It desired_mechs
165c0b9f4feSDoug RabsonSet of underlying security mechanisms that may be used.
166c0b9f4feSDoug Rabson.Dv GSS_C_NO_OID_SET
167c0b9f4feSDoug Rabsonmay be used to obtain an implementation-specific default.
168c0b9f4feSDoug Rabson.It cred_usage
169c0b9f4feSDoug Rabson.Bl -tag -width "GSS_C_INITIATE"
170c0b9f4feSDoug Rabson.It GSS_C_BOTH
171c0b9f4feSDoug RabsonCredentials may be used either to initiate or accept security
172c0b9f4feSDoug Rabsoncontexts.
173c0b9f4feSDoug Rabson.It GSS_C_INITIATE
174c0b9f4feSDoug RabsonCredentials will only be used to initiate security contexts.
175c0b9f4feSDoug Rabson.It GSS_C_ACCEPT
176c0b9f4feSDoug RabsonCredentials will only be used to accept security contexts.
177c0b9f4feSDoug Rabson.El
178c0b9f4feSDoug Rabson.It output_cred_handle
179c0b9f4feSDoug RabsonThe returned credential handle.
180c0b9f4feSDoug RabsonResources
181c0b9f4feSDoug Rabsonassociated with this credential handle must be released by
182c0b9f4feSDoug Rabsonthe application after use with a call to
183c0b9f4feSDoug Rabson.Fn gss_release_cred .
184c0b9f4feSDoug Rabson.It actual_mechs
185c0b9f4feSDoug RabsonThe set of mechanisms for which the credential is valid.
186c0b9f4feSDoug RabsonStorage associated with the returned OID-set must be released by the
187c0b9f4feSDoug Rabsonapplication after use with a call to
188c0b9f4feSDoug Rabson.Fn gss_release_oid_set .
189c0b9f4feSDoug RabsonSpecify
190c0b9f4feSDoug Rabson.Dv NULL if not required.
191c0b9f4feSDoug Rabson.It time_rec
192c0b9f4feSDoug RabsonActual number of seconds for which the returned credentials will
193c0b9f4feSDoug Rabsonremain valid.
194c0b9f4feSDoug RabsonIf the implementation does not support expiration of credentials,
195c0b9f4feSDoug Rabsonthe value
196c0b9f4feSDoug Rabson.Dv GSS_C_INDEFINITE
197c0b9f4feSDoug Rabsonwill be returned.
198c0b9f4feSDoug RabsonSpecify NULL if not required.
199c0b9f4feSDoug Rabson.It minor_status
200c0b9f4feSDoug RabsonMechanism specific status code.
201c0b9f4feSDoug Rabson.El
202c0b9f4feSDoug Rabson.Sh RETURN VALUES
203c0b9f4feSDoug Rabson.Bl -tag
204c0b9f4feSDoug Rabson.It GSS_S_COMPLETE
205c0b9f4feSDoug RabsonSuccessful completion.
206c0b9f4feSDoug Rabson.It GSS_S_BAD_MECH
207c0b9f4feSDoug RabsonUnavailable mechanism requested.
208c0b9f4feSDoug Rabson.It GSS_S_BAD_NAMETYPE
209c0b9f4feSDoug RabsonType contained within desired_name parameter is not supported.
210c0b9f4feSDoug Rabson.It GSS_S_BAD_NAME
211c0b9f4feSDoug RabsonValue supplied for desired_name parameter is ill formed.
212c0b9f4feSDoug Rabson.It GSS_S_CREDENTIALS_EXPIRED
213c0b9f4feSDoug RabsonThe credentials could not be acquired Because they have expired.
214c0b9f4feSDoug Rabson.It GSS_S_NO_CRED
215c0b9f4feSDoug RabsonNo credentials were found for the specified name.
216c0b9f4feSDoug Rabson.El
217c0b9f4feSDoug Rabson.Sh SEE ALSO
218c0b9f4feSDoug Rabson.Xr gss_init_sec_context 3 ,
219c0b9f4feSDoug Rabson.Xr gss_accept_sec_context 3 ,
220c0b9f4feSDoug Rabson.Xr gss_inquire_cred 3 ,
221c0b9f4feSDoug Rabson.Xr gss_inquire_context 3 ,
222c0b9f4feSDoug Rabson.Xr gss_release_cred 3 ,
223c0b9f4feSDoug Rabson.Xr gss_release_oid_set 3
224c0b9f4feSDoug Rabson.Sh STANDARDS
225c0b9f4feSDoug Rabson.Bl -tag
226c0b9f4feSDoug Rabson.It RFC 2743
227c0b9f4feSDoug RabsonGeneric Security Service Application Program Interface Version 2, Update 1
228c0b9f4feSDoug Rabson.It RFC 2744
229c0b9f4feSDoug RabsonGeneric Security Service API Version 2 : C-bindings
230c0b9f4feSDoug Rabson.\" .Sh HISTORY
231c0b9f4feSDoug Rabson.El
232c0b9f4feSDoug Rabson.Sh HISTORY
233c0b9f4feSDoug RabsonThe
234c0b9f4feSDoug Rabson.Nm
235c0b9f4feSDoug Rabsonmanual page example first appeared in
236c0b9f4feSDoug Rabson.Fx 7.0 .
237c0b9f4feSDoug Rabson.Sh AUTHORS
238c0b9f4feSDoug RabsonJohn Wray, Iris Associates
239