Compartilhar via


Método IObjectId::InitializeFromAlgorithmName (certenroll.h)

O método InitializeFromAlgorithmName inicializa o objeto de um nome de algoritmo ou de um identificador de objeto. Esse método foi fornecido principalmente para permitir que você inicialize o objeto de um nome de algoritmo de API de Criptografia: CNG (Próxima Geração). No entanto, você pode especificar qualquer nome OID. Esse método está habilitado para a Web.

Sintaxe

HRESULT InitializeFromAlgorithmName(
  [in] ObjectIdGroupId        GroupId,
  [in] ObjectIdPublicKeyFlags KeyFlags,
  [in] AlgorithmFlags         AlgFlags,
  [in] BSTR                   strAlgorithmName
);

Parâmetros

[in] GroupId

Um valor de enumeração ObjectIdGroupId que especifica o grupo OID a ser pesquisado. Pode ser qualquer um dos seguintes grupos de algoritmos:

  • XCN_CRYPT_HASH_ALG_OID_GROUP_ID
  • XCN_CRYPT_ENCRYPT_ALG_OID_GROUP_ID
  • XCN_CRYPT_PUBKEY_ALG_OID_GROUP_ID
  • XCN_CRYPT_SIGN_ALG_OID_GROUP_ID
Além disso, você também pode especificar grupos que não contêm algoritmos criptográficos:
  • XCN_CRYPT_RDN_ATTR_OID_GROUP_ID
  • XCN_CRYPT_EXT_OR_ATTR_OID_GROUP_ID
  • XCN_CRYPT_ENHKEY_USAGE_OID_GROUP_ID
  • XCN_CRYPT_POLICY_OID_GROUP_ID
  • XCN_CRYPT_TEMPLATE_OID_GROUP_ID

[in] KeyFlags

Um valor de enumeração ObjectIdPublicKeyFlags que especifica se deseja pesquisar uma assinatura ou um algoritmo de criptografia. Esse valor pode ser um dos seguintes:

  • XCN_CRYPT_OID_INFO_PUBKEY_SIGN_KEY_FLAG
  • XCN_CRYPT_OID_INFO_PUBKEY_ENCRYPT_KEY_FLAG
Você pode usar qualquer valor para desambiguar entre algoritmos como RSA que podem ser usados para criptografar e assinar mensagens. Você também deve especificar XCN_CRYPT_PUBKEY_ALG_OID_GROUP_ID no parâmetro GroupId .

[in] AlgFlags

Um valor de enumeração AlgorithmFlags . Esse valor pode ser um dos seguintes:

  • AlgorithmFlagsNone
  • AlgorithmFlagsWrap
Se você especificar XCN_CRYPT_ENCRYPT_ALG_OID_GROUP_ID para o parâmetro GroupId , poderá usar a enumeração AlgorithmFlags para pesquisar uma OID que possa ser usada para encapsular uma chave. Por exemplo, você poderá recuperar informações sobre o algoritmo AES128wrap se especificar um comprimento de bit de 128 (consulte a seção Comentários), definir o parâmetro strAlgorithmName como AES e especificar AlgorithmFlagsWrap.

[in] strAlgorithmName

Uma variável BSTR que contém o nome. Você pode especificar um nome ou um OID no formato decimal pontilhado. O método verifica se o formato é consistente com o padrão ASN.1 X.208. Para obter mais informações sobre nomes de algoritmo CNG, consulte Identificadores de algoritmo CNG.

Retornar valor

Se a função for bem-sucedida, a função retornará S_OK.

Se a função falhar, ela retornará um valor HRESULT que indica o erro. Os possíveis valores incluem, mas sem limitação, aqueles na tabela a seguir. Para obter uma lista de códigos de erro comuns, consulte Valores HRESULT comuns.

Valor/código retornado Descrição
CERTSRV_E_PROPERTY_EMPTY
Não foi possível encontrar as informações de OID.
CRYPT_E_UNKNOWN_ALGO
O nome do algoritmo não é reconhecido.
HRESULT_FROM_WIN32(ERROR_ALREADY_INITIALIZED)
O objeto já está inicializado.

Comentários

Você pode usar os 16 bits superiores do parâmetro GroupId para especificar o tamanho da chave para algoritmos que aceitam um comprimento de bit variável. Por exemplo, para inicializar um objeto IObjectId de um algoritmo AES de 192 bits, especifique "AES" para o parâmetro strAlgorithmName , mova o comprimento para a esquerda em 16 e execute uma combinação bit a bit OR no comprimento do bit deslocado e no valor GroupId .

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho certenroll.h
DLL CertEnroll.dll

Confira também

IObjectId