/* Generated by IDL compiler version OSF DCE T1.1.0-03 */
#ifndef DCEAPI 
# include <dce/dcedef.h> 
#endif 
#ifndef sec_login_v0_0_included
#define sec_login_v0_0_included
#ifndef IDLBASE_H
#include <dce/idlbase.h>
#endif

#ifdef __cplusplus
    extern "C" {
#endif

#ifndef nbase_v0_0_included
#include <dce/nbase.h>
#endif
#ifndef secsts_v0_0_included
#include <dce/secsts.h>
#endif
#ifndef lbase_v0_0_included
#include <dce/lbase.h>
#endif
#ifndef sec_id_epac_base_v0_0_included
#include <dce/id_epac.h>
#endif
#ifndef passwd_v0_0_included
#include <dce/passwd.h>
#endif
#ifndef rgynbase_v0_0_included
#include <dce/rgynbase.h>
#endif
#ifndef rpcbase_v0_0_included
#include <dce/rpcbase.h>
#endif
typedef unsigned32 sec_login_flags_t;
#define sec_login_no_flags (0)
#define sec_login_credentials_private (1)
#define sec_login_external_tgt (2)
#define sec_login_proxy_cred (4)
#define sec_login_machine_princ (8)
typedef enum {sec_login_auth_src_network,
sec_login_auth_src_local,
sec_login_auth_src_overridden} sec_login_auth_src_t;
typedef idl_void_p_t sec_login_handle_t;
#define sec_login_default_handle NULL
typedef idl_void_p_t sec_login_passwd_t;
#define sec_login_remote_uid (-3)
#define sec_login_remote_gid (-3)
extern boolean32  DCEAPI sec_login_setup_identity(
#ifdef IDL_PROTOTYPES
    /* [in] */ unsigned_char_p_t principal,
    /* [in] */ sec_login_flags_t flags,
    /* [out] */ sec_login_handle_t *login_context,
    /* [out] */ error_status_t *st
#endif
);
extern boolean32  DCEAPI sec_login_refresh_identity(
#ifdef IDL_PROTOTYPES
    /* [in] */ sec_login_handle_t login_context,
    /* [out] */ error_status_t *st
#endif
);
extern boolean32  DCEAPI sec_login_validate_identity(
#ifdef IDL_PROTOTYPES
    /* [in] */ sec_login_handle_t login_context,
    /* [in, out] */ sec_passwd_rec_t *passwd,
    /* [out] */ boolean32 *reset_passwd,
    /* [out] */ sec_login_auth_src_t *auth_src,
    /* [out] */ error_status_t *st
#endif
);
extern boolean32  DCEAPI sec_login_valid_and_cert_ident(
#ifdef IDL_PROTOTYPES
    /* [in] */ sec_login_handle_t login_context,
    /* [in, out] */ sec_passwd_rec_t *passwd,
    /* [out] */ boolean32 *reset_passwd,
    /* [out] */ sec_login_auth_src_t *auth_src,
    /* [out] */ error_status_t *st
#endif
);
extern void  DCEAPI sec_login_valid_from_keytable(
#ifdef IDL_PROTOTYPES
    /* [in] */ sec_login_handle_t login_context,
    /* [in] */ unsigned32 authn_service,
    /* [in] */ idl_void_p_t arg,
    /* [in] */ unsigned32 try_kvno,
    /* [out] */ unsigned32 *used_kvno,
    /* [out] */ boolean32 *reset_passwd,
    /* [out] */ sec_login_auth_src_t *auth_src,
    /* [out] */ error_status_t *st
#endif
);
extern boolean32  DCEAPI sec_login_certify_identity(
#ifdef IDL_PROTOTYPES
    /* [in] */ sec_login_handle_t login_context,
    /* [out] */ error_status_t *st
#endif
);
extern void  DCEAPI sec_login_set_context(
#ifdef IDL_PROTOTYPES
    /* [in] */ sec_login_handle_t login_context,
    /* [out] */ error_status_t *st
#endif
);
extern void  DCEAPI sec_login_get_current_context(
#ifdef IDL_PROTOTYPES
    /* [out] */ sec_login_handle_t *login_context,
    /* [out] */ error_status_t *st
#endif
);
extern void  DCEAPI sec_login_purge_context(
#ifdef IDL_PROTOTYPES
    /* [in, out] */ sec_login_handle_t *login_context,
    /* [out] */ error_status_t *st
#endif
);
extern void  DCEAPI sec_login_purge_context_exp(
#ifdef IDL_PROTOTYPES
    /* [in] */ unsigned32 buf_len,
    /* [in] */ idl_byte buf[],
    /* [in] */ signed32 purge_time,
    /* [out] */ error_status_t *st
#endif
);
extern void  DCEAPI sec_login_release_context(
#ifdef IDL_PROTOTYPES
    /* [in, out] */ sec_login_handle_t *login_context,
    /* [out] */ error_status_t *st
#endif
);
extern void  DCEAPI sec_login_init_first(
#ifdef IDL_PROTOTYPES
    /* [out] */ error_status_t *st
#endif
);
extern boolean32  DCEAPI sec_login_setup_first(
#ifdef IDL_PROTOTYPES
    /* [out] */ sec_login_handle_t *init_context,
    /* [out] */ error_status_t *st
#endif
);
extern boolean32  DCEAPI sec_login_validate_first(
#ifdef IDL_PROTOTYPES
    /* [in] */ sec_login_handle_t init_context,
    /* [out] */ boolean32 *reset_passwd,
    /* [out] */ sec_login_auth_src_t *auth_src,
    /* [out] */ error_status_t *st
#endif
);
extern void  DCEAPI sec_login_get_pwent(
#ifdef IDL_PROTOTYPES
    /* [in] */ sec_login_handle_t login_context,
    /* [out] */ sec_login_passwd_t *pwent,
    /* [out] */ error_status_t *st
#endif
);
extern void  DCEAPI sec_login_get_groups(
#ifdef IDL_PROTOTYPES
    /* [in] */ sec_login_handle_t login_context,
    /* [out] */ unsigned32 *num_groups,
    /* [out] */ signed32 **group_set,
    /* [out] */ error_status_t *st
#endif
);
extern void  DCEAPI sec_login_get_expiration(
#ifdef IDL_PROTOTYPES
    /* [in] */ sec_login_handle_t login_context,
    /* [out] */ signed32 *identity_expiration,
    /* [out] */ error_status_t *st
#endif
);
typedef struct sec_login_net_info_t {
sec_id_pac_t pac;
unsigned32 acct_expiration_date;
unsigned32 passwd_expiration_date;
unsigned32 identity_expiration_date;
} sec_login_net_info_t;
extern void  DCEAPI sec_login_inquire_net_info(
#ifdef IDL_PROTOTYPES
    /* [in] */ sec_login_handle_t login_context,
    /* [out] */ sec_login_net_info_t *net_info,
    /* [out] */ error_status_t *st
#endif
);
extern void  DCEAPI sec_login_free_net_info(
#ifdef IDL_PROTOTYPES
    /* [in, out] */ sec_login_net_info_t *net_info
#endif
);
extern boolean32  DCEAPI sec_login_check_passwd(
#ifdef IDL_PROTOTYPES
    /* [in] */ unsigned_char_p_t principal,
    /* [in] */ sec_passwd_rec_t *passwd,
    /* [out] */ sec_login_auth_src_t *auth_src,
    /* [out] */ error_status_t *st
#endif
);
extern boolean32  DCEAPI sec_login_newgroups(
#ifdef IDL_PROTOTYPES
    /* [in] */ sec_login_handle_t login_context,
    /* [in] */ sec_login_flags_t flags,
    /* [in] */ unsigned32 num_local_groups,
    /* [in] */ sec_id_t local_groups[],
    /* [out] */ sec_login_handle_t *restricted_context,
    /* [out] */ error_status_t *st
#endif
);
extern void  DCEAPI sec_login_export_context(
#ifdef IDL_PROTOTYPES
    /* [in] */ sec_login_handle_t login_context,
    /* [in] */ unsigned32 buf_len,
    /* [out] */ idl_byte buf[],
    /* [out] */ unsigned32 *len_used,
    /* [out] */ unsigned32 *len_needed,
    /* [out] */ error_status_t *st
#endif
);
extern void  DCEAPI sec_login_import_context(
#ifdef IDL_PROTOTYPES
    /* [in] */ unsigned32 buf_len,
    /* [in] */ idl_byte buf[],
    /* [out] */ sec_login_handle_t *login_context,
    /* [out] */ error_status_t *st
#endif
);
extern unsigned32  DCEAPI sec_login_inq_pag(
#ifdef IDL_PROTOTYPES
    /* [in] */ sec_login_handle_t *login_context,
    /* [out] */ error_status_t *st
#endif
);
extern sec_login_handle_t  DCEAPI sec_login_become_initiator(
#ifdef IDL_PROTOTYPES
    /* [in] */ sec_login_handle_t my_login_context,
    /* [in] */ sec_id_delegation_type_t delegation_type_permitted,
    /* [in] */ sec_id_restriction_set_t *delegate_restrictions,
    /* [in] */ sec_id_restriction_set_t *target_restrictions,
    /* [in] */ sec_id_opt_req_t *optional_restrictions,
    /* [in] */ sec_id_opt_req_t *required_restrictions,
    /* [in] */ sec_id_compatibility_mode_t compatibility_mode,
    /* [out] */ error_status_t *error_status
#endif
);
extern sec_login_handle_t  DCEAPI sec_login_become_delegate(
#ifdef IDL_PROTOTYPES
    /* [in] */ rpc_authz_cred_handle_t callers_identity,
    /* [in] */ sec_login_handle_t my_login_context,
    /* [in] */ sec_id_delegation_type_t delegation_type_permitted,
    /* [in] */ sec_id_restriction_set_t *delegate_restrictions,
    /* [in] */ sec_id_restriction_set_t *target_restrictions,
    /* [in] */ sec_id_opt_req_t *optional_restrictions,
    /* [in] */ sec_id_opt_req_t *required_restrictions,
    /* [in] */ sec_id_compatibility_mode_t compatibility_mode,
    /* [out] */ error_status_t *error_status
#endif
);
extern sec_login_handle_t  DCEAPI sec_login_become_impersonator(
#ifdef IDL_PROTOTYPES
    /* [in] */ rpc_authz_cred_handle_t callers_identity,
    /* [in] */ sec_login_handle_t my_login_context,
    /* [in] */ sec_id_delegation_type_t delegation_type_permitted,
    /* [in] */ sec_id_restriction_set_t *delegate_restrictions,
    /* [in] */ sec_id_restriction_set_t *target_restrictions,
    /* [in] */ sec_id_opt_req_t *optional_restrictions,
    /* [in] */ sec_id_opt_req_t *required_restrictions,
    /* [out] */ error_status_t *error_status
#endif
);
extern sec_login_handle_t  DCEAPI sec_login_set_extended_attrs(
#ifdef IDL_PROTOTYPES
    /* [in] */ sec_login_handle_t my_login_context,
    /* [in] */ unsigned32 num_attributes,
    /* [in] */ sec_attr_t attributes[],
    /* [out] */ error_status_t *error_status
#endif
);
extern sec_login_handle_t  DCEAPI sec_login_disable_delegation(
#ifdef IDL_PROTOTYPES
    /* [in] */ sec_login_handle_t login_context,
    /* [out] */ error_status_t *error_status
#endif
);
extern sec_cred_pa_handle_t  DCEAPI sec_login_cred_get_initiator(
#ifdef IDL_PROTOTYPES
    /* [in] */ sec_login_handle_t login_context,
    /* [out] */ error_status_t *error_status
#endif
);
extern sec_cred_pa_handle_t  DCEAPI sec_login_cred_get_delegate(
#ifdef IDL_PROTOTYPES
    /* [in] */ sec_login_handle_t login_context,
    /* [in, out] */ sec_cred_cursor_t *cursor,
    /* [out] */ error_status_t *error_status
#endif
);
extern void  DCEAPI sec_login_cred_init_cursor(
#ifdef IDL_PROTOTYPES
    /* [in, out] */ sec_cred_cursor_t *cursor,
    /* [out] */ error_status_t *error_status
#endif
);
typedef unsigned32 sec_login_tkt_flags_t;
#define sec_login_tkt_renewable (1)
#define sec_login_tkt_postdated (2)
#define sec_login_tkt_allow_postdate (4)
#define sec_login_tkt_proxiable (8)
#define sec_login_tkt_forwardable (16)
#define sec_login_tkt_renewable_ok (32)
#define sec_login_tkt_lifetime (64)
typedef struct  {
sec_login_tkt_flags_t options;
sec_timeval_period_t postdated_dormanttime;
sec_timeval_period_t renewable_lifetime;
sec_timeval_period_t lifetime;
} sec_login_tkt_info_t;
extern void  DCEAPI sec_login_tkt_request_options(
#ifdef IDL_PROTOTYPES
    /* [in] */ sec_login_handle_t login_context,
    /* [in] */ sec_login_tkt_info_t *tkt_info,
    /* [out] */ error_status_t *status
#endif
);

#ifdef __cplusplus
    }
#endif

#endif
