224 lines
4.6 KiB
C
224 lines
4.6 KiB
C
/***********************************************************************
|
|
*
|
|
* Copyright (C) 2006 Novell, Inc. All Rights Reserved.
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; version 2.1
|
|
* of the License.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Library Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, Novell, Inc.
|
|
*
|
|
* To contact Novell about this file by physical or electronic mail,
|
|
* you may find current contact information at www.novell.com.
|
|
*
|
|
* Author: Juan Carlos Luciani <jluciani@novell.com>
|
|
*
|
|
***********************************************************************/
|
|
|
|
#ifndef _INTERNAL_H_
|
|
#define _INTERNAL_H_
|
|
|
|
//===[ Include files ]=====================================================
|
|
|
|
#include "platform.h"
|
|
#include <expat.h>
|
|
#include <micasa_types.h>
|
|
#include <casa_status.h>
|
|
#include <casa_s_authtoken.h>
|
|
#include <casa_c_ipc.h>
|
|
#include "proto.h"
|
|
#include "list_entry.h"
|
|
#include "config_if.h"
|
|
#include "iden_token_provider_if.h"
|
|
|
|
//===[ Type definitions ]==================================================
|
|
|
|
//
|
|
// Authentication Token structure
|
|
//
|
|
typedef struct _AuthToken
|
|
{
|
|
int tokenLifetime;
|
|
char *pSignature;
|
|
int signatureLen;
|
|
char *pIdenTokenType;
|
|
int idenTokenTypeLen;
|
|
char *pIdenToken;
|
|
int idenTokenLen;
|
|
|
|
} AuthToken, *PAuthToken;
|
|
|
|
|
|
//===[ Inlines functions ]===============================================
|
|
|
|
//===[ Function prototypes ]===============================================
|
|
|
|
//===[ Global variables ]==================================================
|
|
|
|
//===[ Global externals ]==================================================
|
|
|
|
extern int DebugLevel;
|
|
|
|
//===[ External prototypes ]===============================================
|
|
|
|
//
|
|
// Functions exported by config.c
|
|
//
|
|
extern
|
|
CasaStatus
|
|
GetConfigInterface(
|
|
IN const char *pConfigFolder,
|
|
IN const char *pConfigName,
|
|
INOUT ConfigIf **ppConfigIf);
|
|
|
|
extern
|
|
CasaStatus
|
|
ConfigIfInit(void);
|
|
|
|
extern
|
|
void
|
|
ConfigIfUninit(void);
|
|
|
|
//
|
|
// Functions exported by identoken.c
|
|
//
|
|
extern
|
|
CasaStatus
|
|
GetIdenTokenProviderInterface(
|
|
IN const char *pIdenTokenTypeName,
|
|
INOUT IdenTokenProviderIf **ppIdenTokenProviderIf);
|
|
|
|
extern
|
|
CasaStatus
|
|
IdenTokenInit(void);
|
|
|
|
extern
|
|
void
|
|
IdenTokenUninit(void);
|
|
|
|
//
|
|
// Functions exported by platform.c
|
|
//
|
|
extern
|
|
HANDLE
|
|
PlatAllocMutex(void);
|
|
|
|
extern
|
|
void
|
|
PlatDestroyMutex(HANDLE hMutex);
|
|
|
|
extern
|
|
void
|
|
PlatAcquireMutex(HANDLE hMutex);
|
|
|
|
extern
|
|
void
|
|
PlatReleaseMutex(HANDLE hMutex);
|
|
|
|
extern
|
|
LIB_HANDLE
|
|
OpenLibrary(
|
|
IN char *pFileName);
|
|
|
|
extern
|
|
void
|
|
CloseLibrary(
|
|
IN LIB_HANDLE libHandle);
|
|
|
|
extern
|
|
void*
|
|
GetFunctionPtr(
|
|
IN LIB_HANDLE libHandle,
|
|
IN char *pFunctionName);
|
|
|
|
//
|
|
// Functions exported by principal.c
|
|
//
|
|
|
|
extern
|
|
CasaStatus
|
|
GetPrincipalInterface(
|
|
IN IdenTokenIf *pIdenTokenIf,
|
|
INOUT PrincipalIf **ppPrincipalIf);
|
|
|
|
extern
|
|
CasaStatus
|
|
PrincipalIfInit(void);
|
|
|
|
extern
|
|
void
|
|
PrincipalIfUninit(void);
|
|
|
|
//
|
|
// Functions exported by validate.c
|
|
//
|
|
|
|
extern
|
|
CasaStatus SSCS_CALL
|
|
ValidateAuthToken(
|
|
IN const char *pServiceName,
|
|
IN const char *pTokenBuf,
|
|
IN const int tokenBufLen,
|
|
INOUT PrincipalIf **ppPrincipalIf);
|
|
|
|
//
|
|
// Functions exported by authtoken.c
|
|
//
|
|
|
|
extern
|
|
CasaStatus
|
|
CreateAuthToken(
|
|
IN char *pTokenBuf,
|
|
IN int tokenBufLen,
|
|
INOUT AuthToken **ppAuthToken);
|
|
|
|
extern
|
|
void
|
|
RelAuthToken(
|
|
IN AuthToken *pAuthToken);
|
|
|
|
extern
|
|
CasaStatus
|
|
CheckAuthToken(
|
|
IN AuthToken *pAuthToken,
|
|
IN const char *pServiceName);
|
|
|
|
//
|
|
// Defined in utils.c
|
|
//
|
|
|
|
extern
|
|
CasaStatus
|
|
EncodeData(
|
|
IN const void *pData,
|
|
IN const int32_t dataLen,
|
|
INOUT char **ppEncodedData,
|
|
INOUT int32_t *pEncodedDataLen);
|
|
|
|
extern
|
|
CasaStatus
|
|
DecodeData(
|
|
IN const char *pEncodedData,
|
|
IN const int32_t encodedDataLen, // Does not include NULL terminator
|
|
INOUT void **ppData,
|
|
INOUT int32_t *pDataLen);
|
|
|
|
extern
|
|
int
|
|
dtoul(
|
|
IN char *cp,
|
|
IN int len);
|
|
|
|
|
|
//=========================================================================
|
|
|
|
#endif // _INTERNAL_H_
|
|
|