~ubuntu-branches/ubuntu/raring/heimdal/raring

« back to all changes in this revision

Viewing changes to lib/krb5/krb5_auth_context.cat3

  • Committer: Package Import Robot
  • Author(s): Jelmer Vernooij
  • Date: 2011-10-03 23:50:05 UTC
  • mfrom: (1.1.15) (2.2.23 sid)
  • Revision ID: package-import@ubuntu.com-20111003235005-0voibbgdhyqmtp6w
Tags: 1.5.dfsg.1-3
Add conflicts with kcc to heimdal-clients. Closes: #644138

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
KRB5_AUTH_CONTEXT(3)     BSD Library Functions Manual     KRB5_AUTH_CONTEXT(3)
 
3
 
 
4
NNAAMMEE
 
5
     kkrrbb55__aauutthh__ccoonn__aaddddffllaaggss, kkrrbb55__aauutthh__ccoonn__ffrreeee, kkrrbb55__aauutthh__ccoonn__ggeennaaddddrrss,
 
6
     kkrrbb55__aauutthh__ccoonn__ggeenneerraatteellooccaallssuubbkkeeyy, kkrrbb55__aauutthh__ccoonn__ggeettaaddddrrss,
 
7
     kkrrbb55__aauutthh__ccoonn__ggeettaauutthheennttiiccaattoorr, kkrrbb55__aauutthh__ccoonn__ggeettffllaaggss,
 
8
     kkrrbb55__aauutthh__ccoonn__ggeettkkeeyy, kkrrbb55__aauutthh__ccoonn__ggeettllooccaallssuubbkkeeyy,
 
9
     kkrrbb55__aauutthh__ccoonn__ggeettrrccaacchhee, kkrrbb55__aauutthh__ccoonn__ggeettrreemmootteessuubbkkeeyy,
 
10
     kkrrbb55__aauutthh__ccoonn__ggeettuusseerrkkeeyy, kkrrbb55__aauutthh__ccoonn__iinniitt, kkrrbb55__aauutthh__ccoonn__iinniittiivveeccttoorr,
 
11
     kkrrbb55__aauutthh__ccoonn__rreemmoovveeffllaaggss, kkrrbb55__aauutthh__ccoonn__sseettaaddddrrss,
 
12
     kkrrbb55__aauutthh__ccoonn__sseettaaddddrrss__ffrroomm__ffdd, kkrrbb55__aauutthh__ccoonn__sseettffllaaggss,
 
13
     kkrrbb55__aauutthh__ccoonn__sseettiivveeccttoorr, kkrrbb55__aauutthh__ccoonn__sseettkkeeyy,
 
14
     kkrrbb55__aauutthh__ccoonn__sseettllooccaallssuubbkkeeyy, kkrrbb55__aauutthh__ccoonn__sseettrrccaacchhee,
 
15
     kkrrbb55__aauutthh__ccoonn__sseettrreemmootteessuubbkkeeyy, kkrrbb55__aauutthh__ccoonn__sseettuusseerrkkeeyy,
 
16
     kkrrbb55__aauutthh__ccoonntteexxtt, kkrrbb55__aauutthh__ggeettcckkssuummttyyppee, kkrrbb55__aauutthh__ggeettkkeeyyttyyppee,
 
17
     kkrrbb55__aauutthh__ggeettllooccaallsseeqqnnuummbbeerr, kkrrbb55__aauutthh__ggeettrreemmootteesseeqqnnuummbbeerr,
 
18
     kkrrbb55__aauutthh__sseettcckkssuummttyyppee, kkrrbb55__aauutthh__sseettkkeeyyttyyppee,
 
19
     kkrrbb55__aauutthh__sseettllooccaallsseeqqnnuummbbeerr, kkrrbb55__aauutthh__sseettrreemmootteesseeqqnnuummbbeerr,
 
20
     kkrrbb55__ffrreeee__aauutthheennttiiccaattoorr -- manage authentication on connection level
 
21
 
 
22
LLIIBBRRAARRYY
 
23
     Kerberos 5 Library (libkrb5, -lkrb5)
 
24
 
 
25
SSYYNNOOPPSSIISS
 
26
     ##iinncclluuddee <<kkrrbb55..hh>>
 
27
 
 
28
     _k_r_b_5___e_r_r_o_r___c_o_d_e
 
29
     kkrrbb55__aauutthh__ccoonn__iinniitt(_k_r_b_5___c_o_n_t_e_x_t _c_o_n_t_e_x_t,
 
30
         _k_r_b_5___a_u_t_h___c_o_n_t_e_x_t _*_a_u_t_h___c_o_n_t_e_x_t);
 
31
 
 
32
     _v_o_i_d
 
33
     kkrrbb55__aauutthh__ccoonn__ffrreeee(_k_r_b_5___c_o_n_t_e_x_t _c_o_n_t_e_x_t, _k_r_b_5___a_u_t_h___c_o_n_t_e_x_t _a_u_t_h___c_o_n_t_e_x_t);
 
34
 
 
35
     _k_r_b_5___e_r_r_o_r___c_o_d_e
 
36
     kkrrbb55__aauutthh__ccoonn__sseettffllaaggss(_k_r_b_5___c_o_n_t_e_x_t _c_o_n_t_e_x_t,
 
37
         _k_r_b_5___a_u_t_h___c_o_n_t_e_x_t _a_u_t_h___c_o_n_t_e_x_t, _i_n_t_3_2___t _f_l_a_g_s);
 
38
 
 
39
     _k_r_b_5___e_r_r_o_r___c_o_d_e
 
40
     kkrrbb55__aauutthh__ccoonn__ggeettffllaaggss(_k_r_b_5___c_o_n_t_e_x_t _c_o_n_t_e_x_t,
 
41
         _k_r_b_5___a_u_t_h___c_o_n_t_e_x_t _a_u_t_h___c_o_n_t_e_x_t, _i_n_t_3_2___t _*_f_l_a_g_s);
 
42
 
 
43
     _k_r_b_5___e_r_r_o_r___c_o_d_e
 
44
     kkrrbb55__aauutthh__ccoonn__aaddddffllaaggss(_k_r_b_5___c_o_n_t_e_x_t _c_o_n_t_e_x_t,
 
45
         _k_r_b_5___a_u_t_h___c_o_n_t_e_x_t _a_u_t_h___c_o_n_t_e_x_t, _i_n_t_3_2___t _a_d_d_f_l_a_g_s, _i_n_t_3_2___t _*_f_l_a_g_s);
 
46
 
 
47
     _k_r_b_5___e_r_r_o_r___c_o_d_e
 
48
     kkrrbb55__aauutthh__ccoonn__rreemmoovveeffllaaggss(_k_r_b_5___c_o_n_t_e_x_t _c_o_n_t_e_x_t,
 
49
         _k_r_b_5___a_u_t_h___c_o_n_t_e_x_t _a_u_t_h___c_o_n_t_e_x_t, _i_n_t_3_2___t _r_e_m_o_v_e_l_a_g_s, _i_n_t_3_2___t _*_f_l_a_g_s);
 
50
 
 
51
     _k_r_b_5___e_r_r_o_r___c_o_d_e
 
52
     kkrrbb55__aauutthh__ccoonn__sseettaaddddrrss(_k_r_b_5___c_o_n_t_e_x_t _c_o_n_t_e_x_t,
 
53
         _k_r_b_5___a_u_t_h___c_o_n_t_e_x_t _a_u_t_h___c_o_n_t_e_x_t, _k_r_b_5___a_d_d_r_e_s_s _*_l_o_c_a_l___a_d_d_r,
 
54
         _k_r_b_5___a_d_d_r_e_s_s _*_r_e_m_o_t_e___a_d_d_r);
 
55
 
 
56
     _k_r_b_5___e_r_r_o_r___c_o_d_e
 
57
     kkrrbb55__aauutthh__ccoonn__ggeettaaddddrrss(_k_r_b_5___c_o_n_t_e_x_t _c_o_n_t_e_x_t,
 
58
         _k_r_b_5___a_u_t_h___c_o_n_t_e_x_t _a_u_t_h___c_o_n_t_e_x_t, _k_r_b_5___a_d_d_r_e_s_s _*_*_l_o_c_a_l___a_d_d_r,
 
59
         _k_r_b_5___a_d_d_r_e_s_s _*_*_r_e_m_o_t_e___a_d_d_r);
 
60
 
 
61
     _k_r_b_5___e_r_r_o_r___c_o_d_e
 
62
     kkrrbb55__aauutthh__ccoonn__ggeennaaddddrrss(_k_r_b_5___c_o_n_t_e_x_t _c_o_n_t_e_x_t,
 
63
         _k_r_b_5___a_u_t_h___c_o_n_t_e_x_t _a_u_t_h___c_o_n_t_e_x_t, _i_n_t _f_d, _i_n_t _f_l_a_g_s);
 
64
 
 
65
     _k_r_b_5___e_r_r_o_r___c_o_d_e
 
66
     kkrrbb55__aauutthh__ccoonn__sseettaaddddrrss__ffrroomm__ffdd(_k_r_b_5___c_o_n_t_e_x_t _c_o_n_t_e_x_t,
 
67
         _k_r_b_5___a_u_t_h___c_o_n_t_e_x_t _a_u_t_h___c_o_n_t_e_x_t, _v_o_i_d _*_p___f_d);
 
68
 
 
69
     _k_r_b_5___e_r_r_o_r___c_o_d_e
 
70
     kkrrbb55__aauutthh__ccoonn__ggeettkkeeyy(_k_r_b_5___c_o_n_t_e_x_t _c_o_n_t_e_x_t,
 
71
         _k_r_b_5___a_u_t_h___c_o_n_t_e_x_t _a_u_t_h___c_o_n_t_e_x_t, _k_r_b_5___k_e_y_b_l_o_c_k _*_*_k_e_y_b_l_o_c_k);
 
72
 
 
73
     _k_r_b_5___e_r_r_o_r___c_o_d_e
 
74
     kkrrbb55__aauutthh__ccoonn__ggeettllooccaallssuubbkkeeyy(_k_r_b_5___c_o_n_t_e_x_t _c_o_n_t_e_x_t,
 
75
         _k_r_b_5___a_u_t_h___c_o_n_t_e_x_t _a_u_t_h___c_o_n_t_e_x_t, _k_r_b_5___k_e_y_b_l_o_c_k _*_*_k_e_y_b_l_o_c_k);
 
76
 
 
77
     _k_r_b_5___e_r_r_o_r___c_o_d_e
 
78
     kkrrbb55__aauutthh__ccoonn__ggeettrreemmootteessuubbkkeeyy(_k_r_b_5___c_o_n_t_e_x_t _c_o_n_t_e_x_t,
 
79
         _k_r_b_5___a_u_t_h___c_o_n_t_e_x_t _a_u_t_h___c_o_n_t_e_x_t, _k_r_b_5___k_e_y_b_l_o_c_k _*_*_k_e_y_b_l_o_c_k);
 
80
 
 
81
     _k_r_b_5___e_r_r_o_r___c_o_d_e
 
82
     kkrrbb55__aauutthh__ccoonn__ggeenneerraatteellooccaallssuubbkkeeyy(_k_r_b_5___c_o_n_t_e_x_t _c_o_n_t_e_x_t,
 
83
         _k_r_b_5___a_u_t_h___c_o_n_t_e_x_t _a_u_t_h___c_o_n_t_e_x_t, _k_r_b_5___k_e_y_b_l_o_c_k, _*_k_e_y_");
 
84
 
 
85
     _k_r_b_5___e_r_r_o_r___c_o_d_e
 
86
     kkrrbb55__aauutthh__ccoonn__iinniittiivveeccttoorr(_k_r_b_5___c_o_n_t_e_x_t _c_o_n_t_e_x_t,
 
87
         _k_r_b_5___a_u_t_h___c_o_n_t_e_x_t _a_u_t_h___c_o_n_t_e_x_t);
 
88
 
 
89
     _k_r_b_5___e_r_r_o_r___c_o_d_e
 
90
     kkrrbb55__aauutthh__ccoonn__sseettiivveeccttoorr(_k_r_b_5___c_o_n_t_e_x_t _c_o_n_t_e_x_t,
 
91
         _k_r_b_5___a_u_t_h___c_o_n_t_e_x_t _*_a_u_t_h___c_o_n_t_e_x_t, _k_r_b_5___p_o_i_n_t_e_r _i_v_e_c_t_o_r);
 
92
 
 
93
     _v_o_i_d
 
94
     kkrrbb55__ffrreeee__aauutthheennttiiccaattoorr(_k_r_b_5___c_o_n_t_e_x_t _c_o_n_t_e_x_t,
 
95
         _k_r_b_5___a_u_t_h_e_n_t_i_c_a_t_o_r _*_a_u_t_h_e_n_t_i_c_a_t_o_r);
 
96
 
 
97
DDEESSCCRRIIPPTTIIOONN
 
98
     The kkrrbb55__aauutthh__ccoonntteexxtt structure holds all context related to an authenti-
 
99
     cated connection, in a similar way to kkrrbb55__ccoonntteexxtt that holds the context
 
100
     for the thread or process.  kkrrbb55__aauutthh__ccoonntteexxtt is used by various func-
 
101
     tions that are directly related to authentication between the
 
102
     server/client. Example of data that this structure contains are various
 
103
     flags, addresses of client and server, port numbers, keyblocks (and sub-
 
104
     keys), sequence numbers, replay cache, and checksum-type.
 
105
 
 
106
     kkrrbb55__aauutthh__ccoonn__iinniitt() allocates and initializes the kkrrbb55__aauutthh__ccoonntteexxtt
 
107
     structure. Default values can be changed with
 
108
     kkrrbb55__aauutthh__ccoonn__sseettcckkssuummttyyppee() and kkrrbb55__aauutthh__ccoonn__sseettffllaaggss().  The
 
109
     aauutthh__ccoonntteexxtt structure must be freed by kkrrbb55__aauutthh__ccoonn__ffrreeee().
 
110
 
 
111
     kkrrbb55__aauutthh__ccoonn__ggeettffllaaggss(), kkrrbb55__aauutthh__ccoonn__sseettffllaaggss(),
 
112
     kkrrbb55__aauutthh__ccoonn__aaddddffllaaggss() and kkrrbb55__aauutthh__ccoonn__rreemmoovveeffllaaggss() gets and modi-
 
113
     fies the flags for a kkrrbb55__aauutthh__ccoonntteexxtt structure. Possible flags to set
 
114
     are:
 
115
 
 
116
     KRB5_AUTH_CONTEXT_DO_SEQUENCE
 
117
             Generate and check sequence-number on each packet.
 
118
 
 
119
     KRB5_AUTH_CONTEXT_DO_TIME
 
120
             Check timestamp on incoming packets.
 
121
 
 
122
     KRB5_AUTH_CONTEXT_RET_SEQUENCE, KRB5_AUTH_CONTEXT_RET_TIME
 
123
             Return sequence numbers and time stamps in the outdata parame-
 
124
             ters.
 
125
 
 
126
     KRB5_AUTH_CONTEXT_CLEAR_FORWARDED_CRED
 
127
             will force kkrrbb55__ggeett__ffoorrwwaarrddeedd__ccrreeddss() and kkrrbb55__ffwwdd__ttggtt__ccrreeddss() to
 
128
             create unencrypted ) ENCTYPE_NULL) credentials.  This is for use
 
129
             with old MIT server and JAVA based servers as they can't handle
 
130
             encrypted KRB-CRED.  Note that sending such KRB-CRED is clear
 
131
             exposes crypto keys and tickets and is insecure, make sure the
 
132
             packet is encrypted in the protocol.  krb5_rd_cred(3),
 
133
             krb5_rd_priv(3), krb5_rd_safe(3), krb5_mk_priv(3) and
 
134
             krb5_mk_safe(3).  Setting this flag requires that parameter to be
 
135
             passed to these functions.
 
136
 
 
137
             The flags KRB5_AUTH_CONTEXT_DO_TIME also modifies the behavior
 
138
             the function kkrrbb55__ggeett__ffoorrwwaarrddeedd__ccrreeddss() by removing the timestamp
 
139
             in the forward credential message, this have backward compatibil-
 
140
             ity problems since not all versions of the heimdal supports time-
 
141
             less credentional messages.  Is very useful since it always the
 
142
             sender of the message to cache forward message and thus avoiding
 
143
             a round trip to the KDC for each time a credential is forwarded.
 
144
             The same functionality can be obtained by using address-less
 
145
             tickets.
 
146
 
 
147
     kkrrbb55__aauutthh__ccoonn__sseettaaddddrrss(), kkrrbb55__aauutthh__ccoonn__sseettaaddddrrss__ffrroomm__ffdd() and
 
148
     kkrrbb55__aauutthh__ccoonn__ggeettaaddddrrss() gets and sets the addresses that are checked
 
149
     when a packet is received.  It is mandatory to set an address for the
 
150
     remote host. If the local address is not set, it iss deduced from the
 
151
     underlaying operating system.  kkrrbb55__aauutthh__ccoonn__ggeettaaddddrrss() will call
 
152
     kkrrbb55__ffrreeee__aaddddrreessss() on any address that is passed in _l_o_c_a_l___a_d_d_r or
 
153
     _r_e_m_o_t_e___a_d_d_r.  kkrrbb55__aauutthh__ccoonn__sseettaaddddrr() allows passing in a NULL pointer as
 
154
     _l_o_c_a_l___a_d_d_r and _r_e_m_o_t_e___a_d_d_r, in that case it will just not set that
 
155
     address.
 
156
 
 
157
     kkrrbb55__aauutthh__ccoonn__sseettaaddddrrss__ffrroomm__ffdd() fetches the addresses from a file
 
158
     descriptor.
 
159
 
 
160
     kkrrbb55__aauutthh__ccoonn__ggeennaaddddrrss() fetches the address information from the given
 
161
     file descriptor _f_d depending on the bitmap argument _f_l_a_g_s.
 
162
 
 
163
     Possible values on _f_l_a_g_s are:
 
164
 
 
165
     _K_R_B_5___A_U_T_H___C_O_N_T_E_X_T___G_E_N_E_R_A_T_E___L_O_C_A_L___A_D_D_R
 
166
             fetches the local address from _f_d.
 
167
 
 
168
     _K_R_B_5___A_U_T_H___C_O_N_T_E_X_T___G_E_N_E_R_A_T_E___R_E_M_O_T_E___A_D_D_R
 
169
             fetches the remote address from _f_d.
 
170
 
 
171
     kkrrbb55__aauutthh__ccoonn__sseettkkeeyy(), kkrrbb55__aauutthh__ccoonn__sseettuusseerrkkeeyy() and
 
172
     kkrrbb55__aauutthh__ccoonn__ggeettkkeeyy() gets and sets the key used for this auth context.
 
173
     The keyblock returned by kkrrbb55__aauutthh__ccoonn__ggeettkkeeyy() should be freed with
 
174
     kkrrbb55__ffrreeee__kkeeyybblloocckk().  The keyblock send into kkrrbb55__aauutthh__ccoonn__sseettkkeeyy() is
 
175
     copied into the kkrrbb55__aauutthh__ccoonntteexxtt, and thus no special handling is
 
176
     needed.  NULL is not a valid keyblock to kkrrbb55__aauutthh__ccoonn__sseettkkeeyy().
 
177
 
 
178
     kkrrbb55__aauutthh__ccoonn__sseettuusseerrkkeeyy() is only useful when doing user to user authen-
 
179
     tication.  kkrrbb55__aauutthh__ccoonn__sseettkkeeyy() is equivalent to
 
180
     kkrrbb55__aauutthh__ccoonn__sseettuusseerrkkeeyy().
 
181
 
 
182
     kkrrbb55__aauutthh__ccoonn__ggeettllooccaallssuubbkkeeyy(), kkrrbb55__aauutthh__ccoonn__sseettllooccaallssuubbkkeeyy(),
 
183
     kkrrbb55__aauutthh__ccoonn__ggeettrreemmootteessuubbkkeeyy() and kkrrbb55__aauutthh__ccoonn__sseettrreemmootteessuubbkkeeyy() gets
 
184
     and sets the keyblock for the local and remote subkey.  The keyblock
 
185
     returned by kkrrbb55__aauutthh__ccoonn__ggeettllooccaallssuubbkkeeyy() and
 
186
     kkrrbb55__aauutthh__ccoonn__ggeettrreemmootteessuubbkkeeyy() must be freed with kkrrbb55__ffrreeee__kkeeyybblloocckk().
 
187
 
 
188
     kkrrbb55__aauutthh__sseettcckkssuummttyyppee() and kkrrbb55__aauutthh__ggeettcckkssuummttyyppee() sets and gets the
 
189
     checksum type that should be used for this connection.
 
190
 
 
191
     kkrrbb55__aauutthh__ccoonn__ggeenneerraatteellooccaallssuubbkkeeyy() generates a local subkey that have
 
192
     the same encryption type as _k_e_y.
 
193
 
 
194
     kkrrbb55__aauutthh__ggeettrreemmootteesseeqqnnuummbbeerr() kkrrbb55__aauutthh__sseettrreemmootteesseeqqnnuummbbeerr(),
 
195
     kkrrbb55__aauutthh__ggeettllooccaallsseeqqnnuummbbeerr() and kkrrbb55__aauutthh__sseettllooccaallsseeqqnnuummbbeerr() gets and
 
196
     sets the sequence-number for the local and remote sequence-number
 
197
     counter.
 
198
 
 
199
     kkrrbb55__aauutthh__sseettkkeeyyttyyppee() and kkrrbb55__aauutthh__ggeettkkeeyyttyyppee() gets and gets the key-
 
200
     type of the keyblock in kkrrbb55__aauutthh__ccoonntteexxtt.
 
201
 
 
202
     kkrrbb55__aauutthh__ccoonn__ggeettaauutthheennttiiccaattoorr() Retrieves the authenticator that was
 
203
     used during mutual authentication. The authenticator returned should be
 
204
     freed by calling kkrrbb55__ffrreeee__aauutthheennttiiccaattoorr().
 
205
 
 
206
     kkrrbb55__aauutthh__ccoonn__ggeettrrccaacchhee() and kkrrbb55__aauutthh__ccoonn__sseettrrccaacchhee() gets and sets the
 
207
     replay-cache.
 
208
 
 
209
     kkrrbb55__aauutthh__ccoonn__iinniittiivveeccttoorr() allocates memory for and zeros the initial
 
210
     vector in the _a_u_t_h___c_o_n_t_e_x_t keyblock.
 
211
 
 
212
     kkrrbb55__aauutthh__ccoonn__sseettiivveeccttoorr() sets the i_vector portion of _a_u_t_h___c_o_n_t_e_x_t to
 
213
     _i_v_e_c_t_o_r.
 
214
 
 
215
     kkrrbb55__ffrreeee__aauutthheennttiiccaattoorr() free the content of _a_u_t_h_e_n_t_i_c_a_t_o_r and
 
216
     _a_u_t_h_e_n_t_i_c_a_t_o_r itself.
 
217
 
 
218
SSEEEE AALLSSOO
 
219
     krb5_context(3), kerberos(8)
 
220
 
 
221
HEIMDAL                          May 17, 2005                          HEIMDAL