Compartilhar via


CryptGenRandom

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função preenche uma reserva com aleatório bytes.

Syntax

BOOL CRYPTFUNC CryptGenRandom( 
  HCRYPTPROV hProv,
  DWORD dwLen, 
  BYTE* pbBuffer
);

Parameters

  • 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

Other Resources

CeGenRandom