BSD 4_4 development
[unix-history] / usr / include / kerberosIV / kadm.h
CommitLineData
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 */
41typedef 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
51typedef 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
83typedef 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
119enum acl_types {
120ADDACL,
121GETACL,
122MODACL
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
131extern long kdb_get_master_key(); /* XXX should be in krb_db.h */
132extern long kdb_verify_master_key(); /* XXX ditto */
133
134extern long krb_mk_priv(), krb_rd_priv(); /* XXX should be in krb.h */
135extern void krb_set_tkt_string(); /* XXX ditto */
136
137extern unsigned long quad_cksum(); /* XXX should be in des.h */
138
139/* XXX This doesn't belong here!!! */
140char *malloc(), *realloc();
141#ifdef POSIX
142typedef void sigtype;
143#else
144typedef int sigtype;
145#endif
146
147#endif KADM_DEFS