Функции шифрования
Функции шифрования классифицируются в соответствии с использованием следующим образом:
- функций CryptXML
- Функции подписывания
-
базовые функции шифрования
- функции поставщика услуг
- функции создания ключей и функций Exchange
- функции кодирования объектов и декодирования
- функции шифрования и расшифровки данных
- функции хэша и цифровой подписи
- функции хранилища сертификатов и сертификатов
- Функции MakeCert
- Функции проверки сертификатов
- Функции проверки с помощью CCL
- Функции проверки цепочки сертификатов
- функции сообщений
-
вспомогательные функции
- функций управления данными
- Функции преобразования данных
- расширенные функции использования ключей
- Функции идентификаторов ключей
- функции поддержки OID
- функции извлечения удаленных объектов
- функций PFX
- функции резервного копирования и восстановления служб сертификатов
- функции обратного вызова
- Функции определения каталога
- Функции каталога
- Функции WinTrust
- функции указателя объектов
Функции CryptXML
Функции криптографического XML предоставляют API для создания и представления цифровых подписей с помощью xml-форматированных данных. Сведения о форматированных сигнатурах XML см. в спецификации синтаксиса и обработки XML-Signature https://go.microsoft.com/fwlink/p/?linkid=139649.
Функция | Описание |
---|---|
A_SHAFinal | Вычисляет окончательный хэш данных, введенных функцией MD5Update. |
A_SHAInit | Инициирует хэширование потока данных. |
A_SHAUpdate | Добавляет данные в указанный хэш-объект. |
CryptXmlCreateReference | Создает ссылку на XML-подпись. |
CryptXmlAddObject | Добавляет элемент Object в сигнатуру в контексте документа, открытом для кодирования. |
CryptXmlClose | Закрывает дескриптор криптографического XML-объекта. |
CryptXmlDigestReference | Используется приложением для дайджеста разрешенной ссылки. Эта функция применяет преобразования перед обновлением дайджеста. |
CryptXmlDllCloseDigest | Освобождает CRYPT_XML_DIGEST, выделенные функцией CryptXmlDllCreateDigest. |
CryptXmlDllCreateDigest | Создает объект дайджеста для указанного метода. |
CryptXmlDllCreateKey | Анализирует элемент KeyValue и создает API шифрования: дескриптор ключа BCrypt следующего поколения (CNG) для проверки подписи. |
CryptXmlDllDigestData | Помещает данные в дайджест. |
CryptXmlDllEncodeAlgorithm | Кодирует элементы SignatureMethod или DigestMethod для гибких алгоритмов с параметрами по умолчанию. |
CryptXmlDllEncodeKeyValue | Кодирует элемент KeyValue. |
CryptXmlDllFinalizeDigest | Извлекает значение дайджеста. |
CryptXmlDllGetAlgorithmInfo | Декодирует алгоритм XML и возвращает сведения о алгоритме. |
CryptXmlDllGetInterface | Извлекает указатель на функции расширения шифрования для указанного алгоритма. |
CryptXmlDllSignData | Подписывает данные. |
CryptXmlDllVerifySignature | Проверяет подпись. |
CryptXmlEncode | Кодирует данные подписи с помощью предоставленной функции обратного вызова записи XML. |
CryptXmlGetAlgorithmInfo | Декодирует структуру CRYPT_XML_ALGORITHM и возвращает сведения об алгоритме. |
CryptXmlGetDocContext | Возвращает контекст документа, указанный предоставленным дескриптором. |
CryptXmlGetReference | Возвращает элемент Reference, указанный предоставленным дескриптором. |
CryptXmlGetSignature | Возвращает элемент подписи XML-. |
CryptXmlGetStatus | Возвращает CRYPT_XML_STATUS структуру, содержащую сведения о состоянии объекта, указанного предоставленным дескриптором. |
CryptXmlGetTransforms | Возвращает сведения о подсистеме цепочки преобразований по умолчанию. |
CryptXmlImportPublicKey | Импортирует открытый ключ, указанный предоставленным дескриптором. |
CryptXmlOpenToEncode | Открывает цифровую подпись XML для кодирования и возвращает дескриптор открытого элемента Signature. Дескриптор инкапсулирует контекст документа с одной структурой CRYPT_XML_SIGNATURE и остается открытым до вызова функции CryptXmlClose. |
CryptXmlOpenToDecode | Открывает цифровую подпись XML для декодирования и возвращает дескриптор контекста документа, который инкапсулирует структуру CRYPT_XML_SIGNATURE. Контекст документа может включать один или несколько элементов сигнатуры. |
CryptXmlSetHMACSecret | Задает секрет HMAC на дескрипторе перед вызов ом функции CryptXmlSign или CryptXmlVerify. |
CryptXmlSign | Создает криптографическую подпись элемента SignedInfo. |
CryptXmlVerifySignature | Выполняет проверку криптографической подписи элемента SignedInfo. |
PFN_CRYPT_XML_WRITE_CALLBACK | Создает преобразование для указанного поставщика данных. |
PFN_CRYPT_XML_CREATE_TRANSFORM | Записывает криптографические XML-данные. |
PFN_CRYPT_XML_DATA_PROVIDER_READ | Считывает криптографические XML-данные. |
PFN_CRYPT_XML_DATA_PROVIDER_CLOSE | Освобождает поставщик криптографических XML-данных. |
PFN_CRYPT_XML_ENUM_ALG_INFO | Перечисляет предварительно определенные и зарегистрированные записи CRYPT_XML_ALGORITHM_INFO. |
Функции подписи
Предоставляет функции для подписывания и метки времени.
Функция | Описание |
---|---|
SignerFreeSignerContext | Освобождает структуру SIGNER_CONTEXT, выделенную предыдущим вызовом функции SignerSignEx. |
SignError | Вызывает функцию GetLastError и преобразует код возврата в HRESULT. |
SignerSign | Подписывает указанный файл. |
SignerSignEx | Подписывает указанный файл и возвращает указатель на подписанные данные. |
SignerSignEx2 | Подписи и метки времени указанного файла, разрешающие несколько вложенных подписей. |
SignerTimeStamp | Метки времени указанной темы. Эта функция поддерживает метку времени Authenticode. Чтобы выполнить метку времени инфраструктуры открытых ключей X.509 (RFC 3161), используйте функцию SignerTimeStampEx2. |
SignerTimeStampEx | Метки времени указанной темы и при необходимости возвращает указатель на структуру SIGNER_CONTEXT, содержащую указатель на BLOB. Эта функция поддерживает метку времени Authenticode. Чтобы выполнить метку времени инфраструктуры открытых ключей X.509 (RFC 3161), используйте функцию SignerTimeStampEx2. |
SignerTimeStampEx2 | Метки времени указанной темы и при необходимости возвращает указатель на структуру SIGNER_CONTEXT, содержащую указатель на BLOB. Эту функцию можно использовать для выполнения инфраструктуры открытых ключей X.509, совместимой с RFC 3161, меток времени. |
SignerTimeStampEx3 | Метки времени указанной темы и поддерживают настройку меток времени для нескольких подписей. |
Базовые функции шифрования
Базовые функции шифрования предоставляют наиболее гибкие средства разработки приложений шифрования. Все взаимодействие с поставщиком криптографических служб (CSP) осуществляется через эти функции.
CSP — это независимый модуль, выполняющий все криптографические операции. Для каждого приложения, использующего криптографические функции, требуется по крайней мере один поставщик служб CSP. Иногда одно приложение может использовать несколько CSP.
Если используется несколько поставщиков служб CSP, его можно указать в вызовах криптографических функций CryptoAPI. Один CSP, поставщик шифрования Microsoft Base, объединяется с CryptoAPI. Этот поставщик CSP используется в качестве поставщика по умолчанию многими функциями CryptoAPI, если ни один другой поставщик CSP не указан.
Каждая служба CSP предоставляет другую реализацию криптографической поддержки, предоставляемой CryptoAPI. Некоторые обеспечивают более сильные алгоритмы шифрования; другие содержат аппаратные компоненты, такие как смарт-карты. Кроме того, некоторые поставщики СЛУЖБ могут иногда взаимодействовать напрямую с пользователями, например, когда цифровые подписи выполняются с помощью закрытого ключа подписи пользователя.
Базовые функции шифрования находятся в следующих широких группах:
- Функции поставщика услуг
- Функции создания ключей и Exchange
- Функции кодирования объектов и декодирования
- Функции шифрования и расшифровки данных
- Функции хэш-и цифровой подписи
Функции поставщика услуг
Приложения используют следующие функции службы для подключения и отключения поставщика криптографических служб (CSP).
Функция | Описание |
---|---|
CryptAcquireContext |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Получает дескриптор контейнера ключей текущего пользователя, в определенном поставщике служб CSP. |
CryptContextAddRef |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Увеличивает число ссылок в дескрипторе HCRYPTPROV. |
CryptEnumProviders |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Перечисляет поставщиков на компьютере. |
CryptEnumProviderTypes |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Перечисляет типы поставщиков, поддерживаемых на компьютере. |
CryptGetDefaultProvider |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Определяет CSP по умолчанию для текущего пользователя или компьютера для указанного типа поставщика. |
CryptGetProvParam |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Извлекает параметры, управляющие операциями CSP. |
CryptInstallDefaultContext |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Устанавливает ранее приобретенный контекст HCRYPTPROV, который будет использоваться в качестве контекста по умолчанию. |
CryptReleaseContext |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Освобождает дескриптор, полученный функциейCryptAcquireContext. |
CryptSetProvider и CryptSetProviderEx |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Указывает поставщик служб CSP по умолчанию пользователя для определенного типа CSP. |
CryptSetProvParam |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Указывает атрибуты CSP. |
CryptUninstallDefaultContext |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Удаляет контекст по умолчанию, установленный ранее CryptInstallDefaultContext. |
FreeCryptProvFromCertEx | Освобождает дескриптор поставщику служб шифрования (CSP) или в API шифрования: ключ следующего поколения (CNG). |
Функции создания ключей и Exchange
Функции создания ключей и обмена ключи обмена с другими пользователями и создавать, настраивать и уничтожать криптографические ключи.
Функция | Описание |
---|---|
CryptDeriveKey |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Создает ключ, производный от пароля. |
CryptDeskkey |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Уничтожает ключ. |
CryptDuplicateKey |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Создает точную копию ключа, включая состояние ключа. |
CryptExportKey |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Передает ключ из CSP в ключ BLOB в пространстве памяти приложения. |
CryptGenKey |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Создает случайный ключ. |
CryptGenRandom |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Создает случайные данные. |
CryptGetKeyParam |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Извлекает параметры ключа. |
CryptGetUserKey |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Получает дескриптор для ключа или ключа подписи. |
CryptImportKey |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Передает ключ из ключа BLOB в CSP. |
CryptSetKeyParam |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Задает параметры ключа. |
Функции кодирования объектов и декодирования
Это обобщенные функции кодирования и декодирования. Они используются для кодирования и декодирования сертификатов, списков отзыва сертификатов (CRLS), запросов на сертификатыи расширений сертификатов.
Функция | Описание |
---|---|
CryptDecodeObject | Декодирует структуру типа lpszStructType. |
CryptDecodeObjectEx | Декодирует структуру типа lpszStructType. CryptDecodeObjectEx поддерживает вариант выделения памяти одним проходом. |
CryptEncodeObject | Кодирует структуру типа lpszStructType. |
CryptEncodeObjectEx | Кодирует структуру типа lpszStructType. CryptEncodeObjectEx поддерживает вариант выделения памяти одним проходом. |
Функции шифрования и расшифровки данных
Следующие функции поддерживают операции шифрования и расшифровки. CryptEncrypt и CryptDecrypt требуется криптографический ключ перед вызовом. Это делается с помощьюCryptGenKey, CryptDeriveKeyили CryptImportKey. Алгоритм шифрования указывается при создании ключа. CryptSetKeyParam может задать дополнительные параметры шифрования.
Функция | Описание |
---|---|
CryptDecrypt |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Расшифровывает раздел шифров с помощью указанного ключа шифрования. |
CryptEncrypt |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Шифрует раздел открытого текста с помощью указанного ключа шифрования. |
CryptProtectData | Выполняет шифрование данных в DATA_BLOB структуре. |
CryptProtectMemory | Шифрует память для защиты конфиденциальной информации. |
CryptUnprotectData | Выполняет расшифровку и проверку целостности данных в DATA_BLOB. |
CryptUnprotectMemory | Расшифровывает память, зашифрованную с помощью CryptProtectMemory. |
Функции хэш-и цифровой подписи
Эти функции вычисляют хэши данных, а также создают и проверяют цифровые подписи. Хэши также называются дайджестами сообщений.
Функция | Описание |
---|---|
CryptCreateHash |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Создает пустой хэш-объект. |
CryptDeskHash |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Уничтожает хэш-объект. |
CryptDuplicateHash | Дублирует хэш-объект. |
CryptGetHashParam | Извлекает параметр хэш-объекта. |
CryptHashData |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Хэширует блок данных, добавляя его в указанный хэш-объект. |
CryptHashSessionKey |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Хэширует ключ сеанса, добавляя его в указанный хэш-объект. |
CryptSetHashParam |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Задает параметр хэш-объекта. |
CryptSignHash |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Подписывает указанный хэш-объект. |
CryptUIWizDigitalSign | Отображает мастер, который цифрово подписывает документ или BLOB. |
CryptUIWizFreeDigitalSignContext | Освобождает указатель на структуру CRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT. |
CryptVerifySignature |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Проверяет цифровую подпись, придав дескриптор хэш-объекту. |
PFNCFILTERPROC | Фильтрует сертификаты, отображаемые в мастере цифровой подписи, отображаемые функцией CryptUIWizDigitalSign. |
Функции хранилища сертификатов и сертификатов
Функции хранилища сертификатов и сертификатов управляют использованием, хранением и извлечением сертификатов, списками отзыва сертификатов списки (CRLS) и списки доверия сертификатов (CTLS). Эти функции делятся на следующие группы:
- Функции хранилища сертификатов
- Функции обслуживания хранилища сертификатов и сертификатов
- Функции сертификата
- Функции списка отзыва сертификатов
- Функции списка доверия сертификатов
- Расширенные функции свойств
- Функции MakeCert
Функции хранилища сертификатов
С течением времени сайт пользователя может собирать много сертификатов. Как правило, сайт имеет сертификаты для пользователя сайта, а также другие сертификаты, описывающие этих лиц и сущностей, с которыми взаимодействует пользователь. Для каждой сущности может быть несколько сертификатов. Для каждого отдельного сертификата должна быть цепочка проверки сертификатов, которые предоставляют путь к доверенному корневому сертификату. хранилища сертификатов и связанные с ними функции предоставляют функциональные возможности для хранения, извлечения, перечисления, проверки и использования информации, хранящейся в сертификатах.
Функция | Описание |
---|---|
CertAddStoreToCollection | Добавляет одноуровневое хранилище сертификатов в хранилище сертификатов коллекции. |
CertCloseStore | Закрывает дескриптор хранилища сертификатов. |
CertControlStore | Позволяет приложению получать уведомления, если существует разница между содержимым кэшированного хранилища и содержимого хранилища, сохраняемого в хранилище. Она также обеспечивает десинхронизацию кэшированного хранилища, если это необходимо, и предоставляет средства для фиксации изменений, внесенных в кэшированное хранилище для сохраняемого хранилища. |
CertDuplicateStore | Дублирует дескриптор хранилища путем увеличения числа ссылок . |
CertEnumPhysicalStore | Перечисляет физические хранилища для указанного системного хранилища. |
CertEnumSystemStore | Перечисляет все доступные системные хранилища. |
CertEnumSystemStoreLocation | Перечисляет все расположения, имеющие доступное системное хранилище. |
CertGetStoreProperty | Возвращает свойство хранилища. |
CertOpenStore | Открывает хранилище сертификатов с помощью указанного типа поставщика хранилища. |
CertOpenSystemStore | Открывает хранилище системных сертификатов на основе протокола подсистемы. |
CertRegisterPhysicalStore | Добавляет физическое хранилище в коллекцию системного хранилища реестра. |
CertRegisterSystemStore | Регистрирует системное хранилище. |
CertRemoveStoreFromCollection | Удаляет одноуровневое хранилище сертификатов из хранилища коллекций. |
CertSaveStore | Сохраняет хранилище сертификатов. |
CertSetStoreProperty | Задает свойство хранилища. |
CertUnregisterPhysicalStore | Удаляет физическое хранилище из указанной коллекции системного хранилища. |
CertUnregisterSystemStore | Отменяет регистрацию указанного системного хранилища. |
CryptUIWizExport | Представляет мастер, который экспортирует сертификат, список доверия сертификатов (CTL), список отзыва сертификатов (CRL) или хранилище сертификатов. |
CryptUIWizImport | Представляет мастер, который импортирует сертификат, список доверия сертификатов (CTL), список отзыва сертификатов (CRL) или хранилище сертификатов. |
Функции обслуживания хранилища сертификатов и сертификатов
CryptoAPI предоставляет набор общих функций обслуживания сертификата и хранилища сертификатов.
Функция | Описание |
---|---|
CertAddSerializedElementToStore | Добавляет сериализованный сертификат или элемент CRL в хранилище. |
CertCreateContext | Создает указанный контекст из закодированных байтов. Новый контекст не помещается в хранилище. |
CertEnumSubjectInSortedCTL | Перечисляет TrustedSubjects в отсортированный контекст CTL. |
CertFindSubjectInCTL | Находит указанную тему в CTL. |
CertFindSubjectInSortedCTL | Находит указанную тему в отсортированного CTL. |
OpenPersonalTrustDBDialog и OpenPersonalTrustDBDialogEx | Отображает диалоговое окно сертификатов. |
Функции сертификата
Большинство функцийсертификатовимеют связанные функции для работы с списками CCL и . Дополнительные сведения о связанных функциях CRL и CTL см. в разделе "Функции списка отзыва сертификатов" и "Функции списка доверия сертификатов".
Функция | Описание |
---|---|
CertAddCertificateContextToStore | Добавляет контекст сертификата в хранилище сертификатов. |
CertAddCertificateLinkToStore | Добавляет ссылку в хранилище сертификатов в контекст сертификата в другом хранилище. |
CertAddEncodedCertificateToStore | Преобразует закодированный сертификат в контекст сертификата, а затем добавляет контекст в хранилище сертификатов. |
CertAddRefServerOcspResponse | Увеличивает число ссылок для дескриптора HCERT_SERVER_OCSP_RESPONSE. |
CertAddRefServerOcspResponseContext | Увеличивает число ссылок для структуры CERT_SERVER_OCSP_RESPONSE_CONTEXT. |
CertCloseServerOcspResponse | Закрывает дескриптор ответа сервера протокола состояния веб-сертификата (OCSP). |
CertCreateCertificateContext | Создает контекст сертификата из закодированного сертификата. Созданный контекст не помещается в хранилище сертификатов. |
CertCreateSelfSignCertificate | Создает самозаверяющий сертификат. |
CertDeleteCertificateFromStore | Удаляет сертификат из хранилища сертификатов. |
CertDuplicateCertificateContext | Дублирует контекст сертификата путем увеличения счетчика ссылок. |
CertEnumCertificatesInStore | Перечисляет контексты сертификатов в хранилище сертификатов. |
CertFindCertificateInStore | Находит первый или следующий контекст сертификата в хранилище сертификатов, удовлетворяющий критерию поиска. |
CertFreeCertificateContext | Освобождает контекст сертификата. |
CertGetIssuerCertificateFromStore | Возвращает контекст сертификата из хранилища сертификатов для первого или следующего издателя указанного сертификата субъекта. |
CertGetServerOcspResponseContext | Извлекает неблокирующий, допустимый время протокол состояния сертификата в сети (OCSP) для указанного дескриптора. |
CertGetSubjectCertificateFromStore | Возвращает из хранилища сертификатов контекст сертификата субъекта, который однозначно определяется его издателем и серийным номером. |
CertGetValidUsages | Возвращает массив использования, состоящий из пересечения допустимых значений для всех сертификатов в массиве сертификатов. |
CertOpenServerOcspResponse | Открывает дескриптор для ответа протокола состояния веб-сертификата (OCSP), связанного с цепочкой сертификатов сервера. |
CertRetrieveLogoOrBiometricInfo | Выполняет получение URL-адреса логотипа или биометрических данных, указанных в расширении сертификата szOID_LOGOTYPE_EXT или szOID_BIOMETRIC_EXT. |
CertSelectCertificate | Представляет диалоговое окно, позволяющее пользователю выбирать сертификаты из набора сертификатов, которые соответствуют заданным критериям. |
CertSelectCertificateChains | Извлекает цепочки сертификатов на основе указанных критериев выбора. |
CertSelectionGetSerializedBlob | Вспомогательной функцией, используемой для получения сериализованного сертификата BLOB из структуры CERT_SELECTUI_INPUT. |
CertSerializeCertificateStoreElement | Сериализует закодированный сертификат контекста сертификата и закодированное представление его свойств. |
CertVerifySubjectCertificateContext | Выполняет проверки включенной проверки сертификата субъекта с помощью издателя. |
CryptUIDlgCertMgr | Отображает диалоговое окно, позволяющее пользователю управлять сертификатами. |
CryptUIDlgSelectCertificate | Отображает диалоговое окно, позволяющее пользователю выбрать сертификат. |
CryptUIDlgSelectCertificateFromStore | Отображает диалоговое окно, позволяющее выбрать сертификат из указанного хранилища. |
CryptUIDlgViewCertificate | Представляет диалоговое окно, отображающее указанный сертификат. |
CryptUIDlgViewContext | Отображает сертификат, список отзыва сертификатов или CTL. |
CryptUIDlgViewSignerInfo | Отображает диалоговое окно, содержащее сведения о подписывшем сообщении. |
GetFriendlyNameOfCert | Извлекает отображаемое имя сертификата. |
RKeyCloseKeyService | Закрывает дескриптор службы ключей. |
RKeyOpenKeyService | Открывает дескриптор службы ключей на удаленном компьютере. |
RKeyPFXInstall | Устанавливает сертификат на удаленном компьютере. |
Функции списка отзыва сертификатов
Эти функции управляют хранилищем и извлечением списков отзыва сертификатов (CRLS).
Функция | Описание |
---|---|
CertAddCRLContextToStore | Добавляет контекст списка отзыва сертификатов в хранилище сертификатов. |
CertAddCRLLinkToStore | Добавляет ссылку в хранилище в контекст CRL в другом хранилище. |
CertAddEncodedCRLToStore | Преобразует кодированный CRL в контекст CRL, а затем добавляет контекст в хранилище сертификатов. |
CertCreateCRLContext | Создает контекст CRL из закодированного списка отзыва сертификатов. Созданный контекст не помещается в хранилище сертификатов. |
CertDeleteCRLFromStore | Удаляет список отзыва сертификатов из хранилища сертификатов. |
CertDuplicateCRLContext | Дублирует контекст CRL путем увеличения числа ссылок . |
CertEnumCRLsInStore | Перечисляет контексты списка отзыва сертификатов в хранилище. |
CertFindCertificateInCRL | Выполняет поиск списка отзыва сертификатов (CRL) для указанного сертификата. |
CertFindCRLInStore | Находит первый или следующий контекст списка отзыва сертификатов в хранилище сертификатов, соответствующий конкретному критерию. |
CertFreeCRLContext | Освобождает контекст CRL. |
CertGetCRLFromStore | Возвращает первый или следующий контекст CRL из хранилища сертификатов для указанного сертификата издателя. |
CertSerializeCRLStoreElement | Сериализует кодированный контекст CRL и его свойства. |
Функции списка доверия сертификатов
Эти функции управляют хранилищем и получением списков доверия сертификатов (CTLS).
Функция | Описание |
---|---|
CertAddCTLContextToStore | Добавляет контекст CTL в хранилище сертификатов. |
CertAddCTLLinkToStore | Добавляет ссылку в хранилище в контекст CRL в другом хранилище. |
CertAddEncodedCTLToStore | Преобразует кодированный CTL в контекст CTL, а затем добавляет контекст в хранилище сертификатов. |
CertCreateCTLContext | Создает контекст CTL из закодированного списка доверия сертификатов. Созданный контекст не помещается в хранилище сертификатов. |
CertDeleteCTLFromStore | Удаляет CTL из хранилища сертификатов. |
CertDuplicateCTLContext | Дублирует контекст CTL путем увеличения числа ссылок. |
CertEnumCTLsInStore | Перечисляет контексты CTL в хранилище сертификатов. |
CertFindCTLInStore | Находит первый или следующий контекст CTL в хранилище сертификатов, соответствующий определенным критериям. |
CertFreeCTLContext | Освобождает контекст CTL. |
CertModifyCertificatesToTrust | Изменяет набор сертификатов в CTL для заданной цели. |
CertSerializeCTLStoreElement | Сериализует кодированный контекст CTL и его свойства. |
Расширенные функции свойств
Следующие функции работают с расширенными свойствами сертификатов, списков отзыва сертификатов и списков сертификатов.
Функция | Описание |
---|---|
CertEnumCertificateContextProperties | Перечисляет свойства для указанного контекста сертификата. |
CertEnumCRLContextProperties | Перечисляет свойства для указанного контекста CRL. |
CertEnumCTLContextProperties | Перечисляет свойства для указанного контекста CTL. |
CertGetCertificateContextProperty | Извлекает свойства сертификата. |
CertGetCRLContextProperty | Извлекает свойства CRL. |
CertGetCTLContextProperty | Извлекает свойства CTL. |
CertSetCertificateContextProperty | Задает свойства сертификата. |
CertSetCRLContextProperty | Задает свойства списка отзыва сертификатов. |
CertSetCTLContextProperty | Задает свойства CTL. |
Функции MakeCert
Следующие функции поддерживают средство MakeCert.
Функция | Описание |
---|---|
FreeCryptProvFromCert | Освобождает дескриптор поставщику служб шифрования (CSP) и при необходимости удаляет временный контейнер, созданный функцией GetCryptProvFromCert. |
GetCryptProvFromCert | Возвращает дескриптор CSP и спецификацию ключа для контекста сертификата. |
PvkFreeCryptProv | Освобождает дескриптор CSP и при необходимости удаляет временный контейнер, созданный функцией PvkGetCryptProv. |
PvkGetCryptProv | Возвращает дескриптор CSP на основе закрытого ключа имени файла или имени контейнера ключей. |
PvkPrivateKeyAcquireContextFromMemory | Создает временный контейнер в CSP и загружает закрытый ключ из памяти в контейнер. |
PvkPrivateKeySave | Сохраняет закрытый ключ и соответствующий открытый ключ в указанный файл. |
SignError | Вызывает GetLastError и преобразует код возврата в HRESULT. |
Функции проверки сертификатов
Сертификаты проверяются с помощью списков ctls или цепочек сертификатов. Функции предоставляются для обоих из этих функций:
- Функции проверки с помощью CCL
- Функции проверки цепочки сертификатов
Функции проверки с помощью CCL
Эти функции используют списки CTL в процессе проверки. Дополнительные функции для работы с списком сертификатов можно найти в функциях списка доверия сертификатов и расширенных функциях свойств.
Следующие функции используют списки ctls напрямую для проверки.
Функция | Описание |
---|---|
CertVerifyCTLUsage | Проверяет использование CTL. |
CryptMsgEncodeAndSignCTL | Кодирует и подписывает CTL в виде сообщения. |
CryptMsgGetAndVerifySigner | Извлекает и проверяет CTL из сообщения. |
CryptMsgSignCTL | Подписывает сообщение, содержащее CTL. |
Функции проверки цепочки сертификатов
Цепочки сертификатов создаются для предоставления сведений о доверии отдельных сертификатов.
Имя функции | Описание |
---|---|
CertCreateCertificateChainEngine | Создает для приложения новый недеделаный механизм цепочки. |
CertCreateCTLEntryFromCertificateContextProperties | Создает запись CTL, атрибуты которой являются свойствами контекста сертификата. |
CertDuplicateCertificateChain | Дублирует цепочку сертификатов, добавив счетчик ссылок цепочки и возвратив указатель на цепочку. |
CertFindChainStore | Находит первый или следующий контекст цепочки сертификатов в хранилище. |
CertFreeCertificateChain | Освобождает цепочку сертификатов, уменьшая количество ссылок. |
CertFreeCertificateChainEngine | Освобождает подсистему цепочки сертификатов, не являющихся недефесультными. |
CertFreeCertificateChainList | Освобождает массив указателей к контекстам цепочки. |
CertGetCertificateChain | Создает контекст цепочки, начиная с конечного сертификата, и возвращается к доверенному корневому сертификату , если это возможно. |
CertIsValidCRLForCertificate | Проверяет CRL, чтобы определить, будет ли он включать определенный сертификат, если этот сертификат был отозван. |
CertSetCertificateContextPropertiesFromCTLEntry | Задает свойства контекста сертификата с помощью атрибутов в записи CTL. |
CertVerifyCertificateChainPolicy | Проверяет цепочку сертификатов, чтобы проверить его допустимость, включая соответствие любым указанным критериям политики действительности. |
Функции сообщений
функции сообщений CryptoAPI состоят из двух групп функций: низкоуровневых функций сообщений и упрощенных функций сообщений.
Функции сообщения низкого уровня создают и работают непосредственно с сообщениями PKCS #7. Эти функции кодируют данные PKCS #7 для передачи и декодирования полученных данных PKCS #7. Они также расшифровывают и проверяют подписи полученных сообщений. Общие сведения о стандартных и низкоуровневых сообщениях PKCS #7 см. в сообщений низкого уровня.
Упрощенные функции сообщений находятся на более высоком уровне и упаковывают несколько низкоуровневых функций сообщений и функций сертификатов в отдельные функции, которые выполняют определенную задачу определенным образом. Эти функции сокращают количество вызовов функций, необходимых для выполнения задачи, тем самым упрощая использование CryptoAPI. Общие сведения об упрощенных сообщениях см. в упрощенных сообщений.
- Функции сообщений низкого уровня
- Упрощенные функции сообщений
Функции сообщений низкого уровня
Функции сообщения низкого уровня предоставляют функциональные возможности, необходимые для кодирования данных для передачи и декодирования полученных сообщений PKCS #7. Функции также предоставляются для расшифровки и проверки подписей полученных сообщений. Использование этих низкоуровневых функций сообщений в большинстве приложений не рекомендуется. Для большинства приложений рекомендуется использовать упрощенные функции сообщений, которые упаковывают несколько низкоуровневых функций сообщений в один вызов функции.
Функция | Описание |
---|---|
CryptMsgCalculateEncodedLength | Вычисляет длину зашифрованного криптографического сообщения. |
CryptMsgClose | Закрывает дескриптор криптографического сообщения. |
CryptMsgControl | Выполняет специальную функцию управления после окончательного CryptMsgUpdate зашифрованного или декодированного криптографического сообщения. |
CryptMsgCountersign | Счетчики подписи уже существующей подписи в сообщении. |
CryptMsgCountersignEncoded | Счетчики подписывают уже существующую подпись (закодированную SignerInfo, как определено PKCS #7). |
CryptMsgDuplicate | Дублирует дескриптор криптографического сообщения, добавив число ссылок . Счетчик ссылок отслеживает время существования сообщения. |
CryptMsgGetParam | Получает параметр после кодирования или декодирования криптографического сообщения. |
CryptMsgOpenToDecode | Открывает криптографическое сообщение для декодирования. |
CryptMsgOpenToEncode | Открывает криптографическое сообщение для кодирования. |
CryptMsgUpdate | Обновляет содержимое криптографического сообщения. |
CryptMsgVerifyCountersignatureEncoded | Проверяетсчетчикас точки зрения структуры SignerInfo (как определено PKCS #7). |
CryptMsgVerifyCountersignatureEncodedEx | Проверяет, что параметр pbSignerInfoCounterSignature содержит зашифрованные хэш- поля encryptedDigest структуры параметров pbSignerInfo. |
Упрощенные функции сообщений
упрощенные функции сообщений упаковать функции сообщений низкого уровня в одну функцию для выполнения указанной задачи.
Функция | Описание |
---|---|
CryptDecodeMessage | Декодирует криптографическое сообщение. |
CryptDecryptAndVerifyMessageSignature | Расшифровывает указанное сообщение и проверяет подписыватель. |
CryptDecryptMessage | Расшифровывает указанное сообщение. |
CryptEncryptMessage | Шифрует сообщение для получателя или получателей. |
CryptGetMessageCertificates | Возвращаетхранилища сертификатов, содержащего сертификаты сообщения и списки ЗАПРОСОВ. |
CryptGetMessageSignerCount | Возвращает количество подписчиков в подписанном сообщении. |
CryptHashMessage | Создает хэш сообщения. |
CryptSignAndEncryptMessage | Подписывает сообщение, а затем шифрует его для получателя или получателя. |
CryptSignMessageWithKey | Подписывает сообщение с помощью закрытого ключа CSP, указанного в параметрах функции. |
CryptSignMessage | Подписывает сообщение. |
CryptVerifyDetachedMessageHash | Проверяет хэшированное сообщение, содержащее отсоединяемый хэш. |
CryptVerifyDetachedMessageSignature | Проверяет подписанное сообщение, содержащее отсоединяемую подпись или подписи. |
CryptVerifyMessageHash | Проверяет хэшированное сообщение. |
CryptVerifyMessageSignature | Проверяет подписанное сообщение. |
CryptVerifyMessageSignatureWithKey | Проверяет подпись подписанного сообщения с помощью указанной информации открытого ключа. |
Вспомогательные функции
Вспомогательные функции группируются следующим образом:
- Функции управления данными
- Функции преобразования данных
- Расширенные функции использования ключей
- Функции идентификатора ключа
- Функции поддержки OID
- Функции извлечения удаленных объектов
- Функции PFX
Функции управления данными
Следующие функции CryptoAPI управляют данными и сертификатами.
Функция | Описание |
---|---|
CertCompareCertificate | Сравнивает два сертификата, чтобы определить, совпадают ли они. |
CertCompareCertificateName | Сравнивает два имена сертификатов, чтобы определить, совпадают ли они. |
CertCompareIntegerBlob | Сравнивает два целочисленных БОЛЬШИХ двоичных объектов. |
CertComparePublicKeyInfo | Сравнивает два открытых ключа , чтобы определить, совпадают ли они. |
CertFindAttribute | Находит первый атрибут, определяемый его идентификатором объекта (OID). |
CertFindExtension | Находит первое расширение, определяемое его OID. |
CertFindRDNAttr | Находит первый атрибут RDN, идентифицированный его OID в списке имен относительных имен. |
CertGetIntendedKeyUsage | Получает предполагаемые байты использования ключа из сертификата. |
CertGetPublicKeyLength | Получает длину бита открытого и закрытого ключа из BLOB-объекта открытого ключа. |
CertIsRDNAttrsInCertificateName | Сравнивает атрибуты в имени сертификата с указанным CERT_RDN, чтобы определить, включены ли все атрибуты. |
CertIsStrongHashToSign | Определяет, можно ли использовать указанный хэш-алгоритм и открытый ключ в сертификате подписи для строгого подписывания. |
CertVerifyCRLRevocation | Проверяет, что сертификат субъекта не находится в списке отзыва сертификатов (CRL). |
CertVerifyCRLTimeValidity | Проверяет срок действия списка отзыва сертификатов. |
CertVerifyRevocation | Проверяет, что сертификат субъекта не находится в списке отзыва сертификатов. |
CertVerifyTimeValidity | Проверяет срок действия сертификата. |
CertVerifyValidityNesting | Проверяет, что срок действия субъекта вложен в срок действия издателя. |
CryptExportPKCS8 | Эта функция заменена функцией CryptExportPKCS8Ex. |
CryptExportPKCS8Ex | Экспорт закрытого ключа в формате PKCS #8. |
CryptExportPublicKeyInfo | Экспортирует сведения о открытом ключе, связанные с соответствующим закрытым ключом поставщика. |
CryptExportPublicKeyInfoEx | Экспортирует сведения о открытом ключе, связанные с соответствующим закрытым ключом поставщика. Эта функция отличается от CryptExportPublicKeyInfo, что пользователь может указать алгоритм открытого ключа, тем самым переопределяя значение по умолчанию, предоставленное поставщиком служб CSP. |
CryptExportPublicKeyInfoFromBCryptKeyHandle | Экспортирует сведения о открытом ключе, связанные с соответствующим закрытым ключом поставщика. |
CryptFindCertificateKeyProvInfo | Перечисляет поставщиков шифрования и их контейнеры ключей , чтобы найти закрытый ключ, соответствующий открытому ключу сертификата. |
CryptFindLocalizedName | Находит локализованное имя для указанного имени, например находит локализованное имя для имени хранилища корневой системы. |
CryptHashCertificate |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Хэширует кодированное содержимое. |
CryptHashCertificate2 | Хэширует блок данных с помощью API шифрования: поставщик хэша следующего поколения (CNG). |
CryptHashPublicKeyInfo |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Вычисляет хэш закодированных сведений открытого ключа. |
CryptHashToBeSigned |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Вычисляет хэш сведений о подписываемом содержимом в кодированном содержимом (CERT_SIGNED_CONTENT_INFO). |
CryptImportPKCS8 |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Импортируетзакрытый ключв формате PKCS #8 в поставщик криптографических служб (CSP). |
CryptImportPublicKeyInfo |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Преобразует и импортирует сведения открытого ключа в поставщик и возвращает дескриптор открытого ключа. |
CryptImportPublicKeyInfoEx |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Преобразует и импортирует сведения открытого ключа в поставщик и возвращает дескриптор открытого ключа. Дополнительные параметры (по сравнению с параметрами, заданными CryptImportPublicKeyInfo), которые можно использовать для переопределения значений по умолчанию, предоставляются для дополнения CERT_PUBLIC_KEY_INFO. |
CryptImportPublicKeyInfoEx2 | Импортирует открытый ключ в поставщик асимметричных метрик CNG. |
CryptMemAlloc | Выделяет память для буфера. Эта память используется всеми функциями Crypt32.lib, возвращающими выделенные буферы. |
CryptMemFree | Освобождает память, выделенную CryptMemAlloc или CryptMemRealloc. |
CryptMemRealloc | Освобождает память, выделенную для буфера, и выделяет память для нового буфера. |
CryptQueryObject |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Извлекает сведения о содержимом BLOB-объекта или файла. |
CryptSignAndEncodeCertificate | Кодирует сведения о подписи, подписывает эти закодированные сведения и кодирует полученные подписанные, закодированные сведения. |
CryptSignCertificate | Подписывает сведения о подписываемом кодированном подписанном содержимом. |
CryptSIPAddProvider | Добавляет пакет интерфейса субъекта (SIP). |
CryptSIPCreateIndirectData | Возвращает структуру SIP_INDIRECT_DATA, содержащую хэш- предоставленной структуры SIP_SUBJECTINFO, алгоритма дайджеста и атрибута кодировки. Хэш можно использовать в качестве косвенной ссылки на данные. |
CryptSIPGetCaps | Извлекает возможности SIP. |
CryptSIPGetSignedDataMsg | Извлекает подпись Authenticode из файла. |
CryptSIPLoad | Загружает библиотеку динамической компоновки, реализующую пакет интерфейса субъекта, и назначает соответствующие функции экспорта библиотеки в структуру SIP_DISPATCH_INFO. |
CryptSIPPutSignedDataMsg | Сохраняет подпись Authenticode в целевом файле. |
CryptSIPRemoveProvider | Удаляет SIP, добавленный предыдущим вызовом функции CryptSIPAddProvider. |
CryptSIPRemoveSignedDataMsg | Удаляет указанную подпись Authenticode. |
CryptSIPRetrieveSubjectGuid | Извлекает GUID на основе сведений о заголовке в указанном файле. |
CryptSIPRetrieveSubjectGuidForCatalogFile | Извлекает GUID субъекта, связанный с указанным файлом. |
CryptSIPVerifyIndirectData | Проверяет непрямые хэшированные данные по предоставленной теме. |
CryptUpdateProtectedState | Переносит главные ключи текущего пользователя после изменения идентификатора безопасности пользователя (SID). |
CryptVerifyCertificateSignature | Проверяет подпись сертификата субъекта или CRL с помощью сведений о открытом ключе. |
CryptVerifyCertificateSignatureEx | Расширенная версия CryptVerifyCertificateSignature. |
GetEncSChannel | Хранит зашифрованное содержимое библиотеки DLL Schannel в памяти. |
pCryptSIPGetCaps | Реализуется SIP для создания отчетов о возможностях. |
Функции преобразования данных
Следующие функции CryptoAPI преобразуют элементы структуры сертификатов в различные формы.
Функция | Описание |
---|---|
CertAlgIdToOID | Преобразует идентификатор алгоритма CryptoAPI (ALG_ID) в строку абстрактной нотации синтаксиса One (ASN.1) идентификатор объекта (OID). |
CertGetNameString | Получает имя субъекта или издателя из сертификата и преобразует его в строку символов, завершаемую null. |
CertNameToStr | Преобразует имя сертификата BLOB в строку с нулевой завершением. |
CertOIDToAlgId | Преобразует строку идентификатора объекта ASN.1 в идентификатор алгоритма CSP. |
CertRDNValueToStr | Преобразует значение имени в строку, завершаемую значением NULL. |
CertStrToName | Преобразует строку, завершаемую значением NULL, X.500 в закодированное имя сертификата. |
CryptBinaryToString | Преобразует двоичную последовательность в форматированную строку. |
CryptFormatObject | Форматирует закодированные данные и возвращает строку Юникода. |
CryptStringToBinary | Преобразует форматированную строку в двоичную последовательность. |
Расширенные функции использования ключей
Следующие функции имеют дело с расширениемиспользования ключей(EKU) и расширенным свойством EKU сертификатов. Расширение EKU и расширенное свойство указывают и ограничивают допустимое использование сертификата. Расширения являются частью самого сертификата. Они задаются издателем сертификата и доступны только для чтения. Расширенные свойства сертификата — это значения, связанные с сертификатом, который можно задать в приложении.
Функция | Описание |
---|---|
CertAddEnhancedKeyUsageIdentifier | Добавляет идентификатор использования в свойство EKU сертификата. |
CertGetEnhancedKeyUsage | Получает сведения о расширении или свойстве EKU из сертификата. |
CertRemoveEnhancedKeyUsageIdentifier | Удаляет идентификатор использования из расширенного свойства EKU сертификата. |
CertSetEnhancedKeyUsage | Задает свойство EKU для сертификата. |
Функции идентификатора ключа
Функции идентификатора ключа позволяют пользователю создавать, задавать, извлекать или находить идентификатор ключа или его свойства.
Идентификатор ключа — это уникальный идентификатор пары открытого и закрытого ключа. Это может быть любой уникальный идентификатор, но обычно это хэш SHA1 в кодировке 20 байтов CERT_PUBLIC_KEY_INFO структуры. Идентификатор ключа можно получить с помощью CERT_KEY_IDENTIFIER_PROP_ID сертификата. Идентификатор ключа позволяет использовать пару ключей для шифрования или расшифровки сообщений без использования сертификата.
Идентификаторы ключей не связаны с списков ключей или списков ctls.
Идентификатор ключа может иметь те же свойства, что и контекст сертификата. Дополнительные сведения см. в CertCreateContext.
Функция | Описание |
---|---|
CryptCreateKeyIdentifierFromCSP |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Создает идентификатор ключа из открытого ключа BLOB-объекта CSP. |
CryptEnumKeyIdentifierProperties | Перечисляет идентификаторы ключей и их свойства. |
CryptGetKeyIdentifierProperty |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Получает определенное свойство из указанного идентификатора ключа. |
CryptSetKeyIdentifierProperty |
Важно: Этот API не рекомендуется. Новое и существующее программное обеспечение должно начинаться с API следующего поколения шифрования. Корпорация Майкрософт может удалить этот API в будущих выпусках. Задает свойство указанного идентификатора ключа. |
Функции поддержки OID
Эти функции предоставляют поддержку идентификатора объекта (OID). Эти функции устанавливают, регистрируют и отправляются в функции типа OID и кодировки.
Следующие функции CryptoAPI используют следующие функции поддержки OID:
- CryptEncodeObject
- CryptEncodeObjectEx
- CryptDecodeObject
- CryptDecodeObjectEx
- CertVerifyRevocation
- CertOpenStore
Общие сведения об этом процессе см. в расширении функциональных возможностей CryptoAPI.
Следующие функции работают с OID.
Функция | Описание |
---|---|
CryptEnumOIDFunction | Перечисляет зарегистрированные функции OID, определяемые их типом кодирования, именем функции и OID. |
CryptEnumOIDInfo | Перечисляет зарегистрированные сведения об OID, определяемые группой, и вызывает pfnEnumOIDInfo для совпадений. |
CryptFindOIDInfo | Использует указанный ключ и группу для поиска сведений об OID. |
CryptFreeOIDFunctionAddress | Освобождает число дескрипторов, которое было добавлено и возвращено CryptGetOIDFunctionAddress или CryptGetDefaultOIDFunctionAddress. |
CryptGetDefaultOIDDllList | Получает список зарегистрированных записей DLL по умолчанию для указанного набора функций и типа кодирования. |
CryptGetDefaultOIDFunctionAddress | Получает первую или следующую установленную функцию по умолчанию или загружает библиотеку DLL, содержащую функцию по умолчанию. |
CryptGetOIDFunctionAddress | Выполняет поиск списка установленных функций для типа кодирования и соответствия OID. Если совпадение не найдено, реестр ищет совпадение. |
CryptGetOIDFunctionValue | Получает значение для указанного типа кодирования, имени функции, OID и имени значения. |
CryptInitOIDFunctionSet | Инициализирует и возвращает дескриптор набора функций OID, определяемого указанным именем функции. |
CryptInstallOIDFunctionAddress | Устанавливает набор вызываемых адресов функций OID. |
CryptRegisterDefaultOIDFunction | Регистрирует библиотеку DLL, содержащую функцию по умолчанию, для указанного типа кодирования и имени функции. |
CryptRegisterOIDFunction | Регистрирует библиотеку DLL, содержащую функцию для указанного типа кодирования, имени функции и OID. |
CryptRegisterOIDInfo | Регистрирует сведения об OID, указанные в структуре CRYPT_OID_INFO, сохраняя их в реестре. |
CryptSetOIDFunctionValue | Задает значение для указанного типа кодирования, имени функции, OID и имени значения. |
CryptUnregisterDefaultOIDFunction | Удаляет регистрацию библиотеки DLL, содержащей функцию по умолчанию, для указанного типа кодирования и имени функции. |
CryptUnregisterOIDFunction | Удаляет регистрацию библиотеки DLL, содержащей функцию, которая будет вызываться для указанного типа кодирования, имени функции и OID. |
CryptUnregisterOIDInfo | Удаляет регистрацию для указанной информации об OID. |
Функции извлечения удаленных объектов
Следующие функции позволяют пользователю получить объект инфраструктуры открытых ключей (PKI), получить URL-адрес сертификата, CTL или CRL или извлечь URL-адрес из объекта.
Функция | Описание |
---|---|
CryptGetObjectUrl | Получает URL-адрес удаленного объекта из сертификата, CTL или CRL. |
CryptRetrieveObjectByUrl | Извлекает объект PKI из расположения, указанного URL-адресом. |
Функции PFX
Следующие функции поддерживают формат PFX БОЛЬШИХ двоичных объектов.
Функция | Описание |
---|---|
PFXExportCertStore | Экспортирует из указанного хранилища сертификатов сертификатов и, если они доступны, связанные закрытых ключей. |
PFXExportCertStoreEx | Экспортирует из хранилища сертификатов, на который ссылается ссылка, сертификаты и, если они доступны, связанные с ними закрытые ключи. |
PFXImportCertStore | Импортирует PFX BLOB и возвращает дескриптор хранилища, содержащего сертификаты и все связанные закрытые ключи. |
PFXIsPFXBlob | Пытается декодировать внешний слой БОЛЬШОго двоичного объекта в виде пакета PFX. |
PFXVerifyPassword | Пытается декодировать внешний слой BLOB в виде пакета PFX и расшифровывать его с заданным паролем. |
Функции резервного копирования и восстановления служб сертификатов
Службы сертификатов включают функции резервного копирования и восстановления базы данных служб сертификатов. Эти функции резервного копирования и восстановления служб сертификатов содержатся в Certadm.dll. В отличие от других элементов API, связанных со службами сертификатов, эти функции не инкапсулируются в объекте, который можно использовать для вызова методов класса. Вместо этого API резервного копирования и восстановления вызываются при первой загрузке библиотеки Certadm.dll в память путем вызова LoadLibrary, а затем определения адреса функций путем вызова GetProcAddress. После завершения вызова функций резервного копирования и восстановления служб сертификатов вызовите FreeLibrary для освобождения Certadm.dll ресурсов из памяти.
Заметка
Функции резервного копирования и восстановления, предоставляемые Certadm.dll, не выполняют резервное копирование или восстановление закрытых ключей службы сертификатов. Сведения о резервном копировании закрытых ключей служб сертификатов см. в разделе Резервное копирование и восстановление закрытого ключа служб сертификатов.
Чтобы вызвать функции резервного копирования и восстановления, необходимо иметь права резервного копирования и восстановления . Дополнительные сведения см. в разделе Настройка прав резервного копирования и восстановления.
Заметка
Если CoInitializeEx ранее был вызван в том же потоке, который использовался для вызова api резервного копирования и восстановления служб сертификатов, флаг COINIT_APARTMENTTHREADED должен быть передан в CoInitializeEx. То есть при использовании одного потока нельзя вызывать API резервного копирования и восстановления служб сертификатов, если поток ранее прошел в флаге COINIT_MULTITHREADED в вызове CoInitializeEx.
API резервного копирования служб сертификатов определены в Certbcli.h. Однако при создании программы используйте Certsrv.h в качестве файла включения.
Следующие API экспортируются Certadm.dll.
Функция | Описание |
---|---|
CertSrvBackupClose | Закрывает открытый файл. |
CertSrvBackupEnd | Завершает сеанс резервного копирования. |
CertSrvBackupFree | Освобождает буфер, выделенный API резервного копирования и восстановления. |
CertSrvBackupGetBackupLogs | Возвращает список файлов журналов, которые необходимо создать резервную копию. |
CertSrvBackupGetDatabaseNames | Возвращает список файлов базы данных, которые необходимо создать резервную копию. |
CertSrvBackupGetDynamicFileList | Извлекает список динамических имен файлов служб сертификатов, которые необходимо создать резервную копию для заданного контекста резервного копирования. |
CertSrvBackupOpenFile | Открывает файл в подготовке к резервному копированию. |
CertSrvBackupPrepare | Подготавливает базу данных для оперативной резервной копии. |
CertSrvBackupRead | Считывает содержимое открытого файла. |
CertSrvBackupTruncateLogs | Усечение файлов журнала. |
CertSrvIsServerOnline | Определяет, подключен ли сервер служб сертификатов (активно работает). |
CertSrvRestoreEnd | Завершает сеанс восстановления. |
CertSrvRestoreGetDatabaseLocations | Извлекает расположения базы данных (используется как для сценариев резервного копирования, так и для восстановления). |
CertSrvRestorePrepare | Начинает сеанс восстановления. |
CertSrvRestoreRegister | Регистрирует операцию восстановления. |
CertSrvRestoreRegisterComplete | Завершает ранее зарегистрированную операцию восстановления. |
CertSrvRestoreRegisterThroughFile | Регистрирует операцию восстановления. |
CertSrvServerControl | Отправляет команду управления экземпляру служб сертификатов. |
Функции обратного вызова
Функции обратного вызова в этом разделе используются для регистрации или установки приложения хранилища сертификатов поставщиков и предоставления связанных функций с помощью функций обратного вызова. Функции обратного вызова реализуются приложением и вызываются функциями CryptoAPI. Функции обратного вызова позволяют приложению управлять данными, отчасти таким образом, как функции CryptoAPI управляют данными.
Функция обратного вызова | Использование |
---|---|
CertChainFindByIssuerCallback | Определяемая приложением функция обратного вызова, которая позволяет приложению фильтровать сертификаты, которые могут быть добавлены в цепочку сертификатов. |
CertDllOpenStoreProv | Определяет открытую функцию поставщика хранилища. |
CertEnumPhysicalStoreCallback | Функция обратного вызова, используемая функцией CertEnumPhysicalStore для форматирования и представления сведений о каждом физическом хранилище. |
CertEnumSystemStoreCallback | Функция обратного вызова, используемая функцией CertEnumSystemStore для форматирования и представления сведений о каждом физическом хранилище. |
CertEnumSystemStoreLocationCallback | Функция обратного вызова, используемая функцией CertEnumSystemStoreLocation для форматирования и представления сведений о каждом физическом хранилище. |
CertStoreProvCloseCallback | Определяет, что происходит, когда ссылочного числа открытых магазинов становится нулевым. |
CertStoreProvControl | Позволяет приложению получать уведомления, если имеется разница между содержимым кэшированного хранилища и содержимым этого хранилища, так как оно сохраняется в хранилище. |
CertStoreProvDeleteCertCallback | Определяет действия, которые необходимо предпринять перед удалением сертификата из хранилища сертификатов. |
CertStoreProvDeleteCRLCallback | Определяет действия, которые необходимо выполнить перед удалением списка отзыва сертификатов (CRL) из хранилища сертификатов. |
CertStoreProvDeleteCTL | Определяет, можно ли удалить CTL. |
CertStoreProvFindCert | Находит первый или следующий сертификат в хранилище, которое соответствует указанным критериям. |
CertStoreProvFindCRL | Находит первый или следующий список отзыва сертификатов в хранилище, которое соответствует указанным критериям. |
CertStoreProvFindCTL | Находит первое или следующее значение CTL в хранилище, которое соответствует указанным критериям. |
CertStoreProvFreeFindCert | Освобождает ранее найденный контекст сертификата. |
CertStoreProvFreeFindCRL | Освобождает ранее найденный контекст CRL. |
CertStoreProvFreeFindCTL | Освобождает ранее найденный контекст CTL. |
CertStoreProvGetCertProperty | Извлекает указанное свойство сертификата. |
CertStoreProvGetCRLProperty | Извлекает указанное свойство списка отзыва сертификатов. |
CertStoreProvGetCTLProperty | Извлекает указанное свойство CTL. |
CertStoreProvReadCertCallback | В настоящее время не используется, но может быть экспортирован в будущие поставщики служб. |
CertStoreProvReadCRLCallback | В настоящее время не используется, но может быть экспортирован в будущие поставщики служб. |
CertStoreProvReadCTL | Считывайте копию контекста CTL поставщика и, если она существует, создайте новый контекст CTL. |
CertStoreProvSetCertPropertyCallback | Определяет действия, которые необходимо выполнить перед вызовом CertSetCertificateContextProperty или CertGetCertificateContextProperty. |
CertStoreProvSetCRLPropertyCallback | Определяет действия, которые необходимо выполнить перед вызовом CertSetCRLContextProperty или CertGetCRLContextProperty. |
CertStoreProvSetCTLProperty | Определяет, можно ли задать свойство в CTL. |
CertStoreProvWriteCertCallback | Определяет действия, которые необходимо предпринять перед добавлением сертификата в хранилище. |
CertStoreProvWriteCRLCallback | Определяет действия, которые необходимо предпринять перед добавлением списка отзыва сертификатов в хранилище. |
CertStoreProvWriteCTL | Определяет, можно ли добавить CTL в хранилище. |
CRYPT_ENUM_KEYID_PROP | Функция обратного вызова, используемая функцией CryptEnumKeyIdentifierProperties. |
CRYPT_ENUM_OID_FUNCTION | Функция обратного вызова, используемая функцией CryptEnumOIDFunction. |
CRYPT_ENUM_OID_INFO | Функция обратного вызова, используемая функцией CryptEnumOIDInfo. |
CryptGetSignerCertificateCallback | Функция обратного вызова, используемая со структурой CRYPT_VERIFY_MESSAGE_PARA для получения и проверки сертификата подписи сообщения. |
PCRYPT_DECRYPT_PRIVATE_KEY_FUNC | Функция обратного вызова, используемая функцией CryptImportPKCS8. |
PCRYPT_ENCRYPT_PRIVATE_KEY_FUNC | Функция обратного вызова, используемая при создании структуры CRYPT_ENCRYPTED_PRIVATE_KEY_INFO. |
PCRYPT_RESOLVE_HCRYPTPROV_FUNC | Функция обратного вызова, используемая функцией CryptImportPKCS8. |
PFN_CDF_PARSE_ERROR_CALLBACK | Определяемая пользователем функция, вызываемая для ошибок функции определения каталога при анализе файла определения каталога (CDF). |
PFN_CERT_CREATE_CONTEXT_SORT_FUNC | Вызывается для каждой отсортированного контекста записи при создании контекста. |
PFN_CMSG_CNG_IMPORT_CONTENT_ENCRYPT_KEY | Устанавливаемая функция(OID) идентификатора объекта CNGдля импорта уже расшифрованного ключа шифрования содержимого (CEK). |
PFN_CMSG_CNG_IMPORT_KEY_AGREE | Импортирует ключ шифрования содержимого для получателя транспорта ключа конвертированного сообщения. |
PFN_CMSG_CNG_IMPORT_KEY_TRANS | Функция CNG OID, устанавливаемая для импорта и расшифровки ключа-получателя, зашифрованного, содержимого шифрования ключа (CEK). |
PFN_CMSG_EXPORT_KEY_AGREE | Шифрует и экспортирует ключ шифрования содержимого для получателя соглашения ключа в конвертированном сообщении. |
PFN_CMSG_EXPORT_KEY_TRANS | Шифрует и экспортирует ключ шифрования содержимого для получателя транспорта ключа конвертированного сообщения. |
PFN_CMSG_EXPORT_MAIL_LIST | Шифрует и экспортирует ключ шифрования содержимого для получателя списка рассылки конвертированного сообщения. |
PFN_CMSG_GEN_CONTENT_ENCRYPT_KEY | Создает симметричный ключ, используемый для шифрования содержимого для конвертированного сообщения. |
PFN_CMSG_IMPORT_KEY_AGREE | Импортирует ключ шифрования содержимого для получателя транспорта ключа конвертированного сообщения. |
PFN_CMSG_IMPORT_KEY_TRANS | Импортирует ключ шифрования содержимого для получателя транспорта ключа конвертированного сообщения. |
PFN_CMSG_IMPORT_MAIL_LIST | Импортирует ключ шифрования содержимого для получателя транспорта ключа конвертированного сообщения. |
PFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC | Вызывается CryptExportPublicKeyInfoEx для экспорта BLOB-объекта открытого ключа и его кодирования. |
PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC | Вызывается для декодирования и возврата идентификатора хэш-алгоритма и при необходимости параметров подписи. |
PFN_CRYPT_SIGN_AND_ENCODE_HASH_FUNC | Вызывается для подписывания и кодирования вычисляемого хэша. |
PFN_CRYPT_VERIFY_ENCODED_SIGNATURE_FUNC | Вызывается для расшифровки закодированной подписи и сравнения его с вычисляемой хэш. |
PFN_IMPORT_PUBLIC_KEY_INFO_EX2_FUNC | Вызывается CryptImportPublicKeyInfoEx2 для декодирования идентификатора алгоритма открытого ключа, загрузки поставщика алгоритмов и импорта пары ключей . |
PFNCCERTDISPLAYPROC | Определяемая пользователем функция обратного вызова, которая позволяет вызывающей функции CryptUIDlgSelectCertificate обрабатывать отображение сертификатов, которые пользователь выбирает для просмотра. |
PFNCMFILTERPROC | Фильтрует каждый сертификат, чтобы определить, будет ли он отображаться в диалоговом окне выбора сертификата, отображаемом функцией CertSelectCertificate. |
PFNCMHOOKPROC | Вызывается перед обработкой сообщений диалоговым окном выбора сертификата, созданным функциейCertSelectCertificate. |
Функции определения каталога
Эти функции используются для создания каталога. Все эти функции вызываются MakeCat.
Функция | Описание |
---|---|
CryptCATCDFClose | Закрывает файл определения каталога и освобождает память для соответствующей структуры CRYPTCATC DF. |
CryptCATCDFEnumAttributesWithCDFTag | Перечисляет атрибуты файлов элементов в разделе CatalogFiles cdF. |
CryptCATCDFEnumCatAttributes | Перечисляет атрибуты уровня каталога в разделе CatalogHeader CDF. |
CryptCATCDFEnumMembersByCDFTagEx | Перечисляет отдельные члены файла в разделе CatalogFiles CDF. |
CryptCATCDFOpen | Открывает существующий CDF для чтения и инициализации структуры CRYPTCATCDF. |
Функции каталога
Эти функции используются для управления каталогом.
Функция | Описание |
---|---|
CryptCATAdminAcquireContext | Получает дескриптор контекста администратора каталога. Этот дескриптор можно использовать при последующих вызовах CryptCATAdminAdminCatalog, CryptCATAdminEnminEnumCatalogFromHashи функций CryptCATAdminRemoveCatalog. |
CryptCATAdminAcquireContext2 | Получает дескриптор контекста администратора каталога для заданного хэш-алгоритма и хэш-политики. |
CryptCATAdminAddCatalog | Добавляет каталог в базу данных каталога. |
CryptCATAdminCalcHashFromFileHandle | Вычисляет хэш файла. |
CryptCATAdminCalcHashFromFileHandle2 | Вычисляет хэш файла с помощью указанного алгоритма. |
CryptCATAdminEnumCatalogFromHash | Перечисляет каталоги, содержащие указанный хэш. |
CryptCATAdminReleaseCatalogContext | Освобождает дескриптор контекста каталога, возвращаемого ранее функцией CryptCATAdminAddCata log. |
CryptCATAdminReleaseContext | Освобождает дескриптор, ранее назначенный функцией CryptCATAdminAcquireCon text. |
CryptCATAdminRemoveCatalog | Удаляет файл каталога и удаляет запись этого каталога из базы данных каталога Windows. |
CryptCATAdminResolveCatalogPath | Извлекает полный путь указанного каталога. |
CryptCATCatalogInfoFromContext | Извлекает сведения о каталоге из указанного контекста каталога. |
CryptCATClose | Закрывает дескриптор каталога, открытый ранее функцией CryptCATOpen. |
CryptCATEnumerateAttr | Перечисляет атрибуты, связанные с членом каталога. |
CryptCATEnumerateCatAttr | Перечисляет атрибуты, связанные с каталогом. |
CryptCATEnumerateMember | Перечисляет элементы каталога. |
CryptCATGetAttrInfo | Извлекает сведения об атрибуте члена каталога. |
CryptCATGetMemberInfo | Извлекает сведения о членах из PKCS каталога #7. Помимо получения сведений о членах для указанного тега ссылки, эта функция открывает контекст элемента. |
CryptCATOpen | Открывает каталог и возвращает дескриптор контекста в открытый каталог. |
IsCatalogFile | Извлекает логическое значение, указывающее, является ли указанный файл файлом каталога. |
Функции WinTrust
Для выполнения различных операций доверия используются следующие функции.
Функция | Описание |
---|---|
WintrustAddActionID | Добавляет действие поставщика доверия в систему пользователя. |
WintrustGetRegPolicyFlags | Извлекает флаги политики для поставщика политик. |
WintrustAddDefaultForUsage | Указывает идентификатор использования по умолчанию и сведения о обратном вызове для поставщика |
WintrustGetDefaultForUsage | Извлекает идентификатор использования по умолчанию и сведения о обратном вызове. |
WintrustLoadFunctionPointers | Загружает точки входа функции для указанного GUID действия. |
WintrustRemoveActionID | Удаляет действие, добавленное функцией WintrustAddActionID. |
WintrustSetDefaultIncludePEPageHashes | Задает параметр по умолчанию, определяющий, включены ли хэши страниц при создании непрямых данных пакета интерфейса субъекта (SIP) для переносимых исполняемых файлов. |
WintrustSetRegPolicyFlags | Задает флаги политики для поставщика политик. |
WinVerifyTrust | Выполняет действие проверки доверия для указанного объекта. |
WinVerifyTrustEx | Выполняет действие проверки доверия для указанного объекта и принимает указатель на WINTRUST_DATA структуру. |
WTHelperCertCheckValidSignature | Проверяет, является ли подпись допустимой. |
WTHelperCertFindIssuerCertificate | Находит сертификат издателя из указанных хранилищ сертификатов, соответствующих указанному сертификату субъекта. |
WTHelperCertIsSelfSigned | Проверяет, является ли сертификат самозаверяющий. |
WTHelperGetFileHash | Проверяет подпись подписанного файла и получает хэш-значение и идентификатор алгоритма для файла. |
WTHelperGetProvCertFromChain | Извлекает сертификат поставщика доверия из цепочки сертификатов. |
WTHelperGetProvPrivateDataFromChain | Получает CRYPT_PROVIDER_PRIVDATA структуру из цепочки с помощью идентификатора поставщика. |
WTHelperGetProvSignerFromChain | Извлекает подписыватель или счетчик по индексу из цепочки. |
WTHelperProvDataFromStateData | Извлекает сведения о поставщике доверия из указанного дескриптора. |
Функции указателя объектов
Следующие функции обратного вызова можно реализовать пользовательским поставщиком, который должен вызываться пакетом безопасности Secure Channel (Schannel) для получения сертификатов.
Функция | Описание |
---|---|
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FLUSH | Указывает, что объект изменился. |
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_GET | Извлекает объект. |
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_RELEASE | Освобождает поставщика. |
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_PASSWORD | Освобождает пароль, используемый для шифрования массива байтов PFX. |
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE | Освобождает объект, возвращаемый поставщиком. |
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_IDENTIFIER | Освобождает память для идентификатора объекта. |
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_INITIALIZE | Инициализирует поставщика. |