home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / bsd_srcs / kerberosIV / include / krb_db.h < prev    next >
Encoding:
C/C++ Source or Header  |  1990-06-25  |  2.4 KB  |  107 lines

  1. /*
  2.  * $Source: /usr/src/kerberosIV/include/RCS/krb_db.h,v $
  3.  * $Author: kfall $
  4.  * $Header: /usr/src/kerberosIV/include/RCS/krb_db.h,v 4.10 90/06/25 20:50:50 kfall Exp $ 
  5.  *
  6.  * Copyright 1987, 1988 by the Massachusetts Institute of Technology. 
  7.  *
  8.  * For copying and distribution information, please see the file
  9.  * <mit-copyright.h>. 
  10.  *
  11.  * spm        Project Athena  8/85 
  12.  *
  13.  * This file defines data structures for the kerberos
  14.  * authentication/authorization database. 
  15.  *
  16.  * They MUST correspond to those defined in *.rel 
  17.  */
  18.  
  19. #ifdef    ATHENA
  20. #include <mit-copyright.h>
  21. #endif
  22.  
  23. #ifndef KRB_DB_DEFS
  24. #define KRB_DB_DEFS
  25.  
  26. #define KERB_M_NAME        "K"    /* Kerberos */
  27. #define KERB_M_INST        "M"    /* Master */
  28. #define KERB_DEFAULT_NAME    "default"
  29. #define KERB_DEFAULT_INST    ""
  30. #define    DBM_FILE        "/etc/kerberosIV/principal"
  31.  
  32. /* this also defines the number of queue headers */
  33. #define KERB_DB_HASH_MODULO 64
  34.  
  35.  
  36. /* Arguments to kerb_dbl_lock() */
  37.  
  38. #define KERB_DBL_EXCLUSIVE 1
  39. #define KERB_DBL_SHARED 0
  40.  
  41. /* arguments to kerb_db_set_lockmode() */
  42.  
  43. #define KERB_DBL_BLOCKING 0
  44. #define KERB_DBL_NONBLOCKING 1
  45.  
  46. /* Principal defines the structure of a principal's name */
  47.  
  48. typedef struct {
  49.     char    name[ANAME_SZ];
  50.     char    instance[INST_SZ];
  51.  
  52.     unsigned long key_low;
  53.     unsigned long key_high;
  54.     unsigned long exp_date;
  55.     char    exp_date_txt[DATE_SZ];
  56.     unsigned long mod_date;
  57.     char    mod_date_txt[DATE_SZ];
  58.     unsigned short attributes;
  59.     unsigned char max_life;
  60.     unsigned char kdc_key_ver;
  61.     unsigned char key_version;
  62.  
  63.     char    mod_name[ANAME_SZ];
  64.     char    mod_instance[INST_SZ];
  65.     char   *old;        /* cast to (Principal *); not in db,
  66.                  * ptr to old vals */
  67. }
  68.         Principal;
  69.  
  70. typedef struct {
  71.     long    cpu;
  72.     long    elapsed;
  73.     long    dio;
  74.     long    pfault;
  75.     long    t_stamp;
  76.     long    n_retrieve;
  77.     long    n_replace;
  78.     long    n_append;
  79.     long    n_get_stat;
  80.     long    n_put_stat;
  81. }
  82.         DB_stat;
  83.  
  84. /* Dba defines the structure of a database administrator */
  85.  
  86. typedef struct {
  87.     char    name[ANAME_SZ];
  88.     char    instance[INST_SZ];
  89.     unsigned short attributes;
  90.     unsigned long exp_date;
  91.     char    exp_date_txt[DATE_SZ];
  92.     char   *old;    /*
  93.              * cast to (Dba *); not in db, ptr to
  94.              * old vals
  95.              */
  96. }
  97.         Dba;
  98.  
  99. extern int kerb_get_principal();
  100. extern int kerb_put_principal();
  101. extern int kerb_db_get_stat();
  102. extern int kerb_db_put_stat();
  103. extern int kerb_get_dba();
  104. extern int kerb_db_get_dba();
  105.  
  106. #endif /* KRB_DB_DEFS */
  107.