Example #1
0
krb5_error_code KRB5_CALLCONV
krb5_cc_retrieve_cred_default (krb5_context context, krb5_ccache id, krb5_flags flags, krb5_creds *mcreds, krb5_creds *creds)
{
    krb5_enctype *ktypes;
    int nktypes;
    krb5_error_code ret;

    if (flags & KRB5_TC_SUPPORTED_KTYPES) {
	ret = krb5_get_tgs_ktypes (context, mcreds->server, &ktypes);
	if (ret)
	    return ret;
	nktypes = 0;
	while (ktypes[nktypes])
	    nktypes++;

	ret = krb5_cc_retrieve_cred_seq (context, id, flags, mcreds, creds,
					 nktypes, ktypes);
	free (ktypes);
	return ret;
    } else {
	/* Solaris Kerberos */
	return krb5_cc_retrieve_cred_seq (context, id, flags, mcreds, creds,
					  0, (krb5_enctype *)NULL);
    }
}
krb5_error_code KRB5_CALLCONV
krb5_cc_retrieve_cred_default (krb5_context context, krb5_ccache id, krb5_flags flags, krb5_creds *mcreds, krb5_creds *creds)
{
    krb5_enctype *ktypes;
    int nktypes;
    krb5_error_code ret;

    if (flags & KRB5_TC_SUPPORTED_KTYPES) {
        ret = krb5_get_tgs_ktypes (context, mcreds->server, &ktypes);
        if (ret)
            return ret;
        nktypes = krb5int_count_etypes (ktypes);

        ret = krb5_cc_retrieve_cred_seq (context, id, flags, mcreds, creds,
                                         nktypes, ktypes);
        free (ktypes);
        return ret;
    } else {
        return krb5_cc_retrieve_cred_seq (context, id, flags, mcreds, creds,
                                          0, 0);
    }
}