mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
203 lines
5.0 KiB
203 lines
5.0 KiB
//#----------------------------------------------------------------------------
|
|
//
|
|
// File: sspspm.h
|
|
//
|
|
// Synopsis: Definitions specific to SSPI SPM DLL.
|
|
//
|
|
// Copyright (C) 1995 Microsoft Corporation. All Rights Reserved.
|
|
//
|
|
// Authors: LucyC Created 25 Sept 1995
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
#ifndef _SSPSPM_H_
|
|
#define _SSPSPM_H_
|
|
|
|
//
|
|
// Names of secruity DLL
|
|
//
|
|
#define SSP_SPM_NT_DLL "security.dll"
|
|
#define SSP_SPM_WIN95_DLL "secur32.dll"
|
|
#define SSP_SPM_SSPC_DLL "msnsspc.dll"
|
|
|
|
#define SSP_SPM_DLL_NAME_SIZE 16 // max. length of security DLL names
|
|
|
|
#define MAX_SSPI_PKG 32 // Max. no. of SSPI supported
|
|
|
|
#define SSPPKG_ERROR ((UCHAR) 0xff)
|
|
#define SSPPKG_NO_PKG SSPPKG_ERROR
|
|
#define MAX_AUTH_MSG_SIZE 512
|
|
#define TCP_PRINT fprintf
|
|
#define DBG_CONTEXT stderr
|
|
|
|
|
|
//
|
|
// Server host list definition.
|
|
// This list contains server hosts which do not use MSN authentication.
|
|
// The following defines an entry in the server host list.
|
|
//
|
|
typedef struct _ssp_host_list
|
|
{
|
|
struct _ssp_host_list *pNext;
|
|
|
|
unsigned char *pHostname; // name of server host
|
|
unsigned char pkgID; // the package being used for this host
|
|
|
|
} SspHosts, *PSspHosts;
|
|
|
|
//
|
|
// List of SSPI packages installed on this machine.
|
|
// The following defines an entry of the SSPI package list.
|
|
//
|
|
typedef struct _ssp_auth_pkg
|
|
{
|
|
PCHAR pName; // package name
|
|
CredHandle Credential; // the credential handle
|
|
|
|
} SSPAuthPkg, *PSSPAuthPkg;
|
|
|
|
|
|
//
|
|
// The following defines the global data structure which the SPM DLL keeps
|
|
// in the HTSPM structure.
|
|
//
|
|
typedef struct _ssp_htspm
|
|
{
|
|
PSecurityFunctionTable pFuncTbl;
|
|
|
|
SSPAuthPkg **PkgList; // array of pointers to auth packages
|
|
UCHAR PkgCnt;
|
|
|
|
UCHAR MsnPkg; // Index to MSN pkg in the pkg list
|
|
|
|
BOOLEAN bKeepList; // whether to keep a list of servers
|
|
// which use non-MSN SSPI packages
|
|
PSspHosts pHostlist;
|
|
|
|
} SspData, *PSspData;
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Function headers from sspcalls.c
|
|
//
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
VOID
|
|
GetSecCredential (
|
|
F_UserInterface fpUI,
|
|
void *pvOpaqueOS,
|
|
PSspData pData
|
|
);
|
|
|
|
HTSPMStatusCode
|
|
GetSecAuthMsg (
|
|
F_UserInterface fpUI,
|
|
void * pvOpaqueOS,
|
|
PSspData pData,
|
|
UCHAR pkgID, // the package index into package list
|
|
PCtxtHandle pMyContext,
|
|
ULONG fContextReq, // Request Flags
|
|
VOID *pBuffIn,
|
|
DWORD cbBuffIn,
|
|
char *pFinalBuff,
|
|
SEC_CHAR *pszTarget, // Server Host Name
|
|
UINT bNonBlock
|
|
);
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Function headers from private.c
|
|
//
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
HTHeaderList *
|
|
HL_PkgFindHeader(
|
|
HTHeader * h,
|
|
CONST unsigned char * name,
|
|
CONST unsigned char * pkgName
|
|
);
|
|
|
|
DWORD
|
|
HL_FindChallenge (
|
|
HTHeaderList *header,
|
|
char *challenge
|
|
);
|
|
|
|
HTHeaderList *
|
|
HL_GetFirstSSPIHeader (
|
|
HTHeader *pHtHdr,
|
|
SspData *pData,
|
|
CONST UCHAR *pHdrName,
|
|
UCHAR *pPackage
|
|
);
|
|
|
|
HTHeaderList *
|
|
HL_AllSSPIPackages (
|
|
HTHeader *pHtHdr,
|
|
SspData *pData,
|
|
CONST UCHAR *pHdrName,
|
|
UCHAR *pFirstPkg, // returns the package ID of the first package
|
|
UCHAR *pSrvPkgLst, // a list of packages supported by server
|
|
UCHAR *pPkgCnt // totoal number of non-MSN SSPI packages found
|
|
);
|
|
|
|
VOID
|
|
HL_GetHostName (
|
|
HTHeader * hRequest,
|
|
char *szHost
|
|
);
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Function headers from buffspm.c
|
|
//
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
PSspHosts
|
|
SspSpmNewHost (
|
|
F_UserInterface fpUI,
|
|
void * pvOpaqueOS,
|
|
PSspData pData,
|
|
UCHAR *pHost, // name of server host to be added
|
|
UCHAR Package
|
|
);
|
|
|
|
VOID
|
|
SspSpmDeleteHost(
|
|
F_UserInterface fpUI,
|
|
void * pvOpaqueOS,
|
|
SspData *pData,
|
|
PSspHosts pDelHost
|
|
);
|
|
|
|
VOID
|
|
SspSpmTrashHostList(
|
|
F_UserInterface fpUI,
|
|
void * pvOpaqueOS,
|
|
SspData *pData
|
|
);
|
|
|
|
PSspHosts
|
|
SspSpmGetHost(
|
|
PSspData pData,
|
|
UCHAR *pHost
|
|
);
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Function headers from tcputil.c
|
|
//
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
BOOL uudecode(char * bufcoded,
|
|
CHAR * pbuffdecoded,
|
|
DWORD * pcbDecoded);
|
|
|
|
BOOL uuencode( BYTE * bufin,
|
|
DWORD nbytes,
|
|
CHAR * pbuffEncoded,
|
|
DWORD outbufmax);
|
|
|
|
#endif /* _SSPSPM_H_ */
|