1/* 2 * Copyright (c) 1997-2001 Kungliga Tekniska Högskolan 3 * (Royal Institute of Technology, Stockholm, Sweden). 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: 9 * 10 * 1. Redistributions of source code must retain the above copyright 11 * notice, this list of conditions and the following disclaimer. 12 * 13 * 2. Redistributions in binary form must reproduce the above copyright 14 * notice, this list of conditions and the following disclaimer in the 15 * documentation and/or other materials provided with the distribution. 16 * 17 * 3. Neither the name of the Institute nor the names of its contributors 18 * may be used to endorse or promote products derived from this software 19 * without specific prior written permission. 20 * 21 * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND 22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24 * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE 25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * SUCH DAMAGE. 32 */ 33 34/* $Id$ */ 35 36#ifndef __HDB_LOCL_H__ 37#define __HDB_LOCL_H__ 38 39#include <assert.h> 40#include <heimbase.h> 41 42#include <config.h> 43 44#include <stdio.h> 45#include <string.h> 46#include <stdlib.h> 47#include <errno.h> 48#ifdef HAVE_SYS_TYPES_H 49#include <sys/types.h> 50#endif 51#ifdef HAVE_UNISTD_H 52#include <unistd.h> 53#endif 54#ifdef HAVE_FCNTL_H 55#include <fcntl.h> 56#endif 57#ifdef HAVE_SYS_FILE_H 58#include <sys/file.h> 59#endif 60#ifdef HAVE_LIMITS_H 61#include <limits.h> 62#endif 63#include <roken.h> 64 65#include "crypto-headers.h" 66#include <krb5.h> 67#include <hdb.h> 68#include <hdb-private.h> 69 70krb5_error_code hdb_od_create(krb5_context, HDB **, const char *); 71krb5_error_code hdb_keytab_create(krb5_context, HDB **, const char *); 72krb5_error_code _hdb_keytab2hdb_entry(krb5_context, const krb5_keytab_entry *, hdb_entry_ex *); 73 74#ifdef __APPLE__ 75#define HDB_DEFAULT_DB "od:/Local/Default" 76#else 77#define HDB_DEFAULT_DB HDB_DB_DIR "/heimdal" 78#endif 79 80#define HDB_DB_FORMAT_ENTRY "hdb/db-format" 81 82#define KRB5_KDB_DISALLOW_POSTDATED 0x00000001 83#define KRB5_KDB_DISALLOW_FORWARDABLE 0x00000002 84#define KRB5_KDB_DISALLOW_TGT_BASED 0x00000004 85#define KRB5_KDB_DISALLOW_RENEWABLE 0x00000008 86#define KRB5_KDB_DISALLOW_PROXIABLE 0x00000010 87#define KRB5_KDB_DISALLOW_DUP_SKEY 0x00000020 88#define KRB5_KDB_DISALLOW_ALL_TIX 0x00000040 89#define KRB5_KDB_REQUIRES_PRE_AUTH 0x00000080 90#define KRB5_KDB_REQUIRES_HW_AUTH 0x00000100 91#define KRB5_KDB_REQUIRES_PWCHANGE 0x00000200 92#define KRB5_KDB_DISALLOW_SVR 0x00001000 93#define KRB5_KDB_PWCHANGE_SERVICE 0x00002000 94#define KRB5_KDB_SUPPORT_DESMD5 0x00004000 95#define KRB5_KDB_NEW_PRINC 0x00008000 96 97#undef ALLOC 98#define ALLOC(X) ((X) = calloc(1, sizeof(*(X)))) 99#undef ALLOC_SEQ 100#define ALLOC_SEQ(X, N) do { (X)->len = (N); \ 101(X)->val = calloc((X)->len, sizeof(*(X)->val)); } while(0) 102 103#endif /* __HDB_LOCL_H__ */ 104