225 lines
4.9 KiB
C
225 lines
4.9 KiB
C
/*****************************************************************************/
|
|
/** Microsoft LAN Manager **/
|
|
/** Copyright (C) 1992-1993 Microsoft Corp. **/
|
|
/*****************************************************************************/
|
|
|
|
//***
|
|
// File Name:
|
|
// CLAUTH.H
|
|
//
|
|
// Function:
|
|
// Contains header information for Win32 Client and Client
|
|
// Authentication Transport module
|
|
//
|
|
// History:
|
|
// 05/18/92 - Michael Salamone (MikeSa) - Original Version 1.0
|
|
//***
|
|
|
|
#ifndef _CLAUTH_
|
|
#define _CLAUTH_
|
|
|
|
|
|
/* This flag enables the NT31/WFW311 RAS compression support re-added for the
|
|
** NT-PPC release.
|
|
*/
|
|
#define RASCOMPRESSION 1
|
|
|
|
|
|
#include <lmcons.h>
|
|
|
|
|
|
#ifndef MAX_PHONE_NUMBER_LEN
|
|
#define MAX_PHONE_NUMBER_LEN 48
|
|
#endif
|
|
|
|
#ifndef MAX_INIT_NAMES
|
|
#define MAX_INIT_NAMES 16
|
|
#endif
|
|
|
|
|
|
//
|
|
// Used for establishing session with RAS netbios server
|
|
//
|
|
#define AUTH_NETBIOS_NAME "DIALIN_GATEWAY "
|
|
|
|
|
|
//
|
|
// Used for passing NetBIOS projection info to Supervisor
|
|
//
|
|
typedef struct _NAME_STRUCT
|
|
{
|
|
BYTE NBName[NETBIOS_NAME_LEN]; // NetBIOS name
|
|
WORD wType; // GROUP, UNIQUE, COMPUTER
|
|
} NAME_STRUCT, *PNAME_STRUCT;
|
|
|
|
|
|
//
|
|
// Configuration info supplied by UI to auth transport
|
|
//
|
|
#define INVALID_NET_HANDLE 0xFFFFFFFFL
|
|
|
|
typedef struct _AUTH_CONFIGURATION_INFO
|
|
{
|
|
RAS_PROTOCOLTYPE Protocol;
|
|
DWORD NetHandle;
|
|
WORD CallbackDelay;
|
|
BOOL fUseCallbackDelay;
|
|
BOOL fUseSoftwareCompression;
|
|
BOOL fForceDataEncryption;
|
|
BOOL fProjectIp;
|
|
BOOL fProjectIpx;
|
|
BOOL fProjectNbf;
|
|
} AUTH_CONFIGURATION_INFO, *PAUTH_CONFIGURATION_INFO;
|
|
|
|
|
|
typedef struct _AUTH_SUCCESS_INFO
|
|
{
|
|
BOOL fPppCapable;
|
|
} AUTH_SUCCESS_INFO, *PAUTH_SUCCESS_INFO;
|
|
|
|
|
|
//
|
|
// Error codes for AUTH_FAILURE_INFO are found in raserror.h
|
|
//
|
|
|
|
typedef struct _AUTH_FAILURE_INFO
|
|
{
|
|
DWORD Result;
|
|
DWORD ExtraInfo; // Only valid if non-zero
|
|
} AUTH_FAILURE_INFO, *PAUTH_FAILURE_INFO;
|
|
|
|
|
|
//
|
|
// Projection result info must be copied into this structure.
|
|
//
|
|
|
|
typedef struct _NETBIOS_PROJECTION_RESULT
|
|
{
|
|
DWORD Result;
|
|
char achName[NETBIOS_NAME_LEN + 1]; // this will be NULL-terminated
|
|
} NETBIOS_PROJECTION_RESULT, *PNETBIOS_PROJECTION_RESULT;
|
|
|
|
|
|
typedef struct _AUTH_PROJECTION_RESULT
|
|
{
|
|
BOOL IpProjected;
|
|
BOOL IpxProjected;
|
|
BOOL NbProjected;
|
|
NETBIOS_PROJECTION_RESULT NbInfo;
|
|
} AUTH_PROJECTION_RESULT, *PAUTH_PROJECTION_RESULT;
|
|
|
|
|
|
//
|
|
// These are possible values for wInfoType field in AUTH_RESULT struct below.
|
|
//
|
|
#define AUTH_DONE 1
|
|
#define AUTH_RETRY_NOTIFY 2
|
|
#define AUTH_FAILURE 3
|
|
#define AUTH_PROJ_RESULT 4
|
|
#define AUTH_REQUEST_CALLBACK_DATA 5
|
|
#define AUTH_CALLBACK_NOTIFY 6
|
|
#define AUTH_CHANGE_PASSWORD_NOTIFY 7
|
|
#define AUTH_PROJECTING_NOTIFY 8
|
|
#define AUTH_LINK_SPEED_NOTIFY 9
|
|
#define AUTH_STOP_COMPLETED 10
|
|
|
|
|
|
//
|
|
// This is structure returned by AuthGetInfo API
|
|
//
|
|
typedef struct _AUTH_CLIENT_INFO
|
|
{
|
|
WORD wInfoType;
|
|
union
|
|
{
|
|
AUTH_SUCCESS_INFO DoneInfo;
|
|
AUTH_PROJECTION_RESULT ProjResult;
|
|
AUTH_FAILURE_INFO FailureInfo;
|
|
};
|
|
} AUTH_CLIENT_INFO, *PAUTH_CLIENT_INFO;
|
|
|
|
|
|
//
|
|
// Interface exported to Client UI follows
|
|
//
|
|
|
|
//
|
|
// Used by Client UI to supply Auth Xport w/callback number
|
|
//
|
|
DWORD AuthCallback(
|
|
IN HPORT,
|
|
IN PCHAR // pszCallbackNumber
|
|
);
|
|
|
|
|
|
DWORD AuthChangePassword(
|
|
IN HPORT,
|
|
IN PCHAR, // pszUserName
|
|
IN PCHAR, // pszPassword
|
|
IN PCHAR // pszNewPassword
|
|
);
|
|
|
|
|
|
//
|
|
// Called by UI to tell authentication it has completed processing the
|
|
// last authentication event. Called after AUTH_PROJECTION_RESULT and
|
|
// AUTH_CALLBACK_NOTIFY authentication events.
|
|
//
|
|
DWORD AuthContinue(
|
|
IN HPORT
|
|
);
|
|
|
|
|
|
//
|
|
// Used by Client UI to get completion info from Auth Xport module
|
|
//
|
|
DWORD AuthGetInfo(
|
|
IN HPORT,
|
|
OUT PAUTH_CLIENT_INFO
|
|
);
|
|
|
|
|
|
//
|
|
// To allow UI to provide a new username and/or password for authenticating
|
|
// on. Called in response to AUTH_RETRY_NOTIFY event (indicating previous
|
|
// username/password combination failed authentication).
|
|
//
|
|
DWORD AuthRetry(
|
|
IN HPORT,
|
|
IN PCHAR, // Username
|
|
IN PCHAR, // Password
|
|
IN PCHAR // Domain
|
|
);
|
|
|
|
|
|
//
|
|
// To kick off an Authentication thread for the given port. Used to
|
|
// 1) initiate authentication; 2) retry authentication when invalid
|
|
// account info supplied; 3) resume authentication after callback..
|
|
//
|
|
DWORD AuthStart(
|
|
IN HPORT,
|
|
IN PCHAR OPTIONAL, // Username
|
|
IN PCHAR OPTIONAL, // Password
|
|
IN PCHAR, // Domain
|
|
IN PAUTH_CONFIGURATION_INFO,
|
|
IN HANDLE // Event Handle
|
|
);
|
|
|
|
|
|
//
|
|
// Used by Client UI to tell Auth Xport module to halt authentication
|
|
// processing on the given port.
|
|
//
|
|
DWORD AuthStop(
|
|
IN HPORT hPort
|
|
);
|
|
|
|
|
|
//
|
|
// Returned by AuthStop
|
|
//
|
|
#define AUTH_STOP_PENDING 1
|
|
|
|
#endif
|