Added stubs for CryptGenRandom(), CryptReleaseContext().

This commit is contained in:
James Hatheway 2000-10-24 01:39:29 +00:00 committed by Alexandre Julliard
parent a4251bbe4c
commit 4c2c7af0cc
2 changed files with 54 additions and 3 deletions

View File

@ -54,14 +54,14 @@ import ntdll.dll
@ stub CryptGetKeyParam @ stub CryptGetKeyParam
@ stub CryptGetHashParam @ stub CryptGetHashParam
@ stub CryptGetProvParam @ stub CryptGetProvParam
@ stub CryptGenRandom @ stdcall CryptGenRandom(long long ptr) CryptGenRandom
@ stub CryptGetDefaultProviderA @ stub CryptGetDefaultProviderA
@ stub CryptGetDefaultProviderW @ stub CryptGetDefaultProviderW
@ stub CryptGetUserKey @ stub CryptGetUserKey
@ stub CryptHashData @ stub CryptHashData
@ stub CryptHashSessionKey @ stub CryptHashSessionKey
@ stub CryptImportKey @ stub CryptImportKey
@ stub CryptReleaseContext @ stdcall CryptReleaseContext(long long) CryptReleaseContext
@ stub CryptSetHashParam @ stub CryptSetHashParam
@ stdcall CryptSetKeyParam(long long ptr long) CryptSetKeyParam @ stdcall CryptSetKeyParam(long long ptr long) CryptSetKeyParam
@ stub CryptSetProvParam @ stub CryptSetProvParam

View File

@ -1,12 +1,15 @@
/* /*
* dlls/advapi32/crypt.c * dlls/advapi32/crypt.c
*/ */
#include <time.h>
#include <stdlib.h>
#include "windef.h" #include "windef.h"
#include "winerror.h" #include "winerror.h"
#include "wincrypt.h" #include "wincrypt.h"
#include "debugtools.h" #include "debugtools.h"
DEFAULT_DEBUG_CHANNEL(advapi) DEFAULT_DEBUG_CHANNEL(advapi);
/****************************************************************************** /******************************************************************************
* CryptAcquireContextA * CryptAcquireContextA
@ -41,3 +44,51 @@ CryptSetKeyParam( HCRYPTKEY hKey, DWORD dwParam, BYTE *pbData, DWORD dwFlags)
return FALSE; 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;
}