📄 csp.cpp
字号:
}
/*------------------------------------------------------------------------
CPSetHashParam
-------------------------------------------------------------------------*/
BOOL WINAPI
CPSetHashParam(
IN HCRYPTPROV hProv,
IN HCRYPTHASH hHash,
IN DWORD ulParametre,
IN BYTE *pucData,
IN DWORD ulFlags)
{
TRACE(__LINE__,"CPSetHashParam BEGIN : %d %d %d %d %d",hProv,hHash,ulParametre,pucData,ulFlags);
if(!HandleContainer::VerifyHandleContainer((HandleContainer*)hProv))
{
SetLastError(NTE_BAD_UID);
TRACE(__LINE__,"CPSetHashParam ERROR : %d %d %d %d %d",hProv,hHash,ulParametre,pucData,ulFlags);
return FALSE;
}
TRACE(__LINE__,"CPSetHashParam TRUE : %d %d %d %d %d",hProv,hHash,ulParametre,pucData,ulFlags);
return ((HandleContainer*)hProv)->SetHashParam(hHash, ulParametre, pucData, ulFlags);
}
/*------------------------------------------------------------------------
CPGetHashParam
-------------------------------------------------------------------------*/
BOOL WINAPI
CPGetHashParam(
IN HCRYPTPROV hProv,
IN HCRYPTHASH hHash,
IN DWORD ulParametre,
OUT LPBYTE pucData,
IN OUT LPDWORD pulDataLen,
IN DWORD ulFlags)
{
TRACE(__LINE__,"CPSetHashParam BEGIN : %d %d %d %d %d %d",hProv,hHash,ulParametre,pucData,pulDataLen,ulFlags);
if(!HandleContainer::VerifyHandleContainer((HandleContainer*)hProv))
{
SetLastError(NTE_BAD_UID);
TRACE(__LINE__,"CPSetHashParam ERROR : %d %d %d %d %d %d",hProv,hHash,ulParametre,pucData,pulDataLen,ulFlags);
return FALSE;
}
TRACE(__LINE__,"CPSetHashParam TRUE : %d %d %d %d %d %d",hProv,hHash,ulParametre,pucData,pulDataLen,ulFlags);
return ((HandleContainer*)hProv)->GetHashParam(hHash, ulParametre, pucData, pulDataLen, ulFlags);
}
/*------------------------------------------------------------------------
CPExportKey
-------------------------------------------------------------------------*/
BOOL WINAPI
CPExportKey(
IN HCRYPTPROV hProv,
IN HCRYPTKEY hKey,
IN HCRYPTKEY hPubKey,
IN DWORD ulBlobType,
IN DWORD ulFlags,
OUT LPBYTE pucData,
IN OUT LPDWORD pulDataLen)
{
TRACE(__LINE__,"CPExportKey NOT IMPLEMENTED",NULL);
SetLastError(E_NOTIMPL);
return FALSE;
}
/*------------------------------------------------------------------------
CPImportKey
-------------------------------------------------------------------------*/
BOOL WINAPI
CPImportKey(
IN HCRYPTPROV hProv,
IN CONST BYTE *pucData,
IN DWORD pulDataLen,
IN HCRYPTKEY hPubKey,
IN DWORD ulFlags,
OUT HCRYPTKEY *phKey)
{
TRACE(__LINE__,"CPImportKey BEGIN : %d %d %d %d %d %d",hProv,pucData,pulDataLen,hPubKey,ulFlags,phKey);
if(!HandleContainer::VerifyHandleContainer((HandleContainer*)hProv))
{
SetLastError(NTE_BAD_UID);
TRACE(__LINE__,"CPImportKey ERROR : %d %d %d %d %d %d",hProv,pucData,pulDataLen,hPubKey,ulFlags,phKey);
return FALSE;
}
//
TRACE(__LINE__,"CPImportKey TRUE : %d %d %d %d %d %d",hProv,pucData,pulDataLen,hPubKey,ulFlags,phKey);
return ((HandleContainer*)hProv)->ImportKey((unsigned char * )pucData, pulDataLen, hPubKey, ulFlags, phKey);
}
/*------------------------------------------------------------------------
CPEncrypt
-------------------------------------------------------------------------*/
BOOL WINAPI
CPEncrypt(
IN HCRYPTPROV hProv,
IN HCRYPTKEY hKey,
IN HCRYPTHASH hHash,
IN BOOL fFinal,
IN DWORD dwFlags,
IN OUT LPBYTE pbData,
IN OUT LPDWORD pcbDataLen,
IN DWORD cbBufLen)
{
TRACE(__LINE__,"CPEncrypt BEGIN : %d %d %d %d %d %d %d %d",hProv,hKey,hHash,fFinal,dwFlags,pbData,pcbDataLen,cbBufLen );
if(!HandleContainer::VerifyHandleContainer((HandleContainer*)hProv))
{
SetLastError(NTE_BAD_UID);
TRACE(__LINE__,"CPEncrypt ERROR: %d %d %d %d %d %d %d %d",hProv,hKey,hHash,fFinal,dwFlags,pbData,pcbDataLen,cbBufLen );
return FALSE;
}
TRACE(__LINE__,"CPEncrypt TRUE : %d %d %d %d %d %d %d %d",hProv,hKey,hHash,fFinal,dwFlags,pbData,pcbDataLen,cbBufLen );
return ((HandleContainer*)hProv)->Encrypt(hKey, hHash, fFinal, dwFlags, pbData, pcbDataLen, cbBufLen);
}
/*------------------------------------------------------------------------
CPDecrypt
-------------------------------------------------------------------------*/
BOOL WINAPI
CPDecrypt(
IN HCRYPTPROV hProv,
IN HCRYPTKEY hKey,
IN HCRYPTHASH hHash,
IN BOOL fFinal,
IN DWORD dwFlags,
IN OUT LPBYTE pbData,
IN OUT LPDWORD pcbDataLen)
{
BOOL result;
LPBYTE pbKeyMaterial = NULL;
TRACE(__LINE__,"CPDecrypt BEGIN : %d %d %d %d %d %d %d",hProv,hKey,hHash,fFinal,dwFlags,pbData,pcbDataLen);
if(!HandleContainer::VerifyHandleContainer((HandleContainer*)hProv))
{
SetLastError(NTE_BAD_UID);
TRACE(__LINE__,"CPDecrypt ERROR : %d %d %d %d %d %d %d",hProv,hKey,hHash,fFinal,dwFlags,pbData,pcbDataLen);
return FALSE;
}
result=((HandleContainer*)hProv)->Decrypt(hKey, hHash, fFinal, dwFlags, pbData, pcbDataLen);
if(!result)
{
TRACE(__LINE__,"CPDecrypt ERROR : %d %d %d %d %d %d %d error:%x\n",hProv,hKey,hHash,fFinal,dwFlags,pbData,pcbDataLen,GetLastError());
return FALSE;
}
TRACE(__LINE__,"CPDecrypt TRUE : %d %d %d %d %d %d %d",hProv,hKey,hHash,fFinal,dwFlags,pbData,pcbDataLen);
return TRUE;
}
/*------------------------------------------------------------------------
CPCreateHash
-------------------------------------------------------------------------*/
BOOL WINAPI
CPCreateHash(
IN HCRYPTPROV hProv,
IN ALG_ID Algid,
IN HCRYPTKEY hKey,
IN DWORD dwFlags,
OUT HCRYPTHASH *phHash)
{
TRACE(__LINE__,"CPCreateHash BEGIN :%d %d %d %d %d",hProv,Algid,hKey,dwFlags,phHash);
if(!HandleContainer::VerifyHandleContainer((HandleContainer*)hProv))
{
SetLastError(NTE_BAD_UID);
TRACE(__LINE__,"CPCreateHash ERROR :%d %d %d %d %d",hProv,Algid,hKey,dwFlags,phHash);
return FALSE;
}
TRACE(__LINE__,"CPCreateHash TRUE :%d %d %d %d %d",hProv,Algid,hKey,dwFlags,phHash);
return ((HandleContainer*)hProv)->CreateHash(Algid, hKey, dwFlags, phHash);
}
/*------------------------------------------------------------------------
CPHashData
-------------------------------------------------------------------------*/
BOOL WINAPI
CPHashData(
IN HCRYPTPROV hProv,
IN HCRYPTHASH hHash,
IN CONST BYTE *pbData,
IN DWORD cbDataLen,
IN DWORD dwFlags)
{
TRACE(__LINE__,"CPHashData BEGIN : %d %d %d %d %d",hProv,hHash,pbData,cbDataLen,dwFlags);
if(!HandleContainer::VerifyHandleContainer((HandleContainer*)hProv))
{
SetLastError(NTE_BAD_UID);
TRACE(__LINE__,"CPHashData ERROR : %d %d %d %d %d",hProv,hHash,pbData,cbDataLen,dwFlags);
return FALSE;
}
TRACE(__LINE__,"CPHashData TRUE : %d %d %d %d %d",hProv,hHash,pbData,cbDataLen,dwFlags);
return ((HandleContainer*)hProv)->HashData(hHash, pbData, cbDataLen, dwFlags);
}
/*------------------------------------------------------------------------
CPHashSessionKey
-------------------------------------------------------------------------*/
BOOL WINAPI
CPHashSessionKey(
IN HCRYPTPROV hProv,
IN HCRYPTHASH hHash,
IN HCRYPTKEY hKey,
IN DWORD dwFlags)
{
TRACE(__LINE__,"CPHashSessionKey NOT IMPLEMENTED",NULL);
SetLastError(E_NOTIMPL);
return FALSE;
}
/*------------------------------------------------------------------------
CPSignHash
-------------------------------------------------------------------------*/
BOOL WINAPI
CPSignHash(
IN HCRYPTPROV hProv,
IN HCRYPTHASH hHash,
IN DWORD dwKeySpec,
IN LPCWSTR szDescription,
IN DWORD dwFlags,
OUT LPBYTE pbSignature,
IN OUT LPDWORD pcbSigLen)
{
TRACE(__LINE__,"CPSignHash BEGIN : %d %d %d %d %d %d %d",hProv,hHash,dwKeySpec,szDescription,dwFlags,pbSignature,pcbSigLen);
if(!HandleContainer::VerifyHandleContainer((HandleContainer*)hProv))
{
SetLastError(NTE_BAD_UID);
TRACE(__LINE__,"CPSignHash ERROR : %d %d %d %d %d %d %d",hProv,hHash,dwKeySpec,szDescription,dwFlags,pbSignature,pcbSigLen);
return FALSE;
}
TRACE(__LINE__,"CPSignHash TRUE : %d %d %d %d %d %d %d",hProv,hHash,dwKeySpec,szDescription,dwFlags,pbSignature,pcbSigLen);
return ((HandleContainer*)hProv)->SignHash(hHash,dwKeySpec,szDescription,dwFlags,pbSignature, pcbSigLen);
}
/*------------------------------------------------------------------------
CPDestroyHash
-------------------------------------------------------------------------*/
BOOL WINAPI
CPDestroyHash(
IN HCRYPTPROV hProv,
IN HCRYPTHASH hHash)
{
TRACE(__LINE__,"CPDestryHash BEGIN : %d %d",hProv,hHash);
if(!HandleContainer::VerifyHandleContainer((HandleContainer*)hProv))
{
SetLastError(NTE_BAD_UID);
TRACE(__LINE__,"CPDestryHash ERROR : %d %d",hProv,hHash);
return FALSE;
}
TRACE(__LINE__,"CPDestryHash TRUE : %d %d",hProv,hHash);
return ((HandleContainer*)hProv)->DestroyHash(hHash);
}
/*------------------------------------------------------------------------
CPVerifySignature
-------------------------------------------------------------------------*/
BOOL WINAPI
CPVerifySignature(
IN HCRYPTPROV hProv,
IN HCRYPTHASH hHash,
IN CONST BYTE *pbSignature,
IN DWORD cbSigLen,
IN HCRYPTKEY hPubKey,
IN LPCTSTR szDescription,
IN DWORD dwFlags)
{
TRACE(__LINE__,"CPVerifySignature BEGIN : %d %d %d %d %d %d %d",hProv,hHash,pbSignature,cbSigLen,hPubKey,szDescription,dwFlags);
if(!HandleContainer::VerifyHandleContainer((HandleContainer*)hProv))
{
SetLastError(NTE_BAD_UID);
TRACE(__LINE__,"CPVerifySignature ERROR : %d %d %d %d %d %d %d",hProv,hHash,pbSignature,cbSigLen,hPubKey,szDescription,dwFlags);
return FALSE;
}
TRACE(__LINE__,"CPVerifySignature TRUE : %d %d %d %d %d %d %d",hProv,hHash,pbSignature,cbSigLen,hPubKey,szDescription,dwFlags);
return ((HandleContainer*)hProv)->VerifySignature(hHash, pbSignature, cbSigLen, hPubKey, szDescription, dwFlags);
}
/*------------------------------------------------------------------------
CPGenRandom
-------------------------------------------------------------------------*/
BOOL WINAPI
CPGenRandom(
IN HCRYPTPROV hProv,
IN DWORD cbLen,
OUT LPBYTE pbBuffer)
{
TRACE(__LINE__,"CPGenRandom NOT IMPLEMENTED",NULL);
SetLastError(E_NOTIMPL);
return FALSE;
}
/*------------------------------------------------------------------------
CPGetUserKey
-------------------------------------------------------------------------*/
BOOL WINAPI
CPGetUserKey(
IN HCRYPTPROV hProv,
IN DWORD dwKeySpec,
OUT HCRYPTKEY *phUserKey)
{
TRACE(__LINE__,"CPGetUserKey BEGIN : %d %d %d",hProv,dwKeySpec,phUserKey);
if(!HandleContainer::VerifyHandleContainer((HandleContainer*)hProv))
{
SetLastError(NTE_BAD_UID);
TRACE(__LINE__,"CPGetUserKey ERROR : %d %d %d",hProv,dwKeySpec,phUserKey);
return FALSE;
}
((HandleContainer*)hProv)->GetUserKey(dwKeySpec,phUserKey);
TRACE(__LINE__,"CPGetUserKey TRUE : %d %d %d",hProv,dwKeySpec,phUserKey);
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -