]> andersk Git - moira.git/blame - include/kadm.h
fix leftover bug in usage message (s/-server/-database)
[moira.git] / include / kadm.h
CommitLineData
3d8d4b36 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 */
35typedef 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
45typedef 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
77typedef 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
113enum acl_types {
114ADDACL,
115GETACL,
116MODACL
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
125extern long kdb_get_master_key(); /* XXX should be in krb_db.h */
126extern long kdb_verify_master_key(); /* XXX ditto */
127
128extern long krb_mk_priv(), krb_rd_priv(); /* XXX should be in krb.h */
129extern void krb_set_tkt_string(); /* XXX ditto */
130
131extern unsigned long quad_cksum(); /* XXX should be in des.h */
132
133/* XXX This doesn't belong here!!! */
134char *malloc(), *realloc();
135#ifdef POSIX
136typedef void sigtype;
137#else
138typedef int sigtype;
139#endif
140
141#endif KADM_DEFS
This page took 0.093497 seconds and 5 git commands to generate.