2005-07-11 01:16:55 +00:00
/*
2008-10-27 11:35:07 +01:00
* Copyright ( c ) 1997 - 2003 Kungliga Tekniska Högskolan
* ( Royal Institute of Technology , Stockholm , Sweden ) .
2005-07-11 01:16:55 +00:00
*
* Copyright ( c ) 2005 Andrew Bartlett < abartlet @ samba . org >
*
2008-10-27 11:35:07 +01:00
* All rights reserved .
2005-07-11 01:16:55 +00:00
*
2008-10-27 11:35:07 +01:00
* Redistribution and use in source and binary forms , with or without
* modification , are permitted provided that the following conditions
* are met :
2005-07-11 01:16:55 +00:00
*
2008-10-27 11:35:07 +01:00
* 1. Redistributions of source code must retain the above copyright
* notice , this list of conditions and the following disclaimer .
2005-07-11 01:16:55 +00:00
*
2008-10-27 11:35:07 +01:00
* 2. Redistributions in binary form must reproduce the above copyright
* notice , this list of conditions and the following disclaimer in the
* documentation and / or other materials provided with the distribution .
2005-07-11 01:16:55 +00:00
*
2008-10-27 11:35:07 +01:00
* 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission .
*
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ` ` AS IS ' ' AND
* ANY EXPRESS OR IMPLIED WARRANTIES , INCLUDING , BUT NOT LIMITED TO , THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED . IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT , INDIRECT , INCIDENTAL , SPECIAL , EXEMPLARY , OR CONSEQUENTIAL
* DAMAGES ( INCLUDING , BUT NOT LIMITED TO , PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES ; LOSS OF USE , DATA , OR PROFITS ; OR BUSINESS INTERRUPTION )
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY , WHETHER IN CONTRACT , STRICT
* LIABILITY , OR TORT ( INCLUDING NEGLIGENCE OR OTHERWISE ) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE , EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE .
2005-07-11 01:16:55 +00:00
*/
2008-10-27 11:35:07 +01:00
/*
* $ Id $
2005-07-11 01:16:55 +00:00
*/
# ifndef __KDC_H__
# define __KDC_H__
2011-03-14 23:06:40 +01:00
# include <hdb.h>
2005-07-11 01:16:55 +00:00
# include <krb5.h>
enum krb5_kdc_trpolicy {
TRPOLICY_ALWAYS_CHECK ,
2008-10-27 11:35:07 +01:00
TRPOLICY_ALLOW_PER_PRINCIPAL ,
2005-07-11 01:16:55 +00:00
TRPOLICY_ALWAYS_HONOUR_REQUEST
} ;
typedef struct krb5_kdc_configuration {
krb5_boolean require_preauth ; /* require preauth for all principals */
time_t kdc_warn_pwexpire ; /* time before expiration to print a warning */
struct HDB * * db ;
int num_db ;
krb5_boolean encode_as_rep_as_tgs_rep ; /* bug compatibility */
2011-07-15 09:10:30 +02:00
krb5_boolean as_use_strongest_session_key ;
krb5_boolean preauth_use_strongest_session_key ;
krb5_boolean tgs_use_strongest_session_key ;
krb5_boolean use_strongest_server_key ;
2005-07-11 01:16:55 +00:00
krb5_boolean check_ticket_addresses ;
krb5_boolean allow_null_ticket_addresses ;
krb5_boolean allow_anonymous ;
enum krb5_kdc_trpolicy trpolicy ;
2017-01-29 17:19:14 +01:00
krb5_boolean autodetect_referrals ;
2005-07-11 01:16:55 +00:00
krb5_boolean enable_pkinit ;
2007-07-03 08:00:08 +00:00
krb5_boolean pkinit_princ_in_cert ;
2010-01-12 18:16:45 +11:00
const char * pkinit_kdc_identity ;
const char * pkinit_kdc_anchors ;
const char * pkinit_kdc_friendly_name ;
const char * pkinit_kdc_ocsp_file ;
char * * pkinit_kdc_cert_pool ;
char * * pkinit_kdc_revoke ;
2007-07-03 08:00:08 +00:00
int pkinit_dh_min_bits ;
int pkinit_require_binding ;
2009-06-08 19:06:16 +10:00
int pkinit_allow_proxy_certs ;
2005-07-11 01:16:55 +00:00
krb5_log_facility * logf ;
2005-10-25 13:43:37 +00:00
2006-11-07 06:59:56 +00:00
int enable_digest ;
2007-01-10 01:57:32 +00:00
int digests_allowed ;
2006-11-07 06:59:56 +00:00
size_t max_datagram_reply_length ;
2007-01-10 01:57:32 +00:00
int enable_kx509 ;
2007-06-13 05:44:24 +00:00
const char * kx509_template ;
const char * kx509_ca ;
2007-01-10 01:57:32 +00:00
2005-07-11 01:16:55 +00:00
} krb5_kdc_configuration ;
2009-06-08 19:06:16 +10:00
struct krb5_kdc_service {
unsigned int flags ;
# define KS_KRB5 1
# define KS_NO_LENGTH 2
krb5_error_code ( * process ) ( krb5_context context ,
krb5_kdc_configuration * config ,
krb5_data * req_buffer ,
krb5_data * reply ,
const char * from ,
struct sockaddr * addr ,
int datagram_reply ,
int * claim ) ;
} ;
2005-07-11 01:16:55 +00:00
# include <kdc-protos.h>
# endif