2 * Copyright 1993 by OpenVision Technologies, Inc.
4 * Permission to use, copy, modify, distribute, and sell this software
5 * and its documentation for any purpose is hereby granted without fee,
6 * provided that the above copyright notice appears in all copies and
7 * that both that copyright notice and this permission notice appear in
8 * supporting documentation, and that the name of OpenVision not be used
9 * in advertising or publicity pertaining to distribution of the software
10 * without specific, written prior permission. OpenVision makes no
11 * representations about the suitability of this software for any
12 * purpose. It is provided "as is" without express or implied warranty.
14 * OPENVISION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
15 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
16 * EVENT SHALL OPENVISION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
17 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
18 * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
19 * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
20 * PERFORMANCE OF THIS SOFTWARE.
23 #include "gssapiP_krb5.h"
26 krb5_gss_display_name(minor_status
, input_name
, output_name_buffer
,
28 OM_uint32
*minor_status
;
29 gss_name_t input_name
;
30 gss_buffer_t output_name_buffer
;
31 gss_OID
*output_name_type
;
37 code
= krb5_gss_init_context(&context
);
43 output_name_buffer
->length
= 0;
44 output_name_buffer
->value
= NULL
;
46 if (! kg_validate_name(input_name
)) {
47 *minor_status
= (OM_uint32
) G_VALIDATE_FAILED
;
48 krb5_free_context(context
);
49 return(GSS_S_CALL_BAD_STRUCTURE
|GSS_S_BAD_NAME
);
52 if ((code
= krb5_unparse_name(context
,
53 (krb5_principal
) input_name
, &str
))) {
55 save_error_info(*minor_status
, context
);
56 krb5_free_context(context
);
57 return(GSS_S_FAILURE
);
60 if (! g_make_string_buffer(str
, output_name_buffer
)) {
61 krb5_free_unparsed_name(context
, str
);
62 krb5_free_context(context
);
64 *minor_status
= (OM_uint32
) G_BUFFER_ALLOC
;
65 return(GSS_S_FAILURE
);
68 krb5_free_unparsed_name(context
, str
);
69 krb5_free_context(context
);
73 *output_name_type
= (gss_OID
) gss_nt_krb5_name
;
74 return(GSS_S_COMPLETE
);