Commit | Line | Data |
---|---|---|
9e2ab05b C |
1 | /* |
2 | * $Source: /usr/src/kerberosIV/include/RCS/kadm.h,v $ | |
3 | * $Author: kfall $ | |
4 | * $Header: /usr/src/kerberosIV/include/RCS/kadm.h,v 4.3 90/06/25 20:49:12 kfall Exp $ | |
5 | * | |
6 | * Copyright 1988 by the Massachusetts Institute of Technology. | |
7 | * | |
8 | * For copying and distribution information, please see the file | |
9 | * <mit-copyright.h>. | |
10 | * | |
11 | * Definitions for Kerberos administration server & client | |
12 | */ | |
13 | ||
14 | #ifndef KADM_DEFS | |
15 | #define KADM_DEFS | |
16 | ||
17 | #ifdef ATHENA | |
18 | #include <mit-copyright.h> | |
19 | #endif | |
20 | ||
21 | /* | |
22 | * kadm.h | |
23 | * Header file for the fourth attempt at an admin server | |
24 | * Doug Church, December 28, 1989, MIT Project Athena | |
25 | */ | |
26 | ||
27 | /* for those broken Unixes without this defined... should be in sys/param.h */ | |
28 | #ifndef MAXHOSTNAMELEN | |
29 | #define MAXHOSTNAMELEN 64 | |
30 | #endif | |
31 | ||
32 | #include <sys/types.h> | |
33 | #include <netinet/in.h> | |
34 | ||
35 | #ifdef ATHENA | |
36 | #include <krb.h> | |
37 | #include <des.h> | |
38 | #endif | |
39 | ||
40 | /* The global structures for the client and server */ | |
41 | typedef struct { | |
42 | struct sockaddr_in admin_addr; | |
43 | struct sockaddr_in my_addr; | |
44 | int my_addr_len; | |
45 | int admin_fd; /* file descriptor for link to admin server */ | |
46 | char sname[ANAME_SZ]; /* the service name */ | |
47 | char sinst[INST_SZ]; /* the services instance */ | |
48 | char krbrlm[REALM_SZ]; | |
49 | } Kadm_Client; | |
50 | ||
51 | typedef struct { /* status of the server, i.e the parameters */ | |
52 | int inter; /* Space for command line flags */ | |
53 | char *sysfile; /* filename of server */ | |
54 | } admin_params; /* Well... it's the admin's parameters */ | |
55 | ||
56 | /* Largest password length to be supported */ | |
57 | #define MAX_KPW_LEN 128 | |
58 | ||
59 | /* Largest packet the admin server will ever allow itself to return */ | |
60 | #define KADM_RET_MAX 2048 | |
61 | ||
62 | /* That's right, versions are 8 byte strings */ | |
63 | #define KADM_VERSTR "KADM0.0A" | |
64 | #define KADM_ULOSE "KYOULOSE" /* sent back when server can't | |
65 | decrypt client's msg */ | |
66 | #define KADM_VERSIZE strlen(KADM_VERSTR) | |
67 | ||
68 | /* the lookups for the server instances */ | |
69 | #define PWSERV_NAME "changepw" | |
70 | #define KADM_SNAME "kerberos_master" | |
71 | #define KADM_SINST "kerberos" | |
72 | ||
73 | /* Attributes fields constants and macros */ | |
74 | #define ALLOC 2 | |
75 | #define RESERVED 3 | |
76 | #define DEALLOC 4 | |
77 | #define DEACTIVATED 5 | |
78 | #define ACTIVE 6 | |
79 | ||
80 | /* Kadm_vals structure for passing db fields into the server routines */ | |
81 | #define FLDSZ 4 | |
82 | ||
83 | typedef struct { | |
84 | u_char fields[FLDSZ]; /* The active fields in this struct */ | |
85 | char name[ANAME_SZ]; | |
86 | char instance[INST_SZ]; | |
87 | unsigned long key_low; | |
88 | unsigned long key_high; | |
89 | unsigned long exp_date; | |
90 | unsigned short attributes; | |
91 | unsigned char max_life; | |
92 | } Kadm_vals; /* The basic values structure in Kadm */ | |
93 | ||
94 | /* Kadm_vals structure for passing db fields into the server routines */ | |
95 | #define FLDSZ 4 | |
96 | ||
97 | /* Need to define fields types here */ | |
98 | #define KADM_NAME 31 | |
99 | #define KADM_INST 30 | |
100 | #define KADM_EXPDATE 29 | |
101 | #define KADM_ATTR 28 | |
102 | #define KADM_MAXLIFE 27 | |
103 | #define KADM_DESKEY 26 | |
104 | ||
105 | /* To set a field entry f in a fields structure d */ | |
106 | #define SET_FIELD(f,d) (d[3-(f/8)]|=(1<<(f%8))) | |
107 | ||
108 | /* To set a field entry f in a fields structure d */ | |
109 | #define CLEAR_FIELD(f,d) (d[3-(f/8)]&=(~(1<<(f%8)))) | |
110 | ||
111 | /* Is field f in fields structure d */ | |
112 | #define IS_FIELD(f,d) (d[3-(f/8)]&(1<<(f%8))) | |
113 | ||
114 | /* Various return codes */ | |
115 | #define KADM_SUCCESS 0 | |
116 | ||
117 | #define WILDCARD_STR "*" | |
118 | ||
119 | enum acl_types { | |
120 | ADDACL, | |
121 | GETACL, | |
122 | MODACL | |
123 | }; | |
124 | ||
125 | /* Various opcodes for the admin server's functions */ | |
126 | #define CHANGE_PW 2 | |
127 | #define ADD_ENT 3 | |
128 | #define MOD_ENT 4 | |
129 | #define GET_ENT 5 | |
130 | ||
131 | extern long kdb_get_master_key(); /* XXX should be in krb_db.h */ | |
132 | extern long kdb_verify_master_key(); /* XXX ditto */ | |
133 | ||
134 | extern long krb_mk_priv(), krb_rd_priv(); /* XXX should be in krb.h */ | |
135 | extern void krb_set_tkt_string(); /* XXX ditto */ | |
136 | ||
137 | extern unsigned long quad_cksum(); /* XXX should be in des.h */ | |
138 | ||
139 | /* XXX This doesn't belong here!!! */ | |
140 | char *malloc(), *realloc(); | |
141 | #ifdef POSIX | |
142 | typedef void sigtype; | |
143 | #else | |
144 | typedef int sigtype; | |
145 | #endif | |
146 | ||
147 | #endif KADM_DEFS |