Función CertSaveStore (wincrypt.h)

La función CertSaveStore guarda el almacén de certificados en un archivo o en un BLOB de memoria.

Sintaxis

BOOL CertSaveStore(
  [in]      HCERTSTORE hCertStore,
  [in]      DWORD      dwEncodingType,
  [in]      DWORD      dwSaveAs,
  [in]      DWORD      dwSaveTo,
  [in, out] void       *pvSaveToPara,
  [in]      DWORD      dwFlags
);

Parámetros

[in] hCertStore

Identificador del almacén de certificados que se va a guardar.

[in] dwEncodingType

Especifica el tipo de codificación de certificado y el tipo de codificación de mensajes. La codificación solo se usa cuando dwSaveAs contiene CERT_STORE_SAVE_AS_PKCS7. De lo contrario, no se usa el parámetro dwMsgAndCertEncodingType .

Este parámetro puede ser una combinación de uno o varios de los valores siguientes.

Valor Significado
PKCS_7_ASN_ENCODING
65536 (0x10000)
Especifica la codificación de mensajes PKCS 7.
X509_ASN_ENCODING
1 (0x1)
Especifica la codificación de certificados X.509.

[in] dwSaveAs

Especifica cómo guardar el almacén de certificados.

Este parámetro puede ser uno de los valores siguientes.

Valor Significado
CERT_STORE_SAVE_AS_PKCS7
2
El almacén de certificados se puede guardar como un mensaje firmado PKCS #7 que no incluye propiedades adicionales. El parámetro dwEncodingType especifica el tipo de codificación de mensajes.
CERT_STORE_SAVE_AS_STORE
1
El almacén de certificados se puede guardar como un almacén serializado que contiene propiedades, además de certificados codificados, listas de revocación de certificados (CRL) y listas de confianza de certificados (CTL). Se omite el parámetro dwEncodingType .
Nota La propiedad CERT_KEY_CONTEXT_PROP_ID y los valores de CERT_KEY_PROV_HANDLE_PROP_ID y CERT_KEY_SPEC_PROP_ID relacionados no se guardan en un almacén serializado.
 

[in] dwSaveTo

Especifica dónde y cómo guardar el almacén de certificados. El contenido de este parámetro determina el formato del parámetro pvSaveToPara .

Este parámetro puede ser uno de los valores siguientes.

Valor Significado
CERT_STORE_SAVE_TO_FILE
1
La función guarda el almacén de certificados en un archivo. El parámetro pvSaveToPara contiene un identificador para un archivo obtenido anteriormente mediante la función CreateFile . El archivo debe abrirse con permiso de escritura. Después de una operación de guardado correcta, el puntero de archivo se coloca después de la última operación de escritura.
CERT_STORE_SAVE_TO_FILENAME
4
La función guarda el almacén de certificados en un archivo. El parámetro pvSaveToPara contiene un puntero a una cadena Unicode terminada en null que contiene la ruta de acceso y el nombre de archivo del archivo en el que se va a guardar. La función abre el archivo, lo guarda y lo cierra.
CERT_STORE_SAVE_TO_FILENAME_A
3
La función guarda el almacén de certificados en un archivo. El parámetro pvSaveToPara contiene un puntero a una cadena ANSI terminada en null que contiene la ruta de acceso y el nombre de archivo del archivo en el que se va a guardar. La función abre el archivo, lo guarda y lo cierra.
CERT_STORE_SAVE_TO_FILENAME_W
4
La función guarda el almacén de certificados en un archivo. El parámetro pvSaveToPara contiene un puntero a una cadena Unicode terminada en null que contiene la ruta de acceso y el nombre de archivo del archivo en el que se va a guardar. La función abre el archivo, lo guarda y lo cierra.
CERT_STORE_SAVE_TO_MEMORY
2
La función guarda el almacén de certificados en un BLOB de memoria. El parámetro pvSaveToPara contiene un puntero a una estructura CERT_BLOB . Antes de su uso, se deben inicializar los miembros pbData y cbData de la CERT_BLOB. Tras la devolución, cbData se actualiza con la longitud real. Para un cálculo de solo longitud, pbData debe establecerse en NULL. Si pbData no es NULL y cbData no es lo suficientemente grande, la función devuelve cero con un último código de error de ERROR_MORE_DATA.

[in, out] pvSaveToPara

Puntero que representa dónde se debe guardar el almacén. El contenido de este parámetro depende del valor del parámetro dwSaveTo .

[in] dwFlags

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

Valor devuelto

Si la función se ejecuta correctamente, la función devuelve un valor distinto de cero.

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

Tenga en cuenta que los errores CreateFile o WriteFile se pueden propagar a esta función. Un código de error posible es CRYPT_E_FILE_ERROR que indica que se produjo un error al escribir en el archivo.

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

Consulte también

CertCloseStore

CertOpenStore

Funciones del almacén de certificados

CreateFile

WriteFile