Leaked source code of windows server 2003
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.
|
|
#include "wzccrypt.h"
#pragma once
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// MEMORY ALLOCATION UTILITIES (defines, structs, funcs)
#define MemCAlloc(nBytes) Process_user_allocate(nBytes)
#define MemFree(pMem) Process_user_free(pMem)
PVOID Process_user_allocate(size_t NumBytes);
VOID Process_user_free(LPVOID pMem);
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// NDIS UTILITIES (defines, structs, funcs)
//-----------------------------------------------------------
// Searches pwzcConfig in the list pwzcVList. The entries are
// matched exclusively based on the matching SSIDs and on
// matching Infrastructure Mode.
// [in] pwzcVList: Set of WZC_WLAN_CONFIGs to search in
// [in] pwzcConfig: WZC_WLAN_CONFIG to look for
// [in] nIdx: index in pwzcVList to start searching from
// Returns: Pointer to the entry that matches pwzcConfig or NULL
// if none matches
PWZC_WLAN_CONFIG WzcFindConfig( PWZC_802_11_CONFIG_LIST pwzcList, PWZC_WLAN_CONFIG pwzcConfig, ULONG nIdx);
// Matches the content of the two configurations one against the other.
// [in] pwzcConfigA: | configs to match
// [in] pwzcConfigB: |
// [in/out] pbWepDiffOnly: TRUE if there is a difference and the difference is exclusively
// in the WEP Key index or in WEP Key Material. Otherwise is false.
// Returns: TRUE if the configs match, FALSE otherwise;
BOOL WzcMatchConfig( PWZC_WLAN_CONFIG pwzcConfigA, PWZC_WLAN_CONFIG pwzcConfigB, PBOOL pbWepDiffOnly);
// Converts an NDIS_802_11_BSSID_LIST object to an equivalent
// (imaged) WZC_802_11_CONFIG_LIST
// [in] pndList: NDIS BSSID list to convert
// Returns: Pointer to the list of copied WZC configurations
PWZC_802_11_CONFIG_LIST WzcNdisToWzc( PNDIS_802_11_BSSID_LIST pndList);
// WzcCleanupList: Cleanup a list of WZC_WLAN_CONFIG objects
VOID WzcCleanupWzcList( PWZC_802_11_CONFIG_LIST pwzcList);
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// SYNCHRONIZATION UTILITIES
//-----------------------------------------------------------
// Datastructures
// RCCS_SYNC encapsulates a critical section and a reference counter.
typedef struct _RCCS_SYNC { CRITICAL_SECTION csMutex; UINT nRefCount; } RCCS_SYNC, *PRCCS_SYNC;
//-----------------------------------------------------------
// RccsInit: Initializes an RCCS structure
DWORD RccsInit(PRCCS_SYNC pRccs);
//-----------------------------------------------------------
// RccsInit: Deletes an RCCS structure
DWORD RccsDestroy(PRCCS_SYNC pRccs);
//-----------------------------------------------------------
// WzcCryptBuffer: Randomly generates a nBufLen bytes in the range
// [loByte hiByte], all stored in pBuffer (buffer assumed preallocated)
// Returns a win32 error code.
DWORD WzcRndGenBuffer(LPBYTE pBuffer, UINT nBufLen, BYTE loByte, BYTE hiByte);
//-----------------------------------------------------------
// WzcIsNullBuffer: Checks whether a buffer of nBufLen characters
// is all filled with null characters.
BOOL WzcIsNullBuffer(LPBYTE pBuffer, UINT nBufLen);
//-----------------------------------------------------------
// WzcSSKClean: Cleans up the PSEC_SESSION_KEYS object given as parameter
VOID WzcSSKClean(PSEC_SESSION_KEYS pSSK);
//-----------------------------------------------------------
// WzcSSKFree: Frees up the memory used by the PSEC_SESSION_KEYS parameter
VOID WzcSSKFree(PSEC_SESSION_KEYS pSSK);
//-----------------------------------------------------------
// WzcSSKEncrypt: Creates/Allocates a SEC_SESSION_KEYS object
// by encrypting the SESSION_KEYS object provided as parameter.
DWORD WzcSSKEncrypt(PSEC_SESSION_KEYS pSSK, PSESSION_KEYS pSK);
//-----------------------------------------------------------
// WzcSSKDecrypt: Creates/Allocates a SESSION_KEYS object
// by dencrypting the SEC_SESSION_KEYS object provided as parameter.
DWORD WzcSSKDecrypt(PSEC_SESSION_KEYS pSSK, PSESSION_KEYS pSK);
|