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