diff --git a/auth_token/client/mechanisms/krb5/win32/dllsup.c b/auth_token/client/mechanisms/krb5/win32/dllsup.c deleted file mode 100644 index 1fbf8cc8..00000000 --- a/auth_token/client/mechanisms/krb5/win32/dllsup.c +++ /dev/null @@ -1,132 +0,0 @@ -/*********************************************************************** - * - * 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 - * - ***********************************************************************/ - -//===[ Include files ]===================================================== - -#include "internal.h" - -//===[ External data ]===================================================== - -//===[ Manifest constants ]================================================ - -//===[ Type definitions ]================================================== - -//===[ Function prototypes ]=============================================== - -//===[ Global variables ]================================================== - -UINT32 g_ulCount = 0; -UINT32 g_ulLock = 0; -HANDLE g_hModule; - - -//++======================================================================= -BOOL APIENTRY DllMain( - HANDLE hModule, - DWORD ul_reason_for_call, - LPVOID lpReserved - ) -//=======================================================================-- -{ - BOOL retStatus = TRUE; - - switch (ul_reason_for_call) - { - case DLL_PROCESS_ATTACH: - { - g_hModule = hModule; - - // Initialize the library - if (InitializeLibrary() != 0) - { - // Failed to initialize the library - OutputDebugString("CASA_KRB5_MECH -DllMain- Library initialization failed\n"); - retStatus = FALSE; - } - break; - } - - case DLL_THREAD_ATTACH: - { - g_hModule = hModule; - break; - } - - case DLL_THREAD_DETACH: - break; - - case DLL_PROCESS_DETACH: - { - /* Don't uninitialize on windows - tbd - */ - break; - } - } - - return retStatus; -} - -//++======================================================================= -// -// DllCanUnloadNow -// -// Synopsis -// -// -STDAPI -DllCanUnloadNow() -// -// Input Arguments -// -// Ouput Arguments -// -// Return Value -// S_OK The DLL can be unloaded. -// S_FALSE The DLL cannot be unloaded now. -// -// Description -// An Exported Function. -// DLLs that support the OLE Component Object Model (COM) should implement -// and export DllCanUnloadNow. -// A call to DllCanUnloadNow determines whether the DLL from which it is -// exported is still in use. A DLL is no longer in use when it is not -// managing any existing objects (the reference count on all of its objects -// is 0). -// DllCanUnloadNow returns S_FALSE if there are any existing references to -// objects that the DLL manages. -// -// Environment -// -// See Also -// -//=======================================================================-- -{ - // tbd - return ((g_ulCount == 0 && g_ulLock == 0) ? S_OK : S_FALSE); -} - -//========================================================================= -//========================================================================= - diff --git a/auth_token/client/mechanisms/krb5/win32/get.c b/auth_token/client/mechanisms/krb5/win32/get.c deleted file mode 100644 index a3ac6000..00000000 --- a/auth_token/client/mechanisms/krb5/win32/get.c +++ /dev/null @@ -1,272 +0,0 @@ -/*********************************************************************** - * - * 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 - * - ***********************************************************************/ - - -//===[ Include files ]===================================================== - -#include "internal.h" - -//===[ Type definitions ]================================================== - -//===[ Function prototypes ]=============================================== - -//===[ Global variables ]================================================== - - -//++======================================================================= -CasaStatus SSCS_CALL -AuthTokenIf_GetAuthToken( - IN const void *pIfInstance, - IN const char *pContext, - IN const char *pMechInfo, - INOUT char *pTokenBuf, - INOUT int *pTokenBufLen) -// -// Arguments: -// pIfInstance - -// Pointer to interface object. -// -// pServiceConfigIf - -// Pointer to service config object to which the client is trying to -// authenticate. -// -// pContext - -// Pointer to null terminated string containing mechanism specific -// context information. Another name for context is Authentication -// Realm. -// -// pMechInfo - -// Pointer to null terminated string containing mechanism specific -// information. This is information is provided by the server to -// aid the mechanism to generate an authentication token. For -// example, the mechanism information for a Kerberos mechanism -// may be the service principal name to which the user will be -// authenticating. -// -// pTokenBuf - -// Pointer to buffer that will receive the authentication -// token. The length of this buffer is specified by the -// pTokenBufLen parameter. Note that the the authentication -// token will be in the form of a NULL terminated string. -// -// pTokenBufLen - -// Pointer to integer that contains the length of the -// buffer pointed at by pTokenBuf. Upon return of the -// function, the integer will contain the actual length -// of the authentication token if the function successfully -// completes or the buffer length required if the function -// fails because the buffer pointed at by pUserNameBuf is -// not large enough. -// -// Returns: -// Casa Status -// -// Description: -// Get authentication token to authenticate user to specified service. -// -// L2 -//=======================================================================-- -{ - CasaStatus retStatus; - char *pKrbServiceName = pMechInfo; - SECURITY_STATUS secStatus; - TimeStamp expiry; - CredHandle hCredentials = {0}; - - - DbgTrace(1, "-AuthTokenIf_GetAuthToken- Start\n", 0); - - // Validate input parameters - if (pIfInstance == NULL - || pContext == NULL - || pMechInfo == NULL - || pTokenBufLen == NULL - || (pTokenBuf == NULL && *pTokenBufLen != 0)) - { - DbgTrace(0, "-AuthTokenIf_GetAuthToken- Invalid input parameter\n", 0); - - retStatus = CasaStatusBuild(CASA_SEVERITY_ERROR, - CASA_FACILITY_KRB5TOKEN, - CASA_STATUS_INVALID_PARAMETER); - goto exit; - } - - // Acquire a credential handle for the current user - secStatus = AcquireCredentialsHandle(NULL, // no principal name - "Kerberos", // package name - SECPKG_CRED_OUTBOUND, - NULL, // no logon id - NULL, // no auth data - NULL, // no get key fn - NULL, // noget key arg - &hCredentials, - &expiry); - if (secStatus == SEC_E_OK) - { - CtxtHandle hContext = {0}; - SecBuffer sendTok; - SecBufferDesc outputDesc; - ULONG retFlags; - - // We acquired the credential, now initialize a security context - // so that we can authenticate the user to the specified service. - // - // First ready an output descriptor so that we can receive the - // token buffer. - outputDesc.cBuffers = 1; - outputDesc.pBuffers = &sendTok; - outputDesc.ulVersion = SECBUFFER_VERSION; - - sendTok.BufferType = SECBUFFER_TOKEN; - sendTok.cbBuffer = 0; - sendTok.pvBuffer = NULL; - - // Initialize the security context for the specified service - secStatus = InitializeSecurityContext(&hCredentials, - NULL, - pKrbServiceName, - ISC_REQ_ALLOCATE_MEMORY, - 0, // reserved - SECURITY_NATIVE_DREP, - NULL, - 0, // reserved - &hContext, - &outputDesc, - &retFlags, - &expiry); - if (secStatus == SEC_E_OK) - { - char *pEncodedToken; - int encodedTokenLen; - - // The security context was initialized, now return it to the caller after base64 encoding it. - retStatus = EncodeData(sendTok.pvBuffer, - (const int) sendTok.cbBuffer, - &pEncodedToken, - &encodedTokenLen); - if (CASA_SUCCESS(retStatus)) - { - // Verify that the caller provided a buffer that is big enough - if (encodedTokenLen > *pTokenBufLen) - { - // The buffer is not big enough - retStatus = CasaStatusBuild(CASA_SEVERITY_ERROR, - CASA_FACILITY_KRB5TOKEN, - CASA_STATUS_BUFFER_OVERFLOW); - } - else - { - // The buffer provided is large enough, copy the data. - memcpy((void*) pTokenBuf, pEncodedToken, encodedTokenLen); - - // Success - retStatus = CASA_STATUS_SUCCESS; - } - - // Return the actual size or the size required - *pTokenBufLen = encodedTokenLen; - - // Free the buffer containing the encoded token - free(pEncodedToken); - } - - // Delete the security context - DeleteSecurityContext(&hContext); - } - else - { - DbgTrace(0, "-AuthTokenIf_GetAuthToken- Failed to initialize the security context, error = %08X\n", secStatus); - - retStatus = CasaStatusBuild(CASA_SEVERITY_ERROR, - CASA_FACILITY_KRB5TOKEN, - CASA_STATUS_UNSUCCESSFUL); - } - - // Free any buffer associated with the sendToken - if (sendTok.pvBuffer) - FreeContextBuffer(sendTok.pvBuffer); - - // Free the credential handle obtained - FreeCredentialsHandle(&hCredentials); - - } - else - { - DbgTrace(1, "-AuthTokenIf_GetAuthToken- Failed to obtain the credentials handle, error = %08X\n", secStatus); - - // Set retStatus based on secStatus - if (secStatus == SEC_E_NOT_OWNER - || secStatus == SEC_E_NO_CREDENTIALS) - { - retStatus = CasaStatusBuild(CASA_SEVERITY_ERROR, - CASA_FACILITY_KRB5TOKEN, - CASA_STATUS_NO_CREDENTIALS); - } - else - { - retStatus = CasaStatusBuild(CASA_SEVERITY_ERROR, - CASA_FACILITY_KRB5TOKEN, - CASA_STATUS_UNSUCCESSFUL); - } - } - -exit: - - DbgTrace(1, "-AuthTokenIf_GetAuthToken- End, retStatus = %08X\n", retStatus); - - return retStatus; -} - - -//++======================================================================= -int -InitializeLibrary(void) -// -// Arguments: -// -// Returns: -// -// Abstract: -// -// Notes: -// -// L2 -//=======================================================================-- -{ - int retStatus = 0; - - DbgTrace(1, "-InitializeLibrary- Start\n", 0); - - // Nothing to do at this time. - - DbgTrace(1, "-InitializeLibrary- End, retStatus = %08X\n", retStatus); - - return retStatus; -} - - -//++======================================================================= -//++======================================================================= -//++======================================================================= - diff --git a/auth_token/client/mechanisms/krb5/win32/krb5mech.def b/auth_token/client/mechanisms/krb5/win32/krb5mech.def deleted file mode 100644 index 1605afcf..00000000 --- a/auth_token/client/mechanisms/krb5/win32/krb5mech.def +++ /dev/null @@ -1,10 +0,0 @@ -LIBRARY KRB5MECH -DESCRIPTION 'CASA Kerberos V Authentication Mechanism Library.' - - -EXPORTS -; DllRegisterServer PRIVATE -; DllUnregisterServer PRIVATE -; DllGetClassObject PRIVATE - GetAuthTokenInterface PRIVATE -; DllCanUnloadNow PRIVATE \ No newline at end of file diff --git a/auth_token/client/mechanisms/krb5/win32/platform.c b/auth_token/client/mechanisms/krb5/win32/platform.c deleted file mode 100644 index 869b581c..00000000 --- a/auth_token/client/mechanisms/krb5/win32/platform.c +++ /dev/null @@ -1,35 +0,0 @@ -/*********************************************************************** - * - * 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 - * - ***********************************************************************/ - -//===[ Include files ]===================================================== - -#include "internal.h" - -//===[ Type definitions ]================================================== - -//===[ Function prototypes ]=============================================== - -//===[ Global variables ]================================================== - - diff --git a/auth_token/client/mechanisms/krb5/win32/platform.h b/auth_token/client/mechanisms/krb5/win32/platform.h deleted file mode 100644 index 1b3f0f7f..00000000 --- a/auth_token/client/mechanisms/krb5/win32/platform.h +++ /dev/null @@ -1,83 +0,0 @@ -/*********************************************************************** - * - * 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 _PLATFORM_H_ -#define _PLATFORM_H_ - -//===[ Include files ]===================================================== - -#include -#include -#include -#include -#include - -//===[ Type definitions ]================================================== - -#ifndef CONTAINING_RECORD -#define CONTAINING_RECORD(address, type, field) ((type *)( \ - (char*)(address) - \ - (char*)(&((type *)0)->field))) -#endif - -// -// DbgTrace macro define -// -//#define DbgTrace(LEVEL, X, Y) { \ -//char printBuff[256]; \ -// if (LEVEL == 0 || DebugLevel >= LEVEL) \ -// { \ -// _snprintf(printBuff, sizeof(printBuff), X, Y); \ -// printf("Krb5Mech %s", printBuff); \ -// } \ -//} -#define DbgTrace(LEVEL, X, Y) { \ -char formatBuff[128]; \ -char printBuff[256]; \ - if (LEVEL == 0 || DebugLevel >= LEVEL) \ - { \ - strcpy(formatBuff, "Krb5Mech "); \ - strncat(formatBuff, X, sizeof(formatBuff) - 9); \ - _snprintf(printBuff, sizeof(printBuff), formatBuff, Y); \ - OutputDebugString(printBuff); \ - } \ -} - -#define bool BOOLEAN -#define true TRUE -#define false FALSE - -//===[ Inlines functions ]=============================================== - -//===[ Function prototypes ]=============================================== - -//===[ Global externals ]================================================== - -//===[ External prototypes ]=============================================== - - -//========================================================================= - -#endif // _PLATFORM_H_ -