Funções de chave pública e privada

CertEnroll.dll implementa as interfaces IX509PrivateKey e IX509PublicKey . Você pode, por exemplo, usar a interface IX509PrivateKey para executar as seguintes ações em uma chave privada:

  • Crie, abra, feche, importe, exporte e exclua a chave.
  • Especifique ou recupere o algoritmo de chave pública.
  • Especifique ou recupere informações sobre o CSP ( provedor de serviços criptográficos ) disponível que dá suporte ao algoritmo de chave pública.
  • Especifique ou recupere o certificado associado à chave privada.
  • Especifique ou recupere o nome do contêiner de chave.
  • Especifique ou recupere uma descrição de e um nome de exibição para a chave.
  • Especifique ou recupere as restrições de exportação em uma chave privada.
  • Especifique ou recupere um valor booliano que indica se a chave existe.
  • Especifique ou recupere um valor que indique como a chave é protegida antes do uso.
  • Especifique ou recupere um valor que indique se a chave pode ser usada para assinatura, criptografia ou ambos.
  • Especifique ou recupere um valor que identifique a finalidade específica para a qual a chave pode ser usada.
  • Especifique ou recupere o comprimento da chave.
  • Especifique ou recupere um valor que indique se a chave é usada ou salva no contexto de um computador ou usuário.
  • Recupere um valor booliano que especifica se a chave foi aberta.
  • Especifique um número de identificação pessoal para acessar uma chave privada em uma cartão inteligente.
  • Especifique ou recupere o nome do CSP associado à chave.
  • Especifique ou recupere o descritor de segurança para a chave.

Cada uma das seções a seguir identifica uma função exportada por Xenroll.dll que pode ser usada para gerenciar uma chave criptográfica. Cada tópico também discute como usar CertEnroll.dll para substituir a função ou indica que não existe nenhum mapeamento entre as duas bibliotecas:

ContainerNameWStr

A função ContainerNameWStr no Xenroll.dll especifica ou recupera o nome do contêiner de chave.

Ao usar CertEnroll.dll, você pode executar as seguintes ações para recuperar o nome de um contêiner de chave:

  1. Chame a propriedade Request em um objeto IX509Enrollment existente.
  2. Chame o método GetInnerRequest na solicitação retornada da etapa 1 para recuperar a solicitação mais interna.
  3. Chame QueryInterface no objeto IX509CertificateRequest retornado da etapa 2 para converter em um objeto IX509CertificateRequestPkcs10 .
  4. Chame a propriedade PrivateKey na solicitação PKCS nº 10.
  5. Chame a propriedade ContainerName no objeto IX509PrivateKey recuperado da etapa 4.

GenKeyFlags

A função GenKeyFlags definida em Xenroll.dll especifica ou recupera sinalizadores usados para gerar uma chave privada ou um par de chaves pública/privada.

Ao usar CertEnroll.dll, você pode especificar várias propriedades diferentes que determinarão como uma chave privada é criada. Para obter mais informações, consulte Criar.

GetKeyLen

A função GetKeyLen definida em Xenroll.dll recupera o tamanho máximo ou mínimo da chave de uma chave de criptografia.

Ao usar CertEnroll.dll, você pode chamar a propriedade Length em um objeto IX509PrivateKey ou IX509PublicKey para recuperar o tamanho da chave, em bits.

GetKeyLenEx

A função GetKeyLenEx definida em Xenroll.dll recupera o tamanho máximo ou mínimo da chave ou o comprimento de incremento de uma chave de criptografia.

Ao usar CertEnroll.dll, você pode chamar a propriedade Length em um objeto IX509PrivateKey ou IX509PublicKey para recuperar o tamanho da chave, em bits. Se um algoritmo der suporte a comprimentos de chave incrementais, você poderá chamar a propriedade IncrementLength no objeto ICspAlgorithm para recuperar o valor de incremento. Você também pode chamar as propriedades MinLength e MaxLength para recuperar os tamanhos de chave mínimo e máximo.

GetSupportedKeySpec

A função GetSupportedKeySpec definida em Xenroll.dll recupera um valor que indica se um CSP dá suporte a chaves de troca, chaves de assinatura ou ambos.

Ao usar CertEnroll.dll, você pode chamar a propriedade KeySpec nos objetos IX509PrivateKey ou ICspInformation para recuperar as operações com suporte da chave.

KeySpec

A função KeySpec definida em Xenroll.dll especifica ou recupera o tipo de chave.

Ao usar CertEnroll.dll, você pode chamar a propriedade KeySpec em um objeto IX509PrivateKey para recuperar as operações compatíveis com a chave.

LimitExchangeKeyToEncipherment

A função LimitExchangeKeyToEncipherment definida em Xenroll.dll especifica ou recupera um valor booliano que indica se uma chave de criptografia pode ser usada apenas para criptografia de dados ou chave.

CertEnroll.dll não contém um equivalente direto para essa função. No entanto, você pode obter um resultado quase equivalente especificando um objeto IX509ExtensionKeyUsage e adicionando-o à solicitação de certificado.

PVKFileNameWStr

A função PVKFileNameWStr definida em Xenroll.dll especifica ou recupera o nome de um arquivo que contém chaves exportadas.

Ao usar CertEnroll.dll, você pode chamar o método Export em um objeto IX509PrivateKey para exportar uma chave para um BSTR. Você pode chamar o método ExportPublicKey para exportar a parte de chave pública de um par de chaves assimétricas.

ReuseHardwareKeyIfUnableToGenNew

A função ReuseHardwareKeyIfUnableToGenNew definida em Xenroll.dll especifica ou recupera um valor booliano que indica se uma chave existente é reutilizado quando um erro é encontrado ao gerar uma nova chave.

Ao usar CertEnroll.dll, você pode chamar o método InitializeFromCertificate em um objeto IX509CertificateRequestPkcs10 e especificar um valor do tipo de enumeração X509RequestInheritOptions para reutilizar uma chave privada existente.

UseExistingKeySet

A função UseExistingKeySet definida em Xenroll.dll especifica ou recupera um valor booliano que indica se as chaves existentes devem ser usadas.

Ao usar CertEnroll.dll, você pode chamar o método InitializeFromCertificate em um objeto IX509CertificateRequestPkcs10 e especificar um valor do tipo de enumeração X509RequestInheritOptions para reutilizar chaves públicas e privadas existentes.

Mapeando Xenroll.dll para CertEnroll.dll