Поделиться через


Функция CertSaveStore (wincrypt.h)

Функция CertSaveStore сохраняет хранилище сертификатов в файл или в большой двоичный объект памяти.

Синтаксис

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

Параметры

[in] hCertStore

Дескриптор хранилища сертификатов, который требуется сохранить.

[in] dwEncodingType

Указывает тип кодирования сертификата и тип кодирования сообщений. Кодировка используется только в том случае , если dwSaveAs содержит CERT_STORE_SAVE_AS_PKCS7. В противном случае параметр dwMsgAndCertEncodingType не используется.

Этот параметр может быть сочетанием одного или нескольких из следующих значений.

Значение Значение
PKCS_7_ASN_ENCODING
65536 (0x10000)
Задает кодировку сообщений PKCS 7.
X509_ASN_ENCODING
1 (0x1)
Задает кодировку сертификата X.509.

[in] dwSaveAs

Указывает способ сохранения хранилища сертификатов.

Этот параметр может принимать одно из указанных ниже значений.

Значение Значение
CERT_STORE_SAVE_AS_PKCS7
2
Хранилище сертификатов можно сохранить в виде сообщения, подписанного PKCS #7 , которое не содержит дополнительных свойств. Параметр dwEncodingType указывает тип кодирования сообщений.
CERT_STORE_SAVE_AS_STORE
1
Хранилище сертификатов можно сохранить в виде сериализованного хранилища, содержащего свойства в дополнение к закодированным сертификатам, спискам отзыва сертификатов (CRL) и спискам доверия сертификатов (CCL). Параметр dwEncodingType игнорируется.
Примечание Свойство CERT_KEY_CONTEXT_PROP_ID и связанные значения CERT_KEY_PROV_HANDLE_PROP_ID и CERT_KEY_SPEC_PROP_ID не сохраняются в сериализованном хранилище.
 

[in] dwSaveTo

Указывает, где и как сохранить хранилище сертификатов. Содержимое этого параметра определяет формат параметра pvSaveToPara .

Этот параметр может принимать одно из указанных ниже значений.

Значение Значение
CERT_STORE_SAVE_TO_FILE
1
Функция сохраняет хранилище сертификатов в файл. Параметр pvSaveToPara содержит дескриптор файла, ранее полученного с помощью функции CreateFile . Файл должен быть открыт с разрешением на запись. После успешной операции сохранения указатель файла размещается после последней операции записи.
CERT_STORE_SAVE_TO_FILENAME
4
Функция сохраняет хранилище сертификатов в файл. Параметр pvSaveToPara содержит указатель на строку Юникода, завершающуюся null, которая содержит путь и имя файла, в который нужно сохранить. Функция открывает файл, сохраняет в нем и закрывает его.
CERT_STORE_SAVE_TO_FILENAME_A
3
Функция сохраняет хранилище сертификатов в файл. Параметр pvSaveToPara содержит указатель на строку ANSI, завершающуюся null, которая содержит путь и имя файла для сохранения. Функция открывает файл, сохраняет в нем и закрывает его.
CERT_STORE_SAVE_TO_FILENAME_W
4
Функция сохраняет хранилище сертификатов в файл. Параметр pvSaveToPara содержит указатель на строку Юникода, завершающуюся null, которая содержит путь и имя файла, в который нужно сохранить. Функция открывает файл, сохраняет в нем и закрывает его.
CERT_STORE_SAVE_TO_MEMORY
2
Функция сохраняет хранилище сертификатов в большом двоичном объекте памяти. Параметр pvSaveToPara содержит указатель на структуру CERT_BLOB . Перед использованием необходимо инициализировать элементы pbData и cbDataCERT_BLOB. После возврата cbData обновляется с учетом фактической длины. Для вычисления только длины параметру pbData необходимо задать значение NULL. Если значение pbData не равно NULL , а cbData недостаточно велико, функция возвращает ноль с последним кодом ошибки ERROR_MORE_DATA.

[in, out] pvSaveToPara

Указатель, представляющий место, в которое должно быть сохранено хранилище. Содержимое этого параметра зависит от значения параметра dwSaveTo .

[in] dwFlags

Этот параметр зарезервирован для использования в будущем и должен иметь нулевое значение.

Возвращаемое значение

Если функция выполнена успешно, функция возвращает ненулевое значение.

Если функция завершается сбоем, она возвращает ноль. Чтобы получить дополнительные сведения об ошибке, вызовите Метод GetLastError.

Обратите внимание, что ошибки CreateFile или WriteFile можно распространить на эту функцию. Один из возможных кодов ошибки — CRYPT_E_FILE_ERROR который указывает на то, что при записи в файл произошла ошибка.

Требования

   
Минимальная версия клиента Windows XP [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2003 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header wincrypt.h
Библиотека Crypt32.lib
DLL Crypt32.dll

См. также раздел

CertCloseStore

CertOpenStore

Функции хранилища сертификатов

CreateFile

WriteFile