Función CertSetStoreProperty (wincrypt.h)
La función CertSetStoreProperty establece una propiedad de almacén.
Sintaxis
BOOL CertSetStoreProperty(
[in] HCERTSTORE hCertStore,
[in] DWORD dwPropId,
[in] DWORD dwFlags,
[in] const void *pvData
);
Parámetros
[in] hCertStore
Identificador del almacén de certificados.
[in] dwPropId
Indica uno de los intervalos de propiedades de almacén. Los valores de las propiedades definidas por el usuario deben estar fuera del intervalo actual de valores de propiedad de contexto predefinidos. Actualmente, los valores dwPropId definidos por el usuario comienzan en 4096. Hay una propiedad de almacén predefinida, CERT_STORE_LOCALIZED_NAME_PROP_ID, el nombre localizado del almacén.
[in] dwFlags
Reservado para uso futuro y debe ser cero.
[in] pvData
La definición de tipo para pvData depende del valor dwPropId . Si dwPropId es CERT_STORE_LOCALIZED_NAME_PROP_ID, pvData apunta a una estructura de CRYPT_DATA_BLOB . El miembro pbData de esa estructura es un puntero a una cadena de caracteres Unicode terminada en null. El miembro cbData de esa estructura es un valor DWORD que contiene la longitud de la cadena.
Para los valores dwPropId definidos por el usuario, pvData es un puntero a un CRYPT_DATA_BLOB codificado.
Si ya existe un valor para la propiedad seleccionada, se reemplaza el valor anterior.
Al llamar a esta función con pvData establecido en NULL , se elimina una propiedad .
Valor devuelto
Si la función se realiza correctamente, el valor devuelto es TRUE.
Si se produce un error en la función, el valor devuelto es FALSE.
Comentarios
Los identificadores de propiedad de la tienda son propiedades aplicables a un almacén completo. No son propiedades para un certificado individual, CRL o contexto de CTL . Actualmente, no se conservan propiedades de almacén.
Ejemplos
En el ejemplo siguiente se muestra cómo establecer la propiedad de nombre localizada de un almacén de certificados abierto.
//--------------------------------------------------------------
// Declare and initialize variables.
HCERTSTORE hCertStore = NULL; // Original certificate store
CRYPT_DATA_BLOB Property_Name_Blob; // BLOB to hold store property
//--------------------------------------------------------------
// Open the certificate store that will have its localized name
// property set. In this case, the CA system store is opened.
if ( hCertStore = CertOpenStore(
CERT_STORE_PROV_SYSTEM,
0,
NULL,
CERT_SYSTEM_STORE_CURRENT_USER,
L"CA"))
{
printf("The CA store is open.\n");
}
else
{
printf("The CA store could not be opened \n.");
exit(1);
}
//--------------------------------------------------------------------
// Prepare a data structure to set a store property.
// Initialize the members of the CRYPT_DATA_BLOB.
Property_Name_Blob.pbData = (BYTE *) L"The Local CA Store";
Property_Name_Blob.cbData =
(wcslen((LPWSTR)Property_Name_Blob.pbData)+1) * sizeof(WCHAR);
//--------------------------------------------------------------------
// Set the store's localized name property.
if (CertSetStoreProperty(
hCertStore,
CERT_STORE_LOCALIZED_NAME_PROP_ID,
0,
&Property_Name_Blob))
{
printf("The name of the store has been set. Continue. \n");
}
else
{
printf("Setting the store's localized name failed.\n");
exit(1);
}
// Close the store when done.
if (!CertCloseStore(
hCertStore,
0 ))
{
printf("The CA store could not be closed \n.");
exit(1);
}
Para obtener otro ejemplo que usa esta función, vea Programa C de ejemplo: Establecer y obtener propiedades del almacén de certificados.
Requisitos
Cliente mínimo compatible | Windows XP [aplicaciones de escritorio | aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | wincrypt.h |
Library | Crypt32.lib |
Archivo DLL | Crypt32.dll |