КриптоПро CSP  

CPCGetDefaultConfig

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

DWORD CPCAPI CPCGetDefaultConfig(
  LPCPC_CONFIG pConfig,
  LPVOID pvReserved
);

Аргументы

pConfig
[in, out] Указатель на созданную пользователем структуру CPC_CONFIG_. В этой структуре обязательно должен быть задан член cbSize, остальные члены в результате выполнения функции будут заполнены значениями по умолчанию (см. ниже).
pvReserved
[in] Зарезервирован для использования в будущем. Должен быть равен NULL.

Примечания

Функция CPCGetDefaultConfig заполняет созданную пользователем структуру CPC_CONFIG_ настройками по умолчанию.
Настройки по умолчанию:

Член CPC_CONFIG_ Описание
LPCPC_MEMORY_ARENA pArena Не изменяется. Должен быть задан пользователем до или после вызова данной функции. Можно использовать простой менеджер памяти, предоставляемый функцией CPCInitMemoryLF.
CPC_FAST_CODE FuncStruct

Windows/Linux/FreeBSD 8.2 или выше: Заполняется стандартными функциями сохранения/восстановления FPU/MMX/SSE/AVX.

Solaris amd64: Настраивается на использование SSSE3 и устанавливается флаг CSP_FAST_CODE_DISABLE_AVX.

Solaris ia32 и FreeBSD до 8.1: не имеют стандартных возможностей для сохранения/восстановления FPU/MMX/SSE/AVX, устанавливается флаг CPC_FAST_CODE_NO.

CPC_LOG_CONFIG logConfig

Windows: Устанавливается уровень вывода сообщений, включающий ошибки и критические ошибки, задаются необходимые Callback-функции. Данные Callback-функции выводят сообщения с помощью функции DbgPrint и могут быть прочитаны в отладчике уровня ядра.

Linux/FreeBSD/Solaris: Не устанавливаются, должен быть задан пользователем.

CPC_HARDWARE_RNG hardwareRNG Заполняется нулями. При необходимости использования аппаратного датчика случайных чисел пользователь должен сам реализовать соответствующие функции.
CPC_INTERLOCKED_FUNCS interlockedFuncs Заполняется нулями, поскольку используется только на процессорах ARM и sparc-v8 (32).
CPC_LOCK_FUNCS lockFuncs

Windows: R/W блокировки ExAcquireResourceSharedLite/ExAcquireResourceSharedLite совместно с CriticalRegion, поэтому без флага CRYPT_NOSERIALIZE CSP может быть вызван только при IRQL <= APC_LEVEL.

Linux/FreeBSD/Solaris: Заполняется нулями. При этом пользователь должен, либо самостоятельно реализовать соответствующие callback функции, либо обеспечить недопущение параллельного вызова функций, влияющих на глобальное состояние провайдера (CPCAcquireContext, CPCReleaseContext, CPCSetProvParam (PP_USE_HARDWARE_RNG, PP_RANDOM)).

CPC_TIME_FUNCS timeFuncs Задаются необходимые Callback-функции.
CPC_ALG_PARAMS algParams Заполняется нулями, что обеспечивает использование параметров алгоритмов по умолчанию.
DWORD MaxHandles Устанавливается равным значению по умолчанию.
DWORD dwTesterPeriod Устанавливается равным значению по умолчанию.
DWORD dwTesterTimeout Устанавливается равным значению по умолчанию.
const TCHAR *license; Заполняется драйверной лицензией на "КриптоПро CSP 5.0", если таковая установлена, или NULL в противном случае.

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

При успешном завершении функция возвращает 0 (S_OK), в противном случае возвращается соответствующий код ошибки (см. таблицу).
Коды возвратаОписание
E_INVALIDARGНеверно заданы параметры.

См. также

CPCCreateProvider, CPC_CONFIG_