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.
1977 lines
37 KiB
1977 lines
37 KiB
/*++
|
|
|
|
Copyright (C) Microsoft Corporation, 1999
|
|
|
|
Module Name:
|
|
|
|
logobj
|
|
|
|
Abstract:
|
|
|
|
This module contains the code definitions for the logging objects.
|
|
|
|
Author:
|
|
|
|
Doug Barlow (dbarlow) 12/7/1999
|
|
|
|
Notes:
|
|
|
|
?Notes?
|
|
|
|
--*/
|
|
|
|
#ifndef WIN32_LEAN_AND_MEAN
|
|
#define WIN32_LEAN_AND_MEAN
|
|
#endif
|
|
|
|
#include <windows.h>
|
|
#include "logcsp.h"
|
|
|
|
//
|
|
//==============================================================================
|
|
//
|
|
// CLogObject
|
|
//
|
|
|
|
/*++
|
|
|
|
CONSTRUCTOR:
|
|
|
|
Default log object initialization
|
|
|
|
Arguments:
|
|
|
|
plh - Pointer to a log header structure imbedded in the derived class.
|
|
|
|
Return Value:
|
|
|
|
None
|
|
|
|
Author:
|
|
|
|
Doug Barlow (dbarlow) 2/20/1998
|
|
|
|
--*/
|
|
|
|
CLogObject::CLogObject(
|
|
LogTypeId id,
|
|
LogHeader *plh,
|
|
DWORD cbStruct)
|
|
{
|
|
ZeroMemory(plh, cbStruct);
|
|
plh->cbDataOffset = cbStruct;
|
|
plh->id = id;
|
|
m_plh = plh;
|
|
m_pbLogData = 0;
|
|
m_cbLogDataLen = 0;
|
|
m_cbLogDataUsed = 0;
|
|
}
|
|
|
|
|
|
/*++
|
|
|
|
DESTRUCTOR:
|
|
|
|
Default log object tear down
|
|
|
|
Arguments:
|
|
|
|
None
|
|
|
|
Return Value:
|
|
|
|
None
|
|
|
|
Author:
|
|
|
|
Doug Barlow (dbarlow) 2/20/1998
|
|
|
|
--*/
|
|
|
|
CLogObject::~CLogObject()
|
|
{
|
|
if (NULL != m_pbLogData)
|
|
LocalFree(m_pbLogData);
|
|
}
|
|
|
|
|
|
/*++
|
|
|
|
LogAdd:
|
|
|
|
Add data to the data buffer.
|
|
|
|
Arguments:
|
|
|
|
pbf supplies the pointer to the LogBuffer referencing the data.
|
|
|
|
sz supplies the data to be added as a string
|
|
|
|
pb supplies the data to be added as a byte array.
|
|
|
|
cb supplies the length of the data, in bytes.
|
|
|
|
Return Value:
|
|
|
|
None
|
|
|
|
Author:
|
|
|
|
Doug Barlow (dbarlow) 2/20/1998
|
|
|
|
--*/
|
|
|
|
void
|
|
CLogObject::LogAdd(
|
|
LogBuffer *pbf,
|
|
LPCTSTR sz)
|
|
{
|
|
if (NULL == sz)
|
|
LogAdd(pbf, (const BYTE *)sz, 0);
|
|
else
|
|
LogAdd(pbf, (const BYTE *)sz, (lstrlen(sz) + 1) * sizeof(TCHAR));
|
|
}
|
|
|
|
void
|
|
CLogObject::LogAdd(
|
|
LogBuffer *pbf,
|
|
const BYTE *pb,
|
|
DWORD cb)
|
|
{
|
|
if (NULL == pb)
|
|
{
|
|
pbf->cbOffset = (DWORD)(-1);
|
|
pbf->cbLength = cb;
|
|
}
|
|
else if (0 == cb)
|
|
{
|
|
pbf->cbOffset = m_cbLogDataUsed;
|
|
pbf->cbLength = cb;
|
|
}
|
|
else
|
|
{
|
|
if (m_cbLogDataUsed + cb > m_cbLogDataLen)
|
|
{
|
|
DWORD cbNext = m_cbLogDataLen;
|
|
LPBYTE pbNext;
|
|
|
|
while (m_cbLogDataUsed + cb > cbNext)
|
|
{
|
|
if (0 == cbNext)
|
|
cbNext = 256;
|
|
else
|
|
cbNext *= 2;
|
|
}
|
|
pbNext = (LPBYTE)LocalAlloc(LPTR, cbNext);
|
|
ASSERT(NULL != pbNext);
|
|
if (0 < m_cbLogDataUsed)
|
|
{
|
|
ASSERT(NULL != m_pbLogData);
|
|
CopyMemory(pbNext, m_pbLogData, m_cbLogDataUsed);
|
|
}
|
|
if (NULL != m_pbLogData)
|
|
{
|
|
ASSERT(0 < m_cbLogDataLen);
|
|
LocalFree(m_pbLogData);
|
|
}
|
|
m_pbLogData = pbNext;
|
|
m_cbLogDataLen = cbNext;
|
|
}
|
|
ASSERT(NULL != m_pbLogData);
|
|
CopyMemory(&m_pbLogData[m_cbLogDataUsed], pb, cb);
|
|
pbf->cbOffset = m_cbLogDataUsed;
|
|
pbf->cbLength = cb;
|
|
m_cbLogDataUsed += cb;
|
|
}
|
|
}
|
|
|
|
|
|
void
|
|
CLogObject::Log(
|
|
LPCTSTR szLogFile)
|
|
{
|
|
BOOL fSts;
|
|
DWORD dwLen;
|
|
HANDLE hLogFile;
|
|
|
|
m_plh->cbLength = m_plh->cbDataOffset + m_cbLogDataUsed;
|
|
hLogFile = CreateFile(
|
|
szLogFile,
|
|
GENERIC_WRITE,
|
|
FILE_SHARE_READ,
|
|
NULL,
|
|
OPEN_EXISTING,
|
|
FILE_ATTRIBUTE_NORMAL,
|
|
NULL);
|
|
if (INVALID_HANDLE_VALUE != hLogFile)
|
|
{
|
|
dwLen = SetFilePointer(hLogFile, 0, NULL, FILE_END);
|
|
ASSERT(-1 != dwLen);
|
|
fSts = WriteFile(
|
|
hLogFile,
|
|
(LPBYTE)m_plh,
|
|
m_plh->cbDataOffset,
|
|
&dwLen,
|
|
NULL);
|
|
ASSERT(fSts);
|
|
ASSERT(dwLen == m_plh->cbDataOffset);
|
|
if ((0 < m_cbLogDataUsed) && (NULL != m_pbLogData))
|
|
{
|
|
fSts = WriteFile(
|
|
hLogFile,
|
|
m_pbLogData,
|
|
m_cbLogDataUsed,
|
|
&dwLen,
|
|
NULL);
|
|
ASSERT(fSts);
|
|
ASSERT(dwLen == m_cbLogDataUsed);
|
|
}
|
|
CloseHandle(hLogFile);
|
|
}
|
|
|
|
m_cbLogDataUsed = 0;
|
|
}
|
|
|
|
void
|
|
CLogObject::Request(
|
|
void)
|
|
{
|
|
GetLocalTime(&m_plh->startTime);
|
|
m_plh->dwProcId = GetCurrentProcessId();
|
|
m_plh->dwThreadId = GetCurrentThreadId();
|
|
}
|
|
|
|
void
|
|
CLogObject::Response(
|
|
CompletionCode code,
|
|
DWORD dwError)
|
|
{
|
|
GetLocalTime(&m_plh->endTime);
|
|
m_plh->status = code;
|
|
switch (code)
|
|
{
|
|
case logid_True:
|
|
m_plh->dwStatus = ERROR_SUCCESS;
|
|
break;
|
|
case logid_False:
|
|
if (ERROR_SUCCESS == dwError)
|
|
m_plh->dwStatus = GetLastError();
|
|
else
|
|
m_plh->dwStatus = dwError;
|
|
break;
|
|
case logid_Exception:
|
|
m_plh->dwStatus = ERROR_ARENA_TRASHED;
|
|
break;
|
|
case logid_Setup:
|
|
if (ERROR_SUCCESS == dwError)
|
|
m_plh->dwStatus = ERROR_CALL_NOT_IMPLEMENTED;
|
|
else
|
|
m_plh->dwStatus = dwError;
|
|
break;
|
|
default:
|
|
ASSERT(FALSE);
|
|
}
|
|
}
|
|
|
|
|
|
//
|
|
//==============================================================================
|
|
//
|
|
// CLogAcquireContext
|
|
//
|
|
|
|
CLogAcquireContext::CLogAcquireContext(
|
|
void)
|
|
: CLogObject(AcquireContext, &m_LogData.lh, sizeof(m_LogData))
|
|
{
|
|
}
|
|
|
|
CLogAcquireContext::~CLogAcquireContext()
|
|
{
|
|
}
|
|
|
|
void
|
|
CLogAcquireContext::Request(
|
|
OUT HCRYPTPROV *phProv,
|
|
IN LPCTSTR pszContainer,
|
|
IN DWORD dwFlags,
|
|
IN PVTableProvStruc pVTable)
|
|
{
|
|
CLogObject::Request();
|
|
LogAdd(&m_LogData.bfContainer, pszContainer);
|
|
m_LogData.dwFlags = dwFlags;
|
|
m_LogData.dwVersion = pVTable->Version;
|
|
m_LogData.pvFuncVerifyImage = pVTable->FuncVerifyImage;
|
|
if (3 <= pVTable->Version)
|
|
{
|
|
m_LogData.pvFuncReturnhWnd = pVTable->FuncReturnhWnd;
|
|
if (NULL != pVTable->FuncReturnhWnd)
|
|
{
|
|
try
|
|
{
|
|
(*pVTable->FuncReturnhWnd)(&m_LogData.hWnd);
|
|
}
|
|
catch (...)
|
|
{
|
|
m_LogData.hWnd = (HWND)(-1);
|
|
}
|
|
}
|
|
else
|
|
m_LogData.hWnd = NULL;
|
|
m_LogData.dwProvType = pVTable->dwProvType;
|
|
LogAdd(&m_LogData.bfContextInfo, pVTable->pbContextInfo, pVTable->cbContextInfo);
|
|
LogAdd(&m_LogData.bfProvName, (const BYTE *)pVTable->pszProvName, (lstrlen(pVTable->pszProvName) + 1) * sizeof(TCHAR));
|
|
}
|
|
else
|
|
{
|
|
m_LogData.pvFuncReturnhWnd = NULL;
|
|
m_LogData.dwProvType = NULL;
|
|
LogAdd(&m_LogData.bfContextInfo, NULL, 0);
|
|
LogAdd(&m_LogData.bfProvName, NULL, 0);
|
|
}
|
|
}
|
|
|
|
void
|
|
CLogAcquireContext::Response(
|
|
BOOL fStatus,
|
|
OUT HCRYPTPROV *phProv,
|
|
IN LPCTSTR pszContainer,
|
|
IN DWORD dwFlags,
|
|
IN PVTableProvStruc pVTable)
|
|
{
|
|
if (fStatus)
|
|
{
|
|
CLogObject::Response(logid_True);
|
|
}
|
|
else
|
|
{
|
|
CLogObject::Response(logid_False);
|
|
}
|
|
m_LogData.hProv = *phProv;
|
|
}
|
|
|
|
void
|
|
CLogAcquireContext::LogException(
|
|
void)
|
|
{
|
|
CLogObject::Response(logid_Exception);
|
|
m_LogData.hProv = NULL;
|
|
}
|
|
|
|
void
|
|
CLogAcquireContext::LogNotCalled(
|
|
DWORD dwSts)
|
|
{
|
|
CLogObject::Response(logid_Setup, dwSts);
|
|
m_LogData.hProv = NULL;
|
|
}
|
|
|
|
|
|
//
|
|
//==============================================================================
|
|
//
|
|
// CLogGetProvParam
|
|
//
|
|
|
|
CLogGetProvParam::CLogGetProvParam(
|
|
void)
|
|
: CLogObject(GetProvParam, &m_LogData.lh, sizeof(m_LogData))
|
|
{
|
|
}
|
|
|
|
CLogGetProvParam::~CLogGetProvParam()
|
|
{
|
|
}
|
|
|
|
void
|
|
CLogGetProvParam::Request(
|
|
IN HCRYPTPROV hProv,
|
|
IN DWORD dwParam,
|
|
OUT BYTE *pbData,
|
|
IN OUT DWORD *pdwDataLen,
|
|
IN DWORD dwFlags)
|
|
{
|
|
CLogObject::Request();
|
|
m_LogData.hProv = hProv;
|
|
m_LogData.dwParam = dwParam;
|
|
m_LogData.dwDataLen = *pdwDataLen;
|
|
m_LogData.dwFlags = dwFlags;
|
|
}
|
|
|
|
void
|
|
CLogGetProvParam::Response(
|
|
BOOL fStatus,
|
|
IN HCRYPTPROV hProv,
|
|
IN DWORD dwParam,
|
|
OUT BYTE *pbData,
|
|
IN OUT DWORD *pdwDataLen,
|
|
IN DWORD dwFlags)
|
|
{
|
|
if (fStatus)
|
|
{
|
|
CLogObject::Response(logid_True);
|
|
LogAdd(&m_LogData.bfData, pbData, *pdwDataLen);
|
|
}
|
|
else
|
|
{
|
|
CLogObject::Response(logid_False);
|
|
LogAdd(&m_LogData.bfData, NULL, *pdwDataLen);
|
|
}
|
|
}
|
|
|
|
void
|
|
CLogGetProvParam::LogException(
|
|
void)
|
|
{
|
|
CLogObject::Response(logid_Exception);
|
|
LogAdd(&m_LogData.bfData, NULL, 0);
|
|
}
|
|
|
|
void
|
|
CLogGetProvParam::LogNotCalled(
|
|
DWORD dwSts)
|
|
{
|
|
CLogObject::Response(logid_Setup, dwSts);
|
|
LogAdd(&m_LogData.bfData, NULL, 0);
|
|
}
|
|
|
|
|
|
//
|
|
//==============================================================================
|
|
//
|
|
// CLogReleaseContext
|
|
//
|
|
|
|
CLogReleaseContext::CLogReleaseContext(
|
|
void)
|
|
: CLogObject(ReleaseContext, &m_LogData.lh, sizeof(m_LogData))
|
|
{
|
|
}
|
|
|
|
CLogReleaseContext::~CLogReleaseContext()
|
|
{
|
|
}
|
|
|
|
void
|
|
CLogReleaseContext::Request(
|
|
IN HCRYPTPROV hProv,
|
|
IN DWORD dwFlags)
|
|
{
|
|
CLogObject::Request();
|
|
m_LogData.hProv = hProv;
|
|
m_LogData.dwFlags = dwFlags;
|
|
}
|
|
|
|
void
|
|
CLogReleaseContext::Response(
|
|
BOOL fStatus,
|
|
IN HCRYPTPROV hProv,
|
|
IN DWORD dwFlags)
|
|
{
|
|
if (fStatus)
|
|
{
|
|
CLogObject::Response(logid_True);
|
|
}
|
|
else
|
|
{
|
|
CLogObject::Response(logid_False);
|
|
}
|
|
}
|
|
|
|
void
|
|
CLogReleaseContext::LogException(
|
|
void)
|
|
{
|
|
CLogObject::Response(logid_Exception);
|
|
}
|
|
|
|
void
|
|
CLogReleaseContext::LogNotCalled(
|
|
DWORD dwSts)
|
|
{
|
|
CLogObject::Response(logid_Setup, dwSts);
|
|
}
|
|
|
|
|
|
//
|
|
//==============================================================================
|
|
//
|
|
// CLogSetProvParam
|
|
//
|
|
|
|
CLogSetProvParam::CLogSetProvParam(
|
|
void)
|
|
: CLogObject(SetProvParam, &m_LogData.lh, sizeof(m_LogData))
|
|
{
|
|
}
|
|
|
|
CLogSetProvParam::~CLogSetProvParam()
|
|
{
|
|
}
|
|
|
|
void
|
|
CLogSetProvParam::Request(
|
|
IN HCRYPTPROV hProv,
|
|
IN DWORD dwParam,
|
|
IN CONST BYTE *pbData,
|
|
IN DWORD dwLength,
|
|
IN DWORD dwFlags)
|
|
{
|
|
CLogObject::Request();
|
|
m_LogData.hProv = hProv;
|
|
m_LogData.dwParam = dwParam;
|
|
LogAdd(&m_LogData.bfData, pbData, dwLength);
|
|
m_LogData.dwFlags = dwFlags;
|
|
}
|
|
|
|
void
|
|
CLogSetProvParam::Response(
|
|
BOOL fStatus,
|
|
IN HCRYPTPROV hProv,
|
|
IN DWORD dwParam,
|
|
IN CONST BYTE *pbData,
|
|
IN DWORD dwFlags)
|
|
{
|
|
if (fStatus)
|
|
{
|
|
CLogObject::Response(logid_True);
|
|
}
|
|
else
|
|
{
|
|
CLogObject::Response(logid_False);
|
|
}
|
|
}
|
|
|
|
void
|
|
CLogSetProvParam::LogException(
|
|
void)
|
|
{
|
|
CLogObject::Response(logid_Exception);
|
|
}
|
|
|
|
void
|
|
CLogSetProvParam::LogNotCalled(
|
|
DWORD dwSts)
|
|
{
|
|
CLogObject::Response(logid_Setup, dwSts);
|
|
}
|
|
|
|
|
|
//
|
|
//==============================================================================
|
|
//
|
|
// CLogDeriveKey
|
|
//
|
|
|
|
CLogDeriveKey::CLogDeriveKey(
|
|
void)
|
|
: CLogObject(DeriveKey, &m_LogData.lh, sizeof(m_LogData))
|
|
{
|
|
}
|
|
|
|
CLogDeriveKey::~CLogDeriveKey()
|
|
{
|
|
}
|
|
|
|
void
|
|
CLogDeriveKey::Request(
|
|
IN HCRYPTPROV hProv,
|
|
IN ALG_ID Algid,
|
|
IN HCRYPTHASH hHash,
|
|
IN DWORD dwFlags,
|
|
OUT HCRYPTKEY * phKey)
|
|
{
|
|
CLogObject::Request();
|
|
m_LogData.hProv = hProv;
|
|
m_LogData.Algid = Algid;
|
|
m_LogData.hHash = hHash;
|
|
m_LogData.dwFlags = dwFlags;
|
|
}
|
|
void
|
|
CLogDeriveKey::Response(
|
|
BOOL fStatus,
|
|
IN HCRYPTPROV hProv,
|
|
IN ALG_ID Algid,
|
|
IN HCRYPTHASH hHash,
|
|
IN DWORD dwFlags,
|
|
OUT HCRYPTKEY * phKey)
|
|
{
|
|
if (fStatus)
|
|
{
|
|
CLogObject::Response(logid_True);
|
|
}
|
|
else
|
|
{
|
|
CLogObject::Response(logid_False);
|
|
}
|
|
m_LogData.hKey = *phKey;
|
|
}
|
|
|
|
void
|
|
CLogDeriveKey::LogException(
|
|
void)
|
|
{
|
|
CLogObject::Response(logid_Exception);
|
|
m_LogData.hKey = NULL;
|
|
}
|
|
|
|
void
|
|
CLogDeriveKey::LogNotCalled(
|
|
DWORD dwSts)
|
|
{
|
|
CLogObject::Response(logid_Setup, dwSts);
|
|
m_LogData.hKey = NULL;
|
|
}
|
|
|
|
|
|
//
|
|
//==============================================================================
|
|
//
|
|
// CLogDestroyKey
|
|
//
|
|
|
|
CLogDestroyKey::CLogDestroyKey(
|
|
void)
|
|
: CLogObject(DestroyKey, &m_LogData.lh, sizeof(m_LogData))
|
|
{
|
|
}
|
|
|
|
CLogDestroyKey::~CLogDestroyKey()
|
|
{
|
|
}
|
|
|
|
void
|
|
CLogDestroyKey::Request(
|
|
IN HCRYPTPROV hProv,
|
|
IN HCRYPTKEY hKey)
|
|
{
|
|
CLogObject::Request();
|
|
m_LogData.hProv = hProv;
|
|
m_LogData.hKey = hKey;
|
|
}
|
|
|
|
void
|
|
CLogDestroyKey::Response(
|
|
BOOL fStatus,
|
|
IN HCRYPTPROV hProv,
|
|
IN HCRYPTKEY hKey)
|
|
{
|
|
if (fStatus)
|
|
{
|
|
CLogObject::Response(logid_True);
|
|
}
|
|
else
|
|
{
|
|
CLogObject::Response(logid_False);
|
|
}
|
|
}
|
|
|
|
void
|
|
CLogDestroyKey::LogException(
|
|
void)
|
|
{
|
|
CLogObject::Response(logid_Exception);
|
|
}
|
|
|
|
void
|
|
CLogDestroyKey::LogNotCalled(
|
|
DWORD dwSts)
|
|
{
|
|
CLogObject::Response(logid_Setup, dwSts);
|
|
}
|
|
|
|
|
|
//
|
|
//==============================================================================
|
|
//
|
|
// CLogExportKey
|
|
//
|
|
|
|
CLogExportKey::CLogExportKey(
|
|
void)
|
|
: CLogObject(ExportKey, &m_LogData.lh, sizeof(m_LogData))
|
|
{
|
|
}
|
|
|
|
CLogExportKey::~CLogExportKey()
|
|
{
|
|
}
|
|
|
|
void
|
|
CLogExportKey::Request(
|
|
IN HCRYPTPROV hProv,
|
|
IN HCRYPTKEY hKey,
|
|
IN HCRYPTKEY hPubKey,
|
|
IN DWORD dwBlobType,
|
|
IN DWORD dwFlags,
|
|
OUT BYTE *pbData,
|
|
IN OUT DWORD *pdwDataLen)
|
|
{
|
|
CLogObject::Request();
|
|
m_LogData.hProv = hProv;
|
|
m_LogData.hKey = hKey;
|
|
m_LogData.hPubKey = hPubKey;
|
|
m_LogData.dwBlobType = dwBlobType;
|
|
m_LogData.dwFlags = dwFlags;
|
|
m_LogData.dwDataLen = *pdwDataLen;
|
|
}
|
|
|
|
void
|
|
CLogExportKey::Response(
|
|
BOOL fStatus,
|
|
IN HCRYPTPROV hProv,
|
|
IN HCRYPTKEY hKey,
|
|
IN HCRYPTKEY hPubKey,
|
|
IN DWORD dwBlobType,
|
|
IN DWORD dwFlags,
|
|
OUT BYTE *pbData,
|
|
IN OUT DWORD *pdwDataLen)
|
|
{
|
|
if (fStatus)
|
|
{
|
|
CLogObject::Response(logid_True);
|
|
LogAdd(&m_LogData.bfData, pbData, *pdwDataLen);
|
|
}
|
|
else
|
|
{
|
|
CLogObject::Response(logid_False);
|
|
LogAdd(&m_LogData.bfData, NULL, *pdwDataLen);
|
|
}
|
|
}
|
|
|
|
void
|
|
CLogExportKey::LogException(
|
|
void)
|
|
{
|
|
CLogObject::Response(logid_Exception);
|
|
LogAdd(&m_LogData.bfData, NULL, 0);
|
|
}
|
|
|
|
void
|
|
CLogExportKey::LogNotCalled(
|
|
DWORD dwSts)
|
|
{
|
|
CLogObject::Response(logid_Setup, dwSts);
|
|
LogAdd(&m_LogData.bfData, NULL, 0);
|
|
}
|
|
|
|
|
|
//
|
|
//==============================================================================
|
|
//
|
|
// CLogGenKey
|
|
//
|
|
|
|
CLogGenKey::CLogGenKey(
|
|
void)
|
|
: CLogObject(GenKey, &m_LogData.lh, sizeof(m_LogData))
|
|
{
|
|
}
|
|
|
|
CLogGenKey::~CLogGenKey()
|
|
{
|
|
}
|
|
|
|
void
|
|
CLogGenKey::Request(
|
|
IN HCRYPTPROV hProv,
|
|
IN ALG_ID Algid,
|
|
IN DWORD dwFlags,
|
|
OUT HCRYPTKEY *phKey)
|
|
{
|
|
CLogObject::Request();
|
|
m_LogData.hProv = hProv;
|
|
m_LogData.Algid = Algid;
|
|
m_LogData.dwFlags = dwFlags;
|
|
}
|
|
|
|
void
|
|
CLogGenKey::Response(
|
|
BOOL fStatus,
|
|
IN HCRYPTPROV hProv,
|
|
IN ALG_ID Algid,
|
|
IN DWORD dwFlags,
|
|
OUT HCRYPTKEY *phKey)
|
|
{
|
|
if (fStatus)
|
|
{
|
|
CLogObject::Response(logid_True);
|
|
}
|
|
else
|
|
{
|
|
CLogObject::Response(logid_False);
|
|
}
|
|
m_LogData.hKey = *phKey;
|
|
}
|
|
|
|
void
|
|
CLogGenKey::LogException(
|
|
void)
|
|
{
|
|
CLogObject::Response(logid_Exception);
|
|
m_LogData.hKey = NULL;
|
|
}
|
|
|
|
void
|
|
CLogGenKey::LogNotCalled(
|
|
DWORD dwSts)
|
|
{
|
|
CLogObject::Response(logid_Setup, dwSts);
|
|
m_LogData.hKey = NULL;
|
|
}
|
|
|
|
//
|
|
//==============================================================================
|
|
//
|
|
// CLogGetKeyParam
|
|
//
|
|
|
|
CLogGetKeyParam::CLogGetKeyParam(
|
|
void)
|
|
: CLogObject(GetKeyParam, &m_LogData.lh, sizeof(m_LogData))
|
|
{
|
|
}
|
|
|
|
CLogGetKeyParam::~CLogGetKeyParam()
|
|
{
|
|
}
|
|
|
|
void
|
|
CLogGetKeyParam::Request(
|
|
IN HCRYPTPROV hProv,
|
|
IN HCRYPTKEY hKey,
|
|
IN DWORD dwParam,
|
|
OUT BYTE *pbData,
|
|
IN OUT DWORD *pdwDataLen,
|
|
IN DWORD dwFlags)
|
|
{
|
|
CLogObject::Request();
|
|
m_LogData.hProv = hProv;
|
|
m_LogData.hKey = hKey;
|
|
m_LogData.dwParam = dwParam;
|
|
m_LogData.dwDataLen = *pdwDataLen;
|
|
m_LogData.dwFlags = dwFlags;
|
|
}
|
|
|
|
void
|
|
CLogGetKeyParam::Response(
|
|
BOOL fStatus,
|
|
IN HCRYPTPROV hProv,
|
|
IN HCRYPTKEY hKey,
|
|
IN DWORD dwParam,
|
|
OUT BYTE *pbData,
|
|
IN OUT DWORD *pdwDataLen,
|
|
IN DWORD dwFlags)
|
|
{
|
|
if (fStatus)
|
|
{
|
|
CLogObject::Response(logid_True);
|
|
LogAdd(&m_LogData.bfData, pbData, *pdwDataLen);
|
|
}
|
|
else
|
|
{
|
|
CLogObject::Response(logid_False);
|
|
LogAdd(&m_LogData.bfData, NULL, *pdwDataLen);
|
|
}
|
|
}
|
|
|
|
void
|
|
CLogGetKeyParam::LogException(
|
|
void)
|
|
{
|
|
CLogObject::Response(logid_Exception);
|
|
LogAdd(&m_LogData.bfData, NULL, 0);
|
|
}
|
|
|
|
void
|
|
CLogGetKeyParam::LogNotCalled(
|
|
DWORD dwSts)
|
|
{
|
|
CLogObject::Response(logid_Setup, dwSts);
|
|
LogAdd(&m_LogData.bfData, NULL, 0);
|
|
}
|
|
|
|
|
|
//
|
|
//==============================================================================
|
|
//
|
|
// CLogGenRandom
|
|
//
|
|
|
|
CLogGenRandom::CLogGenRandom(
|
|
void)
|
|
: CLogObject(GenRandom, &m_LogData.lh, sizeof(m_LogData))
|
|
{
|
|
}
|
|
|
|
CLogGenRandom::~CLogGenRandom()
|
|
{
|
|
}
|
|
|
|
void
|
|
CLogGenRandom::Request(
|
|
IN HCRYPTPROV hProv,
|
|
IN DWORD dwLen,
|
|
IN OUT BYTE *pbBuffer)
|
|
{
|
|
CLogObject::Request();
|
|
m_LogData.hProv = hProv;
|
|
m_LogData.dwLen = dwLen;
|
|
}
|
|
|
|
void
|
|
CLogGenRandom::Response(
|
|
BOOL fStatus,
|
|
IN HCRYPTPROV hProv,
|
|
IN DWORD dwLen,
|
|
IN OUT BYTE *pbBuffer)
|
|
{
|
|
if (fStatus)
|
|
{
|
|
CLogObject::Response(logid_True);
|
|
LogAdd(&m_LogData.bfBuffer, pbBuffer, dwLen);
|
|
}
|
|
else
|
|
{
|
|
CLogObject::Response(logid_False);
|
|
LogAdd(&m_LogData.bfBuffer, NULL, 0);
|
|
}
|
|
}
|
|
|
|
void
|
|
CLogGenRandom::LogException(
|
|
void)
|
|
{
|
|
CLogObject::Response(logid_Exception);
|
|
LogAdd(&m_LogData.bfBuffer, NULL, 0);
|
|
}
|
|
|
|
void
|
|
CLogGenRandom::LogNotCalled(
|
|
DWORD dwSts)
|
|
{
|
|
CLogObject::Response(logid_Setup, dwSts);
|
|
LogAdd(&m_LogData.bfBuffer, NULL, 0);
|
|
}
|
|
|
|
|
|
//
|
|
//==============================================================================
|
|
//
|
|
// CLogGetUserKey
|
|
//
|
|
|
|
CLogGetUserKey::CLogGetUserKey(
|
|
void)
|
|
: CLogObject(GetUserKey, &m_LogData.lh, sizeof(m_LogData))
|
|
{
|
|
}
|
|
|
|
CLogGetUserKey::~CLogGetUserKey()
|
|
{
|
|
}
|
|
|
|
void
|
|
CLogGetUserKey::Request(
|
|
IN HCRYPTPROV hProv,
|
|
IN DWORD dwKeySpec,
|
|
OUT HCRYPTKEY *phUserKey)
|
|
{
|
|
CLogObject::Request();
|
|
m_LogData.hProv = hProv;
|
|
m_LogData.dwKeySpec = dwKeySpec;
|
|
}
|
|
|
|
void
|
|
CLogGetUserKey::Response(
|
|
BOOL fStatus,
|
|
IN HCRYPTPROV hProv,
|
|
IN DWORD dwKeySpec,
|
|
OUT HCRYPTKEY *phUserKey)
|
|
{
|
|
if (fStatus)
|
|
{
|
|
CLogObject::Response(logid_True);
|
|
}
|
|
else
|
|
{
|
|
CLogObject::Response(logid_False);
|
|
}
|
|
m_LogData.hUserKey = *phUserKey;
|
|
}
|
|
|
|
void
|
|
CLogGetUserKey::LogException(
|
|
void)
|
|
{
|
|
CLogObject::Response(logid_Exception);
|
|
m_LogData.hUserKey = NULL;
|
|
}
|
|
|
|
void
|
|
CLogGetUserKey::LogNotCalled(
|
|
DWORD dwSts)
|
|
{
|
|
CLogObject::Response(logid_Setup, dwSts);
|
|
m_LogData.hUserKey = NULL;
|
|
}
|
|
|
|
|
|
//
|
|
//==============================================================================
|
|
//
|
|
// CLogImportKey
|
|
//
|
|
|
|
CLogImportKey::CLogImportKey(
|
|
void)
|
|
: CLogObject(ImportKey, &m_LogData.lh, sizeof(m_LogData))
|
|
{
|
|
}
|
|
|
|
CLogImportKey::~CLogImportKey()
|
|
{
|
|
}
|
|
|
|
void
|
|
CLogImportKey::Request(
|
|
IN HCRYPTPROV hProv,
|
|
IN CONST BYTE *pbData,
|
|
IN DWORD dwDataLen,
|
|
IN HCRYPTKEY hPubKey,
|
|
IN DWORD dwFlags,
|
|
OUT HCRYPTKEY *phKey)
|
|
{
|
|
CLogObject::Request();
|
|
m_LogData.hProv = hProv;
|
|
LogAdd(&m_LogData.bfData, pbData, dwDataLen);
|
|
m_LogData.hPubKey = hPubKey;
|
|
m_LogData.dwFlags = dwFlags;
|
|
}
|
|
|
|
void
|
|
CLogImportKey::Response(
|
|
BOOL fStatus,
|
|
IN HCRYPTPROV hProv,
|
|
IN CONST BYTE *pbData,
|
|
IN DWORD dwDataLen,
|
|
IN HCRYPTKEY hPubKey,
|
|
IN DWORD dwFlags,
|
|
OUT HCRYPTKEY *phKey)
|
|
{
|
|
if (fStatus)
|
|
{
|
|
CLogObject::Response(logid_True);
|
|
}
|
|
else
|
|
{
|
|
CLogObject::Response(logid_False);
|
|
}
|
|
m_LogData.hKey = *phKey;
|
|
}
|
|
|
|
void
|
|
CLogImportKey::LogException(
|
|
void)
|
|
{
|
|
CLogObject::Response(logid_Exception);
|
|
m_LogData.hKey = NULL;
|
|
}
|
|
|
|
void
|
|
CLogImportKey::LogNotCalled(
|
|
DWORD dwSts)
|
|
{
|
|
CLogObject::Response(logid_Setup, dwSts);
|
|
m_LogData.hKey = NULL;
|
|
}
|
|
|
|
|
|
//
|
|
//==============================================================================
|
|
//
|
|
// CLogSetKeyParam
|
|
//
|
|
|
|
CLogSetKeyParam::CLogSetKeyParam(
|
|
void)
|
|
: CLogObject(SetKeyParam, &m_LogData.lh, sizeof(m_LogData))
|
|
{
|
|
}
|
|
|
|
CLogSetKeyParam::~CLogSetKeyParam()
|
|
{
|
|
}
|
|
|
|
void
|
|
CLogSetKeyParam::Request(
|
|
IN HCRYPTPROV hProv,
|
|
IN HCRYPTKEY hKey,
|
|
IN DWORD dwParam,
|
|
IN CONST BYTE *pbData,
|
|
IN DWORD dwLength,
|
|
IN DWORD dwFlags)
|
|
{
|
|
CLogObject::Request();
|
|
m_LogData.hProv = hProv;
|
|
m_LogData.hKey = hKey;
|
|
m_LogData.dwParam = dwParam;
|
|
LogAdd(&m_LogData.bfData, pbData, dwLength);
|
|
m_LogData.dwFlags = dwFlags;
|
|
}
|
|
|
|
void
|
|
CLogSetKeyParam::Response(
|
|
BOOL fStatus,
|
|
IN HCRYPTPROV hProv,
|
|
IN HCRYPTKEY hKey,
|
|
IN DWORD dwParam,
|
|
IN CONST BYTE *pbData,
|
|
IN DWORD dwFlags)
|
|
{
|
|
if (fStatus)
|
|
{
|
|
CLogObject::Response(logid_True);
|
|
}
|
|
else
|
|
{
|
|
CLogObject::Response(logid_False);
|
|
}
|
|
}
|
|
|
|
void
|
|
CLogSetKeyParam::LogException(
|
|
void)
|
|
{
|
|
CLogObject::Response(logid_Exception);
|
|
}
|
|
|
|
void
|
|
CLogSetKeyParam::LogNotCalled(
|
|
DWORD dwSts)
|
|
{
|
|
CLogObject::Response(logid_Setup, dwSts);
|
|
}
|
|
|
|
|
|
//
|
|
//==============================================================================
|
|
//
|
|
// CLogEncrypt
|
|
//
|
|
|
|
CLogEncrypt::CLogEncrypt(
|
|
void)
|
|
: CLogObject(Encrypt, &m_LogData.lh, sizeof(m_LogData))
|
|
{
|
|
}
|
|
|
|
CLogEncrypt::~CLogEncrypt()
|
|
{
|
|
}
|
|
|
|
void
|
|
CLogEncrypt::Request(
|
|
IN HCRYPTPROV hProv,
|
|
IN HCRYPTKEY hKey,
|
|
IN HCRYPTHASH hHash,
|
|
IN BOOL Final,
|
|
IN DWORD dwFlags,
|
|
IN OUT BYTE *pbData,
|
|
IN OUT DWORD *pdwDataLen,
|
|
IN DWORD dwBufLen)
|
|
{
|
|
CLogObject::Request();
|
|
m_LogData.hProv = hProv;
|
|
m_LogData.hKey = hKey;
|
|
m_LogData.hHash = hHash;
|
|
m_LogData.Final = Final;
|
|
m_LogData.dwFlags = dwFlags;
|
|
LogAdd(&m_LogData.bfInData, pbData, *pdwDataLen);
|
|
m_LogData.dwBufLen = dwBufLen;
|
|
}
|
|
|
|
void
|
|
CLogEncrypt::Response(
|
|
BOOL fStatus,
|
|
IN HCRYPTPROV hProv,
|
|
IN HCRYPTKEY hKey,
|
|
IN HCRYPTHASH hHash,
|
|
IN BOOL Final,
|
|
IN DWORD dwFlags,
|
|
IN OUT BYTE *pbData,
|
|
IN OUT DWORD *pdwDataLen,
|
|
IN DWORD dwBufLen)
|
|
{
|
|
if (fStatus)
|
|
{
|
|
CLogObject::Response(logid_True);
|
|
LogAdd(&m_LogData.bfOutData, pbData, *pdwDataLen);
|
|
}
|
|
else
|
|
{
|
|
CLogObject::Response(logid_False);
|
|
LogAdd(&m_LogData.bfOutData, NULL, *pdwDataLen);
|
|
}
|
|
}
|
|
|
|
void
|
|
CLogEncrypt::LogException(
|
|
void)
|
|
{
|
|
CLogObject::Response(logid_Exception);
|
|
LogAdd(&m_LogData.bfOutData, NULL, 0);
|
|
}
|
|
|
|
void
|
|
CLogEncrypt::LogNotCalled(
|
|
DWORD dwSts)
|
|
{
|
|
CLogObject::Response(logid_Setup, dwSts);
|
|
LogAdd(&m_LogData.bfOutData, NULL, 0);
|
|
}
|
|
|
|
|
|
//
|
|
//==============================================================================
|
|
//
|
|
// CLogDecrypt
|
|
//
|
|
|
|
CLogDecrypt::CLogDecrypt(
|
|
void)
|
|
: CLogObject(Decrypt, &m_LogData.lh, sizeof(m_LogData))
|
|
{
|
|
}
|
|
|
|
CLogDecrypt::~CLogDecrypt()
|
|
{
|
|
}
|
|
|
|
void
|
|
CLogDecrypt::Request(
|
|
IN HCRYPTPROV hProv,
|
|
IN HCRYPTKEY hKey,
|
|
IN HCRYPTHASH hHash,
|
|
IN BOOL Final,
|
|
IN DWORD dwFlags,
|
|
IN OUT BYTE *pbData,
|
|
IN OUT DWORD *pdwDataLen)
|
|
{
|
|
CLogObject::Request();
|
|
m_LogData.hProv = hProv;
|
|
m_LogData.hKey = hKey;
|
|
m_LogData.hHash = hHash;
|
|
m_LogData.Final = Final;
|
|
m_LogData.dwFlags = dwFlags;
|
|
LogAdd(&m_LogData.bfInData, pbData, *pdwDataLen);
|
|
}
|
|
|
|
void
|
|
CLogDecrypt::Response(
|
|
BOOL fStatus,
|
|
IN HCRYPTPROV hProv,
|
|
IN HCRYPTKEY hKey,
|
|
IN HCRYPTHASH hHash,
|
|
IN BOOL Final,
|
|
IN DWORD dwFlags,
|
|
IN OUT BYTE *pbData,
|
|
IN OUT DWORD *pdwDataLen)
|
|
{
|
|
if (fStatus)
|
|
{
|
|
CLogObject::Response(logid_True);
|
|
LogAdd(&m_LogData.bfOutData, pbData, *pdwDataLen);
|
|
}
|
|
else
|
|
{
|
|
CLogObject::Response(logid_False);
|
|
LogAdd(&m_LogData.bfOutData, NULL, *pdwDataLen);
|
|
}
|
|
}
|
|
|
|
void
|
|
CLogDecrypt::LogException(
|
|
void)
|
|
{
|
|
CLogObject::Response(logid_Exception);
|
|
LogAdd(&m_LogData.bfOutData, NULL, 0);
|
|
}
|
|
|
|
void
|
|
CLogDecrypt::LogNotCalled(
|
|
DWORD dwSts)
|
|
{
|
|
CLogObject::Response(logid_Setup, dwSts);
|
|
LogAdd(&m_LogData.bfOutData, NULL, 0);
|
|
}
|
|
|
|
|
|
//
|
|
//==============================================================================
|
|
//
|
|
// CLogCreateHash
|
|
//
|
|
|
|
CLogCreateHash::CLogCreateHash(
|
|
void)
|
|
: CLogObject(CreateHash, &m_LogData.lh, sizeof(m_LogData))
|
|
{
|
|
}
|
|
|
|
CLogCreateHash::~CLogCreateHash()
|
|
{
|
|
}
|
|
|
|
void
|
|
CLogCreateHash::Request(
|
|
IN HCRYPTPROV hProv,
|
|
IN ALG_ID Algid,
|
|
IN HCRYPTKEY hKey,
|
|
IN DWORD dwFlags,
|
|
OUT HCRYPTHASH *phHash)
|
|
{
|
|
CLogObject::Request();
|
|
m_LogData.hProv = hProv;
|
|
m_LogData.Algid = Algid;
|
|
m_LogData.hKey = hKey;
|
|
m_LogData.dwFlags = dwFlags;
|
|
}
|
|
|
|
void
|
|
CLogCreateHash::Response(
|
|
BOOL fStatus,
|
|
IN HCRYPTPROV hProv,
|
|
IN ALG_ID Algid,
|
|
IN HCRYPTKEY hKey,
|
|
IN DWORD dwFlags,
|
|
OUT HCRYPTHASH *phHash)
|
|
{
|
|
if (fStatus)
|
|
{
|
|
CLogObject::Response(logid_True);
|
|
}
|
|
else
|
|
{
|
|
CLogObject::Response(logid_False);
|
|
}
|
|
m_LogData.hHash = *phHash;
|
|
}
|
|
|
|
void
|
|
CLogCreateHash::LogException(
|
|
void)
|
|
{
|
|
CLogObject::Response(logid_Exception);
|
|
m_LogData.hHash = NULL;
|
|
}
|
|
|
|
void
|
|
CLogCreateHash::LogNotCalled(
|
|
DWORD dwSts)
|
|
{
|
|
CLogObject::Response(logid_Setup, dwSts);
|
|
m_LogData.hHash = NULL;
|
|
}
|
|
|
|
|
|
//
|
|
//==============================================================================
|
|
//
|
|
// CLogDestroyHash
|
|
//
|
|
|
|
CLogDestroyHash::CLogDestroyHash(
|
|
void)
|
|
: CLogObject(DestroyHash, &m_LogData.lh, sizeof(m_LogData))
|
|
{
|
|
}
|
|
|
|
CLogDestroyHash::~CLogDestroyHash()
|
|
{
|
|
}
|
|
|
|
void
|
|
CLogDestroyHash::Request(
|
|
IN HCRYPTPROV hProv,
|
|
IN HCRYPTHASH hHash)
|
|
{
|
|
CLogObject::Request();
|
|
m_LogData.hProv = hProv;
|
|
m_LogData.hHash = hHash;
|
|
}
|
|
|
|
void
|
|
CLogDestroyHash::Response(
|
|
BOOL fStatus,
|
|
IN HCRYPTPROV hProv,
|
|
IN HCRYPTHASH hHash)
|
|
{
|
|
if (fStatus)
|
|
{
|
|
CLogObject::Response(logid_True);
|
|
}
|
|
else
|
|
{
|
|
CLogObject::Response(logid_False);
|
|
}
|
|
}
|
|
|
|
void
|
|
CLogDestroyHash::LogException(
|
|
void)
|
|
{
|
|
CLogObject::Response(logid_Exception);
|
|
}
|
|
|
|
void
|
|
CLogDestroyHash::LogNotCalled(
|
|
DWORD dwSts)
|
|
{
|
|
CLogObject::Response(logid_Setup, dwSts);
|
|
}
|
|
|
|
|
|
//
|
|
//==============================================================================
|
|
//
|
|
// CLogGetHashParam
|
|
//
|
|
|
|
CLogGetHashParam::CLogGetHashParam(
|
|
void)
|
|
: CLogObject(GetHashParam, &m_LogData.lh, sizeof(m_LogData))
|
|
{
|
|
}
|
|
|
|
CLogGetHashParam::~CLogGetHashParam()
|
|
{
|
|
}
|
|
|
|
void
|
|
CLogGetHashParam::Request(
|
|
IN HCRYPTPROV hProv,
|
|
IN HCRYPTHASH hHash,
|
|
IN DWORD dwParam,
|
|
OUT BYTE *pbData,
|
|
IN OUT DWORD *pdwDataLen,
|
|
IN DWORD dwFlags)
|
|
{
|
|
CLogObject::Request();
|
|
m_LogData.hProv = hProv;
|
|
m_LogData.hHash = hHash;
|
|
m_LogData.dwParam = dwParam;
|
|
m_LogData.dwDataLen = *pdwDataLen;
|
|
m_LogData.dwFlags = dwFlags;
|
|
}
|
|
|
|
void
|
|
CLogGetHashParam::Response(
|
|
BOOL fStatus,
|
|
IN HCRYPTPROV hProv,
|
|
IN HCRYPTHASH hHash,
|
|
IN DWORD dwParam,
|
|
OUT BYTE *pbData,
|
|
IN OUT DWORD *pdwDataLen,
|
|
IN DWORD dwFlags)
|
|
{
|
|
if (fStatus)
|
|
{
|
|
CLogObject::Response(logid_True);
|
|
LogAdd(&m_LogData.bfData, pbData, *pdwDataLen);
|
|
}
|
|
else
|
|
{
|
|
CLogObject::Response(logid_False);
|
|
LogAdd(&m_LogData.bfData, NULL, *pdwDataLen);
|
|
}
|
|
}
|
|
|
|
void
|
|
CLogGetHashParam::LogException(
|
|
void)
|
|
{
|
|
CLogObject::Response(logid_Exception);
|
|
LogAdd(&m_LogData.bfData, NULL, 0);
|
|
}
|
|
|
|
void
|
|
CLogGetHashParam::LogNotCalled(
|
|
DWORD dwSts)
|
|
{
|
|
CLogObject::Response(logid_Setup, dwSts);
|
|
LogAdd(&m_LogData.bfData, NULL, 0);
|
|
}
|
|
|
|
|
|
//
|
|
//==============================================================================
|
|
//
|
|
// CLogHashData
|
|
//
|
|
|
|
CLogHashData::CLogHashData(
|
|
void)
|
|
: CLogObject(HashData, &m_LogData.lh, sizeof(m_LogData))
|
|
{
|
|
}
|
|
|
|
CLogHashData::~CLogHashData()
|
|
{
|
|
}
|
|
|
|
void
|
|
CLogHashData::Request(
|
|
IN HCRYPTPROV hProv,
|
|
IN HCRYPTHASH hHash,
|
|
IN CONST BYTE *pbData,
|
|
IN DWORD dwDataLen,
|
|
IN DWORD dwFlags)
|
|
{
|
|
CLogObject::Request();
|
|
m_LogData.hProv = hProv;
|
|
m_LogData.hHash = hHash;
|
|
LogAdd(&m_LogData.bfData, pbData, dwDataLen);
|
|
m_LogData.dwFlags = dwFlags;
|
|
}
|
|
|
|
void
|
|
CLogHashData::Response(
|
|
BOOL fStatus,
|
|
IN HCRYPTPROV hProv,
|
|
IN HCRYPTHASH hHash,
|
|
IN CONST BYTE *pbData,
|
|
IN DWORD dwDataLen,
|
|
IN DWORD dwFlags)
|
|
{
|
|
if (fStatus)
|
|
{
|
|
CLogObject::Response(logid_True);
|
|
}
|
|
else
|
|
{
|
|
CLogObject::Response(logid_False);
|
|
}
|
|
}
|
|
|
|
void
|
|
CLogHashData::LogException(
|
|
void)
|
|
{
|
|
CLogObject::Response(logid_Exception);
|
|
}
|
|
|
|
void
|
|
CLogHashData::LogNotCalled(
|
|
DWORD dwSts)
|
|
{
|
|
CLogObject::Response(logid_Setup, dwSts);
|
|
}
|
|
|
|
|
|
//
|
|
//==============================================================================
|
|
//
|
|
// CLogHashSessionKey
|
|
//
|
|
|
|
CLogHashSessionKey::CLogHashSessionKey(
|
|
void)
|
|
: CLogObject(HashSessionKey, &m_LogData.lh, sizeof(m_LogData))
|
|
{
|
|
}
|
|
|
|
CLogHashSessionKey::~CLogHashSessionKey()
|
|
{
|
|
}
|
|
|
|
void
|
|
CLogHashSessionKey::Request(
|
|
IN HCRYPTPROV hProv,
|
|
IN HCRYPTHASH hHash,
|
|
IN HCRYPTKEY hKey,
|
|
IN DWORD dwFlags)
|
|
{
|
|
CLogObject::Request();
|
|
m_LogData.hProv = hProv;
|
|
m_LogData.hHash = hHash;
|
|
m_LogData.hKey = hKey;
|
|
m_LogData.dwFlags = dwFlags;
|
|
}
|
|
|
|
void
|
|
CLogHashSessionKey::Response(
|
|
BOOL fStatus,
|
|
IN HCRYPTPROV hProv,
|
|
IN HCRYPTHASH hHash,
|
|
IN HCRYPTKEY hKey,
|
|
IN DWORD dwFlags)
|
|
{
|
|
if (fStatus)
|
|
{
|
|
CLogObject::Response(logid_True);
|
|
}
|
|
else
|
|
{
|
|
CLogObject::Response(logid_False);
|
|
}
|
|
}
|
|
|
|
void
|
|
CLogHashSessionKey::LogException(
|
|
void)
|
|
{
|
|
CLogObject::Response(logid_Exception);
|
|
}
|
|
|
|
void
|
|
CLogHashSessionKey::LogNotCalled(
|
|
DWORD dwSts)
|
|
{
|
|
CLogObject::Response(logid_Setup, dwSts);
|
|
}
|
|
|
|
|
|
//
|
|
//==============================================================================
|
|
//
|
|
// CLogSetHashParam
|
|
//
|
|
|
|
CLogSetHashParam::CLogSetHashParam(
|
|
void)
|
|
: CLogObject(SetHashParam, &m_LogData.lh, sizeof(m_LogData))
|
|
{
|
|
}
|
|
|
|
CLogSetHashParam::~CLogSetHashParam()
|
|
{
|
|
}
|
|
|
|
void
|
|
CLogSetHashParam::Request(
|
|
IN HCRYPTPROV hProv,
|
|
IN HCRYPTHASH hHash,
|
|
IN DWORD dwParam,
|
|
IN CONST BYTE *pbData,
|
|
IN DWORD dwLength,
|
|
IN DWORD dwFlags)
|
|
{
|
|
CLogObject::Request();
|
|
m_LogData.hProv = hProv;
|
|
m_LogData.hHash = hHash;
|
|
m_LogData.dwParam = dwParam;
|
|
LogAdd(&m_LogData.bfData, pbData, dwLength);
|
|
m_LogData.dwFlags = dwFlags;
|
|
}
|
|
|
|
void
|
|
CLogSetHashParam::Response(
|
|
BOOL fStatus,
|
|
IN HCRYPTPROV hProv,
|
|
IN HCRYPTHASH hHash,
|
|
IN DWORD dwParam,
|
|
IN CONST BYTE *pbData,
|
|
IN DWORD dwFlags)
|
|
{
|
|
if (fStatus)
|
|
{
|
|
CLogObject::Response(logid_True);
|
|
}
|
|
else
|
|
{
|
|
CLogObject::Response(logid_False);
|
|
}
|
|
}
|
|
|
|
void
|
|
CLogSetHashParam::LogException(
|
|
void)
|
|
{
|
|
CLogObject::Response(logid_Exception);
|
|
}
|
|
|
|
void
|
|
CLogSetHashParam::LogNotCalled(
|
|
DWORD dwSts)
|
|
{
|
|
CLogObject::Response(logid_Setup, dwSts);
|
|
}
|
|
|
|
|
|
//
|
|
//==============================================================================
|
|
//
|
|
// CLogSignHash
|
|
//
|
|
|
|
CLogSignHash::CLogSignHash(
|
|
void)
|
|
: CLogObject(SignHash, &m_LogData.lh, sizeof(m_LogData))
|
|
{
|
|
}
|
|
|
|
CLogSignHash::~CLogSignHash()
|
|
{
|
|
}
|
|
|
|
void
|
|
CLogSignHash::Request(
|
|
IN HCRYPTPROV hProv,
|
|
IN HCRYPTHASH hHash,
|
|
IN DWORD dwKeySpec,
|
|
IN LPCTSTR sDescription,
|
|
IN DWORD dwFlags,
|
|
OUT BYTE *pbSignature,
|
|
IN OUT DWORD *pdwSigLen)
|
|
{
|
|
CLogObject::Request();
|
|
m_LogData.hProv = hProv;
|
|
m_LogData.hHash = hHash;
|
|
m_LogData.dwKeySpec = dwKeySpec;
|
|
LogAdd(&m_LogData.bfDescription, sDescription);
|
|
m_LogData.dwFlags = dwFlags;
|
|
m_LogData.dwSigLen = *pdwSigLen;
|
|
}
|
|
|
|
void
|
|
CLogSignHash::Response(
|
|
BOOL fStatus,
|
|
IN HCRYPTPROV hProv,
|
|
IN HCRYPTHASH hHash,
|
|
IN DWORD dwKeySpec,
|
|
IN LPCTSTR sDescription,
|
|
IN DWORD dwFlags,
|
|
OUT BYTE *pbSignature,
|
|
IN OUT DWORD *pdwSigLen)
|
|
{
|
|
if (fStatus)
|
|
{
|
|
CLogObject::Response(logid_True);
|
|
LogAdd(&m_LogData.bfSignature, pbSignature, *pdwSigLen);
|
|
}
|
|
else
|
|
{
|
|
CLogObject::Response(logid_False);
|
|
LogAdd(&m_LogData.bfSignature, NULL, *pdwSigLen);
|
|
}
|
|
}
|
|
|
|
void
|
|
CLogSignHash::LogException(
|
|
void)
|
|
{
|
|
CLogObject::Response(logid_Exception);
|
|
LogAdd(&m_LogData.bfSignature, NULL, 0);
|
|
}
|
|
|
|
void
|
|
CLogSignHash::LogNotCalled(
|
|
DWORD dwSts)
|
|
{
|
|
CLogObject::Response(logid_Setup, dwSts);
|
|
LogAdd(&m_LogData.bfSignature, NULL, 0);
|
|
}
|
|
|
|
|
|
//
|
|
//==============================================================================
|
|
//
|
|
// CLogVerifySignature
|
|
//
|
|
|
|
CLogVerifySignature::CLogVerifySignature(
|
|
void)
|
|
: CLogObject(VerifySignature, &m_LogData.lh, sizeof(m_LogData))
|
|
{}
|
|
|
|
CLogVerifySignature::~CLogVerifySignature()
|
|
{}
|
|
|
|
void
|
|
CLogVerifySignature::Request(
|
|
IN HCRYPTPROV hProv,
|
|
IN HCRYPTHASH hHash,
|
|
IN CONST BYTE *pbSignature,
|
|
IN DWORD dwSigLen,
|
|
IN HCRYPTKEY hPubKey,
|
|
IN LPCTSTR sDescription,
|
|
IN DWORD dwFlags)
|
|
{
|
|
CLogObject::Request();
|
|
m_LogData.hProv = hProv;
|
|
m_LogData.hHash = hHash;
|
|
LogAdd(&m_LogData.bfSignature, pbSignature, dwSigLen);
|
|
m_LogData.dwSigLen = dwSigLen;
|
|
m_LogData.hPubKey = hPubKey;
|
|
LogAdd(&m_LogData.bfDescription, sDescription);
|
|
m_LogData.dwFlags = dwFlags;
|
|
}
|
|
|
|
void
|
|
CLogVerifySignature::Response(
|
|
BOOL fStatus,
|
|
IN HCRYPTPROV hProv,
|
|
IN HCRYPTHASH hHash,
|
|
IN CONST BYTE *pbSignature,
|
|
IN DWORD dwSigLen,
|
|
IN HCRYPTKEY hPubKey,
|
|
IN LPCTSTR sDescription,
|
|
IN DWORD dwFlags)
|
|
{
|
|
if (fStatus)
|
|
{
|
|
CLogObject::Response(logid_True);
|
|
}
|
|
else
|
|
{
|
|
CLogObject::Response(logid_False);
|
|
}
|
|
}
|
|
|
|
void
|
|
CLogVerifySignature::LogException(
|
|
void)
|
|
{
|
|
CLogObject::Response(logid_Exception);
|
|
}
|
|
|
|
void
|
|
CLogVerifySignature::LogNotCalled(
|
|
DWORD dwSts)
|
|
{
|
|
CLogObject::Response(logid_Setup, dwSts);
|
|
}
|
|
|
|
|
|
//
|
|
//==============================================================================
|
|
//
|
|
// CLogDuplicateHash
|
|
//
|
|
|
|
CLogDuplicateHash::CLogDuplicateHash(
|
|
void)
|
|
: CLogObject(DuplicateHash, &m_LogData.lh, sizeof(m_LogData))
|
|
{}
|
|
|
|
CLogDuplicateHash::~CLogDuplicateHash()
|
|
{}
|
|
|
|
void
|
|
CLogDuplicateHash::Request(
|
|
IN HCRYPTPROV hUID,
|
|
IN HCRYPTHASH hHash,
|
|
IN DWORD *pdwReserved,
|
|
IN DWORD dwFlags,
|
|
IN HCRYPTHASH *phHash)
|
|
{
|
|
CLogObject::Request();
|
|
m_LogData.hProv = hUID;
|
|
m_LogData.hHash = hHash;
|
|
m_LogData.pdwReserved = pdwReserved;
|
|
m_LogData.dwFlags = dwFlags;
|
|
m_LogData.hPHash = *phHash;
|
|
}
|
|
|
|
void
|
|
CLogDuplicateHash::Response(
|
|
BOOL fStatus,
|
|
IN HCRYPTPROV hUID,
|
|
IN HCRYPTHASH hHash,
|
|
IN DWORD *pdwReserved,
|
|
IN DWORD dwFlags,
|
|
IN HCRYPTHASH *phHash)
|
|
{
|
|
if (fStatus)
|
|
{
|
|
CLogObject::Response(logid_True);
|
|
m_LogData.hPHash = *phHash;
|
|
}
|
|
else
|
|
{
|
|
CLogObject::Response(logid_False);
|
|
m_LogData.hPHash = *phHash;
|
|
}
|
|
}
|
|
|
|
void
|
|
CLogDuplicateHash::LogException(
|
|
void)
|
|
{
|
|
CLogObject::Response(logid_Exception);
|
|
}
|
|
|
|
void
|
|
CLogDuplicateHash::LogNotCalled(
|
|
DWORD dwSts)
|
|
{
|
|
CLogObject::Response(logid_Setup, dwSts);
|
|
}
|
|
|
|
|
|
//
|
|
//==============================================================================
|
|
//
|
|
// CLogDuplicateKey
|
|
//
|
|
|
|
CLogDuplicateKey::CLogDuplicateKey(
|
|
void)
|
|
: CLogObject(DuplicateKey, &m_LogData.lh, sizeof(m_LogData))
|
|
{}
|
|
|
|
CLogDuplicateKey::~CLogDuplicateKey()
|
|
{}
|
|
|
|
void
|
|
CLogDuplicateKey::Request(
|
|
IN HCRYPTPROV hUID,
|
|
IN HCRYPTKEY hKey,
|
|
IN DWORD *pdwReserved,
|
|
IN DWORD dwFlags,
|
|
IN HCRYPTKEY *phKey)
|
|
{
|
|
CLogObject::Request();
|
|
m_LogData.hProv = hUID;
|
|
m_LogData.hKey = hKey;
|
|
m_LogData.pdwReserved = pdwReserved;
|
|
m_LogData.dwFlags = dwFlags;
|
|
m_LogData.hPKey = *phKey;
|
|
}
|
|
|
|
void
|
|
CLogDuplicateKey::Response(
|
|
BOOL fStatus,
|
|
IN HCRYPTPROV hUID,
|
|
IN HCRYPTKEY hKey,
|
|
IN DWORD *pdwReserved,
|
|
IN DWORD dwFlags,
|
|
IN HCRYPTKEY *phKey)
|
|
{
|
|
if (fStatus)
|
|
{
|
|
CLogObject::Response(logid_True);
|
|
m_LogData.hPKey = *phKey;
|
|
}
|
|
else
|
|
{
|
|
CLogObject::Response(logid_False);
|
|
m_LogData.hPKey = *phKey;
|
|
}
|
|
}
|
|
|
|
void
|
|
CLogDuplicateKey::LogException(
|
|
void)
|
|
{
|
|
CLogObject::Response(logid_Exception);
|
|
}
|
|
|
|
void
|
|
CLogDuplicateKey::LogNotCalled(
|
|
DWORD dwSts)
|
|
{
|
|
CLogObject::Response(logid_Setup, dwSts);
|
|
}
|
|
|