xref: /illumos-gate/usr/src/lib/krb5/plugins/kdb/db2/kdb_compat.h (revision 1da57d551424de5a9d469760be7c4b4d4f10a755)
1*54925bf6Swillf /*
2*54925bf6Swillf  * Copyright 1997-2002 Sun Microsystems, Inc.  All rights reserved.
3*54925bf6Swillf  * Use is subject to license terms.
4*54925bf6Swillf  */
5*54925bf6Swillf 
6*54925bf6Swillf #ifndef _KRB5_KDB_KDB_COMPAT_H
7*54925bf6Swillf #define	_KRB5_KDB_KDB_COMPAT_H
8*54925bf6Swillf 
9*54925bf6Swillf #ifdef	__cplusplus
10*54925bf6Swillf extern "C" {
11*54925bf6Swillf #endif
12*54925bf6Swillf 
13*54925bf6Swillf 
14*54925bf6Swillf /*
15*54925bf6Swillf  * lib/kdb/kdb_compat.h
16*54925bf6Swillf  *
17*54925bf6Swillf  * Copyright 1994 by the Massachusetts Institute of Technology.
18*54925bf6Swillf  * All Rights Reserved.
19*54925bf6Swillf  *
20*54925bf6Swillf  * Export of this software from the United States of America may
21*54925bf6Swillf  *   require a specific license from the United States Government.
22*54925bf6Swillf  *   It is the responsibility of any person or organization contemplating
23*54925bf6Swillf  *   export to obtain such a license before exporting.
24*54925bf6Swillf  *
25*54925bf6Swillf  * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
26*54925bf6Swillf  * distribute this software and its documentation for any purpose and
27*54925bf6Swillf  * without fee is hereby granted, provided that the above copyright
28*54925bf6Swillf  * notice appear in all copies and that both that copyright notice and
29*54925bf6Swillf  * this permission notice appear in supporting documentation, and that
30*54925bf6Swillf  * the name of M.I.T. not be used in advertising or publicity pertaining
31*54925bf6Swillf  * to distribution of the software without specific, written prior
32*54925bf6Swillf  * permission.  Furthermore if you modify this software you must label
33*54925bf6Swillf  * your software as modified software and not distribute it in such a
34*54925bf6Swillf  * fashion that it might be confused with the original M.I.T. software.
35*54925bf6Swillf  * M.I.T. makes no representations about the suitability of
36*54925bf6Swillf  * this software for any purpose.  It is provided "as is" without express
37*54925bf6Swillf  * or implied warranty.
38*54925bf6Swillf  *
39*54925bf6Swillf  *
40*54925bf6Swillf  * KDC Database interface definitions.
41*54925bf6Swillf  */
42*54925bf6Swillf 
43*54925bf6Swillf 
44*54925bf6Swillf typedef struct _old_krb5_encrypted_keyblock {
45*54925bf6Swillf     krb5_enctype enctype;
46*54925bf6Swillf     int length;
47*54925bf6Swillf     krb5_octet *contents;
48*54925bf6Swillf } old_krb5_encrypted_keyblock;
49*54925bf6Swillf 
50*54925bf6Swillf typedef struct old_krb5_principal_data {
51*54925bf6Swillf     krb5_magic magic;
52*54925bf6Swillf     krb5_data realm;
53*54925bf6Swillf     krb5_data *data;		/* An array of strings */
54*54925bf6Swillf     krb5_int32 length;
55*54925bf6Swillf     krb5_int32 type;
56*54925bf6Swillf } old_krb5_principal_data;
57*54925bf6Swillf 
58*54925bf6Swillf typedef	old_krb5_principal_data *old_krb5_principal;
59*54925bf6Swillf 
60*54925bf6Swillf 
61*54925bf6Swillf /*
62*54925bf6Swillf  * Note --- this structure cannot be modified without changing the
63*54925bf6Swillf  * database version number in libkdb.a
64*54925bf6Swillf  */
65*54925bf6Swillf typedef struct _old_krb5_db_entry {
66*54925bf6Swillf     old_krb5_principal principal;
67*54925bf6Swillf     old_krb5_encrypted_keyblock key;
68*54925bf6Swillf     krb5_kvno kvno;
69*54925bf6Swillf     krb5_deltat	max_life;
70*54925bf6Swillf     krb5_deltat	max_renewable_life;
71*54925bf6Swillf     krb5_kvno mkvno;			/* master encryption key vno */
72*54925bf6Swillf 
73*54925bf6Swillf     krb5_timestamp expiration;		/* This is when the client expires */
74*54925bf6Swillf     krb5_timestamp pw_expiration; 	/* This is when its password does */
75*54925bf6Swillf     krb5_timestamp last_pwd_change; 	/* Last time of password change  */
76*54925bf6Swillf     krb5_timestamp last_success;	/* Last successful password */
77*54925bf6Swillf 
78*54925bf6Swillf     krb5_timestamp last_failed;		/* Last failed password attempt */
79*54925bf6Swillf     krb5_kvno fail_auth_count; 		/* # of failed password attempts */
80*54925bf6Swillf 
81*54925bf6Swillf     old_krb5_principal mod_name;
82*54925bf6Swillf     krb5_timestamp mod_date;
83*54925bf6Swillf     krb5_flags attributes;
84*54925bf6Swillf     krb5_int32 salt_type:8,
85*54925bf6Swillf  	       salt_length:24;
86*54925bf6Swillf     krb5_octet *salt;
87*54925bf6Swillf     old_krb5_encrypted_keyblock alt_key;
88*54925bf6Swillf     krb5_int32 alt_salt_type:8,
89*54925bf6Swillf  	       alt_salt_length:24;
90*54925bf6Swillf     krb5_octet *alt_salt;
91*54925bf6Swillf 
92*54925bf6Swillf     krb5_int32 expansion[8];
93*54925bf6Swillf } old_krb5_db_entry;
94*54925bf6Swillf 
95*54925bf6Swillf 
96*54925bf6Swillf #ifdef	__cplusplus
97*54925bf6Swillf }
98*54925bf6Swillf #endif
99*54925bf6Swillf 
100*54925bf6Swillf #endif	/* !_KRB5_KDB_KDB_COMPAT_H */
101