/*********************************************************************** * * 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 * ***********************************************************************/ #ifndef _INTERNAL_H_ #define _INTERNAL_H_ //===[ Include files ]===================================================== #include "platform.h" #include #include #include #include #include #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; extern char pathCharString[]; extern char moduleConfigFolderPath[]; extern char IpcClientLibraryPath[]; //===[ 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 const char *cp, IN const int len); //========================================================================= #endif // _INTERNAL_H_