PFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC función de devolución de llamada (wincrypt.h)

CryptExportPublicKeyInfoEx llama a la función de devolución de llamada PFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC para exportar una clave pública BLOB y codificarla.

Sintaxis

PFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC PfnCryptExportPublicKeyInfoEx2Func;

BOOL PfnCryptExportPublicKeyInfoEx2Func(
  [in]            NCRYPT_KEY_HANDLE hNCryptKey,
  [in]            DWORD dwCertEncodingType,
  [in]            LPSTR pszPublicKeyObjId,
  [in]            DWORD dwFlags,
  [in, optional]  void *pvAuxInfo,
  [out, optional] PCERT_PUBLIC_KEY_INFO pInfo,
  [in, out]       DWORD *pcbInfo
)
{...}

Parámetros

[in] hNCryptKey

Identificador del proveedor de servicios criptográficos (CSP) que se va a usar al exportar la información de clave pública. Este identificador debe ser un identificador de NCRYPT_KEY_HANDLE que se ha creado mediante la función NCryptOpenKey .

[in] dwCertEncodingType

Valor que especifica el tipo de codificación utilizado. Siempre es aceptable especificar los tipos de codificación de certificados y mensajes al combinarlos con una operación OR bit a bit, como se muestra en el ejemplo siguiente:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING

Los tipos de codificación definidos actualmente son:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pszPublicKeyObjId

Puntero a una cadena que contiene el algoritmo de clave pública.

[in] dwFlags

Valor que indica cómo se exporta la información de clave pública. Puede ser cero.

[in, optional] pvAuxInfo

Este parámetro está reservado para uso futuro y debe establecerse en NULL.

[out, optional] pInfo

Puntero a una estructura de CERT_PUBLIC_KEY_INFO para recibir la información de clave pública que se va a exportar.

Este parámetro puede ser NULL para establecer el tamaño de esta información con fines de asignación de memoria. Para obtener más información, vea Recuperar datos de longitud desconocida.

[in, out] pcbInfo

Puntero a un DWORD que contiene el tamaño, en bytes, del búfer al que apunta el parámetro pInfo . Cuando la función devuelve, DWORD contiene el número de bytes almacenados en el búfer.

Nota Al procesar los datos devueltos en el búfer, las aplicaciones deben usar el tamaño real de los datos devueltos. El tamaño real puede ser ligeramente menor que el tamaño del búfer especificado en la entrada. (En la entrada, los tamaños del búfer suelen especificarse lo suficientemente grandes como para asegurarse de que los datos de salida más grandes caben en el búfer). En la salida, la variable a la que apunta este parámetro se actualiza para reflejar el tamaño real de los datos copiados en el búfer.
 

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es distinto de cero (TRUE).

Si se produce un error en la función, el valor devuelto es cero (FALSE). Para obtener información de error extendida, llame a GetLastError.

Si esta función de devolución de llamada no admite el algoritmo de firma, debe devolver FALSE y llamar a SetLastError con ERROR_NOT_SUPPORTED.

Comentarios

Puede usar funciones de compatibilidad con OID para implementar esta función de devolución de llamada. Wincrypt.h define la constante siguiente para este propósito.

Constante Definición
CRYPT_OID_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC "CryptDllExportPublicKeyInfoEx2"

Requisitos

   
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado wincrypt.h