?? helixdll.cpp
字號:
// HelixDll.cpp : Defines the entry point for the DLL and its main exports
//
#include "stdafx.h"
#include "..\Helix.h"
#include "..\HelixAPI.h"
BOOL APIENTRY DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpReserved*/)
{
if (dwReason == DLL_PROCESS_ATTACH)
DisableThreadLibraryCalls(hInstance);
return TRUE;
}
HHELIX WINAPI HelixOpen()
{
CHelix* pHelix = new CHelix;
if (pHelix == NULL)
SetLastError(ERROR_NOT_ENOUGH_MEMORY);
return (HHELIX) pHelix;
}
BOOL WINAPI HelixClose(HHELIX hEntry)
{
//Assume the worst
BOOL bSuccess = FALSE;
CHelix* pHelix = (CHelix*) hEntry;
if (pHelix)
{
delete pHelix;
bSuccess = TRUE;
}
else
SetLastError(ERROR_INVALID_PARAMETER);
return bSuccess;
}
BOOL WINAPI HelixSetKey(HHELIX hEntry, const BYTE* pbyKey, DWORD dwKeyLength)
{
//Assume the worst
BOOL bSuccess = FALSE;
CHelix* pHelix = (CHelix*) hEntry;
if (pHelix)
bSuccess = pHelix->SetKey(pbyKey, dwKeyLength);
else
SetLastError(ERROR_INVALID_PARAMETER);
return bSuccess;
}
BOOL WINAPI HelixEncrypt(HHELIX hEntry, const BYTE* pbyPlainText, DWORD dwPlainTextSize, const BYTE* pNonce, BYTE* pbyCipherText, BYTE* pMac)
{
//Assume the worst
BOOL bSuccess = FALSE;
CHelix* pHelix = (CHelix*) hEntry;
if (pHelix)
{
CHelixNonce nonce;
memcpy(nonce.m_Data, pNonce, sizeof(nonce.m_Data));
CHelixMAC mac;
bSuccess = pHelix->Encrypt(pbyPlainText, dwPlainTextSize, nonce, pbyCipherText, mac);
if (bSuccess)
memcpy(pMac, mac.m_Data, sizeof(mac.m_Data));
}
else
SetLastError(ERROR_INVALID_PARAMETER);
return bSuccess;
}
DWORD WINAPI HelixDecrypt(HHELIX hEntry, const BYTE* pbyCipherText, DWORD dwCipherTextSize, const BYTE* pNonce, const BYTE* pMac, BYTE* pbyPlainText)
{
//Assume the worst
BOOL bSuccess = FALSE;
CHelix* pHelix = (CHelix*) hEntry;
if (pHelix)
{
CHelixNonce nonce;
memcpy(nonce.m_Data, pNonce, sizeof(nonce.m_Data));
CHelixMAC mac;
memcpy(mac.m_Data, pMac, sizeof(mac.m_Data));
bSuccess = pHelix->Decrypt(pbyCipherText, dwCipherTextSize, nonce, mac, pbyPlainText);
}
else
SetLastError(ERROR_INVALID_PARAMETER);
return bSuccess;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -