Windows NT 4.0 source code leak
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

//#----------------------------------------------------------------------------
//
// 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_ */