Annotation of 43BSDReno/kerberosIV/include/kadm.h, revision 1.1

1.1     ! root        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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.