Función CryptGetKeyIdentifierProperty (wincrypt.h)

Importante Esta API está en desuso. El software nuevo y existente debe empezar a usar las API cryptography Next Generation. Microsoft puede quitar esta API en futuras versiones.
 
CryptGetKeyIdentifierProperty adquiere una propiedad específica a partir de un identificador de clave especificado.

Sintaxis

BOOL CryptGetKeyIdentifierProperty(
  [in]      const CRYPT_HASH_BLOB *pKeyIdentifier,
  [in]      DWORD                 dwPropId,
  [in]      DWORD                 dwFlags,
  [in]      LPCWSTR               pwszComputerName,
  [in]      void                  *pvReserved,
  [out]     void                  *pvData,
  [in, out] DWORD                 *pcbData
);

Parámetros

[in] pKeyIdentifier

Puntero al CRYPT_HASH_BLOB que contiene el identificador de clave.

[in] dwPropId

Identifica la propiedad que se va a recuperar. El valor de dwPropId determina el tipo y el contenido del parámetro pvData . Se puede usar cualquier identificador de propiedad de certificado.

[in] dwFlags

Se pueden usar las marcas siguientes. Se pueden combinar con una operación OR bit a bit.

Valor Significado
CRYPT_KEYID_MACHINE_FLAG
Busque en la lista de identificadores de clave de LocalMachine (si pwszComputerName es NULL) o equipo remoto (si pwszComputerName no es NULL). Para obtener más información, vea pwszComputerName.
CRYPT_KEYID_ALLOC_FLAG
Se llama a la función LocalAlloc() para asignar memoria para pvData. *pvData se actualiza con un puntero a la memoria asignada. Se debe llamar a LocalFree() para liberar la memoria asignada.

[in] pwszComputerName

Puntero al nombre de un equipo remoto en el que se va a buscar. Si se establece CRYPT_KEYID_MACHINE_FLAG marca, busca en el equipo remoto una lista de identificadores de clave. Si se va a buscar en el equipo local y no en un equipo remoto, establezca pwszComputerName en NULL.

[in] pvReserved

Reservado para uso futuro y debe ser NULL.

[out] pvData

Puntero a un búfer para recibir los datos según lo determinado por dwPropId. Los elementos a los que apuntan los campos de la estructura pvData siguen la estructura. Por lo tanto, el tamaño contenido en pcbData puede superar el tamaño de la estructura.

Si dwPropId es CERT_KEY_PROV_INFO_PROP_ID, pvData apunta a una estructura de CRYPT_KEY_PROV_INFO que contiene la propiedad del identificador de clave.

Si dwPropId no está CERT_KEY_PROV_INFO_PROP_ID, pvData apunta a una matriz de bytes que contiene la propiedad del identificador de clave.

Para obtener el tamaño de esta información con fines de asignación de memoria, este parámetro puede ser NULL cuando no se establece el CRYPT_KEYID_ALLOC_FLAG. Para obtener más información, vea Recuperar datos de longitud desconocida.

Cuando se establece el CRYPT_KEYID_ALLOC_FLAG, pvData es la dirección de un puntero al búfer que se actualizará. Dado que se asigna memoria y su puntero se almacena en *pvData, pvData no debe ser NULL.

[in, out] pcbData

Puntero a un DWORD que contiene el tamaño, en bytes, del búfer al que apunta el parámetro pvData . Cuando la función devuelve, DWORD contiene el número de bytes almacenados en el búfer. El tamaño contenido en la variable a la que apunta pcbData puede indicar un tamaño mayor que la estructura de CRYPT_KEY_PROV_INFO porque la estructura puede contener punteros a datos auxiliares. Este tamaño es la suma del tamaño necesario para la estructura y todos los datos auxiliares.

Cuando se establece el CRYPT_KEYID_ALLOC_FLAG, pcbData es la dirección de un puntero al DWORD que se actualizará.

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 de búfer suelen especificarse lo suficientemente grandes como para asegurarse de que los datos de salida más grandes posibles se ajustan al 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, la función devuelve un valor distinto de cero (TRUE).

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

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado wincrypt.h
Library Crypt32.lib
Archivo DLL Crypt32.dll

Consulte también

CryptEnumKeyIdentifierProperties

CryptSetKeyIdentifierProperty

Funciones de identificador de clave