xref: /minix3/crypto/external/bsd/heimdal/dist/lib/krb5/krb5_get_creds.3 (revision ebfedea0ce5bbe81e252ddf32d732e40fb633fae)
1*ebfedea0SLionel Sambuc.\"	$NetBSD: krb5_get_creds.3,v 1.1.1.2 2011/04/14 14:09:23 elric Exp $
2*ebfedea0SLionel Sambuc.\"
3*ebfedea0SLionel Sambuc.\" Copyright (c) 2006 Kungliga Tekniska Högskolan
4*ebfedea0SLionel Sambuc.\" (Royal Institute of Technology, Stockholm, Sweden).
5*ebfedea0SLionel Sambuc.\" All rights reserved.
6*ebfedea0SLionel Sambuc.\"
7*ebfedea0SLionel Sambuc.\" Redistribution and use in source and binary forms, with or without
8*ebfedea0SLionel Sambuc.\" modification, are permitted provided that the following conditions
9*ebfedea0SLionel Sambuc.\" are met:
10*ebfedea0SLionel Sambuc.\"
11*ebfedea0SLionel Sambuc.\" 1. Redistributions of source code must retain the above copyright
12*ebfedea0SLionel Sambuc.\"    notice, this list of conditions and the following disclaimer.
13*ebfedea0SLionel Sambuc.\"
14*ebfedea0SLionel Sambuc.\" 2. Redistributions in binary form must reproduce the above copyright
15*ebfedea0SLionel Sambuc.\"    notice, this list of conditions and the following disclaimer in the
16*ebfedea0SLionel Sambuc.\"    documentation and/or other materials provided with the distribution.
17*ebfedea0SLionel Sambuc.\"
18*ebfedea0SLionel Sambuc.\" 3. Neither the name of the Institute nor the names of its contributors
19*ebfedea0SLionel Sambuc.\"    may be used to endorse or promote products derived from this software
20*ebfedea0SLionel Sambuc.\"    without specific prior written permission.
21*ebfedea0SLionel Sambuc.\"
22*ebfedea0SLionel Sambuc.\" THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
23*ebfedea0SLionel Sambuc.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24*ebfedea0SLionel Sambuc.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25*ebfedea0SLionel Sambuc.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
26*ebfedea0SLionel Sambuc.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27*ebfedea0SLionel Sambuc.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28*ebfedea0SLionel Sambuc.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29*ebfedea0SLionel Sambuc.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30*ebfedea0SLionel Sambuc.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31*ebfedea0SLionel Sambuc.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32*ebfedea0SLionel Sambuc.\" SUCH DAMAGE.
33*ebfedea0SLionel Sambuc.\"
34*ebfedea0SLionel Sambuc.\" Id
35*ebfedea0SLionel Sambuc.\"
36*ebfedea0SLionel Sambuc.Dd June 15, 2006
37*ebfedea0SLionel Sambuc.Dt KRB5_GET_CREDS 3
38*ebfedea0SLionel Sambuc.Os
39*ebfedea0SLionel Sambuc.Sh NAME
40*ebfedea0SLionel Sambuc.Nm krb5_get_creds ,
41*ebfedea0SLionel Sambuc.Nm krb5_get_creds_opt_add_options ,
42*ebfedea0SLionel Sambuc.Nm krb5_get_creds_opt_alloc ,
43*ebfedea0SLionel Sambuc.Nm krb5_get_creds_opt_free ,
44*ebfedea0SLionel Sambuc.Nm krb5_get_creds_opt_set_enctype ,
45*ebfedea0SLionel Sambuc.Nm krb5_get_creds_opt_set_impersonate ,
46*ebfedea0SLionel Sambuc.Nm krb5_get_creds_opt_set_options ,
47*ebfedea0SLionel Sambuc.Nm krb5_get_creds_opt_set_ticket
48*ebfedea0SLionel Sambuc.Nd get credentials from the KDC
49*ebfedea0SLionel Sambuc.Sh LIBRARY
50*ebfedea0SLionel SambucKerberos 5 Library (libkrb5, -lkrb5)
51*ebfedea0SLionel Sambuc.Sh SYNOPSIS
52*ebfedea0SLionel Sambuc.In krb5/krb5.h
53*ebfedea0SLionel Sambuc.Ft krb5_error_code
54*ebfedea0SLionel Sambuc.Fo krb5_get_creds
55*ebfedea0SLionel Sambuc.Fa "krb5_context context"
56*ebfedea0SLionel Sambuc.Fa "krb5_get_creds_opt opt"
57*ebfedea0SLionel Sambuc.Fa "krb5_ccache ccache"
58*ebfedea0SLionel Sambuc.Fa "krb5_const_principal inprinc"
59*ebfedea0SLionel Sambuc.Fa "krb5_creds **out_creds"
60*ebfedea0SLionel Sambuc.Fc
61*ebfedea0SLionel Sambuc.Ft void
62*ebfedea0SLionel Sambuc.Fo krb5_get_creds_opt_add_options
63*ebfedea0SLionel Sambuc.Fa "krb5_context context"
64*ebfedea0SLionel Sambuc.Fa "krb5_get_creds_opt opt"
65*ebfedea0SLionel Sambuc.Fa "krb5_flags options"
66*ebfedea0SLionel Sambuc.Fc
67*ebfedea0SLionel Sambuc.Ft krb5_error_code
68*ebfedea0SLionel Sambuc.Fo krb5_get_creds_opt_alloc
69*ebfedea0SLionel Sambuc.Fa "krb5_context context"
70*ebfedea0SLionel Sambuc.Fa "krb5_get_creds_opt *opt"
71*ebfedea0SLionel Sambuc.Fc
72*ebfedea0SLionel Sambuc.Ft void
73*ebfedea0SLionel Sambuc.Fo krb5_get_creds_opt_free
74*ebfedea0SLionel Sambuc.Fa "krb5_context context"
75*ebfedea0SLionel Sambuc.Fa "krb5_get_creds_opt opt"
76*ebfedea0SLionel Sambuc.Fc
77*ebfedea0SLionel Sambuc.Ft void
78*ebfedea0SLionel Sambuc.Fo krb5_get_creds_opt_set_enctype
79*ebfedea0SLionel Sambuc.Fa "krb5_context context"
80*ebfedea0SLionel Sambuc.Fa "krb5_get_creds_opt opt"
81*ebfedea0SLionel Sambuc.Fa "krb5_enctype enctype"
82*ebfedea0SLionel Sambuc.Fc
83*ebfedea0SLionel Sambuc.Ft krb5_error_code
84*ebfedea0SLionel Sambuc.Fo krb5_get_creds_opt_set_impersonate
85*ebfedea0SLionel Sambuc.Fa "krb5_context context"
86*ebfedea0SLionel Sambuc.Fa "krb5_get_creds_opt opt"
87*ebfedea0SLionel Sambuc.Fa "krb5_const_principal self"
88*ebfedea0SLionel Sambuc.Fc
89*ebfedea0SLionel Sambuc.Ft void
90*ebfedea0SLionel Sambuc.Fo krb5_get_creds_opt_set_options
91*ebfedea0SLionel Sambuc.Fa "krb5_context context"
92*ebfedea0SLionel Sambuc.Fa "krb5_get_creds_opt opt"
93*ebfedea0SLionel Sambuc.Fa "krb5_flags options"
94*ebfedea0SLionel Sambuc.Fc
95*ebfedea0SLionel Sambuc.Ft krb5_error_code
96*ebfedea0SLionel Sambuc.Fo krb5_get_creds_opt_set_ticket
97*ebfedea0SLionel Sambuc.Fa "krb5_context context"
98*ebfedea0SLionel Sambuc.Fa "krb5_get_creds_opt opt"
99*ebfedea0SLionel Sambuc.Fa "const Ticket *ticket"
100*ebfedea0SLionel Sambuc.Fc
101*ebfedea0SLionel Sambuc.Sh DESCRIPTION
102*ebfedea0SLionel Sambuc.Fn krb5_get_creds
103*ebfedea0SLionel Sambucfetches credentials specified by
104*ebfedea0SLionel Sambuc.Fa opt
105*ebfedea0SLionel Sambucby first looking in the
106*ebfedea0SLionel Sambuc.Fa ccache ,
107*ebfedea0SLionel Sambucand then it doesn't exists, fetch the credential from the KDC
108*ebfedea0SLionel Sambucusing the krbtgts in
109*ebfedea0SLionel Sambuc.Fa ccache .
110*ebfedea0SLionel SambucThe credential is returned in
111*ebfedea0SLionel Sambuc.Fa out_creds
112*ebfedea0SLionel Sambucand should be freed using the function
113*ebfedea0SLionel Sambuc.Fn krb5_free_creds .
114*ebfedea0SLionel Sambuc.Pp
115*ebfedea0SLionel SambucThe structure
116*ebfedea0SLionel Sambuc.Li krb5_get_creds_opt
117*ebfedea0SLionel Sambuccontrols the behavior of
118*ebfedea0SLionel Sambuc.Fn krb5_get_creds .
119*ebfedea0SLionel SambucThe structure is opaque to consumers that can set the content of the
120*ebfedea0SLionel Sambucstructure with accessors functions. All accessor functions make copies
121*ebfedea0SLionel Sambucof the data that is passed into accessor functions, so external
122*ebfedea0SLionel Sambucconsumers free the memory before calling
123*ebfedea0SLionel Sambuc.Fn krb5_get_creds .
124*ebfedea0SLionel Sambuc.Pp
125*ebfedea0SLionel SambucThe structure
126*ebfedea0SLionel Sambuc.Li krb5_get_creds_opt
127*ebfedea0SLionel Sambucis allocated with
128*ebfedea0SLionel Sambuc.Fn krb5_get_creds_opt_alloc
129*ebfedea0SLionel Sambucand freed with
130*ebfedea0SLionel Sambuc.Fn krb5_get_creds_opt_free .
131*ebfedea0SLionel SambucThe free function also frees the content of the structure set by the
132*ebfedea0SLionel Sambucaccessor functions.
133*ebfedea0SLionel Sambuc.Pp
134*ebfedea0SLionel Sambuc.Fn krb5_get_creds_opt_add_options
135*ebfedea0SLionel Sambucand
136*ebfedea0SLionel Sambuc.Fn krb5_get_creds_opt_set_options
137*ebfedea0SLionel Sambucadds and sets options to the
138*ebfedea0SLionel Sambuc.Fi krb5_get_creds_opt
139*ebfedea0SLionel Sambucstructure .
140*ebfedea0SLionel SambucThe possible options to set are
141*ebfedea0SLionel Sambuc.Bl -tag -width "KRB5_GC_USER_USER" -compact
142*ebfedea0SLionel Sambuc.It KRB5_GC_CACHED
143*ebfedea0SLionel SambucOnly check the
144*ebfedea0SLionel Sambuc.Fa ccache ,
145*ebfedea0SLionel Sambucdon't got out on network to fetch credential.
146*ebfedea0SLionel Sambuc.It KRB5_GC_USER_USER
147*ebfedea0SLionel Sambucrequest a user to user ticket.
148*ebfedea0SLionel SambucThis options doesn't store the resulting user to user credential in
149*ebfedea0SLionel Sambucthe
150*ebfedea0SLionel Sambuc.Fa ccache .
151*ebfedea0SLionel Sambuc.It KRB5_GC_EXPIRED_OK
152*ebfedea0SLionel Sambucreturns the credential even if it is expired, default behavior is trying
153*ebfedea0SLionel Sambucto refetch the credential from the KDC.
154*ebfedea0SLionel Sambuc.It KRB5_GC_NO_STORE
155*ebfedea0SLionel SambucDo not store the resulting credentials in the
156*ebfedea0SLionel Sambuc.Fa ccache .
157*ebfedea0SLionel Sambuc.El
158*ebfedea0SLionel Sambuc.Pp
159*ebfedea0SLionel Sambuc.Fn krb5_get_creds_opt_set_enctype
160*ebfedea0SLionel Sambucsets the preferred encryption type of the application. Don't set this
161*ebfedea0SLionel Sambucunless you have to since if there is no match in the KDC, the function
162*ebfedea0SLionel Sambuccall will fail.
163*ebfedea0SLionel Sambuc.Pp
164*ebfedea0SLionel Sambuc.Fn krb5_get_creds_opt_set_impersonate
165*ebfedea0SLionel Sambucsets the principal to impersonate., Returns a ticket that have the
166*ebfedea0SLionel Sambucimpersonation principal as a client and the requestor as the
167*ebfedea0SLionel Sambucservice. Note that the requested principal have to be the same as the
168*ebfedea0SLionel Sambucclient principal in the krbtgt.
169*ebfedea0SLionel Sambuc.Pp
170*ebfedea0SLionel Sambuc.Fn krb5_get_creds_opt_set_ticket
171*ebfedea0SLionel Sambucsets the extra ticket used in user-to-user or contrained delegation use case.
172*ebfedea0SLionel Sambuc.Sh SEE ALSO
173*ebfedea0SLionel Sambuc.Xr krb5 3 ,
174*ebfedea0SLionel Sambuc.Xr krb5_get_credentials 3 ,
175*ebfedea0SLionel Sambuc.Xr krb5.conf 5
176