CryptGenRandom
9/8/2008
Essa função preenche uma reserva com aleatório bytes.
Syntax
BOOL CRYPTFUNC CryptGenRandom(
HCRYPTPROV hProv,
DWORD dwLen,
BYTE* pbBuffer
);
Parameters
- hProv
[no] Um identificador para um provedor de serviços de criptografia criado por um chamar para HCRYPTPROV CryptAcquireContext.
- dwLen
[no] O comprimento, em bytes, do aleatório dados para gerar.
pbBuffer
[in, Out] Ponteiro para a reserva contendo o aleatório dados. Esta reserva deve ter pelo menos dwLen bytes de comprimento.Na entrada, o aplicativo deve preencher a reserva com dados a ser usada como um auxiliar aleatório propagação. O provedor de serviços de criptografia usará este dados para aleatória ainda mais sua propagação interna.
Return Value
TRUE indica sucesso. FALSE indica falha. Para informações de erro estendidas get, chamar a função GetLastError.
A seguinte tabela mostra a comum valores para o GetLastError função. Os valores de erro antecedidos por NTE são gerados pelo provedor de serviços de criptografia específico que estiver usando.
Valor | Descrição |
---|---|
ERROR_INVALID_HANDLE |
Um dos parâmetros Especifica um inválido identificador. |
ERROR_INVALID_PARAMETER |
Um dos parâmetros contém um valor inválido. Isso é geralmente um ilegal ponteiro. |
NTE_BAD_UID |
O hProv parâmetro não contém um válido identificador contexto. |
NTE_FAIL |
A função falha de alguma maneira inesperada. |
Remarks
Os dados produzidos por essa função é criptograficamente aleatório. Ele é muito mais aleatório que os dados gerados pelo aleatório típico gerador número, como aquele fornecido com o compilador C.
Essa função é freqüentemente usada para gerar aleatório vetores inicialização e valores salt.
Todos os software aleatório trabalho geradores número fundamentalmente da mesma maneira. Eles iniciar com um aleatório número, conhecido como a propagação e em seguida, use um algoritmo para gerar uma seqüência pseudo-aleatório de bits com base nele. A parte mais difícil desse processo é get uma propagação que está realmente aleatório. Isso normalmente baseia-se no entrada do usuário latência, ou a tremulação de um ou mais pedaços hardware.
Se seu design OS não inclui o recurso Cryptography Services, você poderá usar CeGenRandom para gerar aleatório números. CeGenRandom estará disponível somente se o design OS inclui o recurso File System.
Código exemplo
Consulte CryptSetKeyParam.
Requirements
Header | wincrypt.h |
Library | coredll.lib |
Windows Embedded CE | Windows CE 2.10 and later |
Windows Mobile | Windows Mobile Version 5.0 and later |
See Also
Reference
CryptAcquireContext
CryptGenKey
CryptSetKeyParam