/* @(#)12       1.3  src/security/idl/rsec_login.idl, security.src, os2dce21.dss, 960602a.1  5/17/95  09:51:16 */
/*
 * COMPONENT_NAME:  security.src 
 *
 * FUNCTIONS: 
 *
 * ORIGINS: 72
 *
 */
/*
 * Copyright (c) 1990, 1991, 1992, 1993, 1994 Open Software Foundation, Inc.
 * ALL RIGHTS RESERVED (DCE).  See the file named COPYRIGHT.DCE for
 * the full copyright text.
 */
/*
 * HISTORY
 * $Log: rsec_login.idl,v $
 * Revision 1.1.2.4  1994/10/17  19:30:58  sommerfeld
 * 	OT11548: fix hole in local preauth protocol
 * 	[1994/10/17  19:28:03  sommerfeld]
 *
 * Revision 1.1.2.3  1994/06/17  18:42:29  devsrc
 * 	cr10872 - fix copyright
 * 	[1994/06/17  18:10:33  devsrc]
 * 
 * Revision 1.1.2.2  1994/06/02  21:28:36  mdf
 * 	hp_sec_to_osf_3 drop, merge up with latest.
 * 	[1994/05/24  15:16:13  mdf]
 * 
 * 	hp_sec_to_osf_3 drop
 * 
 * 	/main/ODESSA_2/2  1994/04/28  21:23 UTC  mullan_s
 * 	Merge from mullan_el_bl18 to ODESSA_2.
 * 
 * 	/main/ODESSA_2/mullan_el_bl18/1  1994/04/27  16:53 UTC  mullan_s
 * 	Add client principal argument to rsec_login_get_trusted_preauth.
 * 
 * $EndLog$
 */
/*
 * rsec_login.idl
 *
 * Copyright (c) Hewlett-Packard Company 1994
 * Unpublished work. All Rights Reserved.
 *
 * rsec_login.idl - Remote sec_login preauth interface.
 *
 */

[
    uuid(a76e832a-10df-11cd-9056-080009242444),
    pointer_default(ptr),
    version(2.0)
]

interface rsec_login {

    /*
     * Structure to hold a data stream.
     */
    typedef struct {
        unsigned32                              num_bytes;
        [size_is(num_bytes)]
            byte                                bytes[];
    } encoded_data_t;

	typedef	[string] char *rsec_login_filename;
    /*
     * rsec_login_get_trusted_preauth - this routine gets
     * the trusted portions of the preauthentication data
     * required for the type KRB5_PADATA_ENC_THIRD_PARTY.
     * It securely passes a random key to the caller via
     * a file. 
     */
    void rsec_login_get_trusted_preauth (
        [in]            handle_t                handle,
        [in, string]    char                    *princ,
	[in]		unsigned32		caller_uid,
        [out]		rsec_login_filename     *tfile,
        [out]           encoded_data_t          **machine_tgt,
        [out]           encoded_data_t          **ebuf,
        [out]           error_status_t          *stp
    );
}
