КриптоПро CSP 4.0

127018, Москва, ул. Сущёвский вал, д. 18
Телефон: +7 (495) 995 4820
Факс: +7 (495) 984 0790
http://www.CryptoPro.ru
E-mail: info@CryptoPro.ru

Средство Криптографической Защиты Информации

КриптоПро CSP

Версия 4.0

Руководство программиста
Часть 3
CryptoAPI Lite (CAPILite)

© OOO "Крипто-Про", 2000-2016. Все права защищены.
Авторские права на средство криптографической защиты информации КриптоПро CSP и эксплуатационную документацию зарегистрированы в Российском агентстве по патентам и товарным знакам (Роспатент). Свидетельство об официальной регистрации программ для ЭВМ № 2008612300 от 12 мая 2008 года.
Документ входит в комплект поставки программного обеспечения КриптоПРО CSP, и на него распространяются все условия лицензионного соглашения. Без специального письменного разрешения OOO "Крипто-Про" документ или его часть в электронном или печатном виде не могут быть скопированы и переданы третьим лицам с коммерческой целью.


Руководство программиста

Средство Криптографической Защиты Информации КриптоПро CSP 4.0

СКЗИ КриптоПро CSP (CAPILite) - программный интерфейс, позволяющий разработчикам создавать и проверять подписанные и зашифрованные сообщения, сертификаты, частичный аналог Microsoft CryptoAPI.

КриптоПро CSP (CAPILite)

CAPILite представляет частичный аналог Microsoft CryptoAPI и может выполнять почти все те же операции (работа с сообщениями, хранилищами и сертификатами), используя такой же программный интерфейс.

Данный документ описывает программный интерфейс СКЗИ КриптоПро CSP.

Область применения

Позволяет использовать интерфейс верхнего уровня для реализации различных защищённых систем документооборота и электронной коммерции, на основе Инфраструктуры Открытых Ключей (Public Key Infrastructure), соответствующей международным рекомендациям X.509, RFC 3280, RFC 4491 и Федеральному закону "Об электронной цифровой подписи" с российскими криптографическими алгоритмами.

Встраивание

Для подключения СКЗИ к прикладному ПО необходимо пользоваться интерфейсом CAPILite: можно либо использовать библиотеку libcapi10 из пакета rdr, либо libcapi20 из пакета capilite. libcapi10 обладает ограниченным функционалом: по объему он соответствует интерфейсу Microsoft CSP. libcapi20 является частичным эквивалентом Microsoft CryptoAPI 2.0 и рекомендуется к использованию. Примеры прикладных программ доступны в devel-пакете.

См. в этой главе | Важные внешние ссылки
Функции работы с провайдером |
Высокоуровневые функции обработки криптографических сообщений | Конференция Крипто-Про World Wide Web link
API запроса на сертификат | Использование CryptoAPI в MSDN World Wide Web link
Особенности создания подписанных CMS сообщений в КриптоПро CSP 3.6 и выше |

КриптоПро CAPILite Версия: 4.0

Обратная связь для этой статьи

(c) ООО КРИПТО-ПРО. Все права защищены.


Особенности создания подписанных CMS сообщений в КриптоПро CSP 3.6 и выше

Для того, чтобы создаваемые с помощью CryptoAPI сообщения могли быть впоследствии дополнены до форматов усовершенствованной ЭЦП (CAdES-T, CAdES-X Long Type 1 и других), они должны как минимум соответствовать базовому формату усовершенствованной ЭЦП (CAdES BES).

Формат электронной подписи CAdES BES требует наличия в подписанном сообщении подписанного атрибута, идентифицирующего сертификат подписывающего:

  • SigningCertificate (для подписей с алгоритмом хэширования SHA1),
  • SigningCertificateV2 (для подписей с остальными алгоритмами хэширования).

Поскольку после создания подписи нельзя добавлять или изменять подписанные атрибуты, КриптоПро CSP при создании подписанного сообщения с использованием алгоритма ГОСТ Р 34.10/34.11 добавляет к нему подписанный атрибут SigningCertificateV2.

Также в сообщение добавляется отметка о времени создания подписи в виде подписанного атрибута signingTime (время в атрибуте указывается по часам локального компьютера).

Особенности добавления атрибутов

Добавление атрибутов SigningCertificateV2 и signingTime затрагивает работу следующих функций: CryptMsgOpenToEncode, CryptMsgControl, CryptMsgCalculateEncodedLength и CryptSignMessage.

Атрибуты SigningCertificateV2 и signingTime не будут добавлены в подписанное сообщение, если выполняется хотя бы одно из следующих условий:

  • В параметрах вызова функции уже указан хотя бы один из подписанных атрибутов: SigningCertificate, SigningCertificateV2 или otherSigningCertificate.
  • Алгоритм подписи не ГОСТ Р 34.10/34.11

  • Не удаётся найти сертификат лица, создающего электронную подпись, необходимый для вычисления значения атрибута SigningCertificateV2

Поиск сертификата ключа электронной подписи

В функцию CryptSignMessage сертификат ключа электронной подписи передаётся в качестве аргумента,в то время как при использовании функций CryptMsgOpenToEncode, CryptMsgCalculateEncodedLength, CryptMsgControl производится его поиск в следующих местах:

  • В контейнере закрытого ключа
  • В коллекции сертификатов, добавленных в подписанное сообщение
  • В хранилищах "Личные" ("My") текущего пользователя и локального компьютера (если не указан флаг CPCMSG_CADES_DISABLE_CERT_SEARCH)

Для поиска сертификата используется имя издателя и серийный номер, заданный в качестве идентификатора подписывающего при вызове функции. Если в качестве идентификатора подписывающего указан идентификатор ключа, поиск сертификата не ведётся и атрибуты в сообщение не добавляются.

Отключение добавления атрибутов

Существуют следующие способы отключить добавление атрибутов SigningCertificateV2 и signingTime в подписанное сообщение:

  • Задать флаг, отключающий добавление атрибутов (CPCMSG_CADES_DISABLE/CPCRYPT_MESSAGE_CADES_DISABLE)
  • Установить параметр реестра, отключающий добавление атрибутов (AddEsAttribute)

Параметр dwFlags для функций CryptMsgOpenToEncode, CryptMsgCalculateEncodedLength, CryptMsgControl может содержать дополнительные флаги, определённые в файле WinCryptEx.h:

Флаг | Описание
CPCMSG_CADES_DISABLE | Отключает добавление атрибутов. Данный флаг не может быть указан одновременно с CPCMSG_CADES_STRICT.
CPCMSG_CADES_STRICT | Если не удалось добавить атрибуты, функция вернёт ошибку. Данный флаг не может быть указан одновременно с CPCMSG_CADES_DISABLE.
CPCMSG_CADES_DISABLE_CERT_SEARCH | Отключает поиск сертификата подписывающего в хранилищах "Личные" ("My") текущего пользователя и локального компьютера.

Параметр dwFlags для функции CryptSignMessage может содержать дополнительные флаги, определённые в файле WinCryptEx.h:

Флаг | Описание
CPCRYPT_MESSAGE_CADES_DISABLE | Отключает добавление атрибутов. Данный флаг не может быть указан одновременно с CPCRYPT_MESSAGE_CADES_STRICT.
CPCRYPT_MESSAGE_CADES_STRICT | Если не удалось добавить атрибуты, функция вернёт ошибку. Данный флаг не может быть указан одновременно с CPCRYPT_MESSAGE_CADES_DISABLE.

Добавление атрибутов на всём компьютере регулируется параметром реестра AddEsAttribute. Если данный параметр отсутствует, то добавление дополнительных атрибутов будет производиться. Для того, чтобы отключить добавление атрибутов, нужно добавить параметр AddEsAttribute типа DWORD и значением 0 в ветку реестра "HKEY_LOCAL_MACHINE\SOFTWARE\Crypto Pro\Cryptography\CurrentVersion\Parameters".


Список задач

Член CPEnroll::put_KeySpec (DWORD _dwKeySpec)

  • TODO:XXX В отличии от ICertEnroll нет значения по умолчанию ???

    • Член CPEnroll::put_WriteCertToCSP (bool value)

  • TODO:XXX В отличии от ICertEnroll, у которого оно true ???

    • КриптоПро CAPILite Версия: 4.0


Функции обработки списка отозванных сертификатов (СОС)

Эти функции работают с хранилищем сертификатов и возвращают список отозванных сертификатов (СОС).

Функции | Описание
CertAddCRLContextToStore | Функция CertAddCRLContextToStore добавляет контекст СОС в хранилище сертификатов.
CertAddEncodedCRLToStore | Функция CertAddEncodedCRLToStore преобразует закодированный СОС в контекст СОС и затем добавляет контекст в хранилище сертификатов.
CertEnumCRLsInStore | Функция CertEnumCRLsInStore перечисляет контексты СОС в хранилище.
CertFreeCRLContext | Функция CertFreeCRLContext освобождает контекст СОС.
CertCreateCRLContext | Функция CertCreateCRLContext создает контекст СОС из закодированного СОС. Созданный контекст не помещается в хранилище сертификатов.
CertDuplicateCRLContext | Функция CertDuplicateCRLContext дублирует контекст СОС, увеличивая счетчик ссылок на единицу.
CertFindCRLInStore | Функция CertFindCRLInStore находит первый или следующий контекст COC в хранилище сертификатов, удовлетворяющий некоторому критерию поиска.
CertDeleteCRLFromStore | Функция CertDeleteCRLFromStore удаляет COC из хранилища сертификатов.
CertGetCRLFromStore | Функция CertGetCRLFromStore получает первый или следующий контекст СОС для определенного издателя сертификата из хранилища сертификатов.


CertAddCRLContextToStore

Функция CertAddCRLContextToStore добавляет контекст СОС в хранилище сертификатов.

Аналогична описанию в CryptoAPI, за исключением того, что для dwAddDisposition поддерживаются только следующие значения: CERT_STORE_ADD_NEW, CERT_STORE_ADD_REPLACE_EXISTING, CERT_STORE_ADD_ALWAYS

WINCRYPT32API BOOL WINAPI CertAddCRLContextToStore(
  IN HCERTSTORE hCertStore,
  IN PCCRL_CONTEXT pCertContext,
  IN DWORD dwAddDisposition,
  OUT OPTIONAL PCCRL_CONTEXT * ppStoreContext
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки списка отозванных сертификатов (СОС) , CertAddEncodedCRLToStore, CertDuplicateCRLContext, CertSetCRLContextProperty, CertAddCRLContextToStore в MS CryptoAPI 2.0 World Wide Web link


CertAddEncodedCRLToStore

Функция CertAddEncodedCRLToStore создает контекст СОС из закодированного СОС и добавляет его в хранилище сертификатов. Функция создает копию контекста СОС перед добавлением его в хранилище.

Аналогична описанию в CryptoAPI.

WINCRYPT32API BOOL WINAPI CertAddEncodedCRLToStore(
  IN HCERTSTORE hCertStore,
  IN DWORD dwCertEncodingType,
  IN const BYTE * pbCrlEncoded,
  IN DWORD cbCrlEncoded,
  IN DWORD dwAddDisposition,
  OUT OPTIONAL PCCRL_CONTEXT * ppCrlContext
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки списка отозванных сертификатов (СОС) , CertAddCRLContextToStore, CertAddEncodedCRLToStore в MS CryptoAPI 2.0 World Wide Web link


CertEnumCRLsInStore

Функция CertEnumCRLsInStore получает первый или следующий СОС в хранилище. Эта функция используется в цикле для того, чтобы последовательно получить все СОС в хранилище.

Аналогична описанию в CryptoAPI.

WINCRYPT32API PCCRL_CONTEXT WINAPI CertEnumCRLsInStore(
  IN HCERTSTORE hCertStore,
  IN PCCRL_CONTEXT pPrevCrlContext
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки списка отозванных сертификатов (СОС) , CertDeleteCRLFromStore, CertDuplicateCRLContext, CertFindCertificateInStore, CertFindCRLInStore, CertFreeCRLContext, MS_CertEnumCRLInStore


CertFreeCRLContext

Функция CertFreeCRLContext освобождает контекст СОС, уменьшая счетчик ссылок на единицу. Когда счетчик ссылок обнуляется, функция CertFreeCRLContext освобождает память, выделенную под контекст СОС. Каждый контекст, полученный при помощи операции получения, поиска, перечисления, дублирования или создания, должен быть освобожден соответствующей операцией освобождения.

WINCRYPT32API BOOL WINAPI CertFreeCRLContext(
  IN PCCRL_CONTEXT pCrlContext
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки списка отозванных сертификатов (СОС) , CertFreeCertificateContext, CertFreeCRLContext в MS CryptoAPI 2.0 World Wide Web link


CertCreateCRLContext

Функция CertCreateCRLContext создает контекст СОС из закодированного СОС. Созданный контекст не помещается в хранилище сертификатов. В созданном контексте функция размещает копию закодированного СОС.

Аналогична описанию в CryptoAPI.

WINCRYPT32API PCCRL_CONTEXT WINAPI CertCreateCRLContext(
  IN DWORD dwCertEncodingType,
  IN const BYTE * pbCRLEncoded,
  IN DWORD cbCRLEncoded
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки списка отозванных сертификатов (СОС) , CertCreateCertificateContext, CertDuplicateCRLContext, CertFreeCRLContext, CertGetCRLContextProperty, CertSetCRLContextProperty, CertCreateCRLContext в MS CryptoAPI 2.0 World Wide Web link


CertDuplicateCRLContext

Функция CertDuplicateCRLContext дублирует контекст CОС, увеличивая счетчик ссылок на CОС на единицу.

Вместо увеличения счетчика ссылок, контекст клонируется.

WINCRYPT32API PCCRL_CONTEXT WINAPI CertDuplicateCRLContext(
  IN PCCRL_CONTEXT pCrlContext
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки списка отозванных сертификатов (СОС) , CertDuplicateCRLContext в MS CryptoAPI 2.0 World Wide Web link


CertFindCRLInStore

Функция CertFindCRLInStore находит первый или следующий контекст COC в хранилище сертификатов, который соответствует критерию поиска, определяемому параметром dwFindType и связанным с ним pvFindPara. Эта функция может быть использована в цикле для того, чтобы найти все COC в хранилище сертификатов, удовлетворяющие заданному критерию поиска.

Аналогична описанию в CryptoAPI. Поддерживаются следующие dwFindType: CRL_FIND_ANY, CRL_FIND_ISSUED_BY, CRL_FIND_EXISTING.

WINCRYPT32API PCCRL_CONTEXT WINAPI CertFindCRLInStore(
  IN HCERTSTORE hCertStore,
  IN DWORD dwCertEncodingType,
  IN DWORD dwFindFlags,
  IN DWORD dwFindType,
  IN const void * pvFindPara,
  IN PCCRL_CONTEXT pPrevCrlContext
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки списка отозванных сертификатов (СОС) , CertAddCRLContextToStore, CertDeleteCRLFromStore, CertDuplicateCRLContext, CertFreeCRLContext, CertFindCRLInStore в MS CryptoAPI 2.0 World Wide Web link


CertDeleteCRLFromStore

Функция CertDeleteCertificateFromStore удаляет определенный контекст COC из хранилища сертификатов.

Аналогична описанию в CryptoAPI

WINCRYPT32API BOOL WINAPI CertDeleteCRLFromStore(
  IN PCCRL_CONTEXT pCrlContext
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки списка отозванных сертификатов (СОС) , CertFreeCRLContext, CertDeleteCRLFromStore в MS CryptoAPI 2.0 World Wide Web link


CertGetCRLFromStore

WINCRYPT32API PCCRL_CONTEXT WINAPI CertGetCRLFromStore(
  IN HCERTSTORE hCertStore,
  IN OPTIONAL PCCERT_CONTEXT pIssuerContext,
  IN PCCRL_CONTEXT pPrevCrlContext,
  IN OUT DWORD * pdwFlags
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки списка отозванных сертификатов (СОС) , CertCreateCertificateContext, CertDuplicateCRLContext, CertFreeCRLContext, CertGetCRLContextProperty, CertGetCRLFromStore в MS CryptoAPI 2.0 World Wide Web link


Функции обработки расширенных свойств

Эти функции работают с расширенными свойствами сертификатов и списков отозванных сертификатов.

Функции | Описание
CertGetCRLContextProperty | Функция CertGetCRLContextProperty получает свойства СОС.
CertSetCRLContextProperty | Функция CertSetCRLContextProperty устанавливает свойства СОС.
CertGetCertificateContextProperty | Функция CertGetCertificateContextProperty получает свойства сертификата.
CertEnumCertificateContextProperties | Функция CertEnumCertificateContextProperties позволяет перечислить свойства сертификата.
CertSetCertificateContextProperty | Функция CertSetCertificateContextProperty устанавливает свойства сертификата.


CertGetCRLContextProperty

Функция CertGetCRLContextProperty получает расширенные свойства определенного контекста СОС.

Аналогична описанию в CryptoAPI.

WINCRYPT32API BOOL WINAPI CertGetCRLContextProperty(
  IN PCCRL_CONTEXT pCrlContext,
  IN DWORD dwPropId,
  OUT void * pvData,
  IN OUT DWORD * pcbData
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки расширенных свойств , CertGetCertificateContextProperty, CertGetCRLContextProperty в MS CryptoAPI 2.0 World Wide Web link


CertSetCRLContextProperty

Функция CertSetCRLContextProperty устанавливает расширенные свойства определенного контекста СОС.

Аналогична описанию в CryptoAPI.

WINCRYPT32API BOOL WINAPI CertSetCRLContextProperty(
  IN PCCRL_CONTEXT pCrlContext,
  IN DWORD dwPropId,
  IN DWORD dwFlags,
  IN const void * pvData
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки расширенных свойств , CertGetCRLContextProperty, CertSetCertificateContextProperty, CertSetCRLContextProperty в MS CryptoAPI 2.0 World Wide Web link


CertGetCertificateContextProperty

Функция CertGetCertificateContextProperty получает информацию, содержащуюся в расширенных свойствах контекста сертификата.

Аналогична описанию в CryptoAPI. Поддерживаются только следующие параметры: CERT_DESCRIPTION_PROP_ID CERT_ENHKEY_USAGE_PROP_ID CERT_FRIENDLY_NAME_PROP_ID CERT_KEY_CONTEXT_PROP_ID CERT_KEY_IDENTIFIER_PROP_ID CERT_KEY_PROV_INFO_PROP_ID CERT_MD5_HASH_PROP_ID CERT_SHA1_HASH_PROP_ID CERT_SIGNATURE_HASH_PROP_ID

WINCRYPT32API BOOL WINAPI CertGetCertificateContextProperty(
  IN PCCERT_CONTEXT pCertContext,
  IN DWORD dwPropId,
  OUT void * pvData,
  IN OUT DWORD * pcbData
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки расширенных свойств , CertCreateCertificateContext, CertSetCertificateContextProperty, CertGetCertificateContextProperty в MS CryptoAPI 2.0 World Wide Web link


CertEnumCertificateContextProperties

Функция CertEnumCertificateContextProperties позволяет перечислить информацию, содержащуюся в расширенных свойствах контекста сертификата.

Аналогична описанию в CryptoAPI.

WINCRYPT32API DWORD WINAPI CertEnumCertificateContextProperties(
  IN PCCERT_CONTEXT pCertContext,
  IN DWORD dwPropId
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки расширенных свойств , CertCreateCertificateContext, CertSetCertificateContextProperty, CertGetCertificateContextProperty в MS CryptoAPI 2.0 World Wide Web link


CertSetCertificateContextProperty

Функция CertSetCertificateContextProperty устанавливает расширенные свойства для определенного контекста сертификата.

Аналогична описанию в CryptoAPI, CERT_KEY_PROV_HANDLE_PROP_ID возвращает ошибку CERT_KEY_CONTEXT_PROP_ID, CERT_KEY_PROV_INFO_PROP_ID обрабатываются для остальных нет специальной обработки

WINCRYPT32API BOOL WINAPI CertSetCertificateContextProperty(
  IN PCCERT_CONTEXT pCertContext,
  IN DWORD dwPropId,
  IN DWORD dwFlags,
  IN const void * pvData
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки расширенных свойств , CertGetCertificateContextProperty, CertSetCRLContextProperty, CertSetCertificateContextProperty в MS CryptoAPI 2.0 World Wide Web link


Функции обработки сертификатов

Эти функции работают с сертификатами. Многие из этих функций связаны с Функции обработки списка отозванных сертификатов (СОС) .

Функции | Описание
CertAddCertificateContextToStore | Функция CertAddCertificateContextToStore добавляет контекст сертификата в хранилище сертификатов.
CertAddEncodedCertificateToStore | Функция CertAddEncodedCertificateToStore преобразует закодированный сертификат в контекст сертификата и затем добавляет контекст в хранилище сертификатов.
CertEnumCertificatesInStore | Функция CertEnumCertificatesInStore перечисляет контексты сертификатов в хранилище сертификатов.
CertFreeCertificateContext | Функция CertFreeCertificateContext освобождает контекст сертификата.
CertCreateCertificateContext | Функция CertCreateCertificateContext создает контекст сертификата из закодированного сертификата. Созданный контекст не помещается в хранилище сертификатов.
CertDuplicateCertificateContext | Функция CertDuplicateCertificateContext дублирует контекст сертификата, увеличивая счетчик ссылок на единицу.
CertFindCertificateInStore | Функция CertFindCertificateInStore находит первый или следующий контекст сертификата в хранилище сертификатов, удовлетворяющий некоторому критерию поиска.
CertDeleteCertificateFromStore | Функция CertDeleteCertificateFromStore удаляет сертификат из хранилища сертификатов.
CertGetSubjectCertificateFromStore | Функция CertGetSubjectCertificateFromStore получает контекст сертификата из хранилища сертифика, однозначно определяемый его издателем и серийным номером.


CertAddCertificateContextToStore

Функция CertAddCertificateContextToStore добавляет контекст сертификата в хранилище сертификатов.

Аналогична описанию в CryptoAPI, за исключением того, что для dwAddDisposition поддерживаются только следующие значения: CERT_STORE_ADD_NEW, CERT_STORE_ADD_REPLACE_EXISTING, CERT_STORE_ADD_ALWAYS

WINCRYPT32API BOOL WINAPI CertAddCertificateContextToStore(
  IN HCERTSTORE hCertStore,
  IN PCCERT_CONTEXT pCertContext,
  IN DWORD dwAddDisposition,
  OUT OPTIONAL PCCERT_CONTEXT * ppStoreContext
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки сертификатов , CertAddEncodedCertificateToStore, CertSetCertificateContextProperty, CertAddCertificateContextToStore в MS CryptoAPI 2.0 World Wide Web link


CertAddEncodedCertificateToStore

Функция CertAddEncodedCertificateToStore создает контекст сертификата из закодированного сертификата и добавляет его в хранилище сертификатов. Созданный контекст не содержит никаких расширенных свойств.

Функция CertAddEncodedCertificateToStore также создает копию закодированного сертификата перед добавлением сертификата в хранилище.

Аналогична описанию в CryptoAPI.

WINCRYPT32API BOOL WINAPI CertAddEncodedCertificateToStore(
  IN HCERTSTORE hCertStore,
  IN DWORD dwCertEncodingType,
  IN const BYTE * pbCertEncoded,
  IN DWORD cbCertEncoded,
  IN DWORD dwAddDisposition,
  OUT OPTIONAL PCCERT_CONTEXT * ppCertContext
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки сертификатов , CertAddCertificateContextToStore, CertAddEncodedCertificateToStore в MS CryptoAPI 2.0 World Wide Web link


CertEnumCertificatesInStore

Функция CertEnumCertificatesInStore получает первый или следующий сертификат в хранилище сертификатов. Эта функция используется в цикле для того, чтобы последовательно получить все сертификаты в хранилище сертификатов.

Аналогична описанию в CryptoAPI.

WINCRYPT32API PCCERT_CONTEXT WINAPI CertEnumCertificatesInStore(
  IN HCERTSTORE hCertStore,
  IN PCCERT_CONTEXT pPrevCertContext
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки сертификатов , CertDeleteCertificateFromStore, CertDuplicateCertificateContext, CertFindCertificateInStore, CertFindCRLInStore, CertFreeCertificateContext, CertEnumCertificatesInStore в MS CryptoAPI 2.0 World Wide Web link


CertFreeCertificateContext

Функция CertFreeCertificateContext освобождает контекст сертификата, уменьшая счетчик ссылок на единицу. Когда счетчик ссылок обнуляется, функция CertFreeCertificateContext освобождает память, выделенную под контекст сертификата. Каждый контекст, полученный при помощи операции получения, поиска, перечисления, дублирования или создания, должен быть освобожден соответствующей операцией освобождения.

WINCRYPT32API BOOL WINAPI CertFreeCertificateContext(
  IN PCCERT_CONTEXT pCertContext
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки сертификатов , CertFreeCRLContext, CertFreeCertificateContext в MS CryptoAPI 2.0 World Wide Web link


CertCreateCertificateContext

Функция CertCreateCertificateContext создает контекст сертификата из закодированного сертификата. Созданный контекст не помещается в хранилище сертификатов. В созданном контексте функция размещает копию закодированного сертификата.

Аналогична описанию в CryptoAPI.

WINCRYPT32API PCCERT_CONTEXT WINAPI CertCreateCertificateContext(
  IN DWORD dwCertEncodingType,
  IN const BYTE * pbCertEncoded,
  IN DWORD cbCertEncoded
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки сертификатов , CertCreateCRLContext, CertDuplicateCertificateContext, CertFreeCertificateContext, CertGetCertificateContextProperty, CertSetCertificateContextProperty, CertCreateCertificateContext в MS CryptoAPI 2.0 World Wide Web link


CertDuplicateCertificateContext

Функция CertDuplicateCertificateContext дублирует контекст сертифика, увеличивая счетчик ссылок на единицу.

Вместо увеличения счетчика ссылок, контекст клонируется.

WINCRYPT32API PCCERT_CONTEXT WINAPI CertDuplicateCertificateContext(
  IN PCCERT_CONTEXT pCertContext
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки сертификатов , CertDuplicateCRLContext, CertDuplicateCertificateContext в MS CryptoAPI 2.0 World Wide Web link


CertFindCertificateInStore

Функция CertFindCertificateInStore находит первый или следующий контекст сертификата в хранилище сертификатов, который соответствует критерию поиска, определяемому параметром dwFindType и связанным с ним pvFindPara. Эта функция может быть использована в цикле для того, чтобы найти все сертификаты в хранилище сертификатов, удовлетворяющие заданному критерию поиска.

Аналогична описанию в CryptoAPI. Поддерживаются следующие dwFindType: CERT_FIND_ANY, CERT_FIND_MD5_HASH, CERT_FIND_SHA1_HASH, CERT_FIND_PROPERTY, CERT_FIND_PUBLIC_KEY, CERT_FIND_SUBJECT_NAME, CERT_FIND_ISSUER_NAME, CERT_FIND_SUBJECT_STR_A, CERT_FIND_ISSUER_STR_A, CERT_FIND_EXISTING, CERT_FIND_ENHKEY_USAGE.

Поддерживаются следующие dwFindFlags: CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG

WINCRYPT32API PCCERT_CONTEXT WINAPI CertFindCertificateInStore(
  IN HCERTSTORE hCertStore,
  IN DWORD dwCertEncodingType,
  IN DWORD dwFindFlags,
  IN DWORD dwFindType,
  IN const void * pvFindPara,
  IN PCCERT_CONTEXT pPrevCertContext
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки сертификатов , CertAddCertificateContextToStore, CertDuplicateCertificateContext, CertEnumCertificatesInStore, CertFreeCertificateContext, CertGetCertificateChain, CertFindCertificateInStore в MS CryptoAPI 2.0 World Wide Web link


CertDeleteCertificateFromStore

Функция CertDeleteCertificateFromStore удаляет определенный контекст сертификата из хранилища сертификатов.

Аналогична описанию в CryptoAPI

WINCRYPT32API BOOL WINAPI CertDeleteCertificateFromStore(
  IN PCCERT_CONTEXT pCertContext
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки сертификатов , CertDeleteCRLFromStore, CertFreeCertificateContext, CertDeleteCertificateFromStore в MS CryptoAPI 2.0 World Wide Web link


CertGetSubjectCertificateFromStore

Функция CertGetSubjectCertificateFromStore получает контекст сертификата из хранилища сертифика, однозначно определяемый его издателем и серийным номером

WINCRYPT32API PCCERT_CONTEXT WINAPI CertGetSubjectCertificateFromStore(
  IN HCERTSTORE hCertStore,
  IN DWORD dwCertEncodingType,
  IN PCERT_INFO pCertId
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки сертификатов , CertDuplicateCertificateContext, CertFreeCertificateContext, CertGetSubjectCertificateFromStore в MS CryptoAPI 2.0 World Wide Web link


Функции проверки цепочки сертификатов

Цепочки сертификатов могут быть построены для проверки достоверности информации об отдельных сертификатах. Эти функции создают и работают с цепочками сертификатов.

Функции | Описание
CertGetCertificateChain | Функция CertGetCertificateChain строит цепочку сертификатов, начиная с последнего сертификата, в обратном направлении до доверенного корневого сертификата, если это возможно.
CertFreeCertificateChain | Функция CertFreeCertificateChain освобождает цепочку сертификатов путем уменьшения счетчика ссылок.
CertVerifyCertificateChainPolicy | Функция CertVerifyCertificateChainPolicy проверяет цепочку сертификатов на достоверность, включая соответствие ее некоторому критерию истинности.
CertCreateCertificateChainEngine | Функция CertCreateCertificateChainEngine создает контекст HCERTCHAINENGINE который позволяет изменять параметры механизма построения цепочки сертификатов.
CertFreeCertificateChainEngine | Функция CertFreeCertificateChainEngine освобождает контекст HCERTCHAINENGINE.


CertGetCertificateChain

Функция CertGetCertificateChain строит цепочку сертификатов, начиная с последнего сертификата, в обратном направлении до доверенного корневого сертификата, если это возможно.

Аналогична описанию в CryptoAPI, за исключением того, что возвращается только лучшая цепочка (cChain <= 1). Кроме того при проверке цепочки в текущей версии не поддерживается поле TrustStatus.dwInfoStatus структуры CERT_TRUST_STATUS.

WINCRYPT32API BOOL WINAPI CertGetCertificateChain(
  IN OPTIONAL HCERTCHAINENGINE hChainEngine,
  IN PCCERT_CONTEXT pCertContext,
  IN OPTIONAL LPFILETIME pTime,
  IN OPTIONAL HCERTSTORE hAdditionalStore,
  IN PCERT_CHAIN_PARA pChainPara,
  IN DWORD dwFlags,
  IN LPVOID pvReserved,
  OUT PCCERT_CHAIN_CONTEXT * ppChainContext
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции проверки цепочки сертификатов , CertFreeCertificateChain, CertGetCertificateChain в MS CryptoAPI 2.0 World Wide Web link


CertFreeCertificateChain

Функция CertFreeCertificateChain освобождает цепочку сертификатов путем уменьшения счетчика ссылок. Если счетчик ссылок равен нулю, то память, выделенная под цепочку, освобождается.

Аналогична описанию в CryptoAPI

WINCRYPT32API VOID WINAPI CertFreeCertificateChain(
  IN PCCERT_CHAIN_CONTEXT pChainContext
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции проверки цепочки сертификатов , CertGetCertificateChain, CertFreeCertificateChain в MS CryptoAPI 2.0 World Wide Web link


CertVerifyCertificateChainPolicy

Функция CertVerifyCertificateChainPolicy проверяет цепочку сертификатов на достоверность, включая соответствие ее некоторому критерию истинности.

Аналогична описанию в CryptoAPI, за исключением того, что в pszPolicyOID поддерживаются только CERT_CHAIN_POLICY_BASE, CERT_CHAIN_POLICY_SSL, CPCERT_CHAIN_POLICY_PRIVATEKEY_USAGE_PERIOD

WINCRYPT32API BOOL WINAPI CertVerifyCertificateChainPolicy(
  IN LPCSTR pszPolicyOID,
  IN PCCERT_CHAIN_CONTEXT pChainContext,
  IN PCERT_CHAIN_POLICY_PARA pPolicyPara,
  IN OUT PCERT_CHAIN_POLICY_STATUS pPolicyStatus
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции проверки цепочки сертификатов , CertVerifyCertificateChainPolicy в MS CryptoAPI 2.0 World Wide Web link


CertCreateCertificateChainEngine

Функция CertCreateCertificateChainEngine создает контекст HCERTCHAINENGINE который позволяет изменять параметры механизма построения цепочки сертификатов. Позволяет ограничивать множество доверенных сертификатов.

Аналогична описанию в CryptoAPI

WINCRYPT32API BOOL WINAPI CertCreateCertificateChainEngine(
  IN PCERT_CHAIN_ENGINE_CONFIG pConfig,
  OUT HCERTCHAINENGINE * phChainEngine
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции проверки цепочки сертификатов , CertFreeCertificateChainEngine, MS_CertFreeCertificateChainEngine


CertFreeCertificateChainEngine

Функция CertFreeCertificateChainEngine освобождает контекст HCERTCHAINENGINE.

Аналогична описанию в CryptoAPI

WINCRYPT32API VOID WINAPI CertFreeCertificateChainEngine(
  IN HCERTCHAINENGINE hChainEngine
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции проверки цепочки сертификатов , CertCreateCertificateChainEngine, MS_CertCreateCertificateChainEngine


Функции расширенного использования ключа

Эти функции работают с расширенным использованием ключа соответствующего расширения или расширенных свойств сертификата. Расширенное использование ключа соответствующего расширения или расширенных свойств сертификата определяет и ограничивает правомерное использование сертификата. Расширения являются частью самого сертификата. Они устанавливаются автором сертификата и открыты только на чтение. Расширенные свойства сертификата являются значениями, ассоциированными с сертификатом, которые могут устанавливаться приложением.

Функции | Описание
CertGetEnhancedKeyUsage | Функция CertGetEnhancedKeyUsage получает информацию о расширенном использовании ключа из соответствующего расширения или из свойств сертификата.


CertGetEnhancedKeyUsage

Функция CertGetEnhancedKeyUsage получает информацию о расширенном использовании ключа из соответствующего расширения или из расширенных свойств сертификата. Расширенное использование ключа служит признаком правомерного использования сертификата.

Аналогична описанию в CryptoAPI, за исключением того, что dwFlags считается равным CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG

WINCRYPT32API BOOL WINAPI CertGetEnhancedKeyUsage(
  IN PCCERT_CONTEXT pCertContext,
  IN DWORD dwFlags,
  OUT PCERT_ENHKEY_USAGE pUsage,
  IN OUT DWORD * pcbUsage
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции расширенного использования ключа , CertGetEnhancedKeyUsage в MS CryptoAPI 2.0 World Wide Web link


Функции генерации и обмена ключа

Эти функции создают, обрабатывают и удаляют криптографические ключи. Они также используются для обмена ключами с другими пользователями.

Функции | Описание
CryptAcquireCertificatePrivateKey | Функция CryptAcquireCertificatePrivateKey получает дескриптор HCRYPTPROV и параметр dwKeySpec для определенного контекста сертификата.
CryptGenKey | Функция CryptGenKey создает случайный ключ.
CryptDeriveKey | Функция CryptDeriveKey создает ключ, получая его из пароля.
CryptDestroyKey | Функция CryptDestroyKey уничтожает ключ.
CryptSetKeyParam | Функция CryptSetKeyParam определяется параметры ключа.
CryptGetKeyParam | Функция CryptGetKeyParam получает параметры ключа.
CryptGenRandom | Функция CryptGenRandom генерит случайные данные.
CryptGetUserKey | Функция CryptGetUserKey получает ключ замены или ключ подписи.
CryptExportKey | Функция CryptExportKey пересылает ключ из CSP в ключевой BLOB пространства памяти приложения.
CryptImportKey | Функция CryptImportKey пересылает ключ из ключевого BLOB в CSP.
CryptDuplicateKey | Функция CryptDuplicateKey создает точную копию ключа и его состояния.


CryptAcquireCertificatePrivateKey

Функция CryptAcquireCertificatePrivateKey получает дескриптор HCRYPTPROV CSP , включая доступ к связанному с ним ключевому контейнеруи параметр dwKeySpec для определенного пользователем контекста сертификата. Эта функция используется для получения доступа к закрытому ключу пользователя, когда сертификат пользователя доступен, а дескриптор CSP с пользовательским ключевым контейнером не является доступным. Эту функцию может использовать только владелец закрытого ключа, а не любой пользователь.

Если дескриптор CSP и ключевой контейнер, содержащие закрытый ключ пользователя, являются доступными, то можно использовать функцию CryptGetUserKey.

WINCRYPT32API BOOL WINAPI CryptAcquireCertificatePrivateKey(
  IN PCCERT_CONTEXT pCert,
  IN DWORD dwFlags,
  IN void * pvReserved,
  OUT HCRYPTPROV * phCryptProv,
  OUT OPTIONAL DWORD * pdwKeySpec,
  OUT OPTIONAL BOOL * pfCallerFreeProv
);

Примечания

С помощью параметра dwFlags можно управлять кэшированием открываемого дескриптора криптопровайдера. При первом вызове функции:

Флаг | Описание
CRYPT_ACQUIRE_CACHE_FLAG | Дескриптор будет закэширован в свойстве CERT_KEY_CONTEXT_PROP_ID контекста сертификата.
CRYPT_ACQUIRE_USE_PROV_INFO_FLAG | Если в ссылке на ключ прописан флаг CERT_SET_KEY_CONTEXT_PROP_ID, дескриптор будет закэширован в свойстве CERT_KEY_CONTEXT_PROP_ID контекста сертификата.
При последующих вызовах функции, если указан один из флагов CRYPT_ACQUIRE_CACHE_FLAG, CRYPT_ACQUIRE_USE_PROV_INFO_FLAG, делается попытка получить дескриптор криптропровайдера из кэша. * pfCallerFreeProv выставляется в TRUE, если возвращенный дескриптор требует освобождения с помощью CryptReleaseContext

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции генерации и обмена ключа , CryptReleaseContext, CertSetCertificateContextProperty, CryptAcquireCertificatePrivateKey в MS CryptoAPI 2.0 World Wide Web link


CryptGenKey

Функция CryptGenKey случайным образом генерит криптографический сессионный ключ или ключевую пару закрытый ключ/открытый ключ. Дескриптор ключа или ключевой пары возвращается при помощи параметра phKey. Затем этот дескриптор может быть использован любой CryptoAPI функцией, для которой необходим дескриптор ключа.

Во время вызова этой функции, вызывающее ее приложение должно определять алгоритм. Поскольку тип алгоритма связан с ключом, то не существует необходимости определения приложением алгоритма после того, как все действительные криптографические операции завершены.

Аналогична описанию в CryptoAPI

WINADVAPI BOOL WINAPI CryptGenKey(
  HCRYPTPROV hProv,
  ALG_ID Algid,
  DWORD dwFlags,
  HCRYPTKEY * phKey
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции генерации и обмена ключа , CryptAcquireContextA, CryptDestroyKey, CryptExportKey, CryptGetKeyParam, CryptImportKey, CryptSetKeyParam, CryptGenKey в MS CryptoAPI 2.0 World Wide Web link


CryptDeriveKey

Функция CryptDeriveKey генерит криптографические сессионные ключи, получая их из исходных данных. Эта функция гарантирует, что когда используются одинаковые CSP и алгоритмы, то ключи, сгенерированные из одинаковых исходных данных, будут идентичны. В качестве исходных данных может выступать пароль или любая другая информация пользователя.

Данная функция похожа на функцию CryptGenKey, исключая то, что ключи генерятся не случайным образом, а из исходных данных. Функция CryptDeriveKey используется только для генерации сессионных ключей. Она не может генерит ключевые пары закрытый ключ/открытый ключ.

Дескриптор сессионного ключа возвращается при помощи параметра phKey. Этот дескриптор может быть использован любой CryptoAPI функцией, для которой необходим дескриптор ключа.

Аналогична описанию в CryptoAPI

WINADVAPI BOOL WINAPI CryptDeriveKey(
  HCRYPTPROV hProv,
  ALG_ID Algid,
  HCRYPTHASH hBaseData,
  DWORD dwFlags,
  HCRYPTKEY * phKey
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции генерации и обмена ключа , CryptAcquireContextA, CryptCreateHash, CryptDestroyHash, CryptDestroyKey, CryptExportKey, CryptGenKey, CryptGetKeyParam, CryptHashData, CryptHashSessionKey, CryptSetKeyParam, CryptDeriveKey в MS CryptoAPI 2.0 World Wide Web link


CryptDestroyKey

Функция CryptDestroyKey уничтожает дескриптор, ссылающийся на параметр hKey. После уничтожения дескриптора ключа, он становится недействительным и не может быть использован повторно.

Если дескриптор относится к сессионному ключу, или к открытому ключу, которой был импортирован в CSP с помощью функции CryptImportKey, то функция CryptDestroyKey удаляет ключ и освобождает память, отведенную под него. Многие CSP очищают память, в которой хранился ключ, перед ее освобождением. Однако, основные ключевые пары закрытый ключ/открытый ключ не уничтожаются этой функцией. Уничтожается только дескриптор.

Аналогична описанию в CryptoAPI

WINADVAPI BOOL WINAPI CryptDestroyKey(
  HCRYPTKEY hKey
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции генерации и обмена ключа , CryptDeriveKey, CryptGenKey, CryptGetUserKey, CryptImportKey, CryptDestroyKey в MS CryptoAPI 2.0 World Wide Web link


CryptSetKeyParam

Функция CryptSetKeyParam переделывает различные аспекты операций сессионного ключа. Значения, установленные этой функцией, не сохраняются в памяти и могут быть использованы только один раз.

КриптоПро CSP не позволяет установить ключевой материал долговременных ключевых пар или сессионных ключей явным образом.

Аналогична описанию в CryptoAPI

WINADVAPI BOOL WINAPI CryptSetKeyParam(
  HCRYPTKEY hKey,
  DWORD dwParam,
  CONST BYTE * pbData,
  DWORD dwFlags
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции генерации и обмена ключа , CryptGenKey, CryptGetKeyParam, CryptImportKey, CryptSetKeyParam в MS CryptoAPI 2.0 World Wide Web link


CryptGetKeyParam

Функция CryptGetKeyParam получает данные, которые управляют операциями ключа.

КриптоПро CSP не позволяет получить ключевой материал явным образом.

Аналогична описанию в CryptoAPI

WINADVAPI BOOL WINAPI CryptGetKeyParam(
  HCRYPTKEY hKey,
  DWORD dwParam,
  BYTE * pbData,
  DWORD * pdwDataLen,
  DWORD dwFlags
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции генерации и обмена ключа , CryptSetKeyParam, CryptGetKeyParam в MS CryptoAPI 2.0 World Wide Web link


CryptGenRandom

CryptGenRandom заполняет буфер случайными криптографическими байтами.

Аналогична описанию в CryptoAPI

WINADVAPI BOOL WINAPI CryptGenRandom(
  HCRYPTPROV hProv,
  DWORD dwLen,
  BYTE * pbBuffer
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции генерации и обмена ключа , CryptAcquireContextA, CryptGenKey, CryptSetKeyParam, CryptGenRandom в MS CryptoAPI 2.0 World Wide Web link


CryptGetUserKey

Функция CryptGetUserKey получает одну из двух пользовательских ключевых пар закрытый ключ/открытый ключ. Этой функцией может пользоваться только владелец ключевой пары закрытый ключ/открытый ключ, и только когда доступны дескриптор CSP и ассоциированный с ним ключевой контейнер. Если дескриптор CSP не доступен, но сертификат пользователя является доступным, можно воспользоваться функцией CryptAcquireCertificatePrivateKey.

Аналогична описанию в CryptoAPI

WINADVAPI BOOL WINAPI CryptGetUserKey(
  HCRYPTPROV hProv,
  DWORD dwKeySpec,
  HCRYPTKEY * phUserKey
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции генерации и обмена ключа , CryptAcquireContextA, CryptDestroyKey, CryptGenKey, CryptGetUserKey в MS CryptoAPI 2.0 World Wide Web link


CryptExportKey

Функция CryptExportKey экспортирует криптографический ключ или ключевую пару из CSP закрытым способом.

Дескриптор экспортированного ключа передается функции, функция в свою очередь возвращает ключевой BLOB. Этот ключевой BLOB может быть послан по открытому каналу или сохранен в открытом хранилище информации. Эта функция может экспортировать SChannel сессионные ключи, обычные сессионные ключи, открытые ключи или ключевые пары закрытый ключ/открытый ключ. Ключевой BLOB не может быть использован для экспорта до тех пор, пока запланированный получатель пользуется функцией CryptImportKey на этом ключевом BLOB для импорта ключа или ключевой пары в свой CSP.

Аналогична описанию в CryptoAPI

WINADVAPI BOOL WINAPI CryptExportKey(
  HCRYPTKEY hKey,
  HCRYPTKEY hExpKey,
  DWORD dwBlobType,
  DWORD dwFlags,
  BYTE * pbData,
  DWORD * pdwDataLen
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции генерации и обмена ключа , CryptImportKey, CryptExportKey в MS CryptoAPI 2.0 World Wide Web link


CryptImportKey

Функция CryptImportKey пересылает криптографический ключ из ключевого BLOB в CSP. Эта функция может быть использована для импорта SChannel сессионных ключей, обычных сессионных ключей, открытых ключей или ключевых пар закрытый ключ/открытый ключ. Для всего выше перечисленного, кроме открытых ключей, ключи или ключевые пары шифруются.

Аналогична описанию в CryptoAPI

WINADVAPI BOOL WINAPI CryptImportKey(
  HCRYPTPROV hProv,
  CONST BYTE * pbData,
  DWORD dwDataLen,
  HCRYPTKEY hPubKey,
  DWORD dwFlags,
  HCRYPTKEY * phKey
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции генерации и обмена ключа , CryptAcquireContextA, CryptDestroyKey, CryptExportKey, CryptImportKey в MS CryptoAPI 2.0 World Wide Web link


CryptDuplicateKey

Функция CryptDuplicateKey создает точную копию ключа и его состояния.

Аналогична описанию в CryptoAPI

WINADVAPI BOOL WINAPI CryptDuplicateKey(
  HCRYPTKEY hKey,
  DWORD * pdwReserved,
  DWORD dwFlags,
  HCRYPTKEY * phKey
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции генерации и обмена ключа , CryptDestroyKey, CryptSetKeyParam, CryptDuplicateKey в MS CryptoAPI 2.0 World Wide Web link


Функции работы с провайдером

Приложения используют функции провайдера для подключения или отключения криптопровайдера (CSP).

Функции | Описание
CryptGetProviderDll | Функция CryptGetProviderDll получает путь до разделяемой библиотеки указанного провайдера.
CryptAcquireContextA | Функция CryptAcquireContextA получает дескриптор используемого в данный момент ключевого контейнера, находящегося в определенном CSP.
CryptAcquireContextW | Функция CryptAcquireContextW получает дескриптор используемого в данный момент ключевого контейнера, находящегося в определенном CSP.
CryptReleaseContext | Функция CryptReleaseContext удаляет дескриптор, получаемый функцией CryptAcquireContextA.
CryptSetProvParam | Функция CryptSetProvParam определяет атрибуты CSP.
CryptGetProvParam | Функция CryptGetProvParam получает атрибуты CSP.


CryptGetProviderDll

WINADVAPI BOOL WINAPI CryptGetProviderDll(
  LPCTSTR pszProvName,
  LPTSTR pszProvPath,
  DWORD * pcbProvPath
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции работы с провайдером


CryptAcquireContextA

Функция CryptAcquireContextA используется для получения дескриптора определенного ключевого контейнера, находящегося в определенном CSP. Возвращаемый дескриптор используется при вызове CryptoAPI функций, пользующихся выбранным CSP.

На первом шаге функция CryptAcquireContextA пытается найти CSP с характеристиками, описанными параметрами dwProvType и pszProvider. Если такой CSP найден, то функция в нем пытается найти ключевой контейнер с именем, совпадающим с именем, определенным параметром pszContainer. Для получения контекста и ключевого контейнера закрытого ключа, ассоциированного с открытым ключом сертификата, необходимо использовать функцию CryptAcquireCertificatePrivateKey.

При соответствующей установке параметра dwFlags эта функция может создавать и уничтожать ключевые контейнеры, а также в случае, когда доступ к закрытому ключу не требуется, обеспечивать доступ к CSP с временным ключевым контейнером.

Поддерживает провайдер PROV_GOST_2001_DH. Принудительно устанавливает флаг CRYPT_SILENT.

WINADVAPI BOOL WINAPI CryptAcquireContextA(
  HCRYPTPROV * phProv,
  LPCSTR szContainer,
  LPCSTR szProvider,
  DWORD dwProvType,
  DWORD dwFlags
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции работы с провайдером , CryptGenKey, CryptGetProvParam, CryptReleaseContext, CryptAcquireContext в MS CryptoAPI 2.0 World Wide Web link


CryptAcquireContextW

Функция CryptAcquireContextW является unicode версией функции CryptAcquireContextA.

WINADVAPI BOOL WINAPI CryptAcquireContextW(
  HCRYPTPROV * phProv,
  LPCWSTR pwszContainer,
  LPCWSTR pwszProvider,
  DWORD dwProvType,
  DWORD dwFlags
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции работы с провайдером , CryptGenKey, CryptGetProvParam, CryptReleaseContext, CryptAcquireContext в MS CryptoAPI 2.0 World Wide Web link


CryptReleaseContext

Функция CryptReleaseContext освобождает дескриптор CSP и ключевой контейнер. При каждом вызове этой функции счетчик ссылок на CSP уменьшается на единицу. Когда счетчик ссылок обнуляется, контекст полностью освобождается и более не может быть использован ни одной функцией данного приложения.

Приложение вызывает эту функцию после завершения использования CSP. После вызова этой функции освобожденный дескриптор CSP становится более не действительным. Эта функция не уничтожает ключевые контейнеры и ключевые пары.

Аналогична описанию в CryptoAPI, но счетчик ссылок пока не поддерживается.

WINADVAPI BOOL WINAPI CryptReleaseContext(
  HCRYPTPROV hProv,
  DWORD dwFlags
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции работы с провайдером , CryptAcquireContextA, CryptDestroyKey, CryptDestroyHash, CryptReleaseContext в MS CryptoAPI 2.0 World Wide Web link


CryptSetProvParam

Функция CryptSetProvParam переделывает операции CSP. Как правило, эта функция используется для установки секретного дескриптора на ключевой контейнер, ассоциированный с CSP, для контроля доступа к закрытым ключам, содержащимся в этом контейнере.

Аналогична описанию в CryptoAPI

WINADVAPI BOOL WINAPI CryptSetProvParam(
  HCRYPTPROV hProv,
  DWORD dwParam,
  CONST BYTE * pbData,
  DWORD dwFlags
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции работы с провайдером , CryptAcquireContextA, CryptGetProvParam, CryptSetKeyParam, CryptSetProvParam в MS CryptoAPI 2.0 World Wide Web link


CryptGetProvParam

Функция CryptGetProvParam получает параметры, управляющие операциями CSP.

Аналогична описанию в CryptoAPI

WINADVAPI BOOL WINAPI CryptGetProvParam(
  HCRYPTPROV hProv,
  DWORD dwParam,
  BYTE * pbData,
  DWORD * pdwDataLen,
  DWORD dwFlags
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции работы с провайдером , CryptAcquireContextA, CryptCreateHash, CryptDeriveKey, CryptGenKey, CryptGetKeyParam, CryptSetProvParam, CryptGetProvParam в MS CryptoAPI 2.0 World Wide Web link


Функции обработки хеша и цифровой подписи

Описанные здесь функции используются для вычисления хешей, создания и проверки цифровых подписей.

Функции | Описание
CryptSetHashParam | Функция CryptSetHashParam устанавливает параметр объекта функции хеширования.
CryptGetHashParam | Функция CryptGetHashParam получает параметр объекта функции хеширования.
CryptCreateHash | Функция CryptCreateHash создает пустой объект функции хеширования.
CryptHashData | Функция CryptHashData осуществляет хеширования блока данных, добавляя его в определенный объект функции хеширования.
CryptHashSessionKey | Функция CryptHashSessionKey осуществляет хеширования сессионного ключя, добавляя его в определенный объект функции хеширования.
CryptDestroyHash | Функция CryptDestroyHash уничтожает объект функции хеширования.
CryptSignHashW | Функция CryptSignHashW подписывает определенный объект функции хеширования.
CryptSignHashA | Функция CryptSignHashA подписывает определенный объект функции хеширования.
CryptVerifySignatureW | Функция CryptVerifySignatureW проверяет электронно-цифровую подпись, заданную дескриптором объекта функции хеширования.
CryptVerifySignatureA | Функция CryptVerifySignatureA проверяет электронно-цифровую подпись, заданную дескриптором объекта функции хеширования.
CryptDuplicateHash | Функция CryptDuplicateHash дублирует объект функции хеширования.


CryptSetHashParam

Функция CryptSetHashParam переделывает операции объекта функции хеширования, включая установку начального содержимого хеша и выбор особенных алгоритмов хеширования.

Аналогична описанию в CryptoAPI

WINADVAPI BOOL WINAPI CryptSetHashParam(
  HCRYPTHASH hHash,
  DWORD dwParam,
  CONST BYTE * pbData,
  DWORD dwFlags
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки хеша и цифровой подписи , CryptCreateHash, CryptDestroyHash, CryptGetHashParam, CryptSetKeyParam, CryptSignHash, CryptSetHashParam в MS CryptoAPI 2.0 World Wide Web link


CryptGetHashParam

Функция CryptGetHashParam получает данные, управляющие операциями объекта функции хеширования. При использовании этой функции может быть получено действительное значение хеша.

Аналогична описанию в CryptoAPI

WINADVAPI BOOL WINAPI CryptGetHashParam(
  HCRYPTHASH hHash,
  DWORD dwParam,
  BYTE * pbData,
  DWORD * pdwDataLen,
  DWORD dwFlags
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки хеша и цифровой подписи , CryptCreateHash, CryptDestroyHash, CryptGetKeyParam, CryptHashData, CryptHashSessionKey, CryptSetHashParam, CryptGetHashParam в MS CryptoAPI 2.0 World Wide Web link


CryptCreateHash

Функция CryptCreateHash начинает хеширование потока данных. Она создает и возвращает вызвавшему ее приложению дескриптор объекта функции хеширования CSP. Этот дескриптор используется при дальнейших вызовах функций CryptHashData и CryptHashSessionKey при работе с сессионными ключами и другими потоками данных.

Аналогична описанию в CryptoAPI

WINADVAPI BOOL WINAPI CryptCreateHash(
  HCRYPTPROV hProv,
  ALG_ID Algid,
  HCRYPTKEY hKey,
  DWORD dwFlags,
  HCRYPTHASH * phHash
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки хеша и цифровой подписи , CryptAcquireContextA, CryptDeriveKey, CryptDestroyHash, CryptGetHashParam, CryptHashData, CryptHashSessionKey, CryptSetHashParam, CryptSignHash, CryptVerifySignature, CryptCreateHash в MS CryptoAPI 2.0 World Wide Web link


CryptHashData

Функция CryptHashData добавляет данные в определенный объект функции хеширования. Эта функция, а также функция CryptHashSessionKey могут быть вызваны несколько раз для вычисления хеша длинного или дискретного потока данных.

Перед вызовом этой функции необходимо вызвать функцию CryptCreateHash для создания дескриптора объекта функции хеширования.

Аналогична описанию в CryptoAPI

WINADVAPI BOOL WINAPI CryptHashData(
  HCRYPTHASH hHash,
  CONST BYTE * pbData,
  DWORD dwDataLen,
  DWORD dwFlags
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки хеша и цифровой подписи , CryptCreateHash, CryptHashSessionKey, CryptSignHash, CryptHashData в MS CryptoAPI 2.0 World Wide Web link


CryptHashSessionKey

Функция CryptHashSessionKey вычисляет криптографический хеш сессионного ключа. Эта функция может быть вызвана несколько раз с одиноковым дескриптором хеша для вычисления хеша нескольких ключей. Вызовы функции CryptHashSessionKey могут чередоваться с вызовами функции CryptHashData.

Перед вызовом этой функции необходимо вызвать функцию CryptCreateHash для создания дескриптора объекта функции хеширования.

Аналогична описанию в CryptoAPI

WINADVAPI BOOL WINAPI CryptHashSessionKey(
  HCRYPTHASH hHash,
  HCRYPTKEY hKey,
  DWORD dwFlags
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки хеша и цифровой подписи , CryptCreateHash, CryptGenKey, CryptHashData, CryptHashSessionKey в MS CryptoAPI 2.0 World Wide Web link


CryptDestroyHash

Функция CryptDestroyHash уничтожает объект функции хеширования, ссылающийся на параметр hHash. После того, как объект функции хеширования уничтожен, он не может польше использоваться.

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

Аналогична описанию в CryptoAPI

WINADVAPI BOOL WINAPI CryptDestroyHash(
  HCRYPTHASH hHash
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки хеша и цифровой подписи , CryptCreateHash, CryptHashData, CryptSignHash, CryptDestroyHash в MS CryptoAPI 2.0 World Wide Web link


CryptSignHashW

Функция CryptSignHashW является unicode версией функции CryptSignHashA.

WINADVAPI BOOL WINAPI CryptSignHashW(
  HCRYPTHASH hHash,
  DWORD dwKeySpec,
  LPCWSTR pwszDescription,
  DWORD dwFlags,
  BYTE * pbSignature,
  DWORD * pdwSigLen
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки хеша и цифровой подписи , CryptCreateHash, CryptDestroyHash, CryptHashData, CryptHashSessionKey, CryptVerifySignature, CryptSignHash в MS CryptoAPI 2.0 World Wide Web link


CryptSignHashA

Функция CryptSignHashA подписывает данные. Из-за того, что все алгоритмы электронно-цифровой подписи являются асимметричными, а поэтому медленными, CryptoAPI не разрешает подписывать данные напрямую. Вместо этого, данные сначала хешируются, а затем функция CryptSignHashA используется для подписи хеша.

Аналогична описанию в CryptoAPI

WINADVAPI BOOL WINAPI CryptSignHashA(
  HCRYPTHASH hHash,
  DWORD dwKeySpec,
  LPCSTR szDescription,
  DWORD dwFlags,
  BYTE * pbSignature,
  DWORD * pdwSigLen
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки хеша и цифровой подписи , CryptCreateHash, CryptDestroyHash, CryptHashData, CryptHashSessionKey, CryptVerifySignatureA, CryptSignHash в MS CryptoAPI 2.0 World Wide Web link


CryptVerifySignatureW

Функция CryptVerifySignatureW является unicode версией функции CryptVerifySignatureA.

WINADVAPI BOOL WINAPI CryptVerifySignatureW(
  HCRYPTHASH hHash,
  CONST BYTE * pbSignature,
  DWORD dwSigLen,
  HCRYPTKEY hPubKey,
  LPCWSTR pwszDescription,
  DWORD dwFlags
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки хеша и цифровой подписи , CryptCreateHash, CryptDestroyHash, CryptHashData, CryptHashSessionKey, CryptSignHashA, CryptVerifySignature в MS CryptoAPI 2.0 World Wide Web link


CryptVerifySignatureA

Функция CryptVerifySignatureA проверяет электронно-цифровую подпись объекта функции хеширования.

Перед вызовом этой функции необходимо вызвать функцию CryptCreateHash для создания дескриптора объекта функции хеширования. Затем необходимо вызвать функции CryptHashData и CryptHashSessionKey для добавления данных и сессионных ключей в объект функции хеширования.

После завершения работы функции CryptVerifySignatureA, может быть вызвана только функция CryptDestroyHash, использующая дескриптор hHash.

Аналогична описанию в CryptoAPI

WINADVAPI BOOL WINAPI CryptVerifySignatureA(
  HCRYPTHASH hHash,
  CONST BYTE * pbSignature,
  DWORD dwSigLen,
  HCRYPTKEY hPubKey,
  LPCSTR szDescription,
  DWORD dwFlags
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки хеша и цифровой подписи , CryptCreateHash, CryptDestroyHash, CryptHashData, CryptHashSessionKey, CryptSignHashA, CryptVerifySignature в MS CryptoAPI 2.0 World Wide Web link


CryptDuplicateHash

Функция CryptDuplicateHash создает точную копию хеша до точки, в которой выполнено дублирование. Продублированный хеш включает в себя состояние хеша.

Хеш может быть создан шаг за шагом. Функция CryptDuplicateHash может быть использована для создания различных хешей, содержимое которых разное, но начинается с одного и того же.

Аналогична описанию в CryptoAPI

WINADVAPI BOOL WINAPI CryptDuplicateHash(
  HCRYPTHASH hHash,
  DWORD * pdwReserved,
  DWORD dwFlags,
  HCRYPTHASH * phHash
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки хеша и цифровой подписи , CryptDestroyHash, CryptDuplicateHash в MS CryptoAPI 2.0 World Wide Web link


Функции зашифрования и расшифрования данных.

Описанные здесь функции поддерживают операции зашифрования и расшифрования. До вызова функций CryptEncrypt и CryptDecrypt необходимо получить криптографический ключ. Это можно осуществить при помощи функций CryptGenKey, CryptDeriveKey и CryptImportKey. Когда ключ создан, определяется алгоритм зашифрования. При помощи функции CryptSetKeyParam можно установить дополнительные параметры зашифрования.

Функции | Описание
CryptEncrypt | Функция CryptEncrypt зашифровывает блок исходного текста, используя определенный ключ зашифрования.
CryptDecrypt | Функция CryptDecrypt расшифровывает блок зашифрованного текста, используя определенный ключ расшифрования.


CryptEncrypt

Функция CryptEncrypt зашифровывает данные. Алгоритм, необходимый для зашифрования данных, определяется ключом, удерживаемым модулем CSP, и ссылается на параметр hKey.

Аналогична описанию в CryptoAPI

WINADVAPI BOOL WINAPI CryptEncrypt(
  HCRYPTKEY hKey,
  HCRYPTHASH hHash,
  BOOL Final,
  DWORD dwFlags,
  BYTE * pbData,
  DWORD * pdwDataLen,
  DWORD dwBufLen
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции зашифрования и расшифрования данных. , CryptCreateHash, CryptDecrypt, CryptGenKey, CryptGetHashParam, CryptGetKeyParam, CryptImportKey, CryptMsgOpenToEncode, CryptSignHash, CryptEncrypt в MS CryptoAPI 2.0 World Wide Web link


CryptDecrypt

Функция CryptDecrypt расшифровывает данные, предварительно зашифрованные при помощи функции CryptEncrypt.

Аналогична описанию в CryptoAPI

WINADVAPI BOOL WINAPI CryptDecrypt(
  HCRYPTKEY hKey,
  HCRYPTHASH hHash,
  BOOL Final,
  DWORD dwFlags,
  BYTE * pbData,
  DWORD * pdwDataLen
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции зашифрования и расшифрования данных. , CryptCreateHash, CryptEncrypt, CryptGenKey, CryptGetHashParam, CryptGetKeyParam, CryptImportKey, CryptMsgOpenToEncode, CryptSignHash, CryptVerifySignature, CryptDecrypt в MS CryptoAPI 2.0 World Wide Web link


Функции поддержки идентификатора объекта.

Эти функции обеспечивают поддержку идентификатора объекта.

Функции | Описание
CryptFindOIDInfo | Функция CryptFindOIDInfo использует определенный ключ для поиска информации об идентификаторе объекта.


CryptFindOIDInfo

Функция CryptFindOIDInfo получает первую предопределенную или зарегистрированную структуру CRYPT_OID_INFO, согласованную с определенным типом ключа и с ключом. Поиск может быть ограничен идентификаторами объекта, принадлежащими определенной группе идентификаторов объекта.

Добавление и удаление идентификатора объекта осуществляется редактированием файла config.ini.

Новые идентификаторы объекта помещаются в список зарегестрированных идентификаторов объекта либо до, либо после предопределенных включений. Из-за того, что функция CryptFindOIDInfo возвращает первое включение в список, согласованное с критерием поиска, только что зарегистрированный идентификатор объекта помещается перед перед предопределенным включением идентификатора объекта с некоторым ключом, заменяющим предопределенное включение.

Аналогична описанию в CryptoAPI Список зарегистрированных OIDов хранится в ключе настроек "\\config\\Cryptography\\OID\\EncodingType \\CryptDllFindOIDInfo\\". (Для ОС UNIX, \config\ хранится в файле /opt/CPROcsp/etc/config.ini)

WINCRYPT32API PCCRYPT_OID_INFO WINAPI CryptFindOIDInfo(
  IN DWORD dwKeyType,
  IN void * pvKey,
  IN DWORD dwGroupId
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции поддержки идентификатора объекта. , CryptFindOIDInfo в MS CryptoAPI 2.0 World Wide Web link


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

В пользовательском узле, через определенное время, может скопиться большое количество сертификатов. Обычно в узле храняться сертификаты пользователя узла, а также другие сертификаты, особенности и имена которых описываются тем, с кем пользователь взаимодействовал. Одно и то же имя может быть у разных сертификатов. Для каждого сертификата должна существовать цепочка проверки сертификатов, которая обеспечивает пошаговое возвращение к доверенному корневому сертификату. Хранилища сертификатов и относящиеся к ним функции обеспечивают функциональные возможности хранения, получения, перечисления, проверки и использования находящейся в хранилище информации.

Перечисленные ниже функции используются для работы с хранилищем сертификатов.

Функции | Описание
CertEnumSystemStore | Функция CertEnumSystemStore перечиляет существующие хранилища сертификатов.
CertOpenStore | Функция CertOpenStore открывает хранилище сертификатов, используя заданный тип провайдера.
CertControlStore | Функция CertControlStore позволяет подтягивать сертификаты из существующего хранилища в открытое.
CertDuplicateStore | Функция CertDuplicateStore дублирует дескриптор хранилища, увеличивая счетчик ссылок на единицу.
CertOpenSystemStoreA | Функция CertOpenSystemStoreA открывает системное хранилище сертификатов, основываясь на протоколе подсистемы.
CertOpenSystemStoreW | Функция CertOpenSystemStoreW открывает системное хранилище сертификатов, основываясь на протоколе подсистемы.
CertCloseStore | Функция CertCloseStore закрывает дескриптор хранилища.


CertEnumSystemStore

Аналогична описанию в CryptoAPI. Для параметра dwFlags поддерживются только флаги CERT_SYSTEM_STORE_CURRENT_USER и CERT_SYSTEM_STORE_LOCAL_MACHINE

WINCRYPT32API BOOL WINAPI CertEnumSystemStore(
  IN DWORD dwFlags,
  IN void * pvSystemStoreLocationPara,
  IN void * pvArg,
  IN PFN_CERT_ENUM_SYSTEM_STORE pfnEnum
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции работы c хранилищем сертификатов , CertEnumSystemStore


CertOpenStore

Функция CertOpenStore открывает хранилище сертификатов, используя заданный тип провайдера. В то время, как эта функция может открывать хранилище сертификатов с наибольшим количеством целей, функция CertOpenSystemStore предназначена для открытия наиболее часто используемых хранилищ. CertOpenStore требуется для более сложных действий и особых случаев.

Аналогична описанию в CryptoAPI. Для параметра lpszStoreProvider поддерживются только значения CERT_STORE_PROV_SYSTEM, CERT_STORE_PROV_PKCS7, CERT_STORE_PROV_MEMORY и CERT_STORE_PROV_COLLECTION. Для параметра dwFlags поддерживаются только флаги CERT_STORE_OPEN_EXISTING_FLAG, CERT_STORE_CREATE_NEW_FLAG, и CERT_STORE_READONLY_FLAG.

WINCRYPT32API HCERTSTORE WINAPI CertOpenStore(
  IN LPCSTR lpszStoreProvider,
  IN DWORD dwEncodingType,
  IN HCRYPTPROV hCryptProv,
  IN DWORD dwFlags,
  IN const void * pvPara
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции работы c хранилищем сертификатов , CertCloseStore, CertGetCertificateContextProperty, CertGetCRLContextProperty, CryptMsgOpenToDecode, CertOpenStore в MS CryptoAPI 2.0 World Wide Web link


CertControlStore

Аналогична описанию в CryptoAPI. Для параметра pvCtrlPara поддерживются только флаги CERT_STORE_CTRL_RESYNC и CERT_STORE_CTRL_AUTO_RESYNC

WINCRYPT32API BOOL WINAPI CertControlStore(
  IN HCERTSTORE hCertStore,
  IN DWORD dwFlags,
  IN DWORD dwCtrlType,
  IN const void * pvCtrlPara
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции работы c хранилищем сертификатов , CertControlStore


CertDuplicateStore

Функция CertDuplicateStore дублирует дескриптор хранилища, увеличивая счетчик ссылок на хранилища на единицу.

Аналогична описанию в CryptoAPI,

WINCRYPT32API HCERTSTORE WINAPI CertDuplicateStore(
  IN HCERTSTORE hCertStore
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции работы c хранилищем сертификатов , CertDuplicateStore в MS CryptoAPI 2.0 World Wide Web link


CertOpenSystemStoreA

Функция CertOpenSystemStoreA используется для открытия наиболее часто используемых хранилищ сертификатов. Для открытия хранилищ с более сложными требованиями, такими как файловые хранилища или хранилища памяти, необходимо использовать функцию CertOpenStore.

Аналогична описанию в CryptoAPI,

WINCRYPT32API HCERTSTORE WINAPI CertOpenSystemStoreA(
  IN HCRYPTPROV hProv,
  IN LPCSTR pszSubsystemProtocol
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции работы c хранилищем сертификатов , CertAddEncodedCertificateToStore, CertCloseStore, CertGetCertificateContextProperty, CertGetCRLContextProperty, CertOpenStore, CertOpenSystemStore в MS CryptoAPI 2.0 World Wide Web link


CertOpenSystemStoreW

Функция CertOpenSystemStoreW используется для открытия наиболее часто используемых хранилищ сертификатов. Для открытия хранилищ с более сложными требованиями, такими как файловые хранилища или хранилища памяти, необходимо использовать функцию CertOpenStore.

Аналогична описанию в CryptoAPI,

WINCRYPT32API HCERTSTORE WINAPI CertOpenSystemStoreW(
  IN HCRYPTPROV hProv,
  IN LPCWSTR pszSubsystemProtocol
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции работы c хранилищем сертификатов , CertAddEncodedCertificateToStore, CertCloseStore, CertGetCertificateContextProperty, CertGetCRLContextProperty, CertOpenStore, CertOpenSystemStore в MS CryptoAPI 2.0 World Wide Web link


CertCloseStore

Функция CertCloseStore закрывает дескриптор хранилища сертификатов и уменьшает счетчик ссылок на хранилища на единицу. Функцию CertCloseStore необходимо вызывать после каждого успешного вызова функций CertOpenStore и CertDuplicateStore.

Аналогична описанию в CryptoAPI, Поддерживается только dwFlags == CERT_CLOSE_STORE_FORCE_FLAG,

WINCRYPT32API BOOL WINAPI CertCloseStore(
  IN HCERTSTORE hCertStore,
  DWORD dwFlags
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции работы c хранилищем сертификатов , CertOpenStore, CertDuplicateStore, CertFreeCertificateContext, CertFreeCRLContext, CryptReleaseContext, CertCloseStore в MS CryptoAPI 2.0 World Wide Web link


Функции обработки данных

Следующие вспомогательные функции CryptoAPI используются для обработки данных и сертификатов.

Функции | Описание
CryptImportPublicKeyInfoEx | Функция CryptImportPublicKeyInfoEx преобразовывает и импортирует информацию об открытом ключе в провайдер и возвращает дескриптор открытого ключа. Дополнительные параметры (те, которые не устанавливаются функцией CryptImportPublicKeyInfo ) могут быть использованы вместо значений по умолчанию и добавлены в CERT_PUBLIC_KEY_INFO.
CryptImportPublicKeyInfo | Функция CryptImportPublicKeyInfo преобразовывает и импортирует информацию об открытом ключе в провайдер и возвращает дескриптор открытого ключа.
CryptExportPublicKeyInfoEx | Функция CryptExportPublicKeyInfoEx экспортирует информацию об открытом ключе, связанную с соответствующим секретным ключом провайдера. Эта фукция отличается от функции CryptExportPublicKeyInfo тем, что пользователь может устанавливать алгоритм открытого ключа, изменяя значения по умолчанию, предусмотренные CSP.
CryptExportPublicKeyInfo | Функция CryptExportPublicKeyInfo экспортирует информацию об открытом ключе, ассоциированную с соответствующим секретным ключом провайдера.
CertCompareCertificate | Функция CertCompareCertificate сравнивает два сертификата для того, чтобы определить, являются ли они идентичными.
CertCompareIntegerBlob | Функция CertCompareIntegerBlob сравнивает два целочисленных BLOBа.


CryptImportPublicKeyInfoEx

Функция CryptImportPublicKeyInfoEx импортирует информацию об открытом ключе в CSP и возвращает дескриптор открытого ключа. Дополнительные параметры, используемые вместо параметров по умолчанию, могут быть добавлены в структуру CERT_PUBLIC_KEY_INFO.

Аналогична описанию в CryptoAPI

WINCRYPT32API BOOL WINAPI CryptImportPublicKeyInfoEx(
  IN HCRYPTPROV hCryptProv,
  IN DWORD dwCertEncodingType,
  IN PCERT_PUBLIC_KEY_INFO pInfo,
  IN ALG_ID aiKeyAlg,
  IN DWORD dwFlags,
  IN OPTIONAL void * pvAuxInfo,
  OUT HCRYPTKEY * phKey
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки данных , CryptExportPublicKeyInfoEx, CryptImportPublicKeyInfoEx в MS CryptoAPI 2.0 World Wide Web link


CryptImportPublicKeyInfo

Функция CryptImportPublicKeyInfo преобразовывает и импортирует информацию об открытом ключе в провайдер и возвращает дескриптор открытого ключа. Функция CryptImportPublicKeyInfoEx является улучшенной версией этой функции.

Аналогична описанию в CryptoAPI

WINCRYPT32API BOOL WINAPI CryptImportPublicKeyInfo(
  IN HCRYPTPROV hCryptProv,
  IN DWORD dwCertEncodingType,
  IN PCERT_PUBLIC_KEY_INFO pInfo,
  OUT HCRYPTKEY * phKey
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки данных , CryptExportPublicKeyInfo, CryptImportPublicKeyInfo в MS CryptoAPI 2.0 World Wide Web link


CryptExportPublicKeyInfoEx

Функция CryptExportPublicKeyInfoEx экспортирует информацию об открытом ключе, связанную с соответствующим секретным ключом провайдера. Эта фукция позволяет устанавливать алгоритм открытого ключа, изменяя значения по умолчанию, предусмотренные CSP.

Аналогична описанию в CryptoAPI

WINCRYPT32API BOOL WINAPI CryptExportPublicKeyInfoEx(
  IN HCRYPTPROV hCryptProv,
  IN DWORD dwKeySpec,
  IN DWORD dwCertEncodingType,
  IN LPSTR pszPublicKeyObjId,
  IN DWORD dwFlags,
  IN OPTIONAL void * pvAuxInfo,
  OUT PCERT_PUBLIC_KEY_INFO pInfo,
  IN OUT DWORD * pcbInfo
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки данных , CryptImportPublicKeyInfoEx, CryptExportPublicKeyInfoEx в MS CryptoAPI 2.0 World Wide Web link


CryptExportPublicKeyInfo

Функция CryptExportPublicKeyInfo экспортирует информацию об открытом ключе, ассоциированную с соответствующим секретным ключом провайдера. Функция CryptExportPublicKeyInfoEx является улучшенной версией этой функции.

Аналогична описанию в CryptoAPI

WINCRYPT32API BOOL WINAPI CryptExportPublicKeyInfo(
  IN HCRYPTPROV hCryptProv,
  IN DWORD dwKeySpec,
  IN DWORD dwCertEncodingType,
  OUT PCERT_PUBLIC_KEY_INFO pInfo,
  IN OUT DWORD * pcbInfo
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки данных , CryptImportPublicKeyInfo, CryptExportPublicKeyInfo в MS CryptoAPI 2.0 World Wide Web link


CertCompareCertificate

Функция CertCompareCertificate сравнивает два сертификата для того, чтобы определить, являются ли они идентичными.

WINCRYPT32API BOOL WINAPI CertCompareCertificate(
  IN DWORD dwCertEncodingType,
  IN PCERT_INFO pCertId1,
  IN PCERT_INFO pCertId2
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки данных , CertCompareCertificate в MS CryptoAPI 2.0 World Wide Web link


CertCompareIntegerBlob

Функция CertCompareIntegerBlob сравнивает два целочисленных BLOBа для определения того, представляют ли они собой два равных числа. До начала сравнения самые старшие байты со значением 0х00 удаляются из положительного числа. Положительное число здесь означает, что самый старший бит в следующем ненулевом байте сброшен.

Самые старшие байты со значением 0хFF удаляются из отрицательного числа. Отрицательное число здесь означает, что самый старший бит в следующем байте, не содержащим значения 0хFF, установлен. Такие действия обеспечивают однозначное представление целого числа.

BOOL WINAPI CertCompareIntegerBlob(
  PCRYPT_INTEGER_BLOB pInt1,
  PCRYPT_INTEGER_BLOB pInt2
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции обработки данных , CertCompareIntegerBlob в MS CryptoAPI 2.0 World Wide Web link


Функции кодирования и декодирования криптографических обьектов.

Эти функции используются для кодирования и декодирования сертификатов, списков отозванных сертификатов (СОС) и запросов на сертификаты.

Функции | Описание
CryptDecodeObjectInternal | Функция CryptDecodeObject используется для декодирования криптографических обьектов.
CryptDecodeObjectEx | Функция CryptDecodeObjectEx используется для декодирования криптографических обьектов.
CryptEncodeObjectInternal | Функция CryptEncodeObject используется для кодирования криптографических обьектов.
CryptEncodeObjectEx | Функция CryptEncodeObjectEx используется для кодирования криптографических обьектов.


CryptDecodeObjectInternal

Функция CryptDecodeObject используются для декодирования сертификатов, списков отозванных сертификатов (СОС) и запросов на сертификаты.

Аналогична описанию в CryptoAPI.

BOOL CryptDecodeObjectInternal(
  IN DWORD dwCertEncodingType,
  IN LPCSTR lpszStructType,
  IN const BYTE * pbEncoded,
  IN DWORD cbEncoded,
  IN DWORD dwFlags,
  OUT void * pvStructInfo,
  IN OUT DWORD * pcbStructInfo
);

Аргументы

lpszStructType
Поддерживаемые OID:
  • szCPGUID_RSA_SMIMEaaSigningCertificateEncode
  • szCPGUID_RSA_SMIMEaaSigningCertificateV2Encode
  • szCPGUID_RSA_SMIMEaaETSotherSigCertEncode
  • szCPGUID_PRIVATEKEY_USAGE_PERIOD_Encode
  • RSA_CSP_PUBLICKEYBLOB
  • X509_CRL_DIST_POINTS
  • PKCS7_SIGNER_INFO
  • CMS_SIGNER_INFO
  • PKCS_ATTRIBUTE
  • X509_ISSUING_DIST_POINT
  • X509_CERT
  • X509_CERT_TO_BE_SIGNED
  • X509_CERT_CRL_TO_BE_SIGNED
  • X509_CERT_REQUEST_TO_BE_SIGNED
  • X509_NAME
  • X509_EXTENSIONS
  • X509_PUBLIC_KEY_INFO
  • X509_SEQUENCE_OF_ANY
  • X509_ALTERNATE_NAME
  • X509_KEY_USAGE
  • X509_CRL_REASON_CODE
  • szOID_SUBJECT_KEY_IDENTIFIER
  • X509_BASIC_CONSTRAINTS2
  • X509_ENHANCED_KEY_USAGE
  • X509_AUTHORITY_KEY_ID2
  • X509_CHOICE_OF_TIME
  • X509_NULL
  • X509_BOOLEAN
  • X509_ENCODED_BLOB
  • X509_OID
  • X509_OID_STRING
  • X509_NAME_VALUE
  • X509_NULL_TERMINATED_STRING
  • X509_NULL_TERMINATED_UNICODE_STRING
  • X509_OCTET_STRING||X509_UTF8STRING||X509_DATA_BLOB
  • X509_BITS
  • X509_ENUMERATED
  • X509_INTEGER
  • X509_MULTI_BYTE_INTEGER
  • X509_MULTI_BYTE_UINT
  • PKCS_UTC_TIME
  • X509_GENERALIZEDTIME
  • szCPOID_IssuerSignTool

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции кодирования и декодирования криптографических обьектов. , CryptEncodeObject, CryptEncodeObjectEx, CryptDecodeObjectEx CryptDecodeObject в MS CryptoAPI 2.0 World Wide Web link


CryptDecodeObjectEx

Функция CryptDecodeObjectEx используются для декодирования сертификатов, списков отозванных сертификатов (СОС) и запросов на сертификаты.

Аналогична описанию в CryptoAPI.

BOOL WINAPI CryptDecodeObjectEx(
  IN DWORD dwCertEncodingType,
  IN LPCSTR lpszStructType,
  IN const BYTE * pbEncoded,
  IN DWORD cbEncoded,
  IN DWORD dwFlags,
  IN OPTIONAL PCRYPT_DECODE_PARA pDecodePara,
  OUT OPTIONAL void * pvStructInfo,
  IN OUT DWORD * pcbStructInfo
);

Аргументы

lpszStructType
Поддерживаемые OID:
  • szCPGUID_RSA_SMIMEaaSigningCertificateEncode
  • szCPGUID_RSA_SMIMEaaSigningCertificateV2Encode
  • szCPGUID_RSA_SMIMEaaETSotherSigCertEncode
  • szCPGUID_PRIVATEKEY_USAGE_PERIOD_Encode
  • RSA_CSP_PUBLICKEYBLOB
  • X509_CRL_DIST_POINTS
  • PKCS7_SIGNER_INFO
  • CMS_SIGNER_INFO
  • PKCS_ATTRIBUTE
  • X509_ISSUING_DIST_POINT
  • X509_CERT
  • X509_CERT_TO_BE_SIGNED
  • X509_CERT_CRL_TO_BE_SIGNED
  • X509_CERT_REQUEST_TO_BE_SIGNED
  • X509_NAME
  • X509_EXTENSIONS
  • X509_PUBLIC_KEY_INFO
  • X509_SEQUENCE_OF_ANY
  • X509_ALTERNATE_NAME
  • X509_KEY_USAGE
  • X509_CRL_REASON_CODE
  • szOID_SUBJECT_KEY_IDENTIFIER
  • X509_BASIC_CONSTRAINTS2
  • X509_ENHANCED_KEY_USAGE
  • X509_AUTHORITY_KEY_ID2
  • X509_CHOICE_OF_TIME
  • X509_NULL
  • X509_BOOLEAN
  • X509_ENCODED_BLOB
  • X509_OID
  • X509_OID_STRING
  • X509_NAME_VALUE
  • X509_NULL_TERMINATED_STRING
  • X509_NULL_TERMINATED_UNICODE_STRING
  • X509_OCTET_STRING||X509_UTF8STRING||X509_DATA_BLOB
  • X509_BITS
  • X509_ENUMERATED
  • X509_INTEGER
  • X509_MULTI_BYTE_INTEGER
  • X509_MULTI_BYTE_UINT
  • PKCS_UTC_TIME
  • X509_GENERALIZEDTIME

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции кодирования и декодирования криптографических обьектов. , CryptEncodeObject, CryptEncodeObjectEx, CryptDecodeObject CryptDecodeObjectEx в MS CryptoAPI 2.0 World Wide Web link


CryptEncodeObjectInternal

Функция CryptEncodeObject используются для кодирования сертификатов, списков отозванных сертификатов (СОС) и запросов на сертификаты.

Аналогична описанию в CryptoAPI.

BOOL CryptEncodeObjectInternal(
  IN DWORD dwCertEncodingType,
  IN LPCSTR lpszStructType,
  IN const void * pvStructInfo,
  OUT BYTE * pbEncoded,
  IN OUT DWORD * pcbEncoded
);

Аргументы

lpszStructType
Поддерживаемые OID:
  • szCPGUID_RSA_SMIMEaaSigningCertificateEncode
  • szCPGUID_RSA_SMIMEaaSigningCertificateV2Encode
  • szCPGUID_RSA_SMIMEaaETSotherSigCertEncode
  • szCPGUID_PRIVATEKEY_USAGE_PERIOD_Encode
  • RSA_CSP_PUBLICKEYBLOB
  • X509_CRL_DIST_POINTS
  • X509_CERT
  • X509_CERT_TO_BE_SIGNED
  • X509_CERT_CRL_TO_BE_SIGNED
  • X509_CERT_REQUEST_TO_BE_SIGNED
  • X509_NAME
  • X509_EXTENSIONS
  • X509_SEQUENCE_OF_ANY
  • X509_PUBLIC_KEY_INFO
  • X509_ALTERNATE_NAME
  • X509_CRL_REASON_CODE
  • X509_CRL_DIST_POINTS
  • X509_ENHANCED_KEY_USAGE
  • X509_KEY_USAGE
  • X509_BASIC_CONSTRAINTS2
  • szOID_SUBJECT_KEY_IDENTIFIER
  • X509_AUTHORITY_KEY_ID
  • X509_AUTHORITY_KEY_ID2
  • X509_CHOICE_OF_TIME
  • PKCS_ATTRIBUTE
  • X509_NULL
  • X509_BITS
  • X509_BOOLEAN
  • X509_ENUMERATED
  • X509_INTEGER
  • X509_UTF8STRING
  • X509_OCTET_STRING
  • X509_MULTI_BYTE_INTEGER
  • X509_MULTI_BYTE_UINT
  • X509_ENCODED_BLOB
  • X509_NAME_VALUE
  • X509_DATA_BLOB
  • X509_NULL_TERMINATED_STRING
  • X509_OID
  • PKCS_UTC_TIME
  • X509_GENERALIZEDTIME
  • szCPOID_IssuerSignTool
  • X509_ALGORITHM_IDENTIFIER
  • X509_CERTIFICATE_TEMPLATE

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции кодирования и декодирования криптографических обьектов. , CryptDecodeObject, CryptDecodeObjectEx, CryptEncodeObjectEx CryptEncodeObject в MS CryptoAPI 2.0 World Wide Web link


CryptEncodeObjectEx

Функция CryptEncodeObjectEx используются для кодирования сертификатов, списков отозванных сертификатов (СОС) и запросов на сертификаты.

Аналогична описанию в CryptoAPI.

BOOL WINAPI CryptEncodeObjectEx(
  IN DWORD dwCertEncodingType,
  IN LPCSTR lpszStructType,
  IN const void * pvStructInfo,
  IN DWORD dwFlags,
  IN OPTIONAL PCRYPT_ENCODE_PARA pEncodePara,
  OUT void * pvEncoded,
  IN OUT DWORD * pcbEncoded
);

Аргументы

lpszStructType
Поддерживаемые OID:
  • szCPGUID_RSA_SMIMEaaSigningCertificateEncode
  • szCPGUID_RSA_SMIMEaaSigningCertificateV2Encode
  • szCPGUID_RSA_SMIMEaaETSotherSigCertEncode
  • szCPGUID_PRIVATEKEY_USAGE_PERIOD_Encode
  • RSA_CSP_PUBLICKEYBLOB
  • X509_CRL_DIST_POINTS
  • X509_CERT
  • X509_CERT_TO_BE_SIGNED
  • X509_CERT_CRL_TO_BE_SIGNED
  • X509_CERT_REQUEST_TO_BE_SIGNED
  • X509_NAME
  • X509_EXTENSIONS
  • X509_SEQUENCE_OF_ANY
  • X509_PUBLIC_KEY_INFO
  • X509_ALTERNATE_NAME
  • X509_CRL_REASON_CODE
  • X509_CRL_DIST_POINTS
  • X509_ENHANCED_KEY_USAGE
  • X509_KEY_USAGE
  • X509_BASIC_CONSTRAINTS2
  • szOID_SUBJECT_KEY_IDENTIFIER
  • X509_AUTHORITY_KEY_ID2
  • X509_CHOICE_OF_TIME
  • PKCS_ATTRIBUTE
  • X509_NULL
  • X509_BITS
  • X509_BOOLEAN
  • X509_ENUMERATED
  • X509_INTEGER
  • X509_UTF8STRING
  • X509_OCTET_STRING
  • X509_MULTI_BYTE_INTEGER
  • X509_MULTI_BYTE_UINT
  • X509_ENCODED_BLOB
  • X509_NAME_VALUE
  • X509_DATA_BLOB
  • X509_NULL_TERMINATED_STRING
  • X509_OID
  • PKCS_UTC_TIME
  • X509_GENERALIZEDTIME
dwFlags
Поддерживается только CRYPT_ENCODE_ALLOC_FLAG.

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции кодирования и декодирования криптографических обьектов. , CryptDecodeObject, CryptDecodeObjectEx, CryptEncodeObject CryptEncodeObjectEx в MS CryptoAPI 2.0 World Wide Web link


Низкоуровневые функции обработки криптографических сообщений

Низкоуровневые функции обработки криптографических сообщений обеспечивают необходимую функциональную возможность закодирования данных с целью пересылки и разкодирования полученных сообщений. Также обеспечена функциональная возможность расшифрования и проверки подписей полученных сообщений. В большинстве приложений не рекомендуется пользоваться низкоуровневыми функциями обработки криптографических сообщений. В большинстве приложений предпочтение отдается Высокоуровневые функции обработки криптографических сообщений , вызов одной из которых объединяет действие нескольких низкоуровневых функций.

Функции | Описание
CryptMsgCalculateEncodedLength | Функция CryptMsgCalculateEncodedLength вычисляет длину закодированного криптографического сообщения.
CryptMsgOpenToEncode | Функция CryptMsgOpenToEncode открывает криптографическое сообщение для закодирования.
CryptMsgOpenToDecode | Функция CryptMsgOpenToDecode открывает криптографическое сообщение для раскодирования.
CryptMsgUpdate | Функция CryptMsgUpdate обновляет текст криптографического сообщения.
CryptMsgGetParam | Функция CryptMsgGetParam получает параметр после закодирования или раскодирования криптографического сообщения.
CryptMsgControl | Функция CryptMsgControl выполняет определенную контрольную функцию после последнего вызова функции CryptMsgUpdate для закодированного или раскодированного криптографического сообщения.
CryptMsgClose | Функция CryptMsgClose закрывает дескриптор криптографичекого сообщения.
CryptMsgDuplicate | Функция CryptMsgDuplicate дублирует дескриптор криптографического сообщения путем увеличения счетчика ссылок. В счетчике ссылок имеется раздел, в котором хранится срок действия сообщения.


CryptMsgCalculateEncodedLength

Функция CryptMsgCalculateEncodedLength вычисляет максимальное количество байтов, необходимое для закодированного криптографического сообщения, заданного типом сообщения, параметрами кодирования и общей длиной информации, которая должна быть закодирована. Необходимо помнить, что полученный результат всегда будет превосходить или совпадать с действительно необходимым количеством байтов.

Для устранения конфликта с определением CMSG_DATA в системном заголовочном файле socket.h на Unix-системах, тип сообщения CMSG_DATA переименован в CMSG_CAPILITE_DATA. Если socket.h не используется, то можно определить CMSG_DATA как:

 #define CMSG_DATA CMSG_CAPILITE_DATA

При вычислении длины закодированного сообщения будет учитываться добавление дополнительных подписанных атрибутов (см. Особенности создания подписанных CMS сообщений в КриптоПро CSP 3.6 и выше ). На добавление атрибутов влияет параметр dwFlags. Параметр dwFlags может содержать дополнительные флаги, определённые в файле WinCryptEx.h:

Флаг | Описание
CPCMSG_CADES_DISABLE | Отключает добавление атрибутов. Данный флаг не может быть указан одновременно с CPCMSG_CADES_STRICT.
CPCMSG_CADES_STRICT | Если не удалось добавить атрибуты, функция вернёт ошибку. Данный флаг не может быть указан одновременно с CPCMSG_CADES_DISABLE.
CPCMSG_CADES_DISABLE_CERT_SEARCH | Отключает поиск сертификата подписывающего в хранилищах "Личные" ("My") текущего пользователя и локального компьютера.

WINCRYPT32API DWORD WINAPI CryptMsgCalculateEncodedLength(
  IN DWORD dwMsgEncodingType,
  IN DWORD dwFlags,
  IN DWORD dwMsgType,
  IN void const * pvMsgEncodeInfo,
  IN OPTIONAL LPSTR pszInnerContentObjID,
  IN DWORD cbData
);

Примечания

Поддерживаются только типы сообщений CMSG_HASHED и CMSG_SIGNED.

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Низкоуровневые функции обработки криптографических сообщений , Высокоуровневые функции обработки криптографических сообщений , CryptMsgOpenToEncode, CryptMsgCalculateEncodedLength в MS CryptoAPI 2.0 World Wide Web link


CryptMsgOpenToEncode

Функция CryptMsgOpenToEncode открывает криптографическое сообщение для закодирования и возвращает дескриптор открытого сообщения. Сообщение остается открытым до вызова функции CryptMsgClose.

Для устранения конфликта с определением CMSG_DATA в системном заголовочном файле socket.h на Unix-системах, тип сообщения CMSG_DATA переименован в CMSG_CAPILITE_DATA. Если socket.h не используется, то можно определить CMSG_DATA как:

 #define CMSG_DATA CMSG_CAPILITE_DATA

WINCRYPT32API HCRYPTMSG WINAPI CryptMsgOpenToEncode(
  IN DWORD dwMsgEncodingType,
  IN DWORD dwFlags,
  IN DWORD dwMsgType,
  IN void const * pvMsgEncodeInfo,
  IN OPTIONAL LPSTR pszInnerContentObjID,
  IN OPTIONAL PCMSG_STREAM_INFO pStreamInfo
);

Примечания

При открытии криптографического сообщения будут добавлены дополнительные подписанные атрибуты (см. Особенности создания подписанных CMS сообщений в КриптоПро CSP 3.6 и выше ). На добавление атрибутов влияет параметр dwFlags. Параметр dwFlags может содержать дополнительные флаги, определённые в файле WinCryptEx.h:

Флаг | Описание
CPCMSG_CADES_DISABLE | Отключает добавление атрибутов. Данный флаг не может быть указан одновременно с CPCMSG_CADES_STRICT.
CPCMSG_CADES_STRICT | Если не удалось добавить атрибуты, функция вернёт ошибку. Данный флаг не может быть указан одновременно с CPCMSG_CADES_DISABLE.
CPCMSG_CADES_DISABLE_CERT_SEARCH | Отключает поиск сертификата подписывающего в хранилищах "Личные" ("My") текущего пользователя и локального компьютера.

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Низкоуровневые функции обработки криптографических сообщений , Высокоуровневые функции обработки криптографических сообщений , CryptMsgClose, CryptMsgUpdate, CryptMsgGetParam, CryptMsgOpenToDecode, CryptMsgOpenToEncode в MS CryptoAPI 2.0 World Wide Web link


CryptMsgOpenToDecode

Функция CryptMsgOpenToDecode открывает криптографическое сообщение для раскодирования и возвращает дескриптор открытого сообщения. Сообщение остается открытым до вызова функции CryptMsgClose.

Для устранения конфликта с определением CMSG_DATA в системном заголовочном файле socket.h на Unix-системах, тип сообщения CMSG_DATA переименован в CMSG_CAPILITE_DATA. Если socket.h не используется, то можно определить CMSG_DATA как:

 #define CMSG_DATA CMSG_CAPILITE_DATA

WINCRYPT32API HCRYPTMSG WINAPI CryptMsgOpenToDecode(
  IN DWORD dwMsgEncodingType,
  IN DWORD dwFlags,
  IN DWORD dwMsgType,
  IN HCRYPTPROV hCryptProv,
  IN OPTIONAL PCERT_INFO pRecipientInfo,
  IN OPTIONAL PCMSG_STREAM_INFO pStreamInfo
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Низкоуровневые функции обработки криптографических сообщений , Высокоуровневые функции обработки криптографических сообщений , CryptMsgClose, CryptMsgUpdate, CryptMsgGetParam, CryptMsgOpenToEncode, CryptMsgOpenToDecode в MS CryptoAPI 2.0 World Wide Web link


CryptMsgUpdate

Функция CryptMsgUpdate пополняет текст криптографического сообщения. Использование этой функции позволяет строить криптографическое сообщение шаг за шагом путем повторных вызовов функции CryptMsgUpdate. Добавленный текст сообщения является либо закодированным, либо раскодированным в зависимости от того, было ли сообщение открыто функцией CryptMsgOpenToEncode или функцией CryptMsgOpenToDecode.

WINCRYPT32API BOOL WINAPI CryptMsgUpdate(
  IN HCRYPTMSG hCryptMsg,
  IN const BYTE * pbData,
  IN DWORD cbData,
  IN BOOL fFinal
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Низкоуровневые функции обработки криптографических сообщений , Высокоуровневые функции обработки криптографических сообщений , CryptMsgGetParam, CryptMsgOpenToEncode, CryptMsgOpenToDecode, CryptMsgUpdate в MS CryptoAPI 2.0 World Wide Web link


CryptMsgGetParam

Функция CryptMsgGetParam получает параметр сообщения после того, как криптографическое сообщение было раскодировано или закодировано. Эта функция вызывается после последнего вызова функции CryptMsgUpdate.

WINCRYPT32API BOOL WINAPI CryptMsgGetParam(
  IN HCRYPTMSG hCryptMsg,
  IN DWORD dwParamType,
  IN DWORD dwIndex,
  OUT void * pvData,
  IN OUT DWORD * pcbData
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Низкоуровневые функции обработки криптографических сообщений , Высокоуровневые функции обработки криптографических сообщений , CryptMsgUpdate, CryptMsgOpenToDecode, CryptMsgOpenToEncode, CryptMsgGetParam в MS CryptoAPI 2.0 World Wide Web link


CryptMsgControl

Функция CryptMsgControl выполняет контрольное действие после того, как сообщение было раскодировано последним вызовом функции CryptMsgUpdate. Контрольные операции, обеспеченные этой функцией, используются при расшифровании, проверке электронной подписи и хеша, а также при добавлении и удалении сертификатов, СОС, подписей и недостоверных атрибутов.

WINCRYPT32API BOOL WINAPI CryptMsgControl(
  IN HCRYPTMSG hCryptMsg,
  IN DWORD dwFlags,
  IN DWORD dwCtrlType,
  IN void const * pvCtrlPara
);

Примечания

При добавлении подписи при помощи функции CryptMsgControl в создаваемую подпись будут добавлены дополнительные подписанные атрибуты (см. Особенности создания подписанных CMS сообщений в КриптоПро CSP 3.6 и выше ). На добавление атрибутов влияет параметр dwFlags. Параметр dwFlags может содержать дополнительные флаги, определённые в файле WinCryptEx.h:

Флаг | Описание
CPCMSG_CADES_DISABLE | Отключает добавление атрибутов. Данный флаг не может быть указан одновременно с CPCMSG_CADES_STRICT.
CPCMSG_CADES_STRICT | Если не удалось добавить атрибуты, функция вернёт ошибку. Данный флаг не может быть указан одновременно с CPCMSG_CADES_DISABLE.
CPCMSG_CADES_DISABLE_CERT_SEARCH | Отключает поиск сертификата подписывающего в хранилищах "Личные" ("My") текущего пользователя и локального компьютера.

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Низкоуровневые функции обработки криптографических сообщений , Высокоуровневые функции обработки криптографических сообщений , CryptMsgControl в MS CryptoAPI 2.0 World Wide Web link


CryptMsgClose

Функция CryptMsgClose закрывает дескриптор криптографичекого сообщения. При каждом вызове этой функции счетчик ссылок уменьшается на единицу. Когда счетчик ссылок обнуляется, сообщение полностью уничтожается.

WINCRYPT32API BOOL WINAPI CryptMsgClose(
  IN HCRYPTMSG hCryptMsg
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Низкоуровневые функции обработки криптографических сообщений , Высокоуровневые функции обработки криптографических сообщений , CryptMsgOpenToEncode, CryptMsgOpenToDecode, CryptMsgClose в MS CryptoAPI 2.0 World Wide Web link


CryptMsgDuplicate

Функция CryptMsgDuplicate дублирует дескриптор криптографического сообщения путем увеличения счетчика ссылок.

WINCRYPT32API HCRYPTMSG WINAPI CryptMsgDuplicate(
  IN HCRYPTMSG hCryptMsg
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Низкоуровневые функции обработки криптографических сообщений , Высокоуровневые функции обработки криптографических сообщений , CryptMsgClose, CryptMsgDuplicate в MS CryptoAPI 2.0 World Wide Web link


Высокоуровневые функции обработки криптографических сообщений

Высокоуровневые функции обработки криптографических сообщений объединяют низкоуровневые CryptoAPI функции в одну функцию для выполнения определенной задачи.

Функции | Описание
CryptSignMessage | Функция CryptSignMessage подписывает сообщение.
CryptVerifyMessageSignature | Функция CryptVerifyMessageSignature проверяет подписанное сообщение.
CryptVerifyDetachedMessageSignature | Функция CryptVerifyDetachedMessageSignature проверяет подписанное сообщение, содержащее отсоединенную (detached) подпись или подписи.
CryptEncryptMessage | Функция CryptEncryptMessage зашифровывает сообщение для получателя или для получателей.
CryptDecryptMessage | Функция CryptDecryptMessage расшифровывает определенное сообщение.


CryptSignMessage

Функция CryptSignMessage создает хеш определенного содержания, подписывает хеш и затем производит закодирование и текста исходного сообщения, и подписанного хеша.

WINCRYPT32API BOOL WINAPI CryptSignMessage(
  IN PCRYPT_SIGN_MESSAGE_PARA pSignPara,
  IN BOOL fDetachedSignature,
  IN DWORD cToBeSigned,
  IN const BYTE * rgpbToBeSigned,
  IN DWORD rgcbToBeSigned,
  OUT BYTE * pbSignedBlob,
  IN OUT DWORD * pcbSignedBlob
);

Примечания

При создании электронной подписи при помощи функции CryptSignMessage в создаваемую подпись будут добавлены дополнительные подписанные атрибуты. (см. Особенности создания подписанных CMS сообщений в КриптоПро CSP 3.6 и выше ). На добавление атрибутов влияет параметр dwFlags. Параметр dwFlags может содержать дополнительные флаги, определённые в файле WinCryptEx.h:

Флаг | Описание
CPCRYPT_MESSAGE_CADES_DISABLE | Отключает добавление атрибутов. Данный флаг не может быть указан одновременно с CPCRYPT_MESSAGE_CADES_STRICT.
CPCRYPT_MESSAGE_CADES_STRICT | Если не удалось добавить атрибуты, функция вернёт ошибку. Данный флаг не может быть указан одновременно с CPCRYPT_MESSAGE_CADES_DISABLE.

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Высокоуровневые функции обработки криптографических сообщений , CryptVerifyMessageSignature, CryptSignMessage в MS CryptoAPI 2.0 World Wide Web link


CryptVerifyMessageSignature

Функция CryptVerifyMessageSignature проверяет электронно-цифровую подпись подписанного сообщения.

WINCRYPT32API BOOL WINAPI CryptVerifyMessageSignature(
  IN PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara,
  IN DWORD dwSignerIndex,
  IN const BYTE * pbSignedBlob,
  IN DWORD cbSignedBlob,
  OUT BYTE OPTIONAL * pbDecoded,
  IN OUT OPTIONAL DWORD * pcbDecoded,
  OUT OPTIONAL PCCERT_CONTEXT * ppSignerCert
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Высокоуровневые функции обработки криптографических сообщений , CryptVerifyDetachedMessageSignature, CryptSignMessage, CryptVerifyMessageSignature в MS CryptoAPI 2.0 World Wide Web link


CryptVerifyDetachedMessageSignature

Функция CryptVerifyDetachedMessageSignature проверяет подписанное сообщение, содержащее отсоединенную (detached) подпись или подписи.

WINCRYPT32API BOOL WINAPI CryptVerifyDetachedMessageSignature(
  IN PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara,
  IN DWORD dwSignerIndex,
  IN const BYTE * pbDetachedSignBlob,
  IN DWORD cbDetachedSignBlob,
  IN DWORD cToBeSigned,
  IN const BYTE * rgpbToBeSigned,
  IN DWORD rgcbToBeSigned,
  OUT OPTIONAL PCCERT_CONTEXT * ppSignerCert
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Высокоуровневые функции обработки криптографических сообщений , CryptVerifyMessageSignature, CryptVerifyDetachedMessageSignature в MS CryptoAPI 2.0 World Wide Web link


CryptEncryptMessage

Функция CryptEncryptMessage зашифровывает и производит закодирование сообщения.

WINCRYPT32API BOOL WINAPI CryptEncryptMessage(
  IN PCRYPT_ENCRYPT_MESSAGE_PARA pEncryptPara,
  IN DWORD cRecipientCert,
  IN PCCERT_CONTEXT rgpRecipientCert,
  IN const BYTE * pbToBeEncrypted,
  IN DWORD cbToBeEncrypted,
  OUT BYTE * pbEncryptedBlob,
  IN OUT DWORD * pcbEncryptedBlob
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Высокоуровневые функции обработки криптографических сообщений , CryptEncryptMessage в MS CryptoAPI 2.0 World Wide Web link


CryptDecryptMessage

Функция CryptDecryptMessage производит раскодирование и расшифрование сообщения.

WINCRYPT32API BOOL WINAPI CryptDecryptMessage(
  IN PCRYPT_DECRYPT_MESSAGE_PARA pDecryptPara,
  IN const BYTE * pbEncryptedBlob,
  IN DWORD cbEncryptedBlob,
  OUT OPTIONAL BYTE * pbDecrypted,
  IN OUT OPTIONAL DWORD * pcbDecrypted,
  OUT OPTIONAL PCCERT_CONTEXT * ppXchgCert
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Высокоуровневые функции обработки криптографических сообщений , CryptDecryptMessage в MS CryptoAPI 2.0 World Wide Web link


Функции поиска удаленного объекта

Эти функции позволяют пользователю получать объект инфрастуктуры открытых ключей по заданному URL.

Функции | Описание
CryptRetrieveObjectByUrlA | Функция CryptRetrieveObjectByUrlA получает объект инфрастуктуры открытых ключей по заданному URL.
CryptRetrieveObjectByUrlW | Функция CryptRetrieveObjectByUrlW получает объект инфрастуктуры открытых ключей по заданному URL.


CryptRetrieveObjectByUrlA

Функция CryptRetrieveObjectByUrlA получает объект инфрастуктуры открытых ключей по заданному URL.

Поддерживает значения pszObjectOid только CONTEXT_OID_CERTIFICATE и CONTEXT_OID_CRL. Из флагов поддерживаются только CRYPT_CACHE_ONLY_RETRIEVAL, CRYPT_WIRE_ONLY_RETRIEVAL, CRYPT_DONT_CACHE_RESULT, CRYPT_RETRIEVE_MULTIPLE_OBJECTS. Аргументы hAsyncRetrieve, pCredentials, pvVerify, pAuxInfo игнорируются.

WINCRYPT32API BOOL WINAPI CryptRetrieveObjectByUrlA(
  IN LPCSTR pszUrl,
  IN LPCSTR pszObjectOid,
  IN DWORD dwRetrievalFlags,
  IN DWORD dwTimeout,
  OUT LPVOID * ppvObject,
  IN HCRYPTASYNC hAsyncRetrieve,
  IN OPTIONAL PCRYPT_CREDENTIALS pCredentials,
  IN OPTIONAL LPVOID pvVerify,
  IN OPTIONAL PCRYPT_RETRIEVE_AUX_INFO pAuxInfo
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции поиска удаленного объекта , CryptRetrieveObjectByUrl в MS CryptoAPI 2.0 World Wide Web link


CryptRetrieveObjectByUrlW

Функция CryptRetrieveObjectByUrlW является unicode версией функции CryptRetrieveObjectByUrlA.

Поддерживает значения pszObjectOid только CONTEXT_OID_CERTIFICATE и CONTEXT_OID_CRL. Из флагов поддерживаются только CRYPT_CACHE_ONLY_RETRIEVAL, CRYPT_WIRE_ONLY_RETRIEVAL, CRYPT_DONT_CACHE_RESULT, CRYPT_RETRIEVE_MULTIPLE_OBJECTS. Аргументы hAsyncRetrieve, pCredentials, pvVerify, pAuxInfo игнорируются.

WINCRYPT32API BOOL WINAPI CryptRetrieveObjectByUrlW(
  IN LPCWSTR pwszUrl,
  IN LPCSTR pszObjectOid,
  IN DWORD dwRetrievalFlags,
  IN DWORD dwTimeout,
  OUT LPVOID * ppvObject,
  IN HCRYPTASYNC hAsyncRetrieve,
  IN OPTIONAL PCRYPT_CREDENTIALS pCredentials,
  IN OPTIONAL LPVOID pvVerify,
  IN OPTIONAL PCRYPT_RETRIEVE_AUX_INFO pAuxInfo
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции поиска удаленного объекта , CryptRetrieveObjectByUrl в MS CryptoAPI 2.0 World Wide Web link


Функции работы с PFX (PKCS#12) файлами

Эти функции позволяют экспоритовать сертификат и связанный ключ в PFX-формат и импортировать контейнеры из PFX-файлов.

Функции | Описание
PFXExportCertStore | Функция PFXExportCertStore экспортирует сертификаты из хранилища в PFX-блоб.
PFXImportCertStore | Функция PFXImportCertStore импортирует PFX блоб и возвращает хэндл временного хранилища, содержащего все сертификаты из PFX со ссылками на закрытые ключи (при их наличии).


PFXExportCertStore

Функция PFXExportCertStore получает на вход хранилище сертификатов и экспортирует все сертификаты из хранилища в PFX-блоб. При указании флага EXPORT_PRIVATE_KEYS и наличии ссылок на закрытые ключи, все они также будет экспортирован в PFX.

Для обратной операции импорта необходимо использовать PFXmportCertStore.

WINCRYPT32API BOOL WINAPI PFXExportCertStore(
  HCERTSTORE hStore,
  CRYPT_DATA_BLOB * pPFX,
  LPCWSTR szPassword,
  DWORD dwFlags
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции работы с PFX (PKCS#12) файлами , PFXmportCertStore


PFXImportCertStore

Функция PFXImportCertStore получает на вход блоб, содержащий PFX с произвольным количеством сертификатов и закрытых ключей, пароль от блоба и флаги; импортирует этот блоб в хранилище, возвращая хэндл этого хранилища.

Для обратной операции экспорта необходимо использовать PFXExportCertStore.

WINCRYPT32API HCERTSTORE WINAPI PFXImportCertStore(
  CRYPT_DATA_BLOB * pPFX,
  LPCWSTR szPassword,
  DWORD dwFlags
);

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Функции работы с PFX (PKCS#12) файлами , PFXExportCertStore


API запроса на сертификат

Обеспечивает создание запросов на сертификат в формате PKCS#10 и установку полученных сертификатов в формате PKCS#7.

Обеспечивает взаимодействие с:

  • КриптоПро УЦ 1.5;
  • Microsoft standalone CA;
  • Microsoft enterprise CA.

Структуры | Описание
UnixRequest | Общий интерфейс взаимодействия с УЦ (связь, получение параметров, передача запросов, ожидание и получение ответов).
UnixEnroll | Создание запросов на сертификат и установка полученных сертификатов.
CPEnroll | Создание запросов на сертификат и установка полученных сертификатов.
CPEnroll::UserCallbacks | Интерфейс запросов пользователя.
CSecureBufferT | Буфер с обнулением в деструкторе.
CPCA15Request::UnixRequest | Интерфейс запросов к УЦ на сертификат реализация для Standalone CA Реализация интерфеса взаимодействия с "КриптоПро УЦ 1.4/1.5".
CPCA20Request::UnixRequestImpl | Реализация интерфеса взаимодействия с "КриптоПро УЦ 2.0".
MSCAstdRequest::UnixRequest | Интерфейс запросов к УЦ на сертификат реализация для Standalone CAРеализация интерфеса взаимодействия с Microsoft Standalone CA.
Функции | Описание
GetRequestParams | Получить задаваемые УЦ параметры запроса на сертификат.
createRequest | Создать запрос сертификат.
acceptPKCS7 | Обработать PKCS#7 ответ от УЦ.
installPKCS7 | Установить сертификат или цепочку сертификатов PKCS#7.
SetSignerCertificate | Установить сертификат, на котором будет подписан запрос в PKCS#7.
Определения типов | Описание
CSecurePin | Буфер char с обнулением в деструкторе.
Перечисления | Описание
X509EnrollmentAuthFlags | Тип аутентификации с УЦ.
X509EnrollmentCheckChainFlags | Метод проверки аутентичности TLS соединения при первоначальном контакте с УЦ (у нас может не быть цепочки сертификатов и/или СОС).


CSecurePin

SecureBuffer.h libenroll.so

typedef CSecureBufferT<char> CSecurePin;

Примечания

Этот интерфейс более стабилен


X509EnrollmentAuthFlags

Тип аутентификации с УЦ.
enum X509EnrollmentAuthFlags {
  X509AuthNone = 0,
  X509AuthAnonymous = 1,
  X509AuthKerberos = 2,
  X509AuthUsername = 4,
  X509AuthCertificate = 8
};

Элементы перечисления:

X509AuthNone
Несуществующее значение
X509AuthAnonymous
Доступ без аутентификации
X509AuthKerberos
Не поддерживается
X509AuthUsername
Аутентификация по имени и паролю
X509AuthCertificate
Аутентификация по клиентскому сертификату


X509EnrollmentCheckChainFlags

Метод проверки аутентичности TLS соединения при первоначальном контакте с УЦ (у нас может не быть цепочки сертификатов и/или СОС).
enum X509EnrollmentCheckChainFlags {
  X509CC_None = 0,
  X509CC_TLS = 1,
  X509CC_NoHostNameCheck = 2,
  X509CC_NoCheck = 4
};

Элементы перечисления:

X509CC_None
Несуществующее значение
X509CC_TLS
Стандартная проверка TLS
X509CC_NoHostNameCheck
Битовый флаг - Не проверять DNS имя (адрес) УЦ. Только для методов GetCACertificate() и GetCAProperty()
X509CC_NoCheck
Битовый флаг - не проверять ничего. Только для методов GetCACertificate() и GetCAProperty()


GetRequestParams

HRESULT GetRequestParams(
  BSTR strConfig,
  BSTR strTemplate,
  BSTR * pstrRDN,
  BSTR * pstrEKUsage,
  DWORD * pKeySpec,
  std::vector< AttrTriple > * pAttrs
);

Аргументы

strConfig
[in] URL CA
strTemplate
[in] Имя шаблона
pstrRDN
[out] Различительное имя
pstrEKUsage
[out] Список расширенных использований ключа
pKeySpec
[out] KeySpec
pAttrs
[out] указатель на вектор троек: аргументы метода UnixEnroll::addExtensionToRequest
Коды возврата | Описание
S_OK | Успех
ERROR_MORE_DATA | Значение *plCntAttr было мало, возвращается необходимый размер

Примечания

Полученные BSTR строки должны быть освобождены функцией SysFreeString()


createRequest

HRESULT createRequest(
  LONG flags,
  BSTR rdn,
  BSTR usage,
  BSTR * request
);

Аргументы

flags
[in] Тип запроса на сертификат
rdn
[in] Различительное имя (DN) владельца ключа
usage
[in] Список OID расширенного использования ключа (Extended Key Usage (EKU))
request
[out] Запрос, закодированный в BASE64

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

S_OK - успешно

Примечания

Поддерживаются следующие типы запросов на сертификат:

  • XECR_PKCS10_V1_5
  • XECR_PKCS10_V2_0

Добавляет расширения заданные методом addExtensionToRequest()

Полученная BSTR строка запроса, должна быть освобождена функцией SysFreeString()


acceptPKCS7

HRESULT acceptPKCS7(
  BSTR msg
);

Аргументы

msg
[in] PKCS#7 сообщение, закодированное в BASE64, которое содержит сертификат или цепочку сертификатов соответствующую запросу

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

S_OK - успешно

Примечания

Цепочка сертификатов, как может содержать корневой сертификат, так и нет, в зависимости от политики конкретного УЦ. Сертификат, ссылающийся на созданный закрытый ключ из запроса, помещается в хранилище MY. Корневой сертификат помещается в хранилище ROOT, остальные сертификаты промежуточных УЦ помещаются в хранилище CA. Если в сообщение PKCS#7 встречается какой-либо корневой сертификат, то у пользователя запрашивается подтверждение. Пользователь может запретить установку самоподписанных сертификатов, которым он не доверяет по тем или иным причинам. Отказ пользователя в установке сертификатов в хранилище ROOT не вызывает отказа для всей операции.

По умолчанию используются хранилища: MY, CA, ROOT и REQUEST, однако пользователь может изменить имена с помощью следующих методов:

  • put_MyStoreName()


installPKCS7

Метод installPKCS7Ex в отличии от acceptPKCS7 не предназначен для установки сертификатов, выпущенных по запросу пользователя. Он предназанчен просто для установки сертификата или цепочки в стандартные хранилища сертификатов.

HRESULT installPKCS7(
  BSTR msg
);

Аргументы

msg
[in] PKCS#7 сообщение, закодированное в BASE64, которое содержит сертификат или цепочку
plCertEncoded
[out] число сертификатов, установленных в локальные хранилища
Коды возврата | Описание
S_OK | успешно
ERROR_CANCELLED | операция прервана пользователем

Примечания

Если в сообщение PKCS#7 встречается какой-либо корневой сертификат, то у пользователя запрашивается подтверждение на его установку.


SetSignerCertificate

HRESULT SetSignerCertificate(
  PCCERT_CONTEXT pSignerCert
);

Аргументы

pSignerCert
[in] Информация о сертификате
Коды возврата | Описание
S_OK | успешно


КриптоПро CAPILite: Класс UnixRequest

  • Титульная страница
  • Группы
  • Классы
  • Файлы
  • Описания
  • Классы
  • Иерархия классов
  • Члены классов

Класс UnixRequest
[API запроса на сертификат]

Общий интерфейс взаимодействия с УЦ (связь, получение параметров, передача запросов, ожидание и получение ответов). Подробнее...

#include <UnixRequest.h>

Полный список членов класса

Открытые типы

typedef std::map< std::string,
LONG > 		RequestMap
получить список идентификаторов запросов

Открытые члены

virtual HRESULT | SetCredential (UserCallbacks *pCallbacks, X509EnrollmentAuthFlags AuthType, X509EnrollmentCheckChainFlags CheckChainType, const BSTR strCredential, CSecurePin *sbPassword, BOOL UseLocalMachineCert=FALSE)=0
Устанавливает расширенные параметры метода аутентификации при взаимодействии с УЦ.
virtual HRESULT | GetRequestParams (BSTR strConfig, BSTR strTemplate, BSTR *pstrRDN, BSTR *pstrEKUsage, DWORD *pKeySpec, std::vector< AttrTriple > *pAttrs)
Получить задаваемые УЦ параметры запроса на сертификат.
virtual HRESULT | ListRequestsEx (BSTR strConfig, RequestMapEx &Requests, ReqType type=CA15Request)
получить расширенный список идентификаторов запросов
virtual HRESULT | GetRequest (LONG Flags, BSTR *pstrRequest)
Получить ранее отправленный запрос.
virtual HRESULT | Submit (LONG Flags, const BSTR strRequest, const BSTR strAttributes, const BSTR strConfig, LONG *pDisposition)=0
Отправить запрос на сертификат.
virtual HRESULT | RetrievePending (LONG RequestId, const BSTR strConfig, LONG *pDisposition)=0
Получить статус запроса.
virtual HRESULT | AcknowledgeInstallCert (LONG RequestId, const BSTR strConfig)
Подтвердить установку сертификата.
virtual HRESULT | GetLastStatus (LONG *pStatus)
Получить последний код завершения, полученный при обработке текущего запроса.
virtual HRESULT | GetRequestId (LONG *pRequestId)=0
Получить идентификатор текущего запроса.
virtual HRESULT | GetDispositionMessage (BSTR *pstrDispositionMessage)=0
Получить человекочитаемое сообщение для текущего статуса обработки запроса.
virtual HRESULT | GetCACertificate (LONG fExchangeCertificate, const BSTR strConfig, LONG Flags, BSTR *pstrCertificate)=0
Получить сертификат УЦ.
virtual HRESULT | GetCertificate (LONG Flags, BSTR *pstrCertificate)=0
Получить запрошенный сертификат УЦ.
virtual HRESULT | GetIssuedCertificate (const BSTR strConfig, LONG RequestId, const BSTR strSerialNumber, LONG *pDisposition)
Получить статус запроса.
virtual HRESULT | GetErrorMessageText (LONG hrMessage, LONG Flags, BSTR *pstrErrorMessageText)
Получить сообщение об ощибке для заданного кода возврата.
virtual HRESULT | RegisterUser (BSTR bstrConfig, void *pUserInfo)
Зарегистрировать пользователя.
virtual HRESULT | GetUserRegisterInfo (BSTR bstrConfig, void *pUserInfo)
Получить данные формы регистрации пользователя.
virtual HRESULT | GetUserRegisterStatus (BSTR bstrConfig, LONG *pUserRegisterId, LONG *pUserRegisterStatus)
Получить данные формы регистрации пользователя.
virtual HRESULT | GetCAProperty (const BSTR strConfig, LONG PropId, LONG PropIndex, LONG PropType, LONG Flags, VARIANT *pvarPropertyValue)=0
Возвращает свойства УЦ.
virtual HRESULT | GetCAPropertyFlags (const BSTR strConfig, LONG PropId, LONG *pPropFlags)
Возвращает формат свойства УЦ.
virtual HRESULT | GetCAPropertyDisplayName (const BSTR strConfig, LONG PropId, BSTR *pstrDisplayName)
Возвращает отображаемое имя свойства УЦ.
virtual HRESULT | GetFullResponseProperty (LONG PropId, LONG PropIndex, LONG PropType, LONG Flags, VARIANT *pvarPropertyValue)
Возвращает данные кэша, которые были получены из УЦ.
virtual HRESULT | SetCredential (LONG hWnd, X509EnrollmentAuthFlags AuthType, BSTR strCredential, BSTR strPassword)=0
Устанавливает параметры метода аутентификации при взаимодействии с УЦ.
virtual HRESULT | GetRequestIdString (BSTR *pstrRequestId)
Получить идентификатор текущего запроса в виде строки.
virtual HRESULT | GetIssuedCertificate2 (BSTR strConfig, BSTR strRequestId, BSTR strSerialNumber, LONG *pDisposition)
Получить статус запроса.
virtual HRESULT | GetRefreshPolicy (VARIANT_BOOL *pValue)
Получить признак обновления политики выпуска сертификатов клиента.

Открытые статические члены

static UnixRequest * | URFactory (const char *pszCA_type_name)
Конструктор объекта взаимодействия с УЦ.

Классы

class | UserCallbacks
Интерфейс запросов пользователя. Подробнее...

Подробное описание

Общий интерфейс взаимодействия с УЦ (связь, получение параметров, передача запросов, ожидание и получение ответов).

Является урезанным аналогом ICertRequest из Microsoft CryptoAPI.

Определения типов

typedef std::map<std::string,LONG> UnixRequest::RequestMap

получить список идентификаторов запросов

Аргументы:
strConfig | [in] URL CA
Requests | [out] карта идентификаторов запросов Второй параметр - Disposition

Методы

virtual HRESULT UnixRequest::AcknowledgeInstallCert | ( | LONG | RequestId,
 |  | const BSTR | strConfig |
 | ) |  |  | [inline, virtual]

Подтвердить установку сертификата.

Не поддерживается в текущей версии

Подтверждает установку сертификата и (при вызове через) TokenId закрывает токен

Аргументы:
RequestId | [in] Идентификатор запроса
strConfig | [in] Адрес центра, например "https://cpca.example.ru/UI"
Возвращает:
S_OK - в случае успеха
Заметки:
Возможные результаты подачи запроса:
  • CR_DISP_DENIED - Запрос отвергнут УЦ
  • CR_DISP_ERROR - Ошибочная подача запроса (требуется повторить)
  • CR_DISP_INCOMPLETE - Обработка запроса не завершена, получение будет возможно после завершения обработки
  • CR_DISP_ISSUED - Сертификат выдан (уже можно получать)
  • CR_DISP_ISSUED_OUT_OF_BAND - Сертификат выдан (будет выдан) непосредственно на УЦ, а не по сети
  • CR_DISP_UNDER_SUBMISSION - Сертификат находится в процессе выдачи, получение будет возможно после завершения обработки

virtual HRESULT UnixRequest::GetCACertificate | ( | LONG | fExchangeCertificate,
 |  | const BSTR | strConfig,
 |  | LONG | Flags,
 |  | BSTR * | pstrCertificate |
 | ) |  |  | [pure virtual]

Получить сертификат УЦ.

Аргументы:
fExchangeCertificate | [in] FALSE - получить сертификат подписи сертификатов УЦ, TRUE - получить сертификат шифрования, используемый для шифрования в адрес УЦ
strConfig | [in] Адрес центра, например "https://cpca.example.ru/UI"
Flags | [in] CR_OUT_BASE64HEADER|CR_OUT_CHAIN
pstrCertificate | [out] Сертификат
Возвращает:
S_OK - в случае успеха
Заметки:
Полученная BSTR строка должна быть освобождена функцией SysFreeString()

virtual HRESULT UnixRequest::GetCAProperty | ( | const BSTR | strConfig,
 |  | LONG | PropId,
 |  | LONG | PropIndex,
 |  | LONG | PropType,
 |  | LONG | Flags,
 |  | VARIANT * | pvarPropertyValue |
 | ) |  |  | [pure virtual]

Возвращает свойства УЦ.

Этот метод функционально идентичен методу ICertAdmin2::GetCAProperty Microsoft CryptoAPI, полное описание следует читать на msdn.microsoft.com.

Аргументы:
strConfig | [in] Адрес центра, например "https://cpca.example.ru/UI"
PropId [in] Ид. свойства. Поддерживаются:
  • CR_PROP_CASIGCERTCOUNT - кол-во ключей УЦ (LONG);
  • CR_PROP_CASIGCERTCHAIN - цепочка PropIndex ключа УЦ (BINARY);
  • CR_PROP_BASECRL - СОС PropIndex ключа УЦ (BINARY);
  • CR_PROP_DELTACRL - разностный СОС PropIndex ключа УЦ (BINARY);
  • CR_PROP_TEMPLATES - список шаблонов УЦ (STRING);
PropIndex | [in] Начиающийся с нуля идекс свойства;
PropType [in] Тип свойства. Поддерживаются:
  • PROPTYPE_LONG;
  • PROPTYPE_BINARY;
  • PROPTYPE_STRING;
Flags [in] Требуемый Форматсвойства. Поддерживаются:
  • CV_OUT_BASE64HEADER;
  • CV_OUT_BASE64REQUESTHEADER;
  • CV_OUT_BASE64X509CRLHEADER;
pvarPropertyValue | [out] Значение
Возвращает:
S_OK - в случае успеха
Заметки:
Полученная BSTR строка должна быть освобождена функцией SysFreeString()

virtual HRESULT UnixRequest::GetCAPropertyDisplayName | ( | const BSTR | strConfig,
 |  | LONG | PropId,
 |  | BSTR * | pstrDisplayName |
 | ) |  |  | [inline, virtual]

Возвращает отображаемое имя свойства УЦ.

Не поддерживается в текущей версии

Аргументы:
strConfig | [in] Адрес центра, например "https://cpca.example.ru/UI"
PropId | [in] Ид. свойства. Описание смотри UnixRequest::GetCAProperty и ICertAdmin2::GetCAProperty
pstrDisplayName | [out] Отображаемое имя
Возвращает:
S_OK - в случае успеха

virtual HRESULT UnixRequest::GetCAPropertyFlags | ( | const BSTR | strConfig,
 |  | LONG | PropId,
 |  | LONG * | pPropFlags |
 | ) |  |  | [inline, virtual]

Возвращает формат свойства УЦ.

Не поддерживается в текущей версии

Аргументы:
strConfig | [in] Адрес центра, например "https://cpca.example.ru/UI"
PropId | [in] Ид. свойства. Описание смотри UnixRequest::GetCAProperty и ICertAdmin2::GetCAProperty
pPropFlags | [out] Формат
Возвращает:
S_OK - в случае успеха

virtual HRESULT UnixRequest::GetCertificate | ( | LONG | Flags,
 |  | BSTR * | pstrCertificate |
 | ) |  |  | [pure virtual]

Получить запрошенный сертификат УЦ.

Аргументы:
Flags | [in] CR_OUT_BASE64HEADER|CR_OUT_CHAIN
pstrCertificate | [out] Сертификат
Возвращает:
S_OK - в случае успеха
Заметки:
Полученная BSTR строка должна быть освобождена функцией SysFreeString()

virtual HRESULT UnixRequest::GetDispositionMessage ( BSTR * pstrDispositionMessage ) [pure virtual]

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

Аргументы:
pstrDispositionMessage [out] Сообщение
Возвращает:
S_OK - в случае успеха
Заметки:
Полученная BSTR строка должна быть освобождена функцией SysFreeString()

virtual HRESULT UnixRequest::GetErrorMessageText | ( | LONG | hrMessage,
 |  | LONG | Flags,
 |  | BSTR * | pstrErrorMessageText |
 | ) |  |  | [inline, virtual]

Получить сообщение об ощибке для заданного кода возврата.

Не поддерживается в текущей версии

Аргументы:
hrMessage | [in] Код завершения
Flags | [in] Формат сообщения: Ноль (0) - только текст сообщения; CR_GEMT_HRESULT_STRING - дополнительно добавить код завершения в десятичном и шестнадцатиричном виде;
pstrErrorMessageText | [out] Сообщение
Возвращает:
S_OK - в случае успеха
Заметки:
Полученная BSTR строка должна быть освобождена функцией SysFreeString()

virtual HRESULT UnixRequest::GetFullResponseProperty | ( | LONG | PropId,
 |  | LONG | PropIndex,
 |  | LONG | PropType,
 |  | LONG | Flags,
 |  | VARIANT * | pvarPropertyValue |
 | ) |  |  | [inline, virtual]

Возвращает данные кэша, которые были получены из УЦ.

Не поддерживается в текущей версии

Аргументы:
PropId | [in] Ид. свойства
PropIndex | [in] Начиающийся с нуля идекс свойства
PropType | [in] Тип свойства
Flags | [in] Требуемый Формат свойства
pvarPropertyValue | [out] Значение
Возвращает:
S_OK - в случае успеха
Заметки:
Полученная BSTR строка должна быть освобождена функцией SysFreeString()

virtual HRESULT UnixRequest::GetIssuedCertificate | ( | const BSTR | strConfig,
 |  | LONG | RequestId,
 |  | const BSTR | strSerialNumber,
 |  | LONG * | pDisposition |
 | ) |  |  | [inline, virtual]

Получить статус запроса.

Не поддерживается в текущей версии

Предназначен для получения текущего статуса по номеру запроса или серийному номеру запрашиваемого сертификата.

Выполняет ту же работу, что и UnixRequest::RetrievePending(), с дополнительной возможностью опроса по серийному номеру сертификата.

Аргументы:
strConfig | [in] Адрес центра, например "https://cpca.example.ru/UI"
RequestId | [in] Идентификатор запроса
strSerialNumber | [in] Серийный номер сертификата, если RequestId == -1
pDisposition | [out] Текущий результат подачи запроса
Возвращает:
S_OK - в случае успеха
Заметки:
Возможные результаты подачи запроса:
  • CR_DISP_DENIED - Запрос отвергнут УЦ
  • CR_DISP_ERROR - Ошибочная подача запроса (требуется повторить)
  • CR_DISP_INCOMPLETE - Обработка запроса не завершена, получение будет возможно после завершения обработки
  • CR_DISP_ISSUED - Сертификат выдан (уже можно получать)
  • CR_DISP_ISSUED_OUT_OF_BAND - Сертификат выдан (будет выдан) непосредственно на УЦ, а не по сети
  • CR_DISP_UNDER_SUBMISSION - Сертификат находится в процессе выдачи, получение будет возможно после завершения обработки

virtual HRESULT UnixRequest::GetIssuedCertificate2 | ( | BSTR | strConfig,
 |  | BSTR | strRequestId,
 |  | BSTR | strSerialNumber,
 |  | LONG * | pDisposition |
 | ) |  |  | [inline, virtual]

Получить статус запроса.

Не поддерживается в текущей версии

Предназначен для получения текущего статуса, по номеру запроса или серийному номеру сертифката запрашиваемого сертификата.

Выполняет туже работу, что и UnixRequest::RetrievePending(), с дополнительной возможностью опроса по серийному номеру сертификата.

Аргументы:
strConfig | [in] Адрес центра, например "https://cpca.example.ru/UI"
strRequestId | [in] Идентификатор запроса в виде строки
strSerialNumber | [in] Серийный номер сертификата, если RequestId == -1. Состоит из чётного числа шестндцатиричных цифр, при необходимости может быть добавлено не более одно лидирующего нуля
pDisposition | [out] Текущий результат подачи запроса
Возвращает:
S_OK - в случае успеха
Заметки:
Возможные результаты подачи запроса:
  • CR_DISP_DENIED - Запрос отвергнут УЦ
  • CR_DISP_ERROR - Ошибочная подача запроса (требуется повторить)
  • CR_DISP_INCOMPLETE - Обработка запроса не завершена, получение будет возможно после завершения обработки
  • CR_DISP_ISSUED - Сертификат выдан (уже можно получать)
  • CR_DISP_ISSUED_OUT_OF_BAND - Сертификат выдан (будет выдан) непосредственно на УЦ, а не по сети
  • CR_DISP_UNDER_SUBMISSION - Сертификат находится в процессе выдачи, получение будет возможно после завершения обработки

virtual HRESULT UnixRequest::GetLastStatus ( LONG * pStatus ) [inline, virtual]

Получить последний код завершения, полученный при обработке текущего запроса.

Не поддерживается в текущей версии

GetLastStatus возвращает последний код возврата, не следует путать его с со статусом запроса.

Аргументы:
pStatus [out] Последний код возврата
Возвращает:
S_OK - в случае успеха

virtual HRESULT UnixRequest::GetRefreshPolicy ( VARIANT_BOOL * pValue ) [inline, virtual]

Получить признак обновления политики выпуска сертификатов клиента.

Не поддерживается в текущей версии

Аргументы:
pValue [out] Признак обновления
Возвращает:
S_OK - в случае успеха

virtual HRESULT UnixRequest::GetRequest | ( | LONG | Flags,
 |  | BSTR * | pstrRequest |
 | ) |  |  | [inline, virtual]

Получить ранее отправленный запрос.

Аргументы:
Flags | [in] Поддерживается только CR_OUT_HTML (необходим для печати)
pstrRequest | [out] Запрос
Возвращает:
S_OK - в случае успеха
Заметки:
Полученная BSTR строка должна быть освобождена функцией SysFreeString()

virtual HRESULT UnixRequest::GetRequestId ( LONG * pRequestId ) [pure virtual]

Получить идентификатор текущего запроса.

Аргументы:
pRequestId [out] Идентификатор запроса
Возвращает:
S_OK - в случае успеха

virtual HRESULT UnixRequest::GetRequestIdString ( BSTR * pstrRequestId ) [inline, virtual]

Получить идентификатор текущего запроса в виде строки.

Не поддерживается в текущей версии

Аргументы:
pstrRequestId [out] Идентификатор запроса
Возвращает:
S_OK - в случае успеха
Заметки:
Полученная BSTR строка должна быть освобождена функцией SysFreeString()

virtual HRESULT UnixRequest::GetUserRegisterInfo | ( | BSTR | bstrConfig,
 |  | void * | pUserInfo |
 | ) |  |  | [inline, virtual]

Получить данные формы регистрации пользователя.

Аргументы:
bstrConfig | [in] Адрес центра, например
pUserInfo | [in][out] Данные о пользователе зависят от типа УЦ
Возвращает:
S_OK - в случае успеха

virtual HRESULT UnixRequest::GetUserRegisterStatus | ( | BSTR | bstrConfig,
 |  | LONG * | pUserRegisterId,
 |  | LONG * | pUserRegisterStatus |
 | ) |  |  | [inline, virtual]

Получить данные формы регистрации пользователя.

Аргументы:
bstrConfig | [in] Адрес центра, например
pUserRegisterId | [out] ID запроса на регистрацию пользователя
pUserRegisterStatus | [out] Статус запроса на регистрацию пользователя В случае неуспеха в статус записываетя развернутый код ошибки Возможные варианты : CR_UNKNOWN_ERR - неизвестная ошибка CR_WRONG_PASS - указан неверный пароль CR_OLD_MARKER - просроченный маркер доступа CR_NOT_EXIST_MARKER - указан несуществующий маркер доступа CR_WRONG_MARKER_NAME - ошибка в имени маркера доступа
Возвращает:
S_OK - в случае успеха

virtual HRESULT UnixRequest::ListRequestsEx | ( | BSTR | strConfig,
 |  | RequestMapEx & | Requests,
 |  | ReqType | type = CA15Request |
 | ) |  |  | [inline, virtual]

получить расширенный список идентификаторов запросов

Аргументы:
strConfig | [in] URL CA
Requests | [out] карта идентификаторов запросов
type | [in] Тип запроса Второй параметр - Disposition

virtual HRESULT UnixRequest::RegisterUser | ( | BSTR | bstrConfig,
 |  | void * | pUserInfo |
 | ) |  |  | [inline, virtual]

Зарегистрировать пользователя.

Аргументы:
bstrConfig | [in] Адрес центра, например "https://cpca.example.ru/UI"
pUserInfo | [in] Данные о пользователе зависят от типа УЦ
Возвращает:
S_OK - в случае успеха

virtual HRESULT UnixRequest::RetrievePending | ( | LONG | RequestId,
 |  | const BSTR | strConfig,
 |  | LONG * | pDisposition |
 | ) |  |  | [pure virtual]

Получить статус запроса.

Не поддерживается в текущей версии

Предназначен для получения текущего статуса, если в предущий раз был получены статусы, либо CR_DISP_INCOMPLETE, либо CR_DISP_UNDER_SUBMISSION.

Аргументы:
RequestId | [in] Идентификатор запроса
strConfig | [in] Адрес центра, например "https://cpca.example.ru/UI"
pDisposition | [out] Текущий результат подачи запроса
Возвращает:
S_OK - в случае успеха
Заметки:
Возможные результаты подачи запроса:
  • CR_DISP_DENIED - Запрос отвергнут УЦ
  • CR_DISP_ERROR - Ошибочная подача запроса (требуется повторить)
  • CR_DISP_INCOMPLETE - Обработка запроса не завершена, получение будет возможно после завершения обработки
  • CR_DISP_ISSUED - Сертификат выдан (уже можно получать)
  • CR_DISP_ISSUED_OUT_OF_BAND - Сертификат выдан (будет выдан) непосредственно на УЦ, а не по сети
  • CR_DISP_UNDER_SUBMISSION - Сертификат находится в процессе выдачи, получение будет возможно после завершения обработки

virtual HRESULT UnixRequest::SetCredential | ( | LONG | hWnd,
 |  | X509EnrollmentAuthFlags | AuthType,
 |  | BSTR | strCredential,
 |  | BSTR | strPassword |
 | ) |  |  | [pure virtual]

Устанавливает параметры метода аутентификации при взаимодействии с УЦ.

Аргументы:
hWnd | [in] Дескриптор окна, на Unix не используется.
AuthType [in] Тип аутентификации:
  • X509AuthAnonymous - strCredential и sbPassword должны быть NULL;
  • X509AuthCertificate - используется сертификат клиента, SHA-1 Thumbprint которого задаётся в strCredential;
  • X509AuthKerberos - не поддерживается;
  • X509AuthUsername - по имени/ид.маркера и паролю/маркеру временного доступа;
strCredential | [in] имя пользователя, ид. маркера или Thumbprint клиентского сертификата (NULL, если не требуется)
strPassword | [in] Пароль или маркер временного доступа (NULL, если не требуется)
Возвращает:
S_OK - в случае успеха

virtual HRESULT UnixRequest::SetCredential | ( | UserCallbacks * | pCallbacks,
 |  | X509EnrollmentAuthFlags | AuthType,
 |  | X509EnrollmentCheckChainFlags | CheckChainType,
 |  | const BSTR | strCredential,
 |  | CSecurePin * | sbPassword,
 |  | BOOL | UseLocalMachineCert = FALSE |
 | ) |  |  | [pure virtual]

Устанавливает расширенные параметры метода аутентификации при взаимодействии с УЦ.

Аргументы:
pCallbacks | [in] Реализация зпросов к пользователю (NULL, если не требуется)
AuthType [in] Тип аутентификации:
  • X509AuthAnonymous - strCredential и sbPassword должны быть NULL;
  • X509AuthCertificate - используется сертификат клиента, SHA-1 Thumbprint которого задаётся в strCredential;
  • X509AuthKerberos - не поддерживается;
  • X509AuthUsername - по имени/ид.маркера и паролю/маркеру временного доступа;
CheckChainType | [in] Метод проверки сертификата TLS сервера УЦ
strCredential | [in] имя пользователя, ид. маркера (NULL, если не требуется или используется pCallbacks)
sbPassword | [in/out] Пароль или маркер временного доступа (NULL, если не требуется или используется pCallbacks)
UseLocalMachineCert | [in] использовать для аутентификации сертификат из хранилища локального компьютера вместо хранилища текущего пользователя (по умолчанию FALSE)
Возвращает:
S_OK - в случае успеха

virtual HRESULT UnixRequest::Submit | ( | LONG | Flags,
 |  | const BSTR | strRequest,
 |  | const BSTR | strAttributes,
 |  | const BSTR | strConfig,
 |  | LONG * | pDisposition |
 | ) |  |  | [pure virtual]

Отправить запрос на сертификат.

Аргументы:
Flags | [in] CR_IN_BASE64HEADER|CR_IN_PKCS10
strRequest | [in] Заданный запрос в заданном формате
strAttributes | [in] Дополнительные неподписанные атрибуты, прикладываемые к подаваемому запросу (не путать с атрибутами самого запроса PKCS#10)
strConfig | [in] Адрес центра, например "https://cpca.example.ru/UI"
pDisposition | [out] Результат подачи запроса
Возвращает:
S_OK - в случае успеха
Заметки:
Возможные результаты подачи запроса:
  • CR_DISP_DENIED - Запрос отвергнут УЦ
  • CR_DISP_ERROR - Ошибочная подача запроса (требуется повторить)
  • CR_DISP_INCOMPLETE - Обработка запроса не завершена
  • CR_DISP_ISSUED - Сертификат выдан (уже можно получать)
  • CR_DISP_ISSUED_OUT_OF_BAND - Сертификат выдан (будет выдан) непосредственно на УЦ, а не по сети
  • CR_DISP_UNDER_SUBMISSION - Сертификат находится в процессе выдачи, получение будет возможно после завершения обработки

static UnixRequest* UnixRequest::URFactory ( const char * pszCA_type_name ) [static]

Конструктор объекта взаимодействия с УЦ.

Аргументы:
pszCA_type_name [in] Название типа УЦ:
  • "CPCA15";
  • "MSCAstd";
  • "MSCAent" (TODO: в первой версии не поддерживается);
Возвращает:
Указатель на объект в случае успеха

Документация по КриптоПро CAPILite. Последние изменения: Thu Feb 22 00:10:20 2018. Создано системой doxygen 1.4.5-20051109


КриптоПро CAPILite: Класс UnixEnroll

  • Титульная страница
  • Группы
  • Классы
  • Файлы
  • Описания
  • Классы
  • Иерархия классов
  • Члены классов

Класс UnixEnroll
[API запроса на сертификат]

Создание запросов на сертификат и установка полученных сертификатов. Подробнее...

#include <UnixEnroll.h>

Полный список членов класса

Открытые члены

UnixEnroll (const CPEnroll::UserCallbacks &callbacks, bool handlePKCS7=false)
Конструктор.
~UnixEnroll ()
Деструктор.
virtual HRESULT | put_EnableSMIMECapabilities (bool value)
Установить атрибуты S/MIME в запрос PKCS#10 (не реализовано).
virtual HRESULT | put_UseExistingKeySet (bool value)
Использовать существующий ключ в контейнере (не реализовано).
virtual HRESULT | put_ContainerName (BSTR cName)
Задать имя контейнера.
virtual HRESULT | put_ProviderType (DWORD pType)
Задать тип CSP для создания ключа.
virtual HRESULT | put_ProviderName (BSTR pName)
Задать имя CSP для создания ключа.
virtual HRESULT | put_GenKeyFlags (DWORD keyFlags)
Задать свойства закрытого ключа.
virtual HRESULT | put_RequestStoreFlags (DWORD storeFlags)
Задать хранилище запроса и флаги его открытия.
virtual HRESULT | put_ProviderFlags (DWORD provFlags)
Задать флаги открытия CSP.
virtual HRESULT | put_KeySpec (DWORD _dwKeySpec)
Задать тип закрытого ключа.
virtual HRESULT | put_LimitExchangeKeyToEncipherment (int value)
Задать ограничения ключа AT_KEYEXCHANGE.
virtual HRESULT | put_CAStoreFlags (DWORD flags)
Задать хранилище промежуточных УЦ и флаги его открытия.
virtual HRESULT | put_MyStoreFlags (DWORD flags)
Задать хранилище сертификатов пользователя и флаги его открытия.
virtual HRESULT | put_RootStoreFlags (DWORD flags)
Задать доверенное хранилище корневых сертификатов и флаги его открытия.
virtual HRESULT | put_MyStoreName (BSTR name)
Задать имя хранилища сертификатов пользователя.
virtual HRESULT | put_DeleteRequestCert (bool value)
Требуется ли удалять псевдосертификат в хранилище запросов на сертификат.
virtual HRESULT | put_WriteCertToCSP (bool value)
Требуется ли устанавливать сертификат в ключевой контейнер.
virtual HRESULT | put_PIN (const CSecurePin &pin)
Задать PIN (пароль) контейнера.
virtual HRESULT | put_SupressAddRootUI (bool value)
Не запрашивать подтверждения при установке корневого сертификата в хранилище доверенных сертификатов.
virtual HRESULT | addExtensionToRequest (LONG flags, BSTR name, BSTR value)
Добавить расширение в запрос на сертификат.
virtual HRESULT | get_InstallToContainerStatus (DWORD *pdwStatus)
Возвращает код ошибки при установке сертификата в контейнер.
virtual HRESULT | createPKCS10 (BSTR rdn, BSTR usage, BSTR *request)
Создать запрос PKCS#10.
virtual HRESULT | createRequest (LONG flags, BSTR rdn, BSTR usage, BSTR *request)
Создать запрос сертификат.
virtual HRESULT | acceptPKCS7 (BSTR msg)
Обработка PKCS#7 ответа от УЦ.
virtual HRESULT | installPKCS7 (BSTR msg)
Установить сертификат или цепочку сертификатов PKCS#7.
HRESULT | installPKCS7Ex (BSTR msg, LONG *plCertInstalled)
Установить сертификат или цепочку сертификатов PKCS#7.

Подробное описание

Создание запросов на сертификат и установка полученных сертификатов.

Является урезанным аналогом ICertEnroll из Microsoft CryptoAPI.

Конструктор(ы)

UnixEnroll::UnixEnroll | ( | const CPEnroll::UserCallbacks & | callbacks,
 |  | bool | handlePKCS7 = false
 | ) |  |

Конструктор.

Аргументы:
callbacks | [in] Функции запроса у пользователя
handlePKCS7 | [in] В данной версии не используется

Методы

HRESULT UnixEnroll::acceptPKCS7 ( BSTR msg ) [virtual]

Обработка PKCS#7 ответа от УЦ.

Аргументы:
msg [in] PKCS#7 сообщение, закодированное в BASE64. Содержит сертификат или цепочку сертификатов, соответствующую запросу
Возвращает:
S_OK - успешно
Заметки:
Цепочка сертификатов, как может содержать корневой сертификат, так и нет, в зависимости от политики конкретного УЦ. Сертификат, ссылающийся на созданный закрытый ключ из запроса, помещается в хранилище MY. Корневой сертификат помещается в хранилище ROOT, остальные сертификаты промежуточных УЦ помещаются в хранилище CA. Если в сообщение PKCS#7 встречается какой-либо корневой сертификат, то у пользователя запрашивается подтверждение. Пользователь может запретить установку самоподписанных сертификатов, которым он не доверяет по тем или иным причинам. Отказ пользователя в установке сертификатов в хранилище ROOT не вызывает отказа для всей операции.

По умолчанию используются хранилища: MY, CA, ROOT и REQUEST, однако пользователь может изменить имена с помощью следующих методов:

  • put_MyStoreName()

virtual HRESULT UnixEnroll::addExtensionToRequest | ( | LONG | flags,
 |  | BSTR | name,
 |  | BSTR | value |
 | ) |  |  | [inline, virtual]

Добавить расширение в запрос на сертификат.

Аргументы:
flags | [in] Является ли расширение критичным (critical)
name | [in] OID расширения
value | [in] Расширение, закодированное в BASE64
Возвращает:
S_OK - успешно
Заметки:
Метод createRequest() добавляет расширения в запрос, а метод createPKCS10() нет.

virtual HRESULT UnixEnroll::createPKCS10 | ( | BSTR | rdn,
 |  | BSTR | usage,
 |  | BSTR * | request |
 | ) |  |  | [inline, virtual]

Создать запрос PKCS#10.

Аргументы:
rdn | [in] Уникальное имя (DN) владельца ключа
usage | [in] Список OID расширенного использования ключа (Extended Key Usage (EKU))
request | [out] Запрос, закодированный в BASE64
Возвращает:
S_OK - успешно
Заметки:
Игнорирует расширения, заданные методом addExtensionToRequest()

Полученная BSTR строка запроса должна быть освобождена функцией SysFreeString()

virtual HRESULT UnixEnroll::createRequest | ( | LONG | flags,
 |  | BSTR | rdn,
 |  | BSTR | usage,
 |  | BSTR * | request |
 | ) |  |  | [inline, virtual]

Создать запрос сертификат.

Аргументы:
flags | [in] Тип запроса на сертификат
rdn | [in] Уникальное имя (DN) владельца ключа
usage | [in] Список OID расширенного использования ключа (Extended Key Usage (EKU))
request | [out] Запрос, закодированный в BASE64
Возвращает:
S_OK - успешно
Заметки:
Поддерживаются следующие типы запросов на сертификат:
  • XECR_PKCS10_V1_5
  • XECR_PKCS10_V2_0

Добавляет расширения, заданные методом addExtensionToRequest()

Полученная BSTR строка запроса должна быть освобождена функцией SysFreeString()

virtual HRESULT UnixEnroll::get_InstallToContainerStatus ( DWORD * pdwStatus ) [inline, virtual]

Возвращает код ошибки при установке сертификата в контейнер.

Аргументы:
pdwStatus [out] код ошибки при установке сертификата в контейнер
Возвращаемые значения:
S_OK | успешно (в pdwStatus скопирован код ошибки)
E_INVALIDARG | pdwStatus был не задан (==NULL)

HRESULT UnixEnroll::installPKCS7 ( BSTR msg ) [virtual]

Установить сертификат или цепочку сертификатов PKCS#7.

Метод installPKCS7 в отличии от acceptPKCS7 не предназначен для установки сертификатов, выпущенных по запросу пользователя. Он предназанчен просто для установки сертификата или цепочки в стандартные хранилища сертификатов.

Аргументы:
msg [in] PKCS#7 сообщение, закодированное в BASE64, которое содержит сертификат или цепочку
Возвращаемые значения:
S_OK | успешно
ERROR_CANCELLED | операция прервана пользователем
Заметки:
Если в сообщение PKCS#7 встречается какой-либо корневой сертификат, то у пользователя запрашивается подтверждение на его установку.

HRESULT UnixEnroll::installPKCS7Ex | ( | BSTR | msg,
 |  | LONG * | plCertInstalled
 | ) |  |

Установить сертификат или цепочку сертификатов PKCS#7.

Метод installPKCS7Ex в отличии от acceptPKCS7 не предназначен для установки сертификатов, выпущенных по запросу пользователя. Он предназанчен просто для установки сертификата или цепочки в стандартные хранилища сертификатов.

Аргументы:
msg | [in] PKCS#7 сообщение, закодированное в BASE64, которое содержит сертификат или цепочку
plCertInstalled | [out] число сертификатов, установленных в локальные хранилища
Возвращаемые значения:
S_OK | успешно
ERROR_CANCELLED | операция прервана пользователем
Заметки:
Если в сообщение PKCS#7 встречается какой-либо корневой сертификат, то у пользователя запрашивается подтверждение на его установку.

virtual HRESULT UnixEnroll::put_CAStoreFlags ( DWORD flags ) [inline, virtual]

Задать хранилище промежуточных УЦ и флаги его открытия.

Значение по умолчанию CERT_SYSTEM_STORE_CURRENT_USER.

Аргументы:
flags [in] Флаги открытия хранилища.
Возвращает:
S_OK - в случае успеха
Заметки:
Для Unix систем допустимые значения хранилищ:
  • CERT_SYSTEM_STORE_CURRENT_USER
  • CERT_SYSTEM_STORE_LOCAL_MACHINE
Описания дополнительных флагов открытия хранилища смотри в описании CertOpenStore().

virtual HRESULT UnixEnroll::put_ContainerName ( BSTR cName ) [inline, virtual]

Задать имя контейнера.

Если имя контейнера не задано, то оно генерируется как случайный GUID.

Аргументы:
cName [in] Имя контейнера.
Возвращает:
S_OK - в случае успеха
Заметки:
При использовании UseExistingKeySet, требуется задавать имя контейнера.

virtual HRESULT UnixEnroll::put_DeleteRequestCert ( bool value ) [inline, virtual]

Требуется ли удалять псевдосертификат в хранилище запросов на сертификат.

Значение по умолчанию true.

Аргументы:
value [in] Требуется ли удалять.
Возвращает:
S_OK - в случае успеха
Заметки:
При создании ключа и запроса PKCS#10 создаётся псевдосертификат в хранилище запросов. Он служит для ссылки на закрытый ключ и др. до тех пор, пока УЦ не обработает запрос и не вернёт PKCS#7 ответ. По получении PKCS#7 ответа и успешной установки запрошенного сертификата, псевдосертификат удаляется. Для целей отладки или тестирования можно запретить удаление этого псевдосертификата установкой свойства DeleteRequestCert в значение false.

virtual HRESULT UnixEnroll::put_EnableSMIMECapabilities ( bool value ) [inline, virtual]

Установить атрибуты S/MIME в запрос PKCS#10 (не реализовано).

Аргументы:
value [in] true - установить.
Возвращает:
S_OK - в случае успеха

virtual HRESULT UnixEnroll::put_GenKeyFlags ( DWORD keyFlags ) [inline, virtual]

Задать свойства закрытого ключа.

По умолчанию экспорт закрытого ключа запрещён. Для его разрешения следует использовать флаг CRYPT_EXPORTABLE.

Аргументы:
keyFlags [in] Флаги создания закрытого ключа.
Возвращает:
S_OK - в случае успеха
Заметки:
Полный список флагов смотри в описании CPGenKey() и CryptGenKey().

virtual HRESULT UnixEnroll::put_KeySpec ( DWORD _dwKeySpec ) [inline, virtual]

Задать тип закрытого ключа.

Аргументы:
_dwKeySpec [in] Тип закрытого ключа.
Возвращает:
S_OK - в случае успеха
Заметки:
Обычно используемые типы:
  • AT_KEYEXCHANGE - и согласование сессионных ключей шифрования, и ЭЦП;
  • AT_SIGNATURE - только ЭЦП;

Смотри также описания CPGenKey() и CryptGenKey().

virtual HRESULT UnixEnroll::put_LimitExchangeKeyToEncipherment ( int value ) [inline, virtual]

Задать ограничения ключа AT_KEYEXCHANGE.

Аргументы:
value [in] Ограничения ключа AT_KEYEXCHANGE.
Возвращает:
S_OK - в случае успеха
Заметки:
Это свойство относится только к ключам типа AT_KEYEXCHANGE. Для ключей типа AT_SIGNATURE его значение может быть произвольным.

Если значения свойства 0 (false), то запрос содержит следующие значение KeyUsage:

  • CERT_DATA_ENCIPHERMENT_KEY_USAGE
  • CERT_KEY_ENCIPHERMENT_KEY_USAGE
  • CERT_DIGITAL_SIGNATURE_KEY_USAGE
  • CERT_NON_REPUDIATION_KEY_USAGE

Если значения свойства не 0 (true), то запрос содержит следующие значение KeyUsage:

  • CERT_DATA_ENCIPHERMENT_KEY_USAGE
  • CERT_KEY_ENCIPHERMENT_KEY_USAGE

virtual HRESULT UnixEnroll::put_MyStoreFlags ( DWORD flags ) [inline, virtual]

Задать хранилище сертификатов пользователя и флаги его открытия.

Значение по умолчанию CERT_SYSTEM_STORE_CURRENT_USER.

Аргументы:
flags [in] Флаги открытия хранилища.
Возвращает:
S_OK - в случае успеха
Заметки:
Для Unix систем допустимые значения хранилищ:
  • CERT_SYSTEM_STORE_CURRENT_USER
  • CERT_SYSTEM_STORE_LOCAL_MACHINE
Описания дополнительных флагов открытия хранилища смотри в описании CertOpenStore().

virtual HRESULT UnixEnroll::put_MyStoreName ( BSTR name ) [inline, virtual]

Задать имя хранилища сертификатов пользователя.

Значение по умолчанию "My".

Аргументы:
name [in] Имя хранилища.
Возвращает:
S_OK - в случае успеха
Заметки:
Описания возможных имён хранилища смотри в описании CertOpenStore().

virtual HRESULT UnixEnroll::put_PIN ( const CSecurePin & pin ) [inline, virtual]

Задать PIN (пароль) контейнера.

Значение по умолчанию не задано.

Аргументы:
pin [in] PIN (пароль) контейнера.
Возвращает:
S_OK - в случае успеха
Заметки:
Задаёт PIN (пароль) при создании запроса или получении сертификата для работы в режиме CRYPT_SILENT (или при недоступности устройства текстового или графического интерфейса пользователя (TUI или GUI)).

virtual HRESULT UnixEnroll::put_ProviderFlags ( DWORD provFlags ) [inline, virtual]

Задать флаги открытия CSP.

Значение по умолчанию 0.

Аргументы:
provFlags [in] Флаги открытия CSP.
Возвращает:
S_OK - в случае успеха
Заметки:
Описания дополнительных флагов открытия CSP смотри в описании CPAcquireContext() и CryptAcquireContext().

virtual HRESULT UnixEnroll::put_ProviderName ( BSTR pName ) [inline, virtual]

Задать имя CSP для создания ключа.

Определяет CSP, в котором создаётся закрытый ключ.

Аргументы:
pName [in] Имя CSP.
Возвращает:
S_OK - в случае успеха

virtual HRESULT UnixEnroll::put_ProviderType ( DWORD pType ) [inline, virtual]

Задать тип CSP для создания ключа.

Тип CSP определяет алгоритм закрытого ключа.

Аргументы:
pType [in] Тип CSP.
Возвращает:
S_OK - в случае успеха

virtual HRESULT UnixEnroll::put_RequestStoreFlags ( DWORD storeFlags ) [inline, virtual]

Задать хранилище запроса и флаги его открытия.

Значение по умолчанию CERT_SYSTEM_STORE_CURRENT_USER.

Аргументы:
storeFlags [in] Флаги открытия хранилища.
Возвращает:
S_OK - в случае успеха
Заметки:
Для Unix систем допустимые значения хранилищ:
  • CERT_SYSTEM_STORE_CURRENT_USER
  • CERT_SYSTEM_STORE_LOCAL_MACHINE
Описания дополнительных флагов открытия хранилища смотри в описании CertOpenStore().

virtual HRESULT UnixEnroll::put_RootStoreFlags ( DWORD flags ) [inline, virtual]

Задать доверенное хранилище корневых сертификатов и флаги его открытия.

Значение по умолчанию CERT_SYSTEM_STORE_CURRENT_USER.

Аргументы:
flags [in] Флаги открытия хранилища.
Возвращает:
S_OK - в случае успеха
Заметки:
Для Unix систем допустимые значения хранилищ:
  • CERT_SYSTEM_STORE_CURRENT_USER
  • CERT_SYSTEM_STORE_LOCAL_MACHINE
Описания дополнительных флагов открытия хранилища смотри в описании CertOpenStore().

virtual HRESULT UnixEnroll::put_SupressAddRootUI ( bool value ) [inline, virtual]

Не запрашивать подтверждения при установке корневого сертификата в хранилище доверенных сертификатов.

Значение по умолчанию - false.

Аргументы:
value [in] PIN (пароль) контейнера.
Возвращает:
S_OK - в случае успеха
Заметки:
При установке значения true, метод UnixEnroll::askPermissionToAddToRootStore() не будет вызываться.

HRESULT UnixEnroll::put_UseExistingKeySet ( bool value ) [virtual]

Использовать существующий ключ в контейнере (не реализовано).

Аргументы:
value [in] true - существующий, false - создать новый.
Возвращает:
S_OK - в случае успеха

virtual HRESULT UnixEnroll::put_WriteCertToCSP ( bool value ) [inline, virtual]

Требуется ли устанавливать сертификат в ключевой контейнер.

Значение по умолчанию false.

Аргументы:
value [in] Требуется ли устанавливать.
Возвращает:
S_OK - в случае успеха
Заметки:
Установка сертификата в контейнер дополнительно к его установке в хранилище "My", в основном, предназначено для отделяемых ключевых носителей. При задании значения true, происходит попытка записи сертификата в контейнер, но операция не будет возвращать ошибку даже в том случае, если ключевой носитель не сможет сохранить сертификат. В частности, если это значение true, но ключевой носитель (смарт-карта, USB-токен, USB-флэш и т.п.) не подключен, то ошибки ключевого носителя будут проигнорированны.

Заметки:
Для того, чтобы не вызывалась функция записи сертификата требуется установить значение false.

Используется методами:

  • acceptPKCS7()

Смотри также описания CPSetKeyParam() и CryptSetKeyParam().

Документация по КриптоПро CAPILite. Последние изменения: Thu Feb 22 00:10:20 2018. Создано системой doxygen 1.4.5-20051109


КриптоПро CAPILite: Класс CPEnroll

  • Титульная страница
  • Группы
  • Классы
  • Файлы
  • Описания
  • Классы
  • Иерархия классов
  • Члены классов

Класс CPEnroll
[API запроса на сертификат]

Создание запросов на сертификат и установка полученных сертификатов. Подробнее...

#include <CPEnroll.h>

Полный список членов класса

Открытые члены

virtual HRESULT | put_EnableSMIMECapabilities (bool value)
Установить атрибуты S/MIME в запрос PKCS#10 (не реализовано).
virtual HRESULT | put_UseExistingKeySet (bool value)
Использовать существующий ключ в контейнере (не реализовано).
virtual HRESULT | put_HashAlgorithm (BSTR hashOid)
Задать алгоритм хэш-функции для PKCS#10.
virtual HRESULT | put_ContainerName (BSTR cName)
Задать имя контейнера.
virtual HRESULT | put_ProviderType (DWORD pType)
Задать тип CSP для создания ключа.
virtual HRESULT | put_ProviderName (BSTR pName)
Задать имя CSP для создания ключа.
virtual HRESULT | put_GenKeyFlags (DWORD keyFlags)
Задать свойства закрытого ключа.
virtual HRESULT | put_RequestStoreFlags (DWORD storeFlags)
Задать хранилище запроса и флаги его открытия.
virtual HRESULT | put_ProviderFlags (DWORD provFlags)
Задать флаги открытия CSP.
virtual HRESULT | put_KeySpec (DWORD _dwKeySpec)
Задать тип закрытого ключа.
virtual HRESULT | put_LimitExchangeKeyToEncipherment (int value)
Задать ограничения ключа AT_KEYEXCHANGE.
virtual HRESULT | put_CAStoreFlags (DWORD flags)
Задать хранилище промежуточных УЦ и флаги его открытия.
virtual HRESULT | put_MyStoreFlags (DWORD flags)
Задать хранилище сертификатов пользователя и флаги его открытия.
virtual HRESULT | put_RootStoreFlags (DWORD flags)
Задать доверенное хранилище корневых сертификатов и флаги его открытия.
virtual HRESULT | put_MyStoreName (BSTR name)
Задать имя хранилища сертификатов пользователя.
virtual HRESULT | put_DeleteRequestCert (bool value)
Требуется ли удалять псевдосертификат в хранилище запросов на сертификат.
virtual HRESULT | put_WriteCertToCSP (bool value)
Требуется ли устанавливать сертификат в ключевой контейнер.
virtual HRESULT | put_PIN (const CSecurePin &pin)
Задать PIN (пароль) контейнера.
virtual HRESULT | put_SupressAddRootUI (bool value)
Не запрашивать подтверждения при установке корневого сертификата в хранилище доверенных сертификатов.
virtual HRESULT | addExtensionToRequest (LONG flags, BSTR name, BSTR value)
Добавить расширение в запрос на сертификат.
virtual HRESULT | get_InstallToContainerStatus (DWORD *pdwStatus)
Возвращает код ошибки при установке сертификата в контейнер.
virtual HRESULT | get_ContainerName (BSTR *cName)
Возвращает имя контейнера.
virtual HRESULT | createPKCS10 (BSTR rdn, BSTR usage, BSTR *request)
Создать запрос PKCS#10.
virtual HRESULT | createRequest (LONG flags, BSTR rdn, BSTR usage, BSTR *request)
Создать запрос сертификат.
virtual HRESULT | acceptPKCS7 (BSTR msg)
Обработать PKCS#7 ответ от УЦ.
virtual HRESULT | installPKCS7 (BSTR msg)
Установить сертификат или цепочку сертификатов PKCS#7.
virtual HRESULT | SetSignerCertificate (PCCERT_CONTEXT pSignerCert)
Установить сертификат, на котором будет подписан запрос в PKCS#7.

Классы

class | UserCallbacks
Интерфейс запросов пользователя. Подробнее...

Подробное описание

Создание запросов на сертификат и установка полученных сертификатов.

Методы

virtual HRESULT CPEnroll::addExtensionToRequest | ( | LONG | flags,
 |  | BSTR | name,
 |  | BSTR | value |
 | ) |  |  | [inline, virtual]

Добавить расширение в запрос на сертификат.

Аргументы:
flags | [in] Является ли расширение критичным (critical)
name | [in] OID расширения
value | [in] Расширение, закодированное в BASE64
Возвращает:
S_OK - успешно
Заметки:
Метод createRequest() добавляет расширения в запрос, а метод createPKCS10() нет.

virtual HRESULT CPEnroll::createPKCS10 | ( | BSTR | rdn,
 |  | BSTR | usage,
 |  | BSTR * | request |
 | ) |  |  | [inline, virtual]

Создать запрос PKCS#10.

Аргументы:
rdn | [in] Различительное имя (DN) владельца ключа
usage | [in] Список OID расширенного использования ключа (Extended Key Usage (EKU))
request | [out] Запрос, закодированный в BASE64
Возвращает:
S_OK - успешно
Заметки:
Игнорирует расширения заданные методом addExtensionToRequest()

Полученная BSTR строка запроса, должна быть освобождена функцией SysFreeString()

virtual HRESULT CPEnroll::get_ContainerName ( BSTR * cName ) [inline, virtual]

Возвращает имя контейнера.

Возвращаемые значения:
S_OK успешно

virtual HRESULT CPEnroll::get_InstallToContainerStatus ( DWORD * pdwStatus ) [inline, virtual]

Возвращает код ошибки при установке сертификата в контейнер.

Аргументы:
pdwStatus [out] код ошибки при установке сертификата в контейнер
Возвращаемые значения:
S_OK | успешно (в pdwStatus скопирован код ошибки)
E_INVALIDARG | pdwStatus был не задан (==NULL)

virtual HRESULT CPEnroll::put_CAStoreFlags ( DWORD flags ) [inline, virtual]

Задать хранилище промежуточных УЦ и флаги его открытия.

Значение по умолчанию CERT_SYSTEM_STORE_CURRENT_USER.

Аргументы:
flags [in] Флаги открытия хранилища.
Возвращает:
S_OK - в случае успеха
Заметки:
Для Unix систем допустимые значения хранилищ:
  • CERT_SYSTEM_STORE_CURRENT_USER
  • CERT_SYSTEM_STORE_LOCAL_MACHINE
Описания дополнительных флагов открытия хранилища смотри в описании CertOpenStore().

virtual HRESULT CPEnroll::put_ContainerName ( BSTR cName ) [inline, virtual]

Задать имя контейнера.

Если имя контейнера не задано, то оно генерируется как случайный GUID.

Аргументы:
cName [in] Имя контейнера.
Возвращает:
S_OK - в случае успеха
Заметки:
При использовании UseExistingKeySet, требуется задавать имя контейнера.

virtual HRESULT CPEnroll::put_DeleteRequestCert ( bool value ) [inline, virtual]

Требуется ли удалять псевдосертификат в хранилище запросов на сертификат.

Значение по умолчанию true.

Аргументы:
value [in] Требуется ли удалять.
Возвращает:
S_OK - в случае успеха
Заметки:
При создании ключа и запроса PKCS#10 создаётся псевдосертификат в хранилище запросов. Он служит для ссылки на закрытый ключ и др. до тех пор, пока УЦ не обработает запрос и не вернёт PKCS#7 ответ. По получении PKCS#7 ответа и успешной установки запрошенного сертификата, псевдосертификат удаляется. Однако, для целей отладки или тестирования можно запретить удаление этого псевдосертификата установкой свойства DeleteRequestCert в значение false.

virtual HRESULT CPEnroll::put_EnableSMIMECapabilities ( bool value ) [inline, virtual]

Установить атрибуты S/MIME в запрос PKCS#10 (не реализовано).

Аргументы:
value [in] TRUE - установить.
Возвращает:
S_OK - в случае успеха

virtual HRESULT CPEnroll::put_GenKeyFlags ( DWORD keyFlags ) [inline, virtual]

Задать свойства закрытого ключа.

По умолчанию экспорт закрытого ключа запрещён, для его разрешения можно задать CRYPT_EXPORTABLE.

Аргументы:
keyFlags [in] Флаги создания закрытого ключа.
Возвращает:
S_OK - в случае успеха
Заметки:
Полный список флагов смотри в описании CPGenKey() и CryptGenKey().

virtual HRESULT CPEnroll::put_HashAlgorithm ( BSTR hashOid ) [inline, virtual]

Задать алгоритм хэш-функции для PKCS#10.

Аргументы:
hashOid [in] OID хэш-функции.
Возвращает:
S_OK - в случае успеха

virtual HRESULT CPEnroll::put_KeySpec ( DWORD _dwKeySpec ) [inline, virtual]

Задать тип закрытого ключа.

Аргументы:
_dwKeySpec [in] Тип закрытого ключа.
Возвращает:
S_OK - в случае успеха
Заметки:
Обычно используемые типы:
  • AT_KEYEXCHANGE - и согласование сессионных ключей шифрования, и ЭЦП;
  • AT_SIGNATURE - только ЭЦП;

Смотри так же описания CPGenKey() и CryptGenKey().

Необходимо сделать:
TODO:XXX В отличии от ICertEnroll нет значения по умолчанию ???

virtual HRESULT CPEnroll::put_LimitExchangeKeyToEncipherment ( int value ) [inline, virtual]

Задать ограничения ключа AT_KEYEXCHANGE.

Аргументы:
value [in] Ограничения ключа AT_KEYEXCHANGE.
Возвращает:
S_OK - в случае успеха
Заметки:
Это свойство относится только к ключам типа AT_KEYEXCHANGE. Для ключей типа AT_SIGNATURE его значение может быть произвольным.

Если значения свойства FALSE (0), то запрос содержит следующие значение KeyUsage:

  • CERT_DATA_ENCIPHERMENT_KEY_USAGE
  • CERT_KEY_ENCIPHERMENT_KEY_USAGE
  • CERT_DIGITAL_SIGNATURE_KEY_USAGE
  • CERT_NON_REPUDIATION_KEY_USAGE

Если значения свойства TRUE (!=0), то запрос содержит следующие значение KeyUsage:

  • CERT_DATA_ENCIPHERMENT_KEY_USAGE
  • CERT_KEY_ENCIPHERMENT_KEY_USAGE

virtual HRESULT CPEnroll::put_MyStoreFlags ( DWORD flags ) [inline, virtual]

Задать хранилище сертификатов пользователя и флаги его открытия.

Значение по умолчанию CERT_SYSTEM_STORE_CURRENT_USER.

Аргументы:
flags [in] Флаги открытия хранилища.
Возвращает:
S_OK - в случае успеха
Заметки:
Для Unix систем допустимые значения хранилищ:
  • CERT_SYSTEM_STORE_CURRENT_USER
  • CERT_SYSTEM_STORE_LOCAL_MACHINE
Описания дополнительных флагов открытия хранилища смотри в описании CertOpenStore().

virtual HRESULT CPEnroll::put_MyStoreName ( BSTR name ) [inline, virtual]

Задать имя хранилища сертификатов пользователя.

Значение по умолчанию "My".

Аргументы:
name [in] Имя хранилища.
Возвращает:
S_OK - в случае успеха
Заметки:
Описания возможных имён хранилища смотри в описании CertOpenStore().

virtual HRESULT CPEnroll::put_PIN ( const CSecurePin & pin ) [inline, virtual]

Задать PIN (пароль) контейнера.

Значение по умолчанию - не задан.

Аргументы:
pin [in] PIN (пароль) контейнера.
Возвращает:
S_OK - в случае успеха
Заметки:
Задаёт PIN (пароль) для создании запроса или получении сертификата для работы в режиме CRYPT_SILENT (или при недоступности устройства текстового или графического интерфейса пользователя (TUI или GUI)).

virtual HRESULT CPEnroll::put_ProviderFlags ( DWORD provFlags ) [inline, virtual]

Задать флаги открытия CSP.

Значение по умолчанию 0.

Аргументы:
provFlags [in] Флаги открытия CSP.
Возвращает:
S_OK - в случае успеха
Заметки:
Описания дополнительных флагов открытия CSP смотри в описании CPAcquireContext() и CryptAcquireContext().

virtual HRESULT CPEnroll::put_ProviderName ( BSTR pName ) [inline, virtual]

Задать имя CSP для создания ключа.

Определяет CSP в котором создаётся закрытый ключ.

Аргументы:
pName [in] Имя CSP.
Возвращает:
S_OK - в случае успеха

virtual HRESULT CPEnroll::put_ProviderType ( DWORD pType ) [inline, virtual]

Задать тип CSP для создания ключа.

Тип CSP определяет алгоритм закрытого ключа.

Аргументы:
pType [in] Тип CSP.
Возвращает:
S_OK - в случае успеха

virtual HRESULT CPEnroll::put_RequestStoreFlags ( DWORD storeFlags ) [inline, virtual]

Задать хранилище запроса и флаги его открытия.

Значение по умолчанию CERT_SYSTEM_STORE_CURRENT_USER.

Аргументы:
storeFlags [in] Флаги открытия хранилища.
Возвращает:
S_OK - в случае успеха
Заметки:
Для Unix систем допустимые значения хранилищ:
  • CERT_SYSTEM_STORE_CURRENT_USER
  • CERT_SYSTEM_STORE_LOCAL_MACHINE
Описания дополнительных флагов открытия хранилища смотри в описании CertOpenStore().

virtual HRESULT CPEnroll::put_RootStoreFlags ( DWORD flags ) [inline, virtual]

Задать доверенное хранилище корневых сертификатов и флаги его открытия.

Значение по умолчанию CERT_SYSTEM_STORE_CURRENT_USER.

Аргументы:
flags [in] Флаги открытия хранилища.
Возвращает:
S_OK - в случае успеха
Заметки:
Для Unix систем допустимые значения хранилищ:
  • CERT_SYSTEM_STORE_CURRENT_USER
  • CERT_SYSTEM_STORE_LOCAL_MACHINE
Описания дополнительных флагов открытия хранилища смотри в описании CertOpenStore().

virtual HRESULT CPEnroll::put_SupressAddRootUI ( bool value ) [inline, virtual]

Не запрашивать подтверждения при установке корневого сертификата в хранилище доверенных сертификатов.

Значение по умолчанию - false.

Аргументы:
value [in] PIN (пароль) контейнера.
Возвращает:
S_OK - в случае успеха
Заметки:
При установке значения true, метод UnixEnroll::askPermissionToAddToRootStore() не будет вызываться.

virtual HRESULT CPEnroll::put_UseExistingKeySet ( bool value ) [inline, virtual]

Использовать существующий ключ в контейнере (не реализовано).

Аргументы:
value [in] TRUE - существующий, FALSE - создать новый.
Возвращает:
S_OK - в случае успеха

virtual HRESULT CPEnroll::put_WriteCertToCSP ( bool value ) [inline, virtual]

Требуется ли устанавливать сертификат в ключевой контейнер.

Значение по умолчанию false.

Необходимо сделать:
TODO:XXX В отличии от ICertEnroll, у которого оно true ???
Аргументы:
value [in] Требуется ли устанавливать.
Возвращает:
S_OK - в случае успеха
Заметки:
Установка сертификата в контейнер дополнительно к его установке в хранилище "My", в основном, предназначено для отделяемых ключевых носителей. При задании значения true, происходит попытка записи сертификата в контейнер, но операция не будет возвращать ошибку даже, если ключевой носитель не сможет сохранить сертификат. В частности, если это значение true, но ключевой носитель (смарт-карта, USB-токен, USB-флэш и т.п.) не подключен, то ошибки ключевого носителя будут проигнорированны.

Для того, что бы не вызывалась функция записи сертификата требуется установить значение false.

Используется методами:

  • acceptPKCS7()

Смотри также описания CPSetKeyParam() и CryptSetKeyParam().

Документация по КриптоПро CAPILite. Последние изменения: Thu Feb 22 00:10:20 2018. Создано системой doxygen 1.4.5-20051109


КриптоПро CAPILite: Класс CPEnroll::UserCallbacks

  • Титульная страница
  • Группы
  • Классы
  • Файлы
  • Описания
  • Классы
  • Иерархия классов
  • Члены классов
CPEnroll::UserCallbacks

Класс CPEnroll::UserCallbacks
[API запроса на сертификат]

Интерфейс запросов пользователя. Подробнее...

#include <CPEnroll.h>

Полный список членов класса

Открытые члены

virtual bool | askPermissionToAddToRootStore (const BYTE *pbCert, DWORD cbCert, bool=false) const =0
Запрос на разрешение установки сертификата в хранилище доверенных сертификатов.
virtual UserCallbacks * | clone () const =0
Клонирование.
virtual | ~UserCallbacks ()
Деструктор.

Подробное описание

Интерфейс запросов пользователя.

Методы

virtual bool CPEnroll::UserCallbacks::askPermissionToAddToRootStore | ( | const BYTE * | pbCert,
 |  | DWORD | cbCert,
 |  | bool | = false |
 | ) |  |  | const [pure virtual]

Запрос на разрешение установки сертификата в хранилище доверенных сертификатов.

Аргументы:
pbCert | [in] Устанавливаемый сертификат
cbCert | [in] Длина сертификата
Возвращает:
true - в случае согласия на установку сертификата
Заметки:
Реализовывать не обязательно, если используется put_SupressAddRootUI()

Документация по КриптоПро CAPILite. Последние изменения: Thu Feb 22 00:10:20 2018. Создано системой doxygen 1.4.5-20051109


КриптоПро CAPILite: Шаблон класса CSecureBufferT< T >

  • Титульная страница
  • Группы
  • Классы
  • Файлы
  • Описания
  • Классы
  • Иерархия классов
  • Члены классов

Шаблон класса CSecureBufferT< T >
[API запроса на сертификат]

Буфер с обнулением в деструкторе. Подробнее...

#include <SecureBuffer.h>

Полный список членов класса

Открытые члены

CSecureBufferT (size_t byteLen=0)
Конструктор.
size_t | len () const
Размер буфера в байтах.
const T * | ptr () const
Указатель на буфер для чтения.
bool | empty () const
Признак пустоты.
T * | ptr_rw ()
Указатель на буфер для записи.
void | clean ()
Обнулить буфер.
void | copy (const CSecureBufferT< T > &src)
Скопировать буфер.
void | swap (CSecureBufferT< T > &obj)
Обменять буфер.
~CSecureBufferT ()
Деструктор с очисткой буфера.

Подробное описание

template<typename T>
class CSecureBufferT< T >

Буфер с обнулением в деструкторе.

Заметки:
Интерфейс может быть изменён в окончательной версии. Использование для типов размера большего 1 не рекомендуется.

Конструктор(ы)

template<typename T>
CSecureBufferT< T >::CSecureBufferT ( size_t byteLen = 0 ) [inline]

Конструктор.

Аргументы:
byteLen [in] Размер буфера в байтах
Заметки:
ВНИМАНИЕ: byteLen должен быть кратен sizeof(T)

Методы

template<typename T>
bool CSecureBufferT< T >::empty ( ) const [inline]

Признак пустоты.

Возвращает:
Признак пустоты

template<typename T>
size_t CSecureBufferT< T >::len ( ) const [inline]

Размер буфера в байтах.

Возвращает:
Размер буфера в байтах(!), а не элементах

template<typename T>
const T* CSecureBufferT< T >::ptr ( ) const [inline]

Указатель на буфер для чтения.

Возвращает:
Указатель на буфер
Заметки:
ВНИМАНИЕ: Указатель на буфер может быть 0

template<typename T>
T* CSecureBufferT< T >::ptr_rw ( ) [inline]

Указатель на буфер для записи.

Возвращает:
Указатель на буфер

Документация по КриптоПро CAPILite. Последние изменения: Thu Feb 22 00:10:20 2018. Создано системой doxygen 1.4.5-20051109


КриптоПро CAPILite: Класс CPCA15Request::UnixRequest

  • Титульная страница
  • Группы
  • Классы
  • Файлы
  • Описания
  • Классы
  • Иерархия классов
  • Члены классов
CPCA15Request::UnixRequest

Класс CPCA15Request::UnixRequest
[API запроса на сертификат]

Интерфейс запросов к УЦ на сертификат реализация для Standalone CA
Реализация интерфеса взаимодействия с "КриптоПро УЦ 1.4/1.5". Подробнее...

#include <CPCA15Request.h>

Подробное описание

Интерфейс запросов к УЦ на сертификат реализация для Standalone CA
Реализация интерфеса взаимодействия с "КриптоПро УЦ 1.4/1.5".

Отличия от других реализаций интерфейсов:

  • X509AuthAnonymous - не поддерживается
  • X509AuthKerberos - не поддерживается
  • X509AuthUsername - доступ по токену временного доступа, для первоначального получения сертификата
  • X509AuthCertificate - доступ по сертификату для плановой смены
  • strConfig - должен начинаться с https://
  • GetRequest(...CR_OUT_HTML...) - возвращает PKCS#10 запрос в формате HTML для последующей печати
  • GetCertificate(...CR_OUT_HTML...) - возвращает сертификат в формате HTML для последующей печати

strConfig обычно должен иметь вид "https://cpca.external.example.ru/UI"

Документация по КриптоПро CAPILite. Последние изменения: Thu Feb 22 00:10:20 2018. Создано системой doxygen 1.4.5-20051109


КриптоПро CAPILite: Класс CPCA20Request::UnixRequestImpl

  • Титульная страница
  • Группы
  • Классы
  • Файлы
  • Описания
  • Классы
  • Иерархия классов
  • Члены классов
CPCA20Request::UnixRequestImpl

Класс CPCA20Request::UnixRequestImpl
[API запроса на сертификат]

Реализация интерфеса взаимодействия с "КриптоПро УЦ 2.0". Подробнее...

#include <CPCA20Request.h>

Подробное описание

Реализация интерфеса взаимодействия с "КриптоПро УЦ 2.0".

В случае вызовов методов RegisterUser и GetUserRegisterInfo в URL следует включать папку
Например, https://cpca20.external.example.ru/UI/folderName

Документация по КриптоПро CAPILite. Последние изменения: Thu Feb 22 00:10:20 2018. Создано системой doxygen 1.4.5-20051109


КриптоПро CAPILite: Класс MSCAstdRequest::UnixRequest

  • Титульная страница
  • Группы
  • Классы
  • Файлы
  • Описания
  • Классы
  • Иерархия классов
  • Члены классов
MSCAstdRequest::UnixRequest

Класс MSCAstdRequest::UnixRequest
[API запроса на сертификат]

Интерфейс запросов к УЦ на сертификат реализация для Standalone CAРеализация интерфеса взаимодействия с Microsoft Standalone CA. Подробнее...

#include <MSCAstdRequest.h>

Подробное описание

Интерфейс запросов к УЦ на сертификат реализация для Standalone CAРеализация интерфеса взаимодействия с Microsoft Standalone CA.

Отличия от других реализаций интерфейсов:

  • X509AuthAnonymous - поддерживается
  • X509AuthKerberos - не поддерживается
  • X509AuthUsername - не поддерживается (?)
  • X509AuthCertificate - не поддерживается (?)
  • strConfig - может начинаться, как с https, так и с http
  • GetRequest() - не поддерживается
  • GetCertificate(...CR_OUT_HTML...) - не поддерживается

strConfig обычно должен иметь вид "http://msca.w2k.example.ru/certsrv"

CR_PROP_TEMPLATES - не применим для Microsoft Standalone CA CR_PROP_CASIGCERTCOUNT - в предварительной версии возвращает всегда 1

Документация по КриптоПро CAPILite. Последние изменения: Thu Feb 22 00:10:20 2018. Создано системой doxygen 1.4.5-20051109


КриптоПро CAPILite: Исходный файл CPCA15Request.h

  • Титульная страница
  • Группы
  • Классы
  • Файлы
  • Описания

CPCA15Request.h

00001 /* [Windows 1251]
00002  * [Use `iconv -f WINDOWS-1251', if needed]
00003  */
00004 /*
00005  * Copyright(C) 2005-2011
00006  *
00007  * Этот файл содержит информацию, являющуюся
00008  * собственностью компании Крипто-Про.
00009  *
00010  * Любая часть этого файла не может быть скопирована,
00011  * исправлена, переведена на другие языки,
00012  * локализована или модифицирована любым способом,
00013  * откомпилирована, передана по сети с или на
00014  * любую компьютерную систему без предварительного
00015  * заключения соглашения с компанией Крипто-Про.
00016  *
00017  * This is proprietary information of
00018  * Crypto-Pro company.
00019  *
00020  * Any part of this file can not be copied,
00021  * corrected, translated into other languages,
00022  * localized or modified by any means,
00023  * compiled, transferred over a network from or to
00024  * any computer system without preliminary
00025  * agreement with Crypto-Pro company
00026  */
00027
00037 #ifndef __CPCA15_REQUEST_H__
00038 #define __CPCA15_REQUEST_H__
00039 #include "UnixRequestImpl.h"
00040 #include "CPCA15UserInfo.h"
00041
00066 class CPCA15Request: public UnixRequestImpl
00067 {
00068 protected:
00069     std::string RequestId;
00070     std::string CertHTMLId;
00071     std::string strCertificate;
00072     std::string strSerial;
00073     HCERTSTORE hUserStore;
00074     PCCERT_CONTEXT pUserCert;
00075     BOOL fNeedFreeProv;
00076     DWORD dwCertKeySpec;
00077     HCRYPTPROV hUserProv;
00078     BSTR bstrCertHTML;
00079     BSTR bstrRequestHTML;
00080
00081 public:
00082     CPCA15Request():RequestId("-1"),
00083                      CertHTMLId("-1"),
00084                      strCertificate(),
00085                      strSerial(),
00086                      hUserStore(0),
00087                      pUserCert(0),
00088                      fNeedFreeProv(FALSE),
00089                      dwCertKeySpec(0),
00090                      hUserProv(0),
00091                      bstrCertHTML(0),
00092                      bstrRequestHTML(0)
00093     {
00094
00095     };
00096     virtual HRESULT SetCredential(
00097         /* [in] */ UserCallbacks *pCallbacks,
00098         /* [in] */ X509EnrollmentAuthFlags AuthType,
00099         /* [in] */ X509EnrollmentCheckChainFlags CheckChainType,
00100             /* [in] */ const BSTR strCredential,
00101         /* [in][out] */ CSecurePin *sbPassword,
00102         /* [in] */ BOOL UseLocalMachineCert);
00103
00104     virtual HRESULT SetCredential(
00105         /* [in] */ LONG hWnd,
00106         /* [in] */ X509EnrollmentAuthFlags anAuthType,
00107         /* [in] */ BSTR strCredential,
00108         /* [in] */ BSTR strPassword)
00109     {
00110         return UnixRequestImpl::SetCredential(hWnd,anAuthType,strCredential,strPassword);
00111     };
00112
00113     virtual HRESULT GetRequestParams(
00114         /* [in] */ BSTR strConfig,
00115         /* [in] */ BSTR strTemplate,
00116         /* [retval][out] */ BSTR *pstrRDN,
00117         /* [retval][out] */ BSTR *pstrEKUsage,
00118         /* [retval][out] */ DWORD *pKeySpec,
00119         /* [retval] */ std::vector<AttrTriple> *pAttrs
00120         );
00121
00122     virtual HRESULT Submit(
00123         /* [in] */ LONG Flags, /* CR_IN_BASE64HEADER, CR_IN_PKCS10 */
00124         /* [in] */ const BSTR strRequest,
00125         /* [in] */ const BSTR strAttributes,
00126         /* [in] */ const BSTR strConfig,
00127         /* [retval][out] */ LONG *pDisposition);
00128
00129     virtual HRESULT ListRequests(
00130                     BSTR strConfig,
00131                     RequestMap & Request
00132                     );
00133
00134     virtual HRESULT ListRequestsEx(BSTR strConfig,
00135                       RequestMapEx & rMap,
00136                       ReqType type = CA15Request);
00137
00138     virtual HRESULT GetRequestId(
00139               LONG* pRequestId
00140               );
00141
00142     virtual HRESULT GetCertificate(
00143        LONG Flags,
00144        BSTR* pstrCertificate
00145     );
00146
00147     virtual HRESULT GetRequest(
00148        LONG Flags,
00149        BSTR* pstrRequest
00150     );
00151
00152     virtual HRESULT GetCACertificate(
00153         /* [in] */ LONG fExchangeCertificate, /* не поддерживаем */
00154         /* [in] */ const BSTR strConfig,
00155         /* [in] */ LONG Flags, /* CR_OUT_BASE64HEADER, CR_OUT_CHAIN */
00156         /* [retval][out] */ BSTR *pstrCertificate) ;
00157
00158 #if 0
00159     virtual HRESULT GetDispositionMessage(
00160         /* [retval][out] */ BSTR *pstrDispositionMessage);
00161 #endif
00162
00163     virtual HRESULT RetrievePending(
00164         /* [in] */ LONG RequestId,
00165         /* [in] */ const BSTR strConfig,
00166         /* [retval][out] */ LONG *pDisposition);
00167
00168     virtual HRESULT GetCAProperty(
00169         /* [in] */ const BSTR strConfig,
00170         /* [in] */ LONG PropId, /* CR_PROP_BASECRL, CR_PROP_DELTACRL, CR_PROP_TEMPLATES */
00171         /* [in] */ LONG PropIndex,
00172         /* [in] */ LONG PropType, /* PROPTYPE_BINARY, PROPTYPE_STRING */
00173         /* [in] */ LONG Flags, /* CV_OUT_BASE64HEADER, CV_OUT_BASE64REQUESTHEADER, CV_OUT_BASE64X509CRLHEADER */
00174         /* [retval][out] */ VARIANT *pvarPropertyValue);
00175
00176     virtual HRESULT AcknowledgeInstallCert(
00177         /* [in] */ LONG RequestId,
00178         /* [in] */ const BSTR strConfig
00179         );
00180
00181     virtual HRESULT RegisterUser(
00182         /* [in] */ BSTR bstrConfig,
00183         /* [in] */ void * pUserInfo
00184         );
00185
00186     virtual HRESULT GetUserRegisterInfo(
00187         /* [in] */ BSTR bstrConfig,
00188         /* [in] */ void * pUserInfo
00189         );
00190
00191     virtual HRESULT GetUserRegisterStatus(
00192         /* [in] */ BSTR bstrConfig,
00193         /* [in] */ LONG * pUserRegisterId,
00194         /* [in] */ LONG * pUserReqisterStatus
00195         );
00196
00197     virtual ~CPCA15Request()
00198     {
00199         if (fNeedFreeProv && hUserProv)
00200             CryptReleaseContext(hUserProv,0);
00201         if (pUserCert)
00202             CertFreeCertificateContext(pUserCert);
00203         if (hUserStore)
00204             CertCloseStore(hUserStore,0);
00205         if (bstrCertHTML)
00206             SysFreeString(bstrCertHTML);
00207         if (bstrRequestHTML)
00208             SysFreeString(bstrRequestHTML);
00209     };
00210
00211 protected:
00212     virtual HRESULT CA15GetEnrollParams(const std::string & UIURL,
00213         std::vector<std::string> &templates,
00214         std::vector<std::string> &EKUs,
00215         std::vector<std::string> &keySpecs,
00216         std::string & strDN);
00217
00218     virtual HRESULT GetTokenStr(std::string & strToken);
00219     virtual HRESULT CredPreValidate()
00220     {
00221         if (AuthType != X509AuthUsername && AuthType != X509AuthCertificate)
00222             return NTE_PERM;
00223         if ((CheckChainType & ~X509CC_NoHostNameCheck) != X509CC_TLS)
00224             return NTE_PERM;
00225         return S_OK;
00226     };
00227
00228     virtual HRESULT RetrieveIssued( /* [in] */ const BSTR strConfig);
00229     virtual HRESULT PKCS10ToRequestId(BSTR bstrConfig, const std::string & PKCS10);
00230     virtual HRESULT MakePKCS7x2(BSTR Source,BSTR * Dest);
00231     virtual PCCERT_CONTEXT GetCertContext(HCERTSTORE hStore);
00232
00233     virtual HRESULT encodeRequestToPKCS7(std::vector<BYTE>& Request);
00234     virtual HRESULT decodeRequestFromPKCS7(std::vector<BYTE>& Request);
00235
00236     virtual HRESULT GetPubKeyFromPKCS7(const std::string & strPKCS7,
00237         PCERT_REQUEST_INFO * pReqInfo, LONG Disp);
00238     virtual HRESULT GetRequestIdFromPKCS7(BSTR bstrConfig,
00239         BSTR bstrRequest);
00240
00241     virtual HRESULT GetHTML(BSTR bstrConfig, bool get_cert,
00242         const std::string & PKCS = "");
00243
00244     virtual HRESULT ListRequestsAllEx(BSTR strConfig,
00245                       RequestMapEx & rCertMap,
00246                       RequestMapEx & rRequestMap,
00247                       RequestMapEx & rRevokedMap
00248                       );
00249     virtual void ClearCertificateData(void);
00250 };
00251 #endif
00252
Документация по КриптоПро CAPILite. Последние изменения: Thu Feb 22 00:10:20 2018. Создано системой doxygen 1.4.5-20051109


КриптоПро CAPILite: Исходный файл CPCA20Request.h

  • Титульная страница
  • Группы
  • Классы
  • Файлы
  • Описания

CPCA20Request.h

00001 /* [Windows 1251]
00002  * [Use `iconv -f WINDOWS-1251', if needed]
00003  */
00004 /*
00005  * Copyright(C) 2013
00006  *
00007  * Этот файл содержит информацию, являющуюся
00008  * собственностью компании Крипто-Про.
00009  *
00010  * Любая часть этого файла не может быть скопирована,
00011  * исправлена, переведена на другие языки,
00012  * локализована или модифицирована любым способом,
00013  * откомпилирована, передана по сети с или на
00014  * любую компьютерную систему без предварительного
00015  * заключения соглашения с компанией Крипто-Про.
00016  *
00017  * This is proprietary information of
00018  * Crypto-Pro company.
00019  *
00020  * Any part of this file can not be copied,
00021  * corrected, translated into other languages,
00022  * localized or modified by any means,
00023  * compiled, transferred over a network from or to
00024  * any computer system without preliminary
00025  * agreement with Crypto-Pro company
00026  */
00027
00037 #ifndef __CPCA20_REQUEST_H__
00038 #define __CPCA20_REQUEST_H__
00039 #include "UnixRequestImpl.h"
00040 #define UR20_DISP_NEW 3
00041 #define UR20_DISP_ACCEPTED 4
00042 #define UR20_DISP_REJECTED 5
00043 #define UR20_DISP_UNDER_SUBMISSION 6
00044 #define UR20_DISP_COMPLETED 7
00045 #define UR20_DISP_APPROVED 8
00046
00047 #ifdef DEBUG
00048 #include <iostream>
00049 #endif
00050
00051 #ifdef UNIX
00052 #define CPCA20_ENCODING CP_UTF8
00053 #else
00054 #define CPCA20_ENCODING CP_ACP
00055 #endif // UNIX
00056
00066 class CPCA20Request: public UnixRequestImpl
00067 {
00068     public:
00069         CPCA20Request();
00070
00071         virtual HRESULT SetCredential(
00072             /* [in] */ UserCallbacks *_pCallbacks,
00073             /* [in] */ X509EnrollmentAuthFlags _AuthType,
00074             /* [in] */ X509EnrollmentCheckChainFlags _CheckChainType,
00075             /* [in] */ const BSTR strCredential,
00076             /* [in][out] */ CSecurePin *_sbPassword,
00077             /* [in] */ BOOL UseLocalMachineCert )
00078         {
00079             HRESULT res = UnixRequestImpl::SetCredential( _pCallbacks,
00080                           _AuthType, _CheckChainType, strCredential, _sbPassword, UseLocalMachineCert );
00081             if ( res != S_OK )
00082             { return res; }
00083
00084             if (strCredential) {
00085                 const char *strToken = ConvertBSTRToString( strCredential );
00086                 token = strToken;
00087                 delete[] strToken;
00088             } else {
00089                 token = "";
00090             }
00091             password = _sbPassword ? _sbPassword->ptr() : "";
00092
00093             dwCertKeySpec = 0;
00094             if ( fNeedFreeProv )
00095             {
00096                 CryptReleaseContext( hUserProv, 0 );
00097                 hUserProv = 0;
00098                 fNeedFreeProv = FALSE;
00099             }
00100             if ( pUserCert )
00101             {
00102                 CertFreeCertificateContext( pUserCert );
00103                 pUserCert = 0;
00104             }
00105             if ( hUserStore )
00106             {
00107                 CertCloseStore( hUserStore, 0 );
00108                 hUserStore = 0;
00109             }
00110
00111             if ( _AuthType != X509AuthCertificate )
00112             {
00113                 return S_OK;
00114             }
00115
00116             hUserStore = CertOpenSystemStore(0, _TEXT("My"));
00117
00118             if ( hUserStore == 0 )
00119             {
00120                 res = GetLastError();
00121                 goto err;
00122             }
00123
00124             pUserCert = GetCertContext( hUserStore );
00125
00126             if ( pUserCert == 0 )
00127             {
00128                 CertCloseStore( hUserStore, 0 );
00129                 hUserStore = CertOpenStore(
00130                                  CERT_STORE_PROV_SYSTEM,
00131                                  0,
00132                                  0,//hProv,
00133                                  CERT_STORE_OPEN_EXISTING_FLAG | CERT_SYSTEM_STORE_LOCAL_MACHINE,
00134                                  L"My" );
00135                 if ( hUserStore == 0 )
00136                 {
00137                     res = NTE_FAIL;
00138                     goto err;
00139                 }
00140                 pUserCert = GetCertContext( hUserStore );
00141                 if ( pUserCert == 0 )
00142                 {
00143                     res = NTE_FAIL;
00144                     goto err;
00145                 }
00146             }
00147
00148             if ( !CryptAcquireCertificatePrivateKey(
00149                         pUserCert,
00150                         0, 0, &hUserProv, &dwCertKeySpec, &fNeedFreeProv ) )
00151             {
00152                 res = GetLastError();
00153                 goto err;
00154             }
00155             if ( _sbPassword && !CryptSetProvParam( hUserProv, PP_KEYEXCHANGE_PIN,
00156                                                     ( const BYTE * )_sbPassword->ptr(), 0 ) )
00157             {
00158                 res = GetLastError();
00159                 goto err;
00160             }
00161             return S_OK;
00162 err:
00163             if ( fNeedFreeProv && hUserProv )
00164             {
00165                 CryptReleaseContext( hUserProv, 0 );
00166                 hUserProv = 0;
00167             }
00168             fNeedFreeProv = FALSE;
00169             if ( pUserCert )
00170             {
00171                 CertFreeCertificateContext( pUserCert );
00172                 pUserCert = 0;
00173             }
00174             if ( hUserStore )
00175             {
00176                 CertCloseStore( hUserStore, 0 );
00177                 hUserStore = 0;
00178             }
00179             return res;
00180         };
00181
00182         virtual HRESULT SetCredential(
00183             /* [in] */ LONG hWnd,
00184             /* [in] */ X509EnrollmentAuthFlags anAuthType,
00185             /* [in] */ BSTR strCredential,
00186             /* [in] */ BSTR strPassword )
00187         {
00188             return UnixRequestImpl::SetCredential( hWnd, anAuthType, strCredential, strPassword );
00189         };
00190
00191         static BOOL HexToBin( const char * src, DWORD sLen, BYTE * dst, DWORD *pdLen )
00192         {
00193             int i, j, k;
00194             for ( i = sLen, j = *pdLen; i > 0 && j > 0; i -= 2, j-- )
00195             {
00196                 BYTE b = 0;
00197                 for ( k = 0; k < 2; k++ )
00198                 {
00199                     BYTE c = ( BYTE )tolower( *src++ );
00200                     b <<= 4;
00201                     if ( c >= 'a' && c <= 'f' )
00202                     { b |= c - 'a' + 10; }
00203                     else if ( isdigit( c ) )
00204                     { b |= c - '0'; }
00205                     else
00206                     { return FALSE; }
00207                 }
00208                 *dst++ = b;
00209             }
00210             *pdLen -= j;
00211             return TRUE;
00212         }
00213
00214         PCCERT_CONTEXT GetCertContext( HCERTSTORE hStore )
00215         {
00216
00217             CRYPT_HASH_BLOB bHash;
00218
00219             BYTE bSHA1Digest[20];
00220
00221             bHash.cbData = 20;
00222             bHash.pbData = bSHA1Digest;
00223
00224             if ( !HexToBin( Credential.c_str(), 40, bHash.pbData, &bHash.cbData ) )
00225             { return NULL; }
00226             return CertFindCertificateInStore( hStore,
00227                                                X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
00228                                                0,
00229                                                CERT_FIND_HASH,
00230                                                &bHash,
00231                                                0 );
00232         }
00233
00234         virtual HRESULT GetRequestParams( BSTR strConfig, BSTR strTemplate, BSTR *pstrRDN, BSTR *pstrEKUsage, DWORD *pKeySpec, std::vector<AttrTriple> *pAttrs );
00235
00236         virtual HRESULT ListRequests( BSTR strConfig, RequestMap &Requests );
00237
00238         virtual HRESULT ListRequestsEx( BSTR strConfig, RequestMapEx & Requests, ReqType type = CA15Request );
00239
00240         virtual HRESULT GetRequest( LONG Flags, BSTR *pstrRequest );
00241
00242         virtual HRESULT Submit( LONG Flags, const BSTR strRequest, const BSTR strAttributes, const BSTR strConfig, LONG *pDisposition );
00243
00244         virtual HRESULT RetrievePending( LONG RequestId, const BSTR strConfig, LONG *pDisposition );
00245
00246         virtual HRESULT AcknowledgeInstallCert( LONG RequestId, const BSTR strConfig );
00247
00248         virtual HRESULT GetLastStatus( LONG *pStatus );
00249
00250         virtual HRESULT GetRequestId( LONG *pRequestId );
00251
00252         virtual HRESULT GetRequestStrId ( uintptr_t *pRequestId );
00253
00254         virtual HRESULT GetCACertificate( LONG fExchangeCertificate, const BSTR strConfig, LONG Flags, BSTR *pstrCertificate );
00255
00256         virtual HRESULT GetCertificate( LONG Flags, BSTR *pstrCertificate );
00257
00258         virtual HRESULT GetIssuedCertificate( const BSTR strConfig, LONG RequestId, const BSTR strSerialNumber, LONG *pDisposition );
00259
00260         virtual HRESULT GetErrorMessageText( LONG hrMessage, LONG Flags, BSTR *pstrErrorMessageText );
00261
00262         virtual HRESULT RegisterUser( BSTR bstrConfig, void * pUserInfo );
00263
00264         virtual HRESULT GetUserRegisterInfo( BSTR bstrConfig, void * pUserInfo );
00265
00266         virtual HRESULT GetUserRegisterStatus( BSTR bstrConfig, LONG * pUserRegisterId, LONG * pUserRegisterStatus );
00267
00268         virtual HRESULT GetCAProperty( const BSTR strConfig, LONG PropId, LONG PropIndex, LONG PropType, LONG Flags, VARIANT *pvarPropertyValue );
00269
00270         virtual HRESULT GetCAPropertyFlags( const BSTR strConfig, LONG PropId, LONG *pPropFlags );
00271
00272         virtual HRESULT GetCAPropertyDisplayName( const BSTR strConfig, LONG PropId, BSTR *pstrDisplayName );
00273
00274         virtual HRESULT GetFullResponseProperty( LONG PropId, LONG PropIndex, LONG PropType, LONG Flags, VARIANT *pvarPropertyValue );
00275
00276         virtual HRESULT GetRequestIdString( BSTR *pstrRequestId );
00277
00278         virtual HRESULT GetIssuedCertificate2( BSTR strConfig, BSTR strRequestId, BSTR strSerialNumber, LONG *pDisposition );
00279
00280         virtual HRESULT GetRefreshPolicy( VARIANT_BOOL *pValue );
00281
00282         virtual HRESULT CA20GetEnrollParams( const std::string & UIURL,
00283                                              std::vector<std::string> &templates,
00284                                              std::vector<std::string> &EKUs,
00285                                              std::vector<std::string> &keySpecs,
00286                                              std::string & strDN );
00287
00288         static const std::string optionsControllerURL;
00289         static const std::string registrationRequestControllerURL;
00290         static const std::string certificateRequestControllerURL;
00291         static const std::string certificateGetControllerURL;
00292         static const std::string certificateTemplateControllerURL;
00293         static const std::string CACertificateControllerURL;
00294
00295     private:
00296         std::string token;
00297         std::string password;
00298         std::string certRequestID;
00299         std::string pkcs7;
00300
00301         BSTR bstrRequestHTML;
00302         BSTR bstrCertHTML;
00303         std::string strCertificate;
00304         std::string strSerial;
00305         HCERTSTORE hUserStore;
00306         PCCERT_CONTEXT pUserCert;
00307         BOOL fNeedFreeProv;
00308         DWORD dwCertKeySpec;
00309         HCRYPTPROV hUserProv;
00310         unsigned int CPCA20_URL_RETRIEVER_TIMEOUT;
00311
00312         std::string removeBackSlashFromUrl( std::string const& UIURL )
00313         {
00314             std::string ret = UIURL + "/";
00315             ret.erase( ret.find_last_not_of( '/' ) + 1 );
00316             return ret;
00317         }
00318
00319         std::string makeURLwithFolder( std::string const& UIURLwithFolder, std::string const& ContollerURL )
00320         {
00321             std::string urlGet = removeBackSlashFromUrl( UIURLwithFolder );
00322             size_t pos = urlGet.find_last_of( '/' );
00323             std::string tmp = UIURLwithFolder.substr( 0, pos  );
00324             tmp += "/api/"            ;
00325             tmp += urlGet.substr( pos + 1 );
00326             tmp += "/";
00327             tmp += ContollerURL;
00328             return tmp;
00329         }
00330
00331         std::string makeURL( std::string const& UIURL, std::string const& ContollerURL )
00332         {
00333             std::string urlGet = removeBackSlashFromUrl( UIURL );
00334             std::string tmp = urlGet;
00335             tmp += "/api/";
00336             tmp += ContollerURL;
00337             return tmp;
00338         }
00339
00340         std::string makeSecureURL( std::string const& UIURL, std::string const& ContollerURL )
00341         {
00342             std::string urlGet = removeBackSlashFromUrl( UIURL );
00343             std::string tmp = urlGet;
00344             tmp += "/2/api/";
00345             tmp += ContollerURL;
00346             return tmp;
00347         }
00348
00349         std::string makeCertRequestURL( std::string const& UIURLwithID, std::string const& ContollerURL )
00350         {
00351             std::string urlGet = UIURLwithID;
00352             size_t pos = UIURLwithID.find_last_of( '/' );
00353             urlGet = UIURLwithID.substr( 0, pos );
00354             urlGet += "/api/"            ;
00355             urlGet += ContollerURL;
00356             urlGet += "/";
00357             urlGet += UIURLwithID.substr( pos + 1 );
00358             return urlGet;
00359         }
00360
00361         std::string makeSecureCertRequestURL( std::string const& UIURLwithID, std::string const& ContollerURL )
00362         {
00363             std::string urlGet = UIURLwithID;
00364             size_t pos = UIURLwithID.find_last_of( '/' );
00365             urlGet = UIURLwithID.substr( 0, pos );
00366             pos = UIURLwithID.find_last_of( '/' );
00367             urlGet = UIURLwithID.substr( 0, pos );
00368             urlGet += "/2/api/"            ;
00369             urlGet += ContollerURL;
00370             urlGet += "/";
00371             urlGet += UIURLwithID.substr( pos + 1 );
00372             return urlGet;
00373         }
00374
00375         bool ConvertJsonResponseCodepage( std::string & response )
00376         {
00377 #ifdef DEBUG
00378             std::cerr << response << std::endl;
00379 #endif
00380             bool ret(false);
00381             int wchars_num =  MultiByteToWideChar( CP_UTF8 , 0 , response.c_str () , -1, NULL , 0 );
00382             if (!wchars_num)
00383                 return ret;
00384
00385             std::wstring outResponse;
00386             outResponse.resize( wchars_num );
00387
00388             if ( !MultiByteToWideChar( CP_UTF8 , 0 , response.c_str () , -1,  &outResponse[0], wchars_num ) )
00389             { return ret; }
00390
00391             // response может занимать различное количество байт в зависимости от кодировки
00392             response.clear();
00393             int chars_num = WideCharToMultiByte(CPCA20_ENCODING, 0, outResponse.c_str(), -1, NULL, 0, 0, NULL);
00394             if (!chars_num)
00395                 return ret;
00396
00397             response.resize(chars_num);
00398             if (!WideCharToMultiByte(CPCA20_ENCODING, 0, outResponse.c_str(), -1, &response[0], chars_num, 0, NULL))
00399             { return ret; }
00400
00401             return true;
00402         }
00403
00404         // метод конвертирует полученные данные для регистрации пользователя в UTF8
00405         // считаем, что для windows данные пришли в кодировке CP_ACP, а для UNIX - CP_UTF8
00406         bool ConvertJsonMessageCodepage( std::string & message )
00407         {
00408             std::wstring wmessage( message.length(), L' ' );
00409
00410             bool ret( false );
00411             if (!MultiByteToWideChar(CPCA20_ENCODING, 0, message.c_str(), -1, &wmessage[0], int(wmessage.size() + 1)))
00412             { return ret; }
00413
00414             message.resize( wmessage.size() * 2 + 1 );
00415
00416             if (!WideCharToMultiByte(CP_UTF8, 0, wmessage.c_str(), -1, &message[0], int(message.size() + 1), 0, NULL))
00417             { return ret; }
00418
00419             return true;
00420         }
00421
00422         std::string makeBasicAuth();
00423 };
00424 #endif  // __CPCA20_REQUEST_H__
Документация по КриптоПро CAPILite. Последние изменения: Thu Feb 22 00:10:20 2018. Создано системой doxygen 1.4.5-20051109


КриптоПро CAPILite: Исходный файл CPEnroll.h

  • Титульная страница
  • Группы
  • Классы
  • Файлы
  • Описания

CPEnroll.h

00001 #ifndef _CPENROLL_H
00002 #define _CPENROLL_H
00003
00004 #include "reader/support.h"
00005 #include <string>
00006 #include <memory>
00007 #include <list>
00008 #include <vector>
00009 #include "SecureBuffer.h"
00010 #include "BSTR.h"
00011
00012 #define XECR_PKCS10_V2_0     0x1
00013 #define XECR_PKCS7           0x2
00014 #define XECR_CMC             0x3
00015 #define XECR_PKCS10_V1_5     0x4
00016 #define XECR_PKCS7_TWICE     0x5
00017
00024 class CPEnroll
00025 {
00026 public:
00032     class UserCallbacks
00033     {
00034     public:
00047         virtual bool askPermissionToAddToRootStore(
00048                 const BYTE* pbCert, DWORD cbCert, bool = false) const=0;
00049
00053         virtual UserCallbacks* clone() const=0;
00054
00058         virtual ~UserCallbacks() {}
00059     };
00060 public:
00061
00062
00067     virtual ~CPEnroll() {};
00075     static CPEnroll *CPEFactory(const UserCallbacks* callbacks = 0, bool handlePKCS7 = false);
00076
00084     virtual HRESULT put_EnableSMIMECapabilities( bool value){
00085         UNUSED(value);
00086         return E_NOTIMPL;
00087     }
00088
00096     virtual HRESULT put_UseExistingKeySet(bool value){
00097         UNUSED(value);
00098         return E_NOTIMPL;
00099     }
00100
00108     virtual HRESULT put_HashAlgorithm( BSTR hashOid){
00109         UNUSED(hashOid);
00110         return E_NOTIMPL;
00111     }
00112
00127     virtual HRESULT put_ContainerName( BSTR cName){
00128         UNUSED(cName);
00129         return E_NOTIMPL;
00130     }
00131
00141     virtual HRESULT put_ProviderType( DWORD pType){
00142         UNUSED(pType);
00143         return E_NOTIMPL;
00144     }
00145
00155     virtual HRESULT put_ProviderName( BSTR pName){
00156         UNUSED(pName);
00157         return E_NOTIMPL;
00158     }
00159
00173     virtual HRESULT put_GenKeyFlags( DWORD keyFlags){
00174         UNUSED(keyFlags);
00175         return E_NOTIMPL;
00176     }
00177
00195     virtual HRESULT put_RequestStoreFlags( DWORD storeFlags){
00196         UNUSED(storeFlags);
00197         return E_NOTIMPL;
00198     }
00199
00213     virtual HRESULT put_ProviderFlags( DWORD provFlags){
00214         UNUSED(provFlags);
00215         return E_NOTIMPL;
00216     }
00217
00237     virtual HRESULT put_KeySpec( DWORD _dwKeySpec){
00238         UNUSED(_dwKeySpec);
00239         return E_NOTIMPL;
00240     }
00241
00267     virtual HRESULT put_LimitExchangeKeyToEncipherment( int value){
00268         UNUSED(value);
00269         return E_NOTIMPL;
00270     }
00271
00289     virtual HRESULT put_CAStoreFlags( DWORD flags){
00290         UNUSED(flags);
00291         return E_NOTIMPL;
00292     }
00311     virtual HRESULT put_MyStoreFlags( DWORD flags){
00312         UNUSED(flags);
00313         return E_NOTIMPL;
00314     }
00315
00334     virtual HRESULT put_RootStoreFlags( DWORD flags){
00335         UNUSED(flags);
00336         return E_NOTIMPL;
00337     }
00338
00352     virtual HRESULT put_MyStoreName( BSTR name){
00353         UNUSED(name);
00354         return E_NOTIMPL;
00355     }
00356
00377     virtual HRESULT put_DeleteRequestCert( bool value){
00378         UNUSED(value);
00379         return E_NOTIMPL;
00380     }
00381
00414     virtual HRESULT put_WriteCertToCSP( bool value){
00415         UNUSED(value);
00416         return E_NOTIMPL;
00417     }
00418
00434     virtual HRESULT put_PIN( const CSecurePin& pin){
00435         UNUSED(pin);
00436         return E_NOTIMPL;
00437     }
00438
00454     virtual HRESULT put_SupressAddRootUI( bool value){
00455         UNUSED(value);
00456         return E_NOTIMPL;
00457     }
00458
00459
00473     virtual HRESULT addExtensionToRequest( LONG flags, BSTR name, BSTR value){
00474         UNUSED(flags);
00475         UNUSED(name);
00476         UNUSED(value);
00477         return E_NOTIMPL;
00478     }
00479
00480
00492     virtual HRESULT get_InstallToContainerStatus( DWORD *pdwStatus){
00493         UNUSED(pdwStatus);
00494         return E_NOTIMPL;
00495     }
00496
00502     virtual HRESULT get_ContainerName ( BSTR *cName )
00503     {
00504         UNUSED ( cName );
00505         return E_NOTIMPL;
00506     }
00507
00508
00526     virtual HRESULT createPKCS10( BSTR rdn, BSTR usage, BSTR *request){
00527         UNUSED(rdn);
00528         UNUSED(usage);
00529         UNUSED(request);
00530         return E_NOTIMPL;
00531     }
00532
00556     virtual HRESULT createRequest( LONG flags, BSTR rdn, BSTR usage, BSTR *request){
00557         UNUSED(flags);
00558         UNUSED(rdn);
00559         UNUSED(usage);
00560         UNUSED(request);
00561         return E_NOTIMPL;
00562     }
00563
00593     virtual HRESULT acceptPKCS7( BSTR msg){
00594         UNUSED(msg);
00595         return E_NOTIMPL;
00596     }
00597
00620     virtual HRESULT installPKCS7( BSTR msg){
00621         UNUSED(msg);
00622         return E_NOTIMPL;
00623     }
00624
00633     virtual HRESULT SetSignerCertificate(
00634       /* [in] */  PCCERT_CONTEXT pSignerCert
00635       ){
00636         UNUSED(pSignerCert);
00637         return E_NOTIMPL;
00638     }
00639
00640     virtual HRESULT AddCProLicenseExt(){
00641         return E_NOTIMPL;
00642     }
00643 };
00644
00645 #endif /* _CPENROLL_H */
Документация по КриптоПро CAPILite. Последние изменения: Thu Feb 22 00:10:20 2018. Создано системой doxygen 1.4.5-20051109


КриптоПро CAPILite: Исходный файл MSCAstdRequest.h

  • Титульная страница
  • Группы
  • Классы
  • Файлы
  • Описания

MSCAstdRequest.h

00001 /* [Windows 1251]
00002  * [Use `iconv -f WINDOWS-1251', if needed]
00003  */
00004 /*
00005  * Copyright(C) 2005-2011
00006  *
00007  * Этот файл содержит информацию, являющуюся
00008  * собственностью компании Крипто-Про.
00009  *
00010  * Любая часть этого файла не может быть скопирована,
00011  * исправлена, переведена на другие языки,
00012  * локализована или модифицирована любым способом,
00013  * откомпилирована, передана по сети с или на
00014  * любую компьютерную систему без предварительного
00015  * заключения соглашения с компанией Крипто-Про.
00016  *
00017  * This is proprietary information of
00018  * Crypto-Pro company.
00019  *
00020  * Any part of this file can not be copied,
00021  * corrected, translated into other languages,
00022  * localized or modified by any means,
00023  * compiled, transferred over a network from or to
00024  * any computer system without preliminary
00025  * agreement with Crypto-Pro company
00026  */
00027
00037 #ifndef __MS_STD_CA_H__
00038 #define __MS_STD_CA_H__
00039 #include "UnixRequestImpl.h"
00040
00062  /*
00063  *  TODO: CR_PROP_CASIGCERTCOUNT в предварительной версии возвращает всегда 1
00064  */
00065
00066 class MSCAstdRequest: public UnixRequestImpl
00067 {
00068 protected:
00069     LONG RequestId;
00070     bool fCertificate;
00071     std::string strCertificate;
00072
00073 public:
00074     MSCAstdRequest():UnixRequestImpl(),RequestId(-1),
00075                      fCertificate(false),strCertificate()
00076     {
00077
00078     };
00079
00080     virtual HRESULT GetRequestParams(
00081         /* [in] */ BSTR strConfig,
00082         /* [in] */ BSTR strTemplate,
00083         /* [retval][out] */ BSTR *pstrRDN,
00084         /* [retval][out] */ BSTR *pstrEKUsage,
00085         /* [retval][out] */ DWORD *pKeySpec,
00086         /* [retval] */ std::vector<AttrTriple> *pAttrs
00087         );
00088
00089     virtual HRESULT Submit(
00090         /* [in] */ LONG Flags, /* CR_IN_BASE64HEADER, CR_IN_PKCS10 */
00091         /* [in] */ const BSTR strRequest,
00092         /* [in] */ const BSTR strAttributes,
00093         /* [in] */ const BSTR strConfig,
00094         /* [retval][out] */ LONG *pDisposition);
00095     virtual HRESULT GetRequestId(
00096               LONG* pRequestId
00097               )
00098     {
00099         if (RequestId != -1)
00100         {
00101             *pRequestId = RequestId;
00102             return S_OK;
00103         }
00104         else
00105             return NTE_FAIL;
00106     };
00107     virtual HRESULT GetCertificate(
00108        LONG Flags,
00109        BSTR* pstrCertificate
00110     );
00111     virtual HRESULT GetCACertificate(
00112         /* [in] */ LONG fExchangeCertificate, /* не поддерживаем */
00113         /* [in] */ const BSTR strConfig,
00114         /* [in] */ LONG Flags, /* CR_OUT_BASE64HEADER, CR_OUT_CHAIN */
00115         /* [retval][out] */ BSTR *pstrCertificate) ;
00116
00117
00118     virtual HRESULT RetrievePending(
00119         /* [in] */ LONG RequestId,
00120         /* [in] */ const BSTR strConfig,
00121         /* [retval][out] */ LONG *pDisposition);
00122
00123     virtual HRESULT GetCAProperty(
00124         /* [in] */ const BSTR strConfig,
00125         /* [in] */ LONG PropId, /* CR_PROP_BASECRL, CR_PROP_DELTACRL, CR_PROP_TEMPLATES */
00126         /* [in] */ LONG PropIndex,
00127         /* [in] */ LONG PropType, /* PROPTYPE_BINARY, PROPTYPE_STRING */
00128         /* [in] */ LONG Flags, /* CV_OUT_BASE64HEADER, CV_OUT_BASE64REQUESTHEADER, CV_OUT_BASE64X509CRLHEADER */
00129         /* [retval][out] */ VARIANT *pvarPropertyValue);
00130 };
00131 #endif
00132
Документация по КриптоПро CAPILite. Последние изменения: Thu Feb 22 00:10:20 2018. Создано системой doxygen 1.4.5-20051109


КриптоПро CAPILite: Исходный файл SecureBuffer.h

  • Титульная страница
  • Группы
  • Классы
  • Файлы
  • Описания

SecureBuffer.h

00001 /* [Windows 1251]
00002  * [Use `iconv -f WINDOWS-1251', if needed]
00003  */
00004 /*
00005  * Copyright(C) 2005-2011
00006  *
00007  * Этот файл содержит информацию, являющуюся
00008  * собственностью компании Крипто-Про.
00009  *
00010  * Любая часть этого файла не может быть скопирована,
00011  * исправлена, переведена на другие языки,
00012  * локализована или модифицирована любым способом,
00013  * откомпилирована, передана по сети с или на
00014  * любую компьютерную систему без предварительного
00015  * заключения соглашения с компанией Крипто-Про.
00016  *
00017  * This is proprietary information of
00018  * Crypto-Pro company.
00019  *
00020  * Any part of this file can not be copied,
00021  * corrected, translated into other languages,
00022  * localized or modified by any means,
00023  * compiled, transferred over a network from or to
00024  * any computer system without preliminary
00025  * agreement with Crypto-Pro company
00026  */
00027
00037 #ifndef _SECUREBUFFER_H_INCLUDED
00038 #define _SECUREBUFFER_H_INCLUDED
00039
00040 #ifdef UNIX
00041
00042 // Gcc implements an inline function with a parameter named __out
00043 #ifdef __out
00044 #define __out_our_bug_gcc
00045 #undef __out
00046 #endif
00047
00048 // Gcc implements an inline function with a parameter named __in
00049 #ifdef __in
00050 #define __in_our_bug_gcc
00051 #undef __in
00052 #endif
00053
00054 #include <stdexcept>
00055
00056 #ifdef __out_our_bug_gcc
00057 #define __out
00058 #undef __out_our_bug_gcc
00059 #endif
00060
00061 #ifdef __in_our_bug_gcc
00062 #define __in
00063 #undef __in_our_bug_gcc
00064 #endif
00065
00066 #endif /* UNIX */
00067
00068 #ifdef UNIX
00069 #   include <memory.h>
00070 #else
00071 #   include <windows.h>
00072 #endif // UNIX
00073
00074 #ifndef SecureZeroMemory
00075 #define SecureZeroMemory(ptr,cnt) do { \
00076     volatile char *vptr = (volatile char *)(ptr); \
00077     size_t tmpcnt = (cnt)*sizeof(*ptr); /* Формально размер *ptr не обязан быть 1 */ \
00078     while (tmpcnt) { *vptr = 0; vptr++; tmpcnt--; } } while(0)
00079 #endif // SecureZeroMemory
00080
00090 template <typename T>
00091 class CSecureBufferT
00092 {
00093 public:
00102     CSecureBufferT( size_t byteLen = 0 ) : _ptr(0), _len(byteLen) {
00103         if(0 != _len) {
00104             _ptr = new unsigned char[byteLen]; // throws bad_alloc if allocation fails
00105         }
00106     }
00107
00113     size_t len() const {
00114         return _len;
00115     }
00116
00125     const T * ptr() const {
00126         return (const T*)_ptr;
00127     }
00128
00134     bool empty() const {
00135         return (0 == _len);
00136     }
00137
00143     T * ptr_rw() {
00144         if(empty()) {
00145             throw std::runtime_error("_ptr is null, can't be writable");
00146         }
00147         return (T*)_ptr;
00148     }
00149
00153     void clean() {
00154         if(!empty()) {
00155             SecureZeroMemory(ptr_rw(),len());
00156         }
00157     }
00158
00162     void copy( const CSecureBufferT<T>& src) {
00163         if( this == &src ) {
00164             return;
00165         }
00166
00167         CSecureBufferT<T> tmp(src.len());
00168         if(!src.empty() && !tmp.empty() ) {
00169             memcpy(tmp.ptr_rw(), src.ptr(), tmp.len());
00170         }
00171         this->swap(tmp);
00172         tmp.clean();
00173         return;
00174     }
00175
00179     void swap( CSecureBufferT<T>& obj) {
00180         if( this == &obj ) {
00181             return;
00182         }
00183         std::swap(this->_ptr, obj._ptr);
00184         std::swap(this->_len, obj._len);
00185     }
00186
00190     ~CSecureBufferT() {
00191         clean();
00192         if(!empty()) {
00193             delete[] _ptr;
00194         }
00195     }
00196 private:
00197     CSecureBufferT( const CSecureBufferT<T>&);
00198     CSecureBufferT<T>& operator=( const CSecureBufferT<T>&);
00199
00200     unsigned char *_ptr;
00201     size_t _len;
00202 };
00203
00212 typedef CSecureBufferT<char> CSecurePin;
00213
00214 #endif // _SECUREBUFFER_H_INCLUDED
00215
Документация по КриптоПро CAPILite. Последние изменения: Thu Feb 22 00:10:20 2018. Создано системой doxygen 1.4.5-20051109


КриптоПро CAPILite: Исходный файл UnixEnroll.h

  • Титульная страница
  • Группы
  • Классы
  • Файлы
  • Описания

UnixEnroll.h

00001 /* [Windows 1251]
00002  * [Use `iconv -f WINDOWS-1251', if needed]
00003  */
00004 /*
00005  * Copyright(C) 2005-2011
00006  *
00007  * Этот файл содержит информацию, являющуюся
00008  * собственностью компании Крипто-Про.
00009  *
00010  * Любая часть этого файла не может быть скопирована,
00011  * исправлена, переведена на другие языки,
00012  * локализована или модифицирована любым способом,
00013  * откомпилирована, передана по сети с или на
00014  * любую компьютерную систему без предварительного
00015  * заключения соглашения с компанией Крипто-Про.
00016  *
00017  * This is proprietary information of
00018  * Crypto-Pro company.
00019  *
00020  * Any part of this file can not be copied,
00021  * corrected, translated into other languages,
00022  * localized or modified by any means,
00023  * compiled, transferred over a network from or to
00024  * any computer system without preliminary
00025  * agreement with Crypto-Pro company
00026  */
00027
00037 #ifndef _UNIXENROLL_H
00038 #define _UNIXENROLL_H
00039
00040 #include <string>
00041 #include <memory>
00042 #include <list>
00043 #include <vector>
00044 #include "CSP_WinCrypt.h"
00045 #include "SecureBuffer.h"
00046 #include "BSTR.h"
00047 #include "CPEnrollImpl.h"
00048
00049 #if __GNUC__==2
00050 typedef std::basic_string <wchar_t> std::wstring;
00051 #endif
00052 #ifdef ANDROID
00053 namespace std {
00054         typedef basic_string<wchar_t> wstring;
00055 }
00056 #endif
00057
00058 // TODO:X Есть вероятность конфликта MonoTouch и пр. вероятно нужно
00059 // внести всё в namespace ru::CryptoPro
00060
00061 #define XECR_PKCS10_V2_0     0x1
00062 #define XECR_PKCS7           0x2
00063 #define XECR_CMC             0x3
00064 #define XECR_PKCS10_V1_5     0x4
00065
00066 // BSTR SysAllocStringLen( const wchar_t *str, unsigned int cch);
00067
00076 class UnixEnroll: public CPEnrollImpl
00077 {
00078 protected:
00079         bool handlePKCS7_;
00080 public:
00087     UnixEnroll(
00088         const CPEnroll::UserCallbacks& callbacks,
00089         bool handlePKCS7 = false);
00090
00095     ~UnixEnroll();
00096
00104     virtual HRESULT put_EnableSMIMECapabilities(bool value)
00105     {
00106         UNUSED(value);
00107         return S_OK;
00108     }
00109
00117     virtual HRESULT put_UseExistingKeySet(bool value);
00118
00132     virtual HRESULT put_ContainerName( BSTR cName)
00133     {
00134         containerName_ = SysAllocString(cName);
00135         return S_OK;
00136     }
00137
00147     virtual HRESULT put_ProviderType( DWORD pType)
00148     {
00149         providerType_ = pType;
00150         return S_OK;
00151     }
00152
00162     virtual HRESULT put_ProviderName( BSTR pName)
00163     {
00164         providerName_ = SysAllocString(pName);
00165         return S_OK;
00166     }
00167
00181     virtual HRESULT put_GenKeyFlags( DWORD keyFlags)
00182     {
00183         keyFlags_ = keyFlags;
00184         return S_OK;
00185     }
00186
00204     virtual HRESULT put_RequestStoreFlags( DWORD storeFlags)
00205     {
00206         requestStoreFlags_ = storeFlags;
00207         return S_OK;
00208     }
00209
00223     virtual HRESULT put_ProviderFlags( DWORD provFlags)
00224     {
00225         provFlags_ |= provFlags; /* TODO:XXX почему OR ??? */
00226         return S_OK;
00227     }
00228
00245      /*
00246      *  TODO:XXX В отличии от ICertEnroll нет значения по умолчанию ???
00247      */
00248     virtual HRESULT put_KeySpec( DWORD _dwKeySpec)
00249     {
00250         dwKeySpec = _dwKeySpec;
00251         return S_OK;
00252     }
00253
00279     virtual HRESULT put_LimitExchangeKeyToEncipherment( int value)
00280     {
00281         limitExchangeKeyToEncipherment_ = value ? true : false;
00282         return S_OK;
00283     }
00284
00302     virtual HRESULT put_CAStoreFlags( DWORD flags)
00303     {
00304         caStoreFlags_ = flags;
00305         return S_OK;
00306     }
00307
00326     virtual HRESULT put_MyStoreFlags( DWORD flags)
00327     {
00328         myStoreFlags_ = flags;
00329         return S_OK;
00330     }
00331
00350     virtual HRESULT put_RootStoreFlags( DWORD flags)
00351     {
00352         rootStoreFlags_ = flags;
00353         return S_OK;
00354     }
00355
00369     virtual HRESULT put_MyStoreName( BSTR name)
00370     {
00371         myStoreName_ = SysAllocString(name);
00372         return S_OK;
00373     }
00374
00395     virtual HRESULT put_DeleteRequestCert( bool value)
00396     {
00397         deleteRequest_ = value;
00398         return S_OK;
00399     }
00400
00433      /*
00434      *  Значение по умолчанию false.
00435      *  TODO:XXX В отличии от ICertEnroll, у которого оно true ???
00436      */
00437     virtual HRESULT put_WriteCertToCSP( bool value)
00438     {
00439         writeToCSP_ = value;
00440         return S_OK;
00441     }
00442
00458     virtual HRESULT put_PIN( const CSecurePin& pin)
00459     {
00460         //ожидаем что пин имеет на конце ноль, иначе всё будет плохо
00461         if (pin.ptr()[pin.len() - 1] != 0)
00462             return NTE_BAD_DATA;
00463         pin_.copy(pin);
00464         return S_OK;
00465     }
00466
00482     virtual HRESULT put_SupressAddRootUI( bool value)
00483     {
00484         supressAddRootUi_ = value;
00485         return S_OK;
00486     }
00487
00501     virtual HRESULT addExtensionToRequest( LONG flags, BSTR name, BSTR value) {
00502         std::vector<BYTE> binary;
00503         HRESULT hr = UnixEnroll::getMessageFromBSTR(value,binary);
00504         if( S_OK != hr ) {
00505             return hr;
00506         }
00507
00508         const char *oid = ConvertBSTRToString(name);
00509
00510         extensions_.push_back(Extension(oid, flags, binary) );
00511
00512         delete[] oid;
00513
00514         return S_OK;
00515     }
00516
00528     virtual HRESULT get_InstallToContainerStatus( DWORD *pdwStatus) {
00529         if(!pdwStatus) {
00530             return E_INVALIDARG;
00531         }
00532         *pdwStatus = installToContainerStatus_;
00533         return S_OK;
00534     }
00535
00553     virtual HRESULT createPKCS10( BSTR rdn, BSTR usage, BSTR *request) {
00554         return
00555             createPKCSRequest(rdn, usage, request, false,false);
00556     }
00557
00581     virtual HRESULT createRequest( LONG flags, BSTR rdn, BSTR usage, BSTR *request) {
00582         if( XECR_PKCS10_V2_0 == flags || XECR_PKCS10_V1_5 == flags ) {
00583             return createPKCSRequest(rdn, usage, request, true, false);
00584         } else if (flags == XECR_PKCS7) {
00585             return createPKCSRequest(rdn, usage, request, true, true);
00586         } else if (flags == XECR_PKCS7_TWICE) {
00587             return createPKCSRequest(rdn, usage, request, true, 2);
00588         } else
00589             return E_NOTIMPL;
00590     }
00591
00621     virtual HRESULT acceptPKCS7( BSTR msg);
00622
00642     virtual HRESULT installPKCS7( BSTR msg);
00666     HRESULT installPKCS7Ex( BSTR msg, LONG * plCertInstalled);
00675 private:
00676     HRESULT findCertificateInRequestStore(
00677         const BYTE* pbCert, DWORD cbCert,
00678         std::vector<BYTE>& foundedCert,
00679         cpcrypt_store_handle& store) const;
00680     HRESULT createCerificateContextFromRequestStore(
00681         const BYTE* pbCert, DWORD cbCert,
00682         PCCERT_CONTEXT& pCertContext,
00683         cpcrypt_store_handle& handle) const;
00684     HRESULT installCertificateToStore(
00685         PCCERT_CONTEXT pPrivateKeyCertContext,
00686         const BYTE* pbCert, DWORD cbCert);
00687     std::string prepareKeyUsageString( const std::string& usage );
00688     HRESULT encodeRequestToPKCS7(std::vector<BYTE>& Request);
00689     HRESULT prepareKeyUsage(
00690         const std::string& usage,
00691         std::vector<std::string>& usageArray);
00692 };
00693
00694 #endif /* _UNIXENROLL_H */
Документация по КриптоПро CAPILite. Последние изменения: Thu Feb 22 00:10:20 2018. Создано системой doxygen 1.4.5-20051109


КриптоПро CAPILite: Исходный файл UnixRequest.h

  • Титульная страница
  • Группы
  • Классы
  • Файлы
  • Описания

UnixRequest.h

00001 /* [Windows 1251]
00002  * [Use `iconv -f WINDOWS-1251', if needed]
00003  */
00004 /*
00005  * Copyright(C) 2005-2011
00006  *
00007  * Этот файл содержит информацию, являющуюся
00008  * собственностью компании Крипто-Про.
00009  *
00010  * Любая часть этого файла не может быть скопирована,
00011  * исправлена, переведена на другие языки,
00012  * локализована или модифицирована любым способом,
00013  * откомпилирована, передана по сети с или на
00014  * любую компьютерную систему без предварительного
00015  * заключения соглашения с компанией Крипто-Про.
00016  *
00017  * This is proprietary information of
00018  * Crypto-Pro company.
00019  *
00020  * Any part of this file can not be copied,
00021  * corrected, translated into other languages,
00022  * localized or modified by any means,
00023  * compiled, transferred over a network from or to
00024  * any computer system without preliminary
00025  * agreement with Crypto-Pro company
00026  */
00027
00037 #ifndef _UNIXREQUEST_H
00038 #define _UNIXREQUEST_H
00039
00040 #include<stdarg.h>
00041
00042 #ifdef _WIN32
00043 #   include "Certsrv.h"
00044 #endif//_WIN32
00045 #ifdef UNIX
00046 #   include "CSP_WinCrypt.h"
00047 #ifndef VARIANT
00048 #   define VARIANT void*
00049 #endif//VARIANT
00050 #endif // UNIX
00051
00052 #include "SecureBuffer.h"
00053 //#include "UnixEnroll.h"
00054 #include "BSTR.h"
00055 #include <vector>
00056 #include <string>
00057 #include "reader/support.h"
00058 #include <map>
00059
00060 #ifndef _WIN32
00061     typedef unsigned short VARIANT_BOOL;
00062 #endif//_WIN32
00063
00064 //========= CertSrv.h ===========
00065
00066 // TODO:X Есть вероятность конфликта MonoTouch и пр. вероятно нужно
00067 // внести всё в namespace ru::CryptoPro
00068
00069 #define PROPTYPE_LONG        0x00000001 // Signed long
00070 #define PROPTYPE_DATE        0x00000002 // Date+Time
00071 #define PROPTYPE_BINARY      0x00000003 // Binary data
00072 #define PROPTYPE_STRING      0x00000004 // Unicode String
00073 #define PROPTYPE_MASK        0x000000ff
00074
00075 //========= CertCli.h ===========
00076
00077
00078 #define CR_IN_BASE64HEADER      ( 0 )
00079 #define CR_IN_BASE64    ( 0x1 )
00080 //#define       CR_IN_BINARY    ( 0x2 )
00081 //#define       CR_IN_ENCODEANY ( 0xff )
00082 #define CR_IN_ENCODEMASK        ( 0xff )
00083 //#define       CR_IN_FORMATANY ( 0 )
00084 #define CR_IN_PKCS10    ( 0x100 )
00085 //#define       CR_IN_KEYGEN    ( 0x200 )
00086 //#define       CR_IN_PKCS7     ( 0x300 )
00087 //#define       CR_IN_CMC       ( 0x400 )
00088 #define CR_IN_FORMATMASK        ( 0xff00 )
00089 //#define       CR_IN_RPC       ( 0x20000 )
00090 //#define       CR_IN_FULLRESPONSE      ( 0x40000 )
00091 //#define       CR_IN_CRLS      ( 0x80000 )
00092 //#define       CR_IN_MACHINE   ( 0x100000 )
00093 //#define       CR_IN_ROBO      ( 0x200000 )
00094 //#define       CR_IN_CLIENTIDNONE      ( 0x400000 )
00095 //#define       CR_IN_CONNECTONLY       ( 0x800000 )
00096 //#define       CR_IN_CLIENTFLAGSMASK   ( ( ( ( ( CR_IN_ENCODEMASK | CR_IN_RPC )  | CR_IN_MACHINE )  | CR_IN_CLIENTIDNONE )  | CR_IN_CONNECTONLY )  )
00097
00098 #define CR_DISP_INCOMPLETE      ( 0 )
00099 #define CR_DISP_ERROR   ( 0x1 )
00100 #define CR_DISP_DENIED  ( 0x2 )
00101 #define CR_DISP_ISSUED  ( 0x3 )
00102 #define CR_DISP_ISSUED_OUT_OF_BAND      ( 0x4 )
00103 #define CR_DISP_UNDER_SUBMISSION        ( 0x5 )
00104 #define CR_DISP_REVOKED ( 0x6 )
00105
00106 #define CR_OUT_BASE64HEADER     ( 0 )
00107 #define CR_OUT_BASE64   ( 0x1 )
00108 #define CR_OUT_BINARY   ( 0x2 )
00109 #define CR_OUT_BASE64REQUESTHEADER      ( 0x3 )
00110 //#define       CR_OUT_HEX      ( 0x4 )
00111 //#define       CR_OUT_HEXASCII ( 0x5 )
00112 #define CR_OUT_BASE64X509CRLHEADER      ( 0x9 )
00113 //#define       CR_OUT_HEXADDR  ( 0xa )
00114 //#define       CR_OUT_HEXASCIIADDR     ( 0xb )
00115 //#define       CR_OUT_HEXRAW   ( 0xc )
00116 #define CR_OUT_ENCODEMASK       ( 0xff )
00117 #define CR_OUT_CHAIN    ( 0x100 )
00118 #define CR_OUT_CRLS     ( 0x200 )
00119 //#define       CR_OUT_NOCRLF   ( 0x40000000 )
00120 //#define       CR_OUT_NOCR     ( 0x80000000 )
00121 #define CR_UNKNOWN_ERR ( -1 )
00122 #define CR_WRONG_PASS ( -2 )
00123 #define CR_OLD_MARKER ( -3 )
00124 #define CR_NOT_EXIST_MARKER ( -4 )
00125 #define CR_WRONG_MARKER_NAME ( -5 )
00126
00127 #define CR_PROP_NONE               0  // Invalid
00128 //#define CR_PROP_FILEVERSION        1  // String
00129 //#define CR_PROP_PRODUCTVERSION     2  // String
00130 //#define CR_PROP_EXITCOUNT          3  // Long
00131 //
00133 //#define CR_PROP_EXITDESCRIPTION    4  // String, Indexed
00134 //
00135 //#define CR_PROP_POLICYDESCRIPTION  5  // String
00136 //#define CR_PROP_CANAME             6  // String
00137 //#define CR_PROP_SANITIZEDCANAME    7  // String
00138 //#define CR_PROP_SHAREDFOLDER       8  // String
00139 //#define CR_PROP_PARENTCA           9  // String
00140 //#define CR_PROP_CATYPE            10  // Long
00141 #define CR_PROP_CASIGCERTCOUNT    11  // Long
00142
00143 // CR_PROP_CASIGCERTCOUNT Elements:
00144 #define CR_PROP_CASIGCERT         12  // Binary, Indexed
00145
00146 // CR_PROP_CASIGCERTCOUNT Elements:
00147 #define CR_PROP_CASIGCERTCHAIN    13  // Binary, Indexed
00148
00149 //#define CR_PROP_CAXCHGCERTCOUNT   14  // Long
00150 //
00152 //#define CR_PROP_CAXCHGCERT        15  // Binary, Indexed
00153 //
00155 //#define CR_PROP_CAXCHGCERTCHAIN   16  // Binary, Indexed
00156
00157 // CR_PROP_CASIGCERTCOUNT Elements:
00158 // Fetch only if CR_PROP_CRLSTATE[i] == CA_DISP_VALID
00159 // May also be available if CR_PROP_CRLSTATE[i] == CA_DISP_INVALID
00160 #define CR_PROP_BASECRL           17  // Binary, Indexed
00161
00162 // CR_PROP_CASIGCERTCOUNT Elements:
00163 // Fetch only if Delta CRLs enabled && CR_PROP_CRLSTATE[i] == CA_DISP_VALID
00164 // May also be available if CR_PROP_CRLSTATE[i] == CA_DISP_INVALID
00165 #define CR_PROP_DELTACRL          18  // Binary, Indexed
00166
00168 //#define CR_PROP_CACERTSTATE       19  // Long, Indexed
00169
00170 // CR_PROP_CASIGCERTCOUNT Elements:
00171 #define CR_PROP_CRLSTATE          20  // Long, Indexed
00172
00173 //#define CR_PROP_CAPROPIDMAX       21  // Long
00174 //#define CR_PROP_DNSNAME           22  // String
00175 //#define CR_PROP_ROLESEPARATIONENABLED 23 // Long
00176 //#define CR_PROP_KRACERTUSEDCOUNT  24  // Long
00177 //#define CR_PROP_KRACERTCOUNT      25  // Long
00178
00180 //#define CR_PROP_KRACERT           26  // Binary, Indexed
00181
00183 //#define CR_PROP_KRACERTSTATE      27  // Long, Indexed
00184
00185 //#define CR_PROP_ADVANCEDSERVER    28  // Long
00186 #define CR_PROP_TEMPLATES         29  // String
00187
00190 //#define CR_PROP_BASECRLPUBLISHSTATUS 30  // Long, Indexed
00191 //
00193 // Fetch only if Delta CRLs enabled && CR_PROP_CRLSTATE[i] == CA_DISP_VALID
00194 //#define CR_PROP_DELTACRLPUBLISHSTATUS 31  // Long, Indexed
00195
00196 // CR_PROP_CASIGCERTCOUNT Elements:
00197 #define CR_PROP_CASIGCERTCRLCHAIN 32  // Binary, Indexed
00198
00200 //#define CR_PROP_CAXCHGCERTCRLCHAIN 33 // Binary, Indexed
00201 //
00203 //#define CR_PROP_CACERTSTATUSCODE  34  // Long, Indexed
00204 //
00206 //#define CR_PROP_CAFORWARDCROSSCERT 35  // Binary, Indexed
00207 //
00209 //#define CR_PROP_CABACKWARDCROSSCERT 36  // Binary, Indexed
00210 //
00212 //#define CR_PROP_CAFORWARDCROSSCERTSTATE 37  // Long, Indexed
00213 //
00215 //#define CR_PROP_CABACKWARDCROSSCERTSTATE 38  // Long, Indexed
00216 //
00218 //#define CR_PROP_CACERTVERSION       39  // Long, Indexed
00219 //#define CR_PROP_SANITIZEDCASHORTNAME 40  // String
00220 //
00222 //#define CR_PROP_CERTCDPURLS 41  // String, Indexed
00223 //
00225 //#define CR_PROP_CERTAIAURLS 42  // String, Indexed
00226 //
00228 //#define CR_PROP_CERTAIAOCSPURLS 43  // String, Indexed
00229 //
00231 //#define CR_PROP_LOCALENAME 44  // String
00232
00233 #define CR_PROP_TEMPLATES_CA20 300 // String
00234
00235 //========= CertView.h ===========
00236
00237
00238 #define CV_OUT_BASE64HEADER     ( 0 )
00239 #define CV_OUT_BASE64   ( 0x1 )
00240 //#define CV_OUT_BINARY   ( 0x2 )
00241 #define CV_OUT_BASE64REQUESTHEADER      ( 0x3 )
00242 //#define CV_OUT_HEX      ( 0x4 )
00243 //#define CV_OUT_HEXASCII ( 0x5 )
00244 #define CV_OUT_BASE64X509CRLHEADER      ( 0x9 )
00245 //#define CV_OUT_HEXADDR  ( 0xa )
00246 //#define CV_OUT_HEXASCIIADDR     ( 0xb )
00247 //#define CV_OUT_HEXRAW   ( 0xc )
00248 //#define CV_OUT_ENCODEMASK       ( 0xff )
00249 //#define CV_OUT_NOCRLF   ( 0x40000000 )
00250 //#define CV_OUT_NOCR     ( 0x80000000 )
00251
00252
00253 //========= UnixRequest.h ===========
00254
00255 #define CR_OUT_HTML     ( 0xc3 )
00256
00257
00258 //========= CertCli.h ===========
00259
00263 #ifndef _WIN32
00264 typedef
00265 enum X509EnrollmentAuthFlags
00266     {
00267                 X509AuthNone            = 0,
00268                 X509AuthAnonymous       = 1,
00269                 X509AuthKerberos        = 2,
00270                 X509AuthUsername        = 4,
00271                 X509AuthCertificate     = 8
00272     }   X509EnrollmentAuthFlags;
00273 #endif//_WIN32
00274
00275 //========= UnixRequest.h ===========
00276
00282 typedef
00283 enum X509EnrollmentCheckChainFlags
00284     {
00285                 X509CC_None             = 0,
00286                 X509CC_TLS              = 1,
00287                 X509CC_NoHostNameCheck= 2,
00289                 X509CC_NoCheck = 4
00291     }   X509EnrollmentCheckChainFlags;
00292
00301 class UnixRequest
00302 {
00303 public:
00304
00314     static UnixRequest *URFactory(const char *pszCA_type_name);
00315
00321     class UserCallbacks
00322     {
00323     public:
00339         virtual bool askCredentialCAThumbprint(
00340                     const BSTR prompt,
00341                     BSTR *strCredentialCAThumbprint){
00342             UNUSED(prompt);
00343             UNUSED(strCredentialCAThumbprint);
00344             return false;       // По умолчанию - отказ
00345         }
00346
00360         virtual bool showForCheckCAThumbprint(
00361                     const BSTR prompt,
00362                     const BSTR strCAThumbprint){
00363             UNUSED(prompt);
00364             UNUSED(strCAThumbprint);
00365             return false;       // По умолчанию - отказ
00366         }
00367
00379         virtual bool askPassword(
00380                     const BSTR prompt,
00381                     CSecurePin &password){
00382             UNUSED(prompt);
00383             UNUSED(password);
00384             return false;       // По умолчанию - отказ
00385         }
00386
00390         virtual UserCallbacks* clone() const=0;
00391
00395         virtual ~UserCallbacks() {}
00396     };
00397
00398     virtual ~UnixRequest() {}
00399
00427     virtual HRESULT SetCredential(
00428         /* [in] */ UserCallbacks *pCallbacks,
00429         /* [in] */ X509EnrollmentAuthFlags AuthType,
00430         /* [in] */ X509EnrollmentCheckChainFlags CheckChainType,
00431         /* [in] */ const BSTR strCredential,
00432         /* [in][out] */ CSecurePin *sbPassword,
00433         /* [in] */ BOOL UseLocalMachineCert = FALSE) = 0;
00434
00435     class AttrTriple
00436     {
00437         public:
00438             LONG Flags;
00439             BSTR Name;
00440             BSTR Value;
00441
00442             AttrTriple():Flags(0),Name(0),Value(0) { };
00443             ~AttrTriple()
00444             {
00445                 if (Name)
00446                     SysFreeString(Name);
00447                 if (Value)
00448                     SysFreeString(Value);
00449             };
00450     };
00451
00452     class RequestInfoEx
00453     {
00454             bool has_items;
00455         public:
00456             LONG Disposition;
00457             std::string sent_date;
00458             std::string approval_date;
00459             std::string comment;
00460             std::string PKCS;
00461             RequestInfoEx():has_items(false),Disposition(-1),
00462                 sent_date(),approval_date(),comment(),PKCS()
00463             {
00464             };
00465             RequestInfoEx(
00466                 LONG Disposition_,
00467                 const std::string & sent_date_,
00468                 const std::string & approval_date_,
00469                 const std::string & comment_,
00470                 const std::string & PKCS_
00471             ): has_items(true),
00472                Disposition(Disposition_),
00473                sent_date(sent_date_),
00474                approval_date(approval_date_),
00475                comment(comment_),
00476                PKCS(PKCS_)
00477             {
00478             };
00479             bool empty()
00480             {
00481                 return !has_items;
00482             };
00483     };
00484
00485     typedef enum
00486     {
00487         CA15None=0,
00488         CA15Cert=1,
00489         CA15Request=2,
00490         CA15Revoke=3
00491     } ReqType;
00492
00493     typedef std::map<std::string,RequestInfoEx> RequestMapEx;
00494
00514     virtual HRESULT GetRequestParams(
00515         /* [in] */ BSTR strConfig,
00516         /* [in] */ BSTR strTemplate,
00517         /* [retval][out] */ BSTR *pstrRDN,
00518         /* [retval][out] */ BSTR *pstrEKUsage,
00519         /* [retval][out] */ DWORD *pKeySpec,
00520         /* [retval] */ std::vector<AttrTriple> *pAttrs
00521         ){
00522             UNUSED(strConfig);
00523             UNUSED(strTemplate);
00524             UNUSED(pstrRDN);
00525             UNUSED(pstrEKUsage);
00526             UNUSED(pKeySpec);
00527             UNUSED(pAttrs);
00528             return E_NOTIMPL; /* Реализуем только для CPCA15Request */
00529     }
00530
00536     typedef std::map<std::string,LONG> RequestMap;
00537
00538     virtual HRESULT ListRequests(
00539         /* [in] */ BSTR strConfig,
00540         /* [out] */ RequestMap &Requests
00541     ) {
00542         UNUSED(strConfig);
00543         UNUSED(Requests);
00544         return E_NOTIMPL;
00545     }
00553     virtual HRESULT ListRequestsEx(
00554                 BSTR strConfig,
00555             RequestMapEx & Requests,
00556                 ReqType type = CA15Request
00557         ) {
00558         UNUSED(strConfig);
00559         UNUSED(Requests);
00560         UNUSED(type);
00561         return E_NOTIMPL;
00562     }
00563
00576     virtual HRESULT GetRequest(
00577         /* [in] */ LONG Flags, /* CR_OUT_HTML */
00578         /* [retval][out] */ BSTR *pstrRequest){
00579             UNUSED(Flags);
00580             UNUSED(pstrRequest);
00581             return E_NOTIMPL; /* Реализуем только для CPCA15Request */
00582     }
00583
00584 public:
00585
00613     virtual HRESULT Submit(
00614         /* [in] */ LONG Flags, /* CR_IN_BASE64HEADER, CR_IN_PKCS10 */
00615         /* [in] */ const BSTR strRequest,
00616         /* [in] */ const BSTR strAttributes,
00617         /* [in] */ const BSTR strConfig,
00618         /* [retval][out] */ LONG *pDisposition) = 0;
00619
00651     virtual HRESULT RetrievePending(
00652         /* [in] */ LONG RequestId,
00653         /* [in] */ const BSTR strConfig,
00654         /* [retval][out] */ LONG *pDisposition) = 0;
00655
00683     virtual HRESULT AcknowledgeInstallCert(
00684         /* [in] */ LONG RequestId,
00685         /* [in] */ const BSTR strConfig
00686         )
00687     {
00688         UNUSED(RequestId);
00689         UNUSED(strConfig);
00690         return E_NOTIMPL;
00691     }
00692
00693
00694
00708     virtual HRESULT GetLastStatus(
00709         /* [retval][out] */ LONG *pStatus) {
00710         UNUSED(pStatus);
00711         return E_NOTIMPL; /* Вообще не нужно реализовывать */
00712     }
00713
00721     virtual HRESULT GetRequestId(
00722         /* [retval][out] */ LONG *pRequestId) = 0;
00723
00735     virtual HRESULT GetDispositionMessage(
00736         /* [retval][out] */ BSTR *pstrDispositionMessage) = 0;
00737
00755     virtual HRESULT GetCACertificate(
00756         /* [in] */ LONG fExchangeCertificate, /* не поддерживаем */
00757         /* [in] */ const BSTR strConfig,
00758         /* [in] */ LONG Flags, /* CR_OUT_BASE64HEADER, CR_OUT_CHAIN */
00759         /* [retval][out] */ BSTR *pstrCertificate) = 0;
00760
00772     virtual HRESULT GetCertificate(
00773         /* [in] */ LONG Flags, /* CR_OUT_HTML, CR_OUT_BASE64HEADER, CR_OUT_CHAIN */
00774         /* [retval][out] */ BSTR *pstrCertificate) = 0;
00775
00776 public:
00777
00813     virtual HRESULT GetIssuedCertificate(
00814         /* [in] */ const BSTR strConfig,
00815         /* [in] */ LONG RequestId,
00816         /* [in] */ const BSTR strSerialNumber,
00817         /* [retval][out] */ LONG *pDisposition){
00818         UNUSED(strConfig);
00819         UNUSED(RequestId);
00820         UNUSED(strSerialNumber);
00821         UNUSED(pDisposition);
00822         return E_NOTIMPL; /* Вообще не нужно реализовывать */
00823     }
00824
00843     virtual HRESULT GetErrorMessageText(
00844         /* [in] */ LONG hrMessage,
00845         /* [in] */ LONG Flags,
00846         /* [retval][out] */ BSTR *pstrErrorMessageText){
00847         UNUSED(hrMessage);
00848         UNUSED(Flags);
00849         UNUSED(pstrErrorMessageText);
00850         return E_NOTIMPL; /* Вообще не нужно реализовывать */
00851     }
00861     virtual HRESULT RegisterUser(
00862         /* [in] */ BSTR bstrConfig,
00863         /* [in] */ void * pUserInfo
00864         )
00865     {
00866         UNUSED(bstrConfig);
00867         UNUSED(pUserInfo);
00868         return E_NOTIMPL; /* Реализуем для CPCA1.5 */
00869     }
00879     virtual HRESULT GetUserRegisterInfo(
00880         /* [in] */ BSTR bstrConfig,
00881         /* [in] */ void * pUserInfo
00882         )
00883     {
00884         UNUSED(bstrConfig);
00885         UNUSED(pUserInfo);
00886         return E_NOTIMPL; /* Реализуем для CPCA1.5 */
00887     }
00888
00904     virtual HRESULT GetUserRegisterStatus(
00905         /* [in] */ BSTR bstrConfig,
00906         /* [in] */ LONG * pUserRegisterId,
00907         /* [in] */ LONG * pUserRegisterStatus
00908         )
00909     {
00910         UNUSED(bstrConfig);
00911         UNUSED(pUserRegisterId);
00912         UNUSED(pUserRegisterStatus);
00913         return E_NOTIMPL; /* Реализуем для CPCA1.5 */
00914     }
00915
00916
00948     virtual HRESULT GetCAProperty(
00949         /* [in] */ const BSTR strConfig,
00950         /* [in] */ LONG PropId, /* CR_PROP_BASECRL, CR_PROP_DELTACRL, CR_PROP_TEMPLATES */
00951         /* [in] */ LONG PropIndex,
00952         /* [in] */ LONG PropType, /* PROPTYPE_BINARY, PROPTYPE_STRING */
00953         /* [in] */ LONG Flags, /* CV_OUT_BASE64HEADER, CV_OUT_BASE64REQUESTHEADER, CV_OUT_BASE64X509CRLHEADER */
00954         /* [retval][out] */ VARIANT *pvarPropertyValue) = 0;
00955
00969     virtual HRESULT GetCAPropertyFlags(
00970         /* [in] */ const BSTR strConfig,
00971         /* [in] */ LONG PropId,
00972         /* [retval][out] */ LONG *pPropFlags){
00973         UNUSED(strConfig);
00974         UNUSED(PropId);
00975         UNUSED(pPropFlags);
00976         return E_NOTIMPL; /* Вообще не нужно реализовывать */
00977     }
00978
00992     virtual HRESULT GetCAPropertyDisplayName(
00993         /* [in] */ const BSTR strConfig,
00994         /* [in] */ LONG PropId,
00995         /* [retval][out] */ BSTR *pstrDisplayName){
00996         UNUSED(strConfig);
00997         UNUSED(PropId);
00998         UNUSED(pstrDisplayName);
00999         return E_NOTIMPL; /* Вообще не нужно реализовывать */
01000     }
01001
01018     virtual HRESULT GetFullResponseProperty(
01019         /* [in] */ LONG PropId,
01020         /* [in] */ LONG PropIndex,
01021         /* [in] */ LONG PropType,
01022         /* [in] */ LONG Flags,
01023         /* [retval][out] */ VARIANT *pvarPropertyValue){
01024         UNUSED(PropId);
01025         UNUSED(PropIndex);
01026         UNUSED(PropType);
01027         UNUSED(Flags);
01028         UNUSED(pvarPropertyValue);
01029         return E_NOTIMPL; /* Вообще не нужно реализовывать */
01030     }
01031
01032 public:
01033
01055     virtual HRESULT SetCredential(
01056         /* [in] */ LONG hWnd,
01057         /* [in] */ X509EnrollmentAuthFlags AuthType,
01058         /* [in] */ BSTR strCredential,
01059         /* [in] */ BSTR strPassword) = 0;
01072     virtual HRESULT GetRequestIdString(
01073         /* [retval][out] */ BSTR *pstrRequestId){
01074         UNUSED(pstrRequestId);
01075         return E_NOTIMPL; /* Вообще не нужно реализовывать */
01076     }
01077
01117     virtual HRESULT GetIssuedCertificate2(
01118         /* [in] */ BSTR strConfig,
01119         /* [in] */ BSTR strRequestId,
01120         /* [in] */ BSTR strSerialNumber,
01121         /* [retval][out] */ LONG *pDisposition){
01122         UNUSED(strConfig);
01123         UNUSED(strRequestId);
01124         UNUSED(strSerialNumber);
01125         UNUSED(pDisposition);
01126         return E_NOTIMPL; /* Вообще не нужно реализовывать */
01127     }
01128
01139     virtual HRESULT GetRefreshPolicy(
01140         /* [retval][out] */ VARIANT_BOOL *pValue){
01141         UNUSED(pValue);
01142         return E_NOTIMPL; /* Вообще не нужно реализовывать */
01143     }
01144
01145 };
01146 #endif /* _UNIXEREQUEST_H */
Документация по КриптоПро CAPILite. Последние изменения: Thu Feb 22 00:10:20 2018. Создано системой doxygen 1.4.5-20051109


КриптоПро CAPILite: Классы

  • Титульная страница
  • Группы
  • Классы
  • Файлы
  • Описания
  • Классы
  • Иерархия классов
  • Члены классов

КриптоПро CAPILite Классы

Классы с их кратким описанием.
CContextHolder |
CPCA15Request::UnixRequest | Интерфейс запросов к УЦ на сертификат реализация для Standalone CA Реализация интерфеса взаимодействия с "КриптоПро УЦ 1.4/1.5"
CPCA20Request::UnixRequestImpl | Реализация интерфеса взаимодействия с "КриптоПро УЦ 2.0"
CPEnroll | Создание запросов на сертификат и установка полученных сертификатов
CPEnroll::UserCallbacks | Интерфейс запросов пользователя
CSecureBufferT< T > | Буфер с обнулением в деструкторе
MSCAstdRequest::UnixRequest | Интерфейс запросов к УЦ на сертификат реализация для Standalone CAРеализация интерфеса взаимодействия с Microsoft Standalone CA
ProvCacheLock |
UnixEnroll | Создание запросов на сертификат и установка полученных сертификатов
UnixRequest | Общий интерфейс взаимодействия с УЦ (связь, получение параметров, передача запросов, ожидание и получение ответов)
UnixRequest::UserCallbacks | Интерфейс запросов пользователя
Документация по КриптоПро CAPILite. Последние изменения: Thu Feb 22 00:10:20 2018. Создано системой doxygen 1.4.5-20051109


КриптоПро CAPILite: Класс CContextHolder

  • Титульная страница
  • Группы
  • Классы
  • Файлы
  • Описания
  • Классы
  • Иерархия классов
  • Члены классов

Класс CContextHolder

Полный список членов класса

Подробное описание

$RCSfile$
Версия:
Revision
169941
Дата:
Date
: 2018-02-05 20:12:00 +0300#
Автор:
Author
dedal

Документация по КриптоПро CAPILite. Последние изменения: Thu Feb 22 00:10:20 2018. Создано системой doxygen 1.4.5-20051109


КриптоПро CAPILite: Cписок членов класса

  • Титульная страница
  • Группы
  • Классы
  • Файлы
  • Описания
  • Классы
  • Иерархия классов
  • Члены классов

CContextHolder Cписок членов класса

Полный список членов класса CContextHolder, включая наследуемые из базового класса

Документация по КриптоПро CAPILite. Последние изменения: Thu Feb 22 00:10:20 2018. Создано системой doxygen 1.4.5-20051109


КриптоПро CAPILite: Cписок членов класса

  • Титульная страница
  • Группы
  • Классы
  • Файлы
  • Описания
  • Классы
  • Иерархия классов
  • Члены классов

CPEnroll Cписок членов класса

Полный список членов класса CPEnroll, включая наследуемые из базового класса

acceptPKCS7(BSTR msg) | CPEnroll | [inline, virtual]
addExtensionToRequest(LONG flags, BSTR name, BSTR value) | CPEnroll | [inline, virtual]
createPKCS10(BSTR rdn, BSTR usage, BSTR *request) | CPEnroll | [inline, virtual]
createRequest(LONG flags, BSTR rdn, BSTR usage, BSTR *request) | CPEnroll | [inline, virtual]
get_ContainerName(BSTR *cName) | CPEnroll | [inline, virtual]
get_InstallToContainerStatus(DWORD *pdwStatus) | CPEnroll | [inline, virtual]
installPKCS7(BSTR msg) | CPEnroll | [inline, virtual]
put_CAStoreFlags(DWORD flags) | CPEnroll | [inline, virtual]
put_ContainerName(BSTR cName) | CPEnroll | [inline, virtual]
put_DeleteRequestCert(bool value) | CPEnroll | [inline, virtual]
put_EnableSMIMECapabilities(bool value) | CPEnroll | [inline, virtual]
put_GenKeyFlags(DWORD keyFlags) | CPEnroll | [inline, virtual]
put_HashAlgorithm(BSTR hashOid) | CPEnroll | [inline, virtual]
put_KeySpec(DWORD _dwKeySpec) | CPEnroll | [inline, virtual]
put_LimitExchangeKeyToEncipherment(int value) | CPEnroll | [inline, virtual]
put_MyStoreFlags(DWORD flags) | CPEnroll | [inline, virtual]
put_MyStoreName(BSTR name) | CPEnroll | [inline, virtual]
put_PIN(const CSecurePin &pin) | CPEnroll | [inline, virtual]
put_ProviderFlags(DWORD provFlags) | CPEnroll | [inline, virtual]
put_ProviderName(BSTR pName) | CPEnroll | [inline, virtual]
put_ProviderType(DWORD pType) | CPEnroll | [inline, virtual]
put_RequestStoreFlags(DWORD storeFlags) | CPEnroll | [inline, virtual]
put_RootStoreFlags(DWORD flags) | CPEnroll | [inline, virtual]
put_SupressAddRootUI(bool value) | CPEnroll | [inline, virtual]
put_UseExistingKeySet(bool value) | CPEnroll | [inline, virtual]
put_WriteCertToCSP(bool value) | CPEnroll | [inline, virtual]
SetSignerCertificate(PCCERT_CONTEXT pSignerCert) | CPEnroll | [inline, virtual]

Документация по КриптоПро CAPILite. Последние изменения: Thu Feb 22 00:10:20 2018. Создано системой doxygen 1.4.5-20051109


КриптоПро CAPILite: Cписок членов класса

  • Титульная страница
  • Группы
  • Классы
  • Файлы
  • Описания
  • Классы
  • Иерархия классов
  • Члены классов

CPEnroll::UserCallbacks Cписок членов класса

Полный список членов класса CPEnroll::UserCallbacks, включая наследуемые из базового класса

askPermissionToAddToRootStore(const BYTE *pbCert, DWORD cbCert, bool=false) const =0 | CPEnroll::UserCallbacks | [pure virtual]
clone() const =0 | CPEnroll::UserCallbacks | [pure virtual]
~UserCallbacks() | CPEnroll::UserCallbacks | [inline, virtual]

Документация по КриптоПро CAPILite. Последние изменения: Thu Feb 22 00:10:20 2018. Создано системой doxygen 1.4.5-20051109


КриптоПро CAPILite: Cписок членов класса

  • Титульная страница
  • Группы
  • Классы
  • Файлы
  • Описания
  • Классы
  • Иерархия классов
  • Члены классов

CSecureBufferT< T > Cписок членов класса

Полный список членов класса CSecureBufferT< T >, включая наследуемые из базового класса

clean() | CSecureBufferT< T > | [inline]
copy(const CSecureBufferT< T > &src) | CSecureBufferT< T > | [inline]
CSecureBufferT(size_t byteLen=0) | CSecureBufferT< T > | [inline]
empty() const | CSecureBufferT< T > | [inline]
len() const | CSecureBufferT< T > | [inline]
ptr() const | CSecureBufferT< T > | [inline]
ptr_rw() | CSecureBufferT< T > | [inline]
swap(CSecureBufferT< T > &obj) | CSecureBufferT< T > | [inline]
~CSecureBufferT() | CSecureBufferT< T > | [inline]

Документация по КриптоПро CAPILite. Последние изменения: Thu Feb 22 00:10:20 2018. Создано системой doxygen 1.4.5-20051109


КриптоПро CAPILite: Класс ProvCacheLock

  • Титульная страница
  • Группы
  • Классы
  • Файлы
  • Описания
  • Классы
  • Иерархия классов
  • Члены классов

Класс ProvCacheLock

Полный список членов класса

Подробное описание

$RCSfile$
Версия:
Revision
148590
Дата:
Date
: 2016-11-10 13:45:48 +0300#
Автор:
Author
maxdm

Документация по КриптоПро CAPILite. Последние изменения: Thu Feb 22 00:10:20 2018. Создано системой doxygen 1.4.5-20051109


КриптоПро CAPILite: Cписок членов класса

  • Титульная страница
  • Группы
  • Классы
  • Файлы
  • Описания
  • Классы
  • Иерархия классов
  • Члены классов

ProvCacheLock Cписок членов класса

Полный список членов класса ProvCacheLock, включая наследуемые из базового класса

Документация по КриптоПро CAPILite. Последние изменения: Thu Feb 22 00:10:20 2018. Создано системой doxygen 1.4.5-20051109


КриптоПро CAPILite: Cписок членов класса

  • Титульная страница
  • Группы
  • Классы
  • Файлы
  • Описания
  • Классы
  • Иерархия классов
  • Члены классов

UnixEnroll Cписок членов класса

Полный список членов класса UnixEnroll, включая наследуемые из базового класса

acceptPKCS7(BSTR msg) | UnixEnroll | [virtual]
addExtensionToRequest(LONG flags, BSTR name, BSTR value) | UnixEnroll | [inline, virtual]
createPKCS10(BSTR rdn, BSTR usage, BSTR *request) | UnixEnroll | [inline, virtual]
createRequest(LONG flags, BSTR rdn, BSTR usage, BSTR *request) | UnixEnroll | [inline, virtual]
get_InstallToContainerStatus(DWORD *pdwStatus) | UnixEnroll | [inline, virtual]
installPKCS7(BSTR msg) | UnixEnroll | [virtual]
installPKCS7Ex(BSTR msg, LONG *plCertInstalled) | UnixEnroll |
put_CAStoreFlags(DWORD flags) | UnixEnroll | [inline, virtual]
put_ContainerName(BSTR cName) | UnixEnroll | [inline, virtual]
put_DeleteRequestCert(bool value) | UnixEnroll | [inline, virtual]
put_EnableSMIMECapabilities(bool value) | UnixEnroll | [inline, virtual]
put_GenKeyFlags(DWORD keyFlags) | UnixEnroll | [inline, virtual]
put_KeySpec(DWORD _dwKeySpec) | UnixEnroll | [inline, virtual]
put_LimitExchangeKeyToEncipherment(int value) | UnixEnroll | [inline, virtual]
put_MyStoreFlags(DWORD flags) | UnixEnroll | [inline, virtual]
put_MyStoreName(BSTR name) | UnixEnroll | [inline, virtual]
put_PIN(const CSecurePin &pin) | UnixEnroll | [inline, virtual]
put_ProviderFlags(DWORD provFlags) | UnixEnroll | [inline, virtual]
put_ProviderName(BSTR pName) | UnixEnroll | [inline, virtual]
put_ProviderType(DWORD pType) | UnixEnroll | [inline, virtual]
put_RequestStoreFlags(DWORD storeFlags) | UnixEnroll | [inline, virtual]
put_RootStoreFlags(DWORD flags) | UnixEnroll | [inline, virtual]
put_SupressAddRootUI(bool value) | UnixEnroll | [inline, virtual]
put_UseExistingKeySet(bool value) | UnixEnroll | [virtual]
put_WriteCertToCSP(bool value) | UnixEnroll | [inline, virtual]
UnixEnroll(const CPEnroll::UserCallbacks &callbacks, bool handlePKCS7=false) | UnixEnroll |
~UnixEnroll() | UnixEnroll |

Документация по КриптоПро CAPILite. Последние изменения: Thu Feb 22 00:10:20 2018. Создано системой doxygen 1.4.5-20051109


КриптоПро CAPILite: Cписок членов класса

  • Титульная страница
  • Группы
  • Классы
  • Файлы
  • Описания
  • Классы
  • Иерархия классов
  • Члены классов

UnixRequest Cписок членов класса

Полный список членов класса UnixRequest, включая наследуемые из базового класса

AcknowledgeInstallCert(LONG RequestId, const BSTR strConfig) | UnixRequest | [inline, virtual]
GetCACertificate(LONG fExchangeCertificate, const BSTR strConfig, LONG Flags, BSTR *pstrCertificate)=0 | UnixRequest | [pure virtual]
GetCAProperty(const BSTR strConfig, LONG PropId, LONG PropIndex, LONG PropType, LONG Flags, VARIANT *pvarPropertyValue)=0 | UnixRequest | [pure virtual]
GetCAPropertyDisplayName(const BSTR strConfig, LONG PropId, BSTR *pstrDisplayName) | UnixRequest | [inline, virtual]
GetCAPropertyFlags(const BSTR strConfig, LONG PropId, LONG *pPropFlags) | UnixRequest | [inline, virtual]
GetCertificate(LONG Flags, BSTR *pstrCertificate)=0 | UnixRequest | [pure virtual]
GetDispositionMessage(BSTR *pstrDispositionMessage)=0 | UnixRequest | [pure virtual]
GetErrorMessageText(LONG hrMessage, LONG Flags, BSTR *pstrErrorMessageText) | UnixRequest | [inline, virtual]
GetFullResponseProperty(LONG PropId, LONG PropIndex, LONG PropType, LONG Flags, VARIANT *pvarPropertyValue) | UnixRequest | [inline, virtual]
GetIssuedCertificate(const BSTR strConfig, LONG RequestId, const BSTR strSerialNumber, LONG *pDisposition) | UnixRequest | [inline, virtual]
GetIssuedCertificate2(BSTR strConfig, BSTR strRequestId, BSTR strSerialNumber, LONG *pDisposition) | UnixRequest | [inline, virtual]
GetLastStatus(LONG *pStatus) | UnixRequest | [inline, virtual]
GetRefreshPolicy(VARIANT_BOOL *pValue) | UnixRequest | [inline, virtual]
GetRequest(LONG Flags, BSTR *pstrRequest) | UnixRequest | [inline, virtual]
GetRequestId(LONG *pRequestId)=0 | UnixRequest | [pure virtual]
GetRequestIdString(BSTR *pstrRequestId) | UnixRequest | [inline, virtual]
GetRequestParams(BSTR strConfig, BSTR strTemplate, BSTR *pstrRDN, BSTR *pstrEKUsage, DWORD *pKeySpec, std::vector< AttrTriple > *pAttrs) | UnixRequest | [inline, virtual]
GetUserRegisterInfo(BSTR bstrConfig, void *pUserInfo) | UnixRequest | [inline, virtual]
GetUserRegisterStatus(BSTR bstrConfig, LONG *pUserRegisterId, LONG *pUserRegisterStatus) | UnixRequest | [inline, virtual]
ListRequestsEx(BSTR strConfig, RequestMapEx &Requests, ReqType type=CA15Request) | UnixRequest | [inline, virtual]
RegisterUser(BSTR bstrConfig, void *pUserInfo) | UnixRequest | [inline, virtual]
RequestMap typedef | UnixRequest |
RetrievePending(LONG RequestId, const BSTR strConfig, LONG *pDisposition)=0 | UnixRequest | [pure virtual]
SetCredential(UserCallbacks *pCallbacks, X509EnrollmentAuthFlags AuthType, X509EnrollmentCheckChainFlags CheckChainType, const BSTR strCredential, CSecurePin *sbPassword, BOOL UseLocalMachineCert=FALSE)=0 | UnixRequest | [pure virtual]
SetCredential(LONG hWnd, X509EnrollmentAuthFlags AuthType, BSTR strCredential, BSTR strPassword)=0 | UnixRequest | [pure virtual]
Submit(LONG Flags, const BSTR strRequest, const BSTR strAttributes, const BSTR strConfig, LONG *pDisposition)=0 | UnixRequest | [pure virtual]
URFactory(const char *pszCA_type_name) | UnixRequest | [static]

Документация по КриптоПро CAPILite. Последние изменения: Thu Feb 22 00:10:20 2018. Создано системой doxygen 1.4.5-20051109


КриптоПро CAPILite: Класс UnixRequest::UserCallbacks

  • Титульная страница
  • Группы
  • Классы
  • Файлы
  • Описания
  • Классы
  • Иерархия классов
  • Члены классов
UnixRequest::UserCallbacks

Класс UnixRequest::UserCallbacks

Интерфейс запросов пользователя. Подробнее...

#include <UnixRequest.h>

Полный список членов класса

Открытые члены

virtual bool | askCredentialCAThumbprint (const BSTR prompt, BSTR *strCredentialCAThumbprint)
Запрос имени/ид.маркера/Thumbprint для входа на УЦ.
virtual bool | showForCheckCAThumbprint (const BSTR prompt, const BSTR strCAThumbprint)
Запрос подтверждения правильности Thumbprint одного из сертификатов УЦ.
virtual bool | askPassword (const BSTR prompt, CSecurePin &password)
Запрос пароля/маркера для входа на УЦ.
virtual UserCallbacks * | clone () const =0
Клонирование.
virtual | ~UserCallbacks ()
Деструктор.

Подробное описание

Интерфейс запросов пользователя.

Методы

virtual bool UnixRequest::UserCallbacks::askCredentialCAThumbprint | ( | const BSTR | prompt,
 |  | BSTR * | strCredentialCAThumbprint |
 | ) |  |  | [inline, virtual]

Запрос имени/ид.маркера/Thumbprint для входа на УЦ.

Аргументы:
prompt | [in] Приглашение для ввода имени
strCredentialCAThumbprint | [out] Буфер для имени
Возвращает:
true в случае успешного ввода
Заметки:
Реализовывать не обязательно в случае если:
  • Задано имя пользователя в аргументах;
  • Не используется TLS;
  • Всегда должны быть сертификаты.

Полученная BSTR строка должна быть освобождена функцией SysFreeString()

virtual bool UnixRequest::UserCallbacks::askPassword | ( | const BSTR | prompt,
 |  | CSecurePin & | password |
 | ) |  |  | [inline, virtual]

Запрос пароля/маркера для входа на УЦ.

Аргументы:
prompt | [in] Приглашение для ввода пароля
password | [out] Буфер для пароля
Возвращает:
true в случае успешного ввода
Заметки:
Реализовывать не обязательно в случае если пароль/маркер задан в аргументах.

virtual bool UnixRequest::UserCallbacks::showForCheckCAThumbprint | ( | const BSTR | prompt,
 |  | const BSTR | strCAThumbprint |
 | ) |  |  | [inline, virtual]

Запрос подтверждения правильности Thumbprint одного из сертификатов УЦ.

Аргументы:
prompt | [in] Приглашение для ввода имени
strCAThumbprint | [in] Буфер для имени
Возвращает:
true в случае положительного подтверждения
Заметки:
Реализовывать не обязательно в случае если:
  • Не используется TLS;
  • Всегда должны быть сертификаты.

Документация по КриптоПро CAPILite. Последние изменения: Thu Feb 22 00:10:20 2018. Создано системой doxygen 1.4.5-20051109


КриптоПро CAPILite: Cписок членов класса

  • Титульная страница
  • Группы
  • Классы
  • Файлы
  • Описания
  • Классы
  • Иерархия классов
  • Члены классов

UnixRequest::UserCallbacks Cписок членов класса

Полный список членов класса UnixRequest::UserCallbacks, включая наследуемые из базового класса

askCredentialCAThumbprint(const BSTR prompt, BSTR *strCredentialCAThumbprint) | UnixRequest::UserCallbacks | [inline, virtual]
askPassword(const BSTR prompt, CSecurePin &password) | UnixRequest::UserCallbacks | [inline, virtual]
clone() const =0 | UnixRequest::UserCallbacks | [pure virtual]
showForCheckCAThumbprint(const BSTR prompt, const BSTR strCAThumbprint) | UnixRequest::UserCallbacks | [inline, virtual]
~UserCallbacks() | UnixRequest::UserCallbacks | [inline, virtual]

Документация по КриптоПро CAPILite. Последние изменения: Thu Feb 22 00:10:20 2018. Создано системой doxygen 1.4.5-20051109


КриптоПро CAPILite: Список файлов

  • Титульная страница
  • Группы
  • Классы
  • Файлы
  • Описания

КриптоПро CAPILite Файлы

Полный список документированных файлов.
CPCA15Request.h [Исходные тексты]
CPCA20Request.h [Исходные тексты]
CPEnroll.h [Исходные тексты]
MSCAstdRequest.h [Исходные тексты]
SecureBuffer.h [Исходные тексты]
UnixEnroll.h [Исходные тексты]
UnixRequest.h [Исходные тексты]
Документация по КриптоПро CAPILite. Последние изменения: Thu Feb 22 00:10:20 2018. Создано системой doxygen 1.4.5-20051109


КриптоПро CAPILite: Члены классов

  • Титульная страница
  • Группы
  • Классы
  • Файлы
  • Описания
  • Классы
  • Иерархия классов
  • Члены классов
  • Указатель
  • Функции
  • Определения типов
  • a
  • c
  • e
  • g
  • i
  • l
  • p
  • r
  • s
  • u
  • ~

Список всех документированных членов классов со ссылками на документацию по классу для каждого члена.

- a -

  • acceptPKCS7() : CPEnroll, UnixEnroll
  • AcknowledgeInstallCert() : UnixRequest
  • addExtensionToRequest() : CPEnroll, UnixEnroll
  • askCredentialCAThumbprint() : UnixRequest::UserCallbacks
  • askPassword() : UnixRequest::UserCallbacks
  • askPermissionToAddToRootStore() : CPEnroll::UserCallbacks

- c -

  • clean() : CSecureBufferT< T >
  • clone() : CPEnroll::UserCallbacks, UnixRequest::UserCallbacks
  • copy() : CSecureBufferT< T >
  • createPKCS10() : CPEnroll, UnixEnroll
  • createRequest() : CPEnroll, UnixEnroll
  • CSecureBufferT() : CSecureBufferT< T >

- e -

  • empty() : CSecureBufferT< T >

- g -

  • get_ContainerName() : CPEnroll
  • get_InstallToContainerStatus() : CPEnroll, UnixEnroll
  • GetCACertificate() : UnixRequest
  • GetCAProperty() : UnixRequest
  • GetCAPropertyDisplayName() : UnixRequest
  • GetCAPropertyFlags() : UnixRequest
  • GetCertificate() : UnixRequest
  • GetDispositionMessage() : UnixRequest
  • GetErrorMessageText() : UnixRequest
  • GetFullResponseProperty() : UnixRequest
  • GetIssuedCertificate() : UnixRequest
  • GetIssuedCertificate2() : UnixRequest
  • GetLastStatus() : UnixRequest
  • GetRefreshPolicy() : UnixRequest
  • GetRequest() : UnixRequest
  • GetRequestId() : UnixRequest
  • GetRequestIdString() : UnixRequest
  • GetRequestParams() : UnixRequest
  • GetUserRegisterInfo() : UnixRequest
  • GetUserRegisterStatus() : UnixRequest

- i -

  • installPKCS7() : CPEnroll, UnixEnroll
  • installPKCS7Ex() : UnixEnroll

- l -

  • len() : CSecureBufferT< T >
  • ListRequestsEx() : UnixRequest

- p -

  • ptr() : CSecureBufferT< T >
  • ptr_rw() : CSecureBufferT< T >
  • put_CAStoreFlags() : CPEnroll, UnixEnroll
  • put_ContainerName() : CPEnroll, UnixEnroll
  • put_DeleteRequestCert() : CPEnroll, UnixEnroll
  • put_EnableSMIMECapabilities() : CPEnroll, UnixEnroll
  • put_GenKeyFlags() : CPEnroll, UnixEnroll
  • put_HashAlgorithm() : CPEnroll
  • put_KeySpec() : CPEnroll, UnixEnroll
  • put_LimitExchangeKeyToEncipherment() : CPEnroll, UnixEnroll
  • put_MyStoreFlags() : CPEnroll, UnixEnroll
  • put_MyStoreName() : CPEnroll, UnixEnroll
  • put_PIN() : CPEnroll, UnixEnroll
  • put_ProviderFlags() : CPEnroll, UnixEnroll
  • put_ProviderName() : CPEnroll, UnixEnroll
  • put_ProviderType() : CPEnroll, UnixEnroll
  • put_RequestStoreFlags() : CPEnroll, UnixEnroll
  • put_RootStoreFlags() : CPEnroll, UnixEnroll
  • put_SupressAddRootUI() : CPEnroll, UnixEnroll
  • put_UseExistingKeySet() : CPEnroll, UnixEnroll
  • put_WriteCertToCSP() : CPEnroll, UnixEnroll

- r -

  • RegisterUser() : UnixRequest
  • RequestMap : UnixRequest
  • RetrievePending() : UnixRequest

- s -

  • SetCredential() : UnixRequest
  • SetSignerCertificate() : CPEnroll
  • showForCheckCAThumbprint() : UnixRequest::UserCallbacks
  • Submit() : UnixRequest
  • swap() : CSecureBufferT< T >

- u -

  • UnixEnroll() : UnixEnroll
  • URFactory() : UnixRequest

- ~ -

  • ~CSecureBufferT() : CSecureBufferT< T >
  • ~UnixEnroll() : UnixEnroll
  • ~UserCallbacks() : CPEnroll::UserCallbacks, UnixRequest::UserCallbacks
Документация по КриптоПро CAPILite. Последние изменения: Thu Feb 22 00:10:20 2018. Создано системой doxygen 1.4.5-20051109


КриптоПро CAPILite: Члены классов - Функции

  • Титульная страница
  • Группы
  • Классы
  • Файлы
  • Описания
  • Классы
  • Иерархия классов
  • Члены классов
  • Указатель
  • Функции
  • Определения типов
  • a
  • c
  • e
  • g
  • i
  • l
  • p
  • r
  • s
  • u
  • ~

- a -

  • acceptPKCS7() : CPEnroll, UnixEnroll
  • AcknowledgeInstallCert() : UnixRequest
  • addExtensionToRequest() : CPEnroll, UnixEnroll
  • askCredentialCAThumbprint() : UnixRequest::UserCallbacks
  • askPassword() : UnixRequest::UserCallbacks
  • askPermissionToAddToRootStore() : CPEnroll::UserCallbacks

- c -

  • clean() : CSecureBufferT< T >
  • clone() : CPEnroll::UserCallbacks, UnixRequest::UserCallbacks
  • copy() : CSecureBufferT< T >
  • createPKCS10() : CPEnroll, UnixEnroll
  • createRequest() : CPEnroll, UnixEnroll
  • CSecureBufferT() : CSecureBufferT< T >

- e -

  • empty() : CSecureBufferT< T >

- g -

  • get_ContainerName() : CPEnroll
  • get_InstallToContainerStatus() : CPEnroll, UnixEnroll
  • GetCACertificate() : UnixRequest
  • GetCAProperty() : UnixRequest
  • GetCAPropertyDisplayName() : UnixRequest
  • GetCAPropertyFlags() : UnixRequest
  • GetCertificate() : UnixRequest
  • GetDispositionMessage() : UnixRequest
  • GetErrorMessageText() : UnixRequest
  • GetFullResponseProperty() : UnixRequest
  • GetIssuedCertificate() : UnixRequest
  • GetIssuedCertificate2() : UnixRequest
  • GetLastStatus() : UnixRequest
  • GetRefreshPolicy() : UnixRequest
  • GetRequest() : UnixRequest
  • GetRequestId() : UnixRequest
  • GetRequestIdString() : UnixRequest
  • GetRequestParams() : UnixRequest
  • GetUserRegisterInfo() : UnixRequest
  • GetUserRegisterStatus() : UnixRequest

- i -

  • installPKCS7() : CPEnroll, UnixEnroll
  • installPKCS7Ex() : UnixEnroll

- l -

  • len() : CSecureBufferT< T >
  • ListRequestsEx() : UnixRequest

- p -

  • ptr() : CSecureBufferT< T >
  • ptr_rw() : CSecureBufferT< T >
  • put_CAStoreFlags() : CPEnroll, UnixEnroll
  • put_ContainerName() : CPEnroll, UnixEnroll
  • put_DeleteRequestCert() : CPEnroll, UnixEnroll
  • put_EnableSMIMECapabilities() : CPEnroll, UnixEnroll
  • put_GenKeyFlags() : CPEnroll, UnixEnroll
  • put_HashAlgorithm() : CPEnroll
  • put_KeySpec() : CPEnroll, UnixEnroll
  • put_LimitExchangeKeyToEncipherment() : CPEnroll, UnixEnroll
  • put_MyStoreFlags() : CPEnroll, UnixEnroll
  • put_MyStoreName() : CPEnroll, UnixEnroll
  • put_PIN() : CPEnroll, UnixEnroll
  • put_ProviderFlags() : CPEnroll, UnixEnroll
  • put_ProviderName() : CPEnroll, UnixEnroll
  • put_ProviderType() : CPEnroll, UnixEnroll
  • put_RequestStoreFlags() : CPEnroll, UnixEnroll
  • put_RootStoreFlags() : CPEnroll, UnixEnroll
  • put_SupressAddRootUI() : CPEnroll, UnixEnroll
  • put_UseExistingKeySet() : CPEnroll, UnixEnroll
  • put_WriteCertToCSP() : CPEnroll, UnixEnroll

- r -

  • RegisterUser() : UnixRequest
  • RetrievePending() : UnixRequest

- s -

  • SetCredential() : UnixRequest
  • SetSignerCertificate() : CPEnroll
  • showForCheckCAThumbprint() : UnixRequest::UserCallbacks
  • Submit() : UnixRequest
  • swap() : CSecureBufferT< T >

- u -

  • UnixEnroll() : UnixEnroll
  • URFactory() : UnixRequest

- ~ -

  • ~CSecureBufferT() : CSecureBufferT< T >
  • ~UnixEnroll() : UnixEnroll
  • ~UserCallbacks() : CPEnroll::UserCallbacks, UnixRequest::UserCallbacks
Документация по КриптоПро CAPILite. Последние изменения: Thu Feb 22 00:10:20 2018. Создано системой doxygen 1.4.5-20051109


КриптоПро CAPILite: Члены классов - Определения типов

  • Титульная страница
  • Группы
  • Классы
  • Файлы
  • Описания
  • Классы
  • Иерархия классов
  • Члены классов
  • Указатель
  • Функции
  • Определения типов

  • RequestMap : UnixRequest
Документация по КриптоПро CAPILite. Последние изменения: Thu Feb 22 00:10:20 2018. Создано системой doxygen 1.4.5-20051109


КриптоПро CAPILite: Иерархический список классов

  • Титульная страница
  • Группы
  • Классы
  • Файлы
  • Описания
  • Классы
  • Иерархия классов
  • Члены классов

КриптоПро CAPILite Иерархия классов

Иерархия классов.
  • CContextHolder
  • CPCA15Request::UnixRequest
  • CPCA20Request::UnixRequestImpl
  • CPEnroll
  • CPEnroll::UserCallbacks
  • CSecureBufferT< T >
  • MSCAstdRequest::UnixRequest
  • ProvCacheLock
  • UnixEnroll
  • UnixRequest
  • UnixRequest::UserCallbacks
Документация по КриптоПро CAPILite. Последние изменения: Thu Feb 22 00:10:20 2018. Создано системой doxygen 1.4.5-20051109


КриптоПро CAPILite: Руководство программиста

  • Титульная страница
  • Группы
  • Классы
  • Файлы
  • Описания

Руководство программиста

3.6

Средство Криптографической Защиты Информации КриптоПро CSP 4.0

СКЗИ КриптоПро CSP (CAPILite) - программный интерфейс, позволяющий разработчикам создавать и проверять подписанные и зашифрованные сообщения, сертификаты, частичный аналог Microsoft CryptoAPI.

КриптоПро CSP (CAPILite)

CAPILite представляет частичный аналог Microsoft CryptoAPI и может выполнять почти все те же операции (работа с сообщениями, хранилищами и сертификатами), используя такой же программный интерфейс.

Данный документ описывает программный интерфейс СКЗИ КриптоПро CSP.

Область применения

Позволяет использовать интерфейс верхнего уровня для реализации различных защищённых систем документооборота и электронной коммерции, на основе Инфраструктуры Открытых Ключей (Public Key Infrastructure), соответствующей международным рекомендациям X.509, RFC 3280, RFC 4491 и Федеральному закону "Об электронной цифровой подписи" с российскими криптографическими алгоритмами.

Встраивание

Для подключения СКЗИ к прикладному ПО необходимо пользоваться интерфейсом CAPILite: можно либо использовать библиотеку libcapi10 из пакета rdr, либо libcapi20 из пакета capilite. libcapi10 обладает ограниченным функционалом: по объему он соответствует интерфейсу Microsoft CSP. libcapi20 является частичным эквивалентом Microsoft CryptoAPI 2.0 и рекомендуется к использованию. Примеры прикладных программ доступны в devel-пакете.

См. в этой главе | Важные внешние ссылки
Функции работы с провайдером | CryptoProWeb
Высокоуровневые функции обработки криптографических сообщений | CryptoProForum
API запроса на сертификат | MS_USE_CRYPTOAPI_MSDN
Особенности создания подписанных CMS сообщений в КриптоПро CSP 3.6 и выше |

Документация по КриптоПро CAPILite. Последние изменения: Thu Feb 22 00:10:20 2018. Создано системой doxygen 1.4.5-20051109


КриптоПро CAPILite: Алфавитный указатель групп

  • Титульная страница
  • Группы
  • Классы
  • Файлы
  • Описания

КриптоПро CAPILite Группы

Полный список групп.
  • Функции обработки списка отозванных сертификатов (СОС)
  • Функции обработки расширенных свойств
  • Функции обработки сертификатов
  • Функции проверки цепочки сертификатов
  • Функции расширенного использования ключа
  • Функции генерации и обмена ключа
  • Функции работы с провайдером
  • Функции обработки хеша и цифровой подписи
  • Функции зашифрования и расшифрования данных.
  • Функции поддержки идентификатора объекта.
  • Функции работы c хранилищем сертификатов
  • Функции обработки данных
  • Функции кодирования и декодирования криптографических обьектов.
  • Низкоуровневые функции обработки криптографических сообщений
  • Высокоуровневые функции обработки криптографических сообщений
  • Функции поиска удаленного объекта
  • Функции работы с PFX (PKCS#12) файлами
  • API запроса на сертификат
Документация по КриптоПро CAPILite. Последние изменения: Thu Feb 22 00:10:20 2018. Создано системой doxygen 1.4.5-20051109


КриптоПро CAPILite: Алфавитный указатель тематических описаний

  • Титульная страница
  • Группы
  • Классы
  • Файлы
  • Описания

КриптоПро CAPILite Описания

Полный список дополнительных описаний.
  • Особенности создания подписанных CMS сообщений в КриптоПро CSP 3.6 и выше
  • Список задач
  • Список требований
Документация по КриптоПро CAPILite. Последние изменения: Thu Feb 22 00:10:20 2018. Создано системой doxygen 1.4.5-20051109


Список требований

Член CertAddCRLContextToStore

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertAddEncodedCRLToStore

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertCreateCRLContext

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertDeleteCRLFromStore

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertDuplicateCRLContext

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertEnumCRLsInStore

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertFindCRLInStore

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertFreeCRLContext

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertGetCRLFromStore

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertEnumCertificateContextProperties

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertGetCertificateContextProperty

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertGetCRLContextProperty

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertSetCertificateContextProperty

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertSetCRLContextProperty

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertAddCertificateContextToStore

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertAddEncodedCertificateToStore

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertCreateCertificateContext

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertDeleteCertificateFromStore

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertDuplicateCertificateContext

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertEnumCertificatesInStore

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertFindCertificateInStore

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertFreeCertificateContext

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertGetSubjectCertificateFromStore

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertCreateCertificateChainEngine

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertFreeCertificateChain

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertFreeCertificateChainEngine

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertGetCertificateChain

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertVerifyCertificateChainPolicy

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertGetEnhancedKeyUsage

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptAcquireCertificatePrivateKey

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptDeriveKey

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptDestroyKey

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptDuplicateKey

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptExportKey

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptGenKey

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptGenRandom

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptGetKeyParam

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptGetUserKey

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptImportKey

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptSetKeyParam

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptAcquireContextA

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptAcquireContextW

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptGetProviderDll

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptGetProvParam

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptReleaseContext

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptSetProvParam

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptCreateHash

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptDestroyHash

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptDuplicateHash

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptGetHashParam

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptHashData

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptHashSessionKey

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptSetHashParam

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptSignHashA

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptSignHashW

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptVerifySignatureA

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptVerifySignatureW

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptDecrypt

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptEncrypt

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptFindOIDInfo

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertCloseStore

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertControlStore

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertDuplicateStore

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertEnumSystemStore

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertOpenStore

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertOpenSystemStoreA

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertOpenSystemStoreW

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertCompareCertificate

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CertCompareIntegerBlob

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptExportPublicKeyInfo

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptExportPublicKeyInfoEx

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptImportPublicKeyInfo

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptImportPublicKeyInfoEx

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptDecodeObjectEx

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptEncodeObjectEx

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptMsgCalculateEncodedLength

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptMsgClose

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptMsgControl

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptMsgDuplicate

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptMsgGetParam

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptMsgOpenToDecode

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptMsgOpenToEncode

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptMsgUpdate

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptDecryptMessage

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptEncryptMessage

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptSignMessage

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptVerifyDetachedMessageSignature

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptVerifyMessageSignature

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptRetrieveObjectByUrlA

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член CryptRetrieveObjectByUrlW

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член PFXExportCertStore

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • Член PFXImportCertStore

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

    • КриптоПро CAPILite Версия: 4.0