Compartir a través de


Funciones de clave privada y pública

CertEnroll.dll implementa las interfaces IX509PrivateKey y IX509PublicKey . Por ejemplo, puede usar la interfaz IX509PrivateKey para realizar las siguientes acciones en una clave privada:

  • Cree, abra, cierre, importe, exporte y elimine la clave.
  • Especifique o recupere el algoritmo de clave pública.
  • Especifique o recupere información sobre el proveedor de servicios criptográficos (CSP) disponible que admita el algoritmo de clave pública.
  • Especifique o recupere el certificado asociado a la clave privada.
  • Especifique o recupere el nombre del contenedor de claves.
  • Especifique o recupere una descripción de y un nombre para mostrar para la clave.
  • Especifique o recupere las restricciones de exportación en una clave privada.
  • Especifique o recupere un valor booleano que indica si la clave existe.
  • Especifique o recupere un valor que indique cómo se protege la clave antes de su uso.
  • Especifique o recupere un valor que indique si la clave se puede usar para firmar, cifrar o ambos.
  • Especifique o recupere un valor que identifique el propósito específico para el que se puede usar la clave.
  • Especifique o recupere la longitud de la clave.
  • Especifique o recupere un valor que indique si se usa o guarda la clave en el contexto de un equipo o usuario.
  • Recupere un valor booleano que especifique si se ha abierto la clave.
  • Especifique un número de identificación personal para acceder a una clave privada en una tarjeta inteligente.
  • Especifique o recupere el nombre del CSP asociado a la clave.
  • Especifique o recupere el descriptor de seguridad de la clave.

Cada una de las secciones siguientes identifica una función exportada por Xenroll.dll que se puede usar para administrar una clave criptográfica. En cada tema también se describe cómo usar CertEnroll.dll para reemplazar la función o indica que no existe ninguna asignación entre las dos bibliotecas:

ContainerNameWStr

La función ContainerNameWStr de Xenroll.dll especifica o recupera el nombre del contenedor de claves.

Al usar CertEnroll.dll, puede realizar las siguientes acciones para recuperar el nombre de un contenedor de claves:

  1. Llame a la propiedad Request en un objeto IX509Enrollment existente.
  2. Llame al método GetInnerRequest en la solicitud devuelta en el paso 1 para recuperar la solicitud más interna.
  3. Llame a QueryInterface en el objeto IX509CertificateRequest devuelto del paso 2 para convertir a un objeto IX509CertificateRequestPkcs10 .
  4. Llame a la propiedad PrivateKey en la solicitud PKCS #10.
  5. Llame a la propiedad ContainerName en el objeto IX509PrivateKey recuperado del paso 4.

GenKeyFlags

La función GenKeyFlags definida en Xenroll.dll especifica o recupera marcas usadas para generar una clave privada o un par de claves pública o privada.

Al usar CertEnroll.dll, puede especificar una serie de propiedades diferentes que determinarán cómo se crea una clave privada. Para obtener más información, vea Crear.

GetKeyLen

La función GetKeyLen definida en Xenroll.dll recupera el tamaño máximo o mínimo de una clave de cifrado.

Al usar CertEnroll.dll, puede llamar a la propiedad Length en un objeto IX509PrivateKey o IX509PublicKey para recuperar el tamaño de clave, en bits.

GetKeyLenEx

La función GetKeyLenEx definida en Xenroll.dll recupera el tamaño máximo o mínimo de la clave o la longitud de incremento de una clave de cifrado.

Al usar CertEnroll.dll, puede llamar a la propiedad Length en un objeto IX509PrivateKey o IX509PublicKey para recuperar el tamaño de clave, en bits. Si un algoritmo admite longitudes de clave incrementales, puede llamar a la propiedad IncrementLength en el objeto ICspAlgorithm para recuperar el valor de incremento. También puede llamar a las propiedades MinLength y MaxLength para recuperar los tamaños de clave mínimo y máximo.

GetSupportedKeySpec

La función GetSupportedKeySpec definida en Xenroll.dll recupera un valor que indica si un CSP admite claves de intercambio, claves de firma o ambas.

Al usar CertEnroll.dll, puede llamar a la propiedad KeySpec en los objetos IX509PrivateKey o ICspInformation para recuperar las operaciones admitidas por la clave.

KeySpec

La función KeySpec definida en Xenroll.dll especifica o recupera el tipo de clave.

Al usar CertEnroll.dll, puede llamar a la propiedad KeySpec en un objeto IX509PrivateKey para recuperar las operaciones admitidas por la clave.

LimitExchangeKeyToEncipherment

La función LimitExchangeKeyToEncipherment definida en Xenroll.dll especifica o recupera un valor booleano que indica si una clave de cifrado solo se puede usar para los datos o el cifrado de claves.

CertEnroll.dll no contiene un equivalente directo para esta función. Sin embargo, puede lograr un resultado casi equivalente especificando un objeto IX509ExtensionKeyUsage y agregándolo a la solicitud de certificado.

PVKFileNameWStr

La función PVKFileNameWStr definida en Xenroll.dll especifica o recupera el nombre de un archivo que contiene claves exportadas.

Al usar CertEnroll.dll, puede llamar al método Export en un objeto IX509PrivateKey para exportar una clave a un BSTR. Puede llamar al método ExportPublicKey para exportar la parte de clave pública de un par de claves asimétricas.

ReuseHardwareKeyIfUnableToGenNew

La función ReuseHardwareKeyIfUnableToGenNew definida en Xenroll.dll especifica o recupera un valor booleano que indica si se reutiliza una clave existente cuando se encuentra un error al generar una nueva clave.

Al usar CertEnroll.dll, puede llamar al método InitializeFromCertificate en un objeto IX509CertificateRequestPkcs10 y especificar un valor del tipo de enumeración X509RequestInheritOptions para reutilizar una clave privada existente.

UseExistingKeySet

La función UseExistingKeySet definida en Xenroll.dll especifica o recupera un valor booleano que indica si se deben usar claves existentes.

Al usar CertEnroll.dll, puede llamar al método InitializeFromCertificate en un objeto IX509CertificateRequestPkcs10 y especificar un valor del tipo de enumeración X509RequestInheritOptions para reutilizar las claves públicas y privadas existentes.

Asignación de Xenroll.dll a CertEnroll.dll