#pragma warning( disable: 4049 )
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 440
#endif
#include "rpc.h"
#include "rpcndr.h"
#ifndef __ccapi_h__
#define __ccapi_h__
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif
#ifdef __cplusplus
extern "C"{
#endif
void * __RPC_USER MIDL_user_allocate(size_t);
void __RPC_USER MIDL_user_free( void * );
#ifndef __ccapi_INTERFACE_DEFINED__
#define __ccapi_INTERFACE_DEFINED__
typedef struct opaque_handle_CTX *HCTX;
typedef struct opaque_handle_CACHE *HCACHE;
typedef struct opaque_handle_CACHE_ITER *HCACHE_ITER;
typedef struct opaque_handle_CRED_ITER *HCRED_ITER;
typedef unsigned char CC_CHAR;
typedef unsigned char CC_UCHAR;
typedef int CC_INT32;
typedef unsigned int CC_UINT32;
typedef CC_INT32 CC_TIME_T;
enum __MIDL_ccapi_0001
{ STK_AFS = 0,
STK_DES = 1
} ;
enum __MIDL_ccapi_0002
{ CC_API_VER_1 = 1,
CC_API_VER_2 = 2
} ;
enum __MIDL_ccapi_0003
{ KRB_NAME_SZ = 40,
KRB_INSTANCE_SZ = 40,
KRB_REALM_SZ = 40,
MAX_V4_CRED_LEN = 1250
} ;
typedef struct _NC_INFO
{
CC_CHAR *name;
CC_CHAR *principal;
CC_INT32 vers;
} NC_INFO;
typedef struct _NC_INFO_LIST
{
CC_UINT32 length;
NC_INFO *info;
} NC_INFO_LIST;
typedef struct _V4_CRED
{
CC_UCHAR kversion;
CC_CHAR principal[ 41 ];
CC_CHAR principal_instance[ 41 ];
CC_CHAR service[ 41 ];
CC_CHAR service_instance[ 41 ];
CC_CHAR realm[ 41 ];
CC_UCHAR session_key[ 8 ];
CC_INT32 kvno;
CC_INT32 str_to_key;
CC_INT32 issue_date;
CC_INT32 lifetime;
CC_UINT32 address;
CC_INT32 ticket_sz;
CC_UCHAR ticket[ 1250 ];
} V4_CRED;
typedef struct _CC_DATA
{
CC_UINT32 type;
CC_UINT32 length;
CC_UCHAR *data;
} CC_DATA;
typedef struct _CC_DATA_LIST
{
CC_UINT32 count;
CC_DATA *data;
} CC_DATA_LIST;
typedef struct _V5_CRED
{
CC_CHAR *client;
CC_CHAR *server;
CC_DATA keyblock;
CC_TIME_T authtime;
CC_TIME_T starttime;
CC_TIME_T endtime;
CC_TIME_T renew_till;
CC_UINT32 is_skey;
CC_UINT32 ticket_flags;
CC_DATA_LIST addresses;
CC_DATA ticket;
CC_DATA second_ticket;
CC_DATA_LIST authdata;
} V5_CRED;
typedef union _CRED_PTR_UNION
{
V4_CRED *pV4Cred;
V5_CRED *pV5Cred;
} CRED_PTR_UNION;
typedef struct _CRED_UNION
{
CC_INT32 cred_type;
CRED_PTR_UNION cred;
} CRED_UNION;
CC_INT32 rcc_initialize(
HCTX *pctx);
CC_INT32 rcc_shutdown(
HCTX *pctx);
CC_INT32 rcc_get_change_time(
HCTX ctx,
CC_TIME_T *time);
CC_INT32 rcc_create(
HCTX ctx,
const CC_CHAR *name,
const CC_CHAR *principal,
CC_INT32 vers,
CC_UINT32 flags,
HCACHE *pcache);
CC_INT32 rcc_open(
HCTX ctx,
const CC_CHAR *name,
CC_INT32 vers,
CC_UINT32 flags,
HCACHE *pcache);
CC_INT32 rcc_close(
HCACHE *pcache);
CC_INT32 rcc_destroy(
HCACHE *pcache);
CC_INT32 rcc_seq_fetch_NCs_begin(
HCTX ctx,
HCACHE_ITER *piter);
CC_INT32 rcc_seq_fetch_NCs_end(
HCACHE_ITER *piter);
CC_INT32 rcc_seq_fetch_NCs_next(
HCACHE_ITER iter,
HCACHE *pcache);
CC_INT32 rcc_seq_fetch_NCs(
HCTX ctx,
HCACHE_ITER *piter,
HCACHE *pcache);
CC_INT32 rcc_get_NC_info(
HCTX ctx,
NC_INFO_LIST **info_list);
CC_INT32 rcc_get_name(
HCACHE cache,
CC_CHAR **name);
CC_INT32 rcc_set_principal(
HCACHE cache,
CC_INT32 vers,
const CC_CHAR *principal);
CC_INT32 rcc_get_principal(
HCACHE cache,
CC_CHAR **principal);
CC_INT32 rcc_get_cred_version(
HCACHE cache,
CC_INT32 *vers);
CC_INT32 rcc_lock_request(
HCACHE cache,
CC_INT32 lock_type);
CC_INT32 rcc_store(
HCACHE cache,
CRED_UNION cred);
CC_INT32 rcc_remove_cred(
HCACHE cache,
CRED_UNION cred);
CC_INT32 rcc_seq_fetch_creds(
HCACHE cache,
HCRED_ITER *piter,
CRED_UNION **cred);
CC_INT32 rcc_seq_fetch_creds_begin(
HCACHE cache,
HCRED_ITER *piter);
CC_INT32 rcc_seq_fetch_creds_end(
HCRED_ITER *piter);
CC_INT32 rcc_seq_fetch_creds_next(
HCRED_ITER iter,
CRED_UNION **cred);
CC_UINT32 Connect(
CC_CHAR *name);
void Shutdown( void);
extern handle_t ccapi_IfHandle;
extern RPC_IF_HANDLE ccapi_ClientIfHandle;
extern RPC_IF_HANDLE ccapi_ServerIfHandle;
#endif
void __RPC_USER HCTX_rundown( HCTX );
void __RPC_USER HCACHE_rundown( HCACHE );
void __RPC_USER HCACHE_ITER_rundown( HCACHE_ITER );
void __RPC_USER HCRED_ITER_rundown( HCRED_ITER );
#ifdef __cplusplus
}
#endif
#endif