Added stubs for CryptGenRandom(), CryptReleaseContext().
This commit is contained in:
parent
a4251bbe4c
commit
4c2c7af0cc
|
@ -54,14 +54,14 @@ import ntdll.dll
|
|||
@ stub CryptGetKeyParam
|
||||
@ stub CryptGetHashParam
|
||||
@ stub CryptGetProvParam
|
||||
@ stub CryptGenRandom
|
||||
@ stdcall CryptGenRandom(long long ptr) CryptGenRandom
|
||||
@ stub CryptGetDefaultProviderA
|
||||
@ stub CryptGetDefaultProviderW
|
||||
@ stub CryptGetUserKey
|
||||
@ stub CryptHashData
|
||||
@ stub CryptHashSessionKey
|
||||
@ stub CryptImportKey
|
||||
@ stub CryptReleaseContext
|
||||
@ stdcall CryptReleaseContext(long long) CryptReleaseContext
|
||||
@ stub CryptSetHashParam
|
||||
@ stdcall CryptSetKeyParam(long long ptr long) CryptSetKeyParam
|
||||
@ stub CryptSetProvParam
|
||||
|
|
|
@ -1,12 +1,15 @@
|
|||
/*
|
||||
* dlls/advapi32/crypt.c
|
||||
*/
|
||||
#include <time.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "windef.h"
|
||||
#include "winerror.h"
|
||||
#include "wincrypt.h"
|
||||
#include "debugtools.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(advapi)
|
||||
DEFAULT_DEBUG_CHANNEL(advapi);
|
||||
|
||||
/******************************************************************************
|
||||
* CryptAcquireContextA
|
||||
|
@ -41,3 +44,51 @@ CryptSetKeyParam( HCRYPTKEY hKey, DWORD dwParam, BYTE *pbData, DWORD dwFlags)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
* CryptGenRandom
|
||||
*/
|
||||
BOOL WINAPI
|
||||
CryptGenRandom (HCRYPTPROV hProv, DWORD dwLen, BYTE *pbBuffer)
|
||||
{
|
||||
DWORD i;
|
||||
|
||||
FIXME("(0x%lx, %ld, %p): stub!\n", hProv, dwLen, pbBuffer);
|
||||
/*
|
||||
FIXME: Currently this function is just a stub, it is missing functionality in
|
||||
the following (major) ways:
|
||||
(1) It makes no use of the passed in HCRYPTPROV handle. (ie. it doesn't
|
||||
use a cryptographic service provider (CSP)
|
||||
(2) It doesn't use the values in the passed in pbBuffer to further randomize
|
||||
its internal seed.
|
||||
(3) MSDN mentions that this function produces "cryptographically random"
|
||||
data, which is "... far more random than the data generated by the typical
|
||||
random number generator such as the one shipped with your C compiler".
|
||||
We are currently using the C runtime rand() function. ^_^
|
||||
|
||||
See MSDN documentation for CryptGenRandom for more information.
|
||||
*/
|
||||
|
||||
if (dwLen <= 0)
|
||||
return FALSE;
|
||||
|
||||
srand(time(NULL));
|
||||
for (i=0; i<dwLen; i++)
|
||||
{
|
||||
*pbBuffer = (BYTE)(rand() % 256);
|
||||
pbBuffer++;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
* CryptReleaseContext
|
||||
*/
|
||||
BOOL WINAPI
|
||||
CryptReleaseContext (HCRYPTPROV hProv, DWORD dwFlags)
|
||||
{
|
||||
FIXME("(0x%lx, 0x%lx): stub!\n", hProv, dwFlags);
|
||||
return FALSE;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue