Home | History | Annotate | Line # | Download | only in krb5
      1 /*	$NetBSD: convert_creds.c,v 1.2 2017/01/28 21:31:49 christos Exp $	*/
      2 
      3 /*
      4  * Copyright (c) 1997 - 2004 Kungliga Tekniska Hgskolan
      5  * (Royal Institute of Technology, Stockholm, Sweden).
      6  * All rights reserved.
      7  *
      8  * Redistribution and use in source and binary forms, with or without
      9  * modification, are permitted provided that the following conditions
     10  * are met:
     11  *
     12  * 1. Redistributions of source code must retain the above copyright
     13  *    notice, this list of conditions and the following disclaimer.
     14  *
     15  * 2. Redistributions in binary form must reproduce the above copyright
     16  *    notice, this list of conditions and the following disclaimer in the
     17  *    documentation and/or other materials provided with the distribution.
     18  *
     19  * 3. Neither the name of the Institute nor the names of its contributors
     20  *    may be used to endorse or promote products derived from this software
     21  *    without specific prior written permission.
     22  *
     23  * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
     24  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     25  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     26  * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
     27  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     28  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     29  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     30  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     31  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     32  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     33  * SUCH DAMAGE.
     34  */
     35 
     36 #include "krb5_locl.h"
     37 #include <krb5/krb5-v4compat.h>
     38 
     39 #ifndef HEIMDAL_SMALLER
     40 
     41 /**
     42  * Convert the v5 credentials in in_cred to v4-dito in v4creds.  This
     43  * is done by sending them to the 524 function in the KDC.  If
     44  * `in_cred' doesn't contain a DES session key, then a new one is
     45  * gotten from the KDC and stored in the cred cache `ccache'.
     46  *
     47  * @param context Kerberos 5 context.
     48  * @param in_cred the credential to convert
     49  * @param v4creds the converted credential
     50  *
     51  * @return Returns 0 to indicate success. Otherwise an kerberos et
     52  * error code is returned, see krb5_get_error_message().
     53  *
     54  * @ingroup krb5_v4compat
     55  */
     56 
     57 KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
     58 krb524_convert_creds_kdc(krb5_context context,
     59 			 krb5_creds *in_cred,
     60 			 struct credentials *v4creds)
     61     KRB5_DEPRECATED_FUNCTION("Use X instead")
     62 {
     63     memset(v4creds, 0, sizeof(*v4creds));
     64     krb5_set_error_message(context, EINVAL,
     65 			   N_("krb524_convert_creds_kdc not supported", ""));
     66     return EINVAL;
     67 }
     68 
     69 /**
     70  * Convert the v5 credentials in in_cred to v4-dito in v4creds,
     71  * check the credential cache ccache before checking with the KDC.
     72  *
     73  * @param context Kerberos 5 context.
     74  * @param ccache credential cache used to check for des-ticket.
     75  * @param in_cred the credential to convert
     76  * @param v4creds the converted credential
     77  *
     78  * @return Returns 0 to indicate success. Otherwise an kerberos et
     79  * error code is returned, see krb5_get_error_message().
     80  *
     81  * @ingroup krb5_v4compat
     82  */
     83 
     84 KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
     85 krb524_convert_creds_kdc_ccache(krb5_context context,
     86 				krb5_ccache ccache,
     87 				krb5_creds *in_cred,
     88 				struct credentials *v4creds)
     89     KRB5_DEPRECATED_FUNCTION("Use X instead")
     90 {
     91     memset(v4creds, 0, sizeof(*v4creds));
     92     krb5_set_error_message(context, EINVAL,
     93 			   N_("krb524_convert_creds_kdc_ccache not supported", ""));
     94     return EINVAL;
     95 }
     96 
     97 #endif
     98