/* @(#)46	1.4  src/security/idl/secidmap.idl, security.src, os2dce21.dss, 960602a.1 5/17/95 09:50:26 */
/*
 * COMPONENT_NAME:  security.client.src 
 *
 * FUNCTIONS: 
 *
 * ORIGINS: 72
 *
 */
/*
 * Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
 * ALL RIGHTS RESERVED (DCE).  See the file named COPYRIGHT.DCE in the
 * src directory for the full copyright text.
 */
/*
 * HISTORY
 * $Log: secidmap.idl,v $
 * Revision 1.1.2.2  1992/12/29  13:54:26  zeliff
 *      Embedding copyright notice
 *      [1992/12/28  20:22:21  zeliff]
 *
 * Revision 1.1  1992/01/19  14:55:09  devrcs
 * Initial revision
 *
 * $EndLog$
 */
/*
*/

/*  secidmap.idl V=2 08/22/91 //littl/prgy/src/idl
**
** Copyright (c) Hewlett-Packard Company 1991
** Unpublished work. All Rights Reserved.
**
*/
/*
 * 
 * Map between global principal names and principal/cell UUID and corresponding 
 * name portions.
 */

[
    local
]

interface secidmap

{
    import "dce/rgybase.idl";

    /*
     * s e c _ i d _ p a r s e _ n a m e            AKA redbox
     *
     * Parse a global principal name into a cell name and a cell relative
     * principal name.  Return the IDs associated with each component.
     * A NULL pointer for an output value will cause that portion of the
     * translation to be skipped.
     */
     
    void sec_id_parse_name (
        [in]        sec_rgy_handle_t    context,
        [in]        sec_rgy_name_t      global_name,
        [out]       sec_rgy_name_t      cell_namep,
        [out]       uuid_t              *cell_idp,
        [out]       sec_rgy_name_t      princ_namep,
        [out]       uuid_t              *princ_idp,
        [out]       error_status_t      *status
    );
    
    
    /*
     * s e c _ i d _ g e n _ n a m e              AKA bluebox
     *
     * Generate a global name from the cell and principal uuids.  Also returns
     * the name of the cell uuid and the principal uuid as independent units.
     * A NULL pointer for an output value will cause that portion of the
     * translation to be skipped.
     */
     
    void sec_id_gen_name (
        [in]        sec_rgy_handle_t    context,
        [in]        uuid_t              *cell_idp,
        [in]        uuid_t              *princ_idp,
        [out]       sec_rgy_name_t      global_name,
        [out]       sec_rgy_name_t      cell_namep,
        [out]       sec_rgy_name_t      princ_namep,
        [out]       error_status_t      *status
    );


    /*
     * s e c _ i d _ p a r s e _ g r o u p          AKA maroonbox
     *
     * Parse a global group name into a cell name and a cell relative
     * principal name.  Return the IDs associated with each component.
     * A NULL pointer for an output value will cause that portion of the
     * translation to be skipped.
     */
     
    void sec_id_parse_group (
        [in]        sec_rgy_handle_t    context,
        [in]        sec_rgy_name_t      global_name,
        [out]       sec_rgy_name_t      cell_namep,
        [out]       uuid_t              *cell_idp,
        [out]       sec_rgy_name_t      group_namep,
        [out]       uuid_t              *group_idp,
        [out]       error_status_t      *status
    );
    
    
    /*
     * s e c _ i d _ g e n _ g r o u p              AKA fuchsiabox
     *
     * Generate a global name from the cell and group uuids.  Also returns
     * the name of the cell uuid and the group uuid as independent units.
     * A NULL pointer for an output value will cause that portion of the
     * translation to be skipped.
     */
     
    void sec_id_gen_group (
        [in]        sec_rgy_handle_t    context,
        [in]        uuid_t              *cell_idp,
        [in]        uuid_t              *group_idp,
        [out]       sec_rgy_name_t      global_name,
        [out]       sec_rgy_name_t      cell_namep,
        [out]       sec_rgy_name_t      group_namep,
        [out]       error_status_t      *status
    );
}
