КриптоПро CSP  

Переключатели кода

Значения переключателей кода на более быстрый (с использованием SSE2).

При использовании в функции CPGetProvParam (PP_FAST_CODE_FLAGS), в параметре pbData возвращаются флаги, определяющие набор проверенных на включённый код функций. Указание, какие функции проверять на включённый код, передаётся во флагах dwFlags.

Если применён флаг CRYPT_FAST_CODE_GET_SETFN, при выходе CSP_FAST_CODE_GET_SETFN будет установлен в 1, если провайдер может использовать быстрый код, и 0 - иначе. Если установлен флаг CRYPT_FAST_CODE_ALL_FUNCTIONS, будут проверяться все функции, и на выходе будут установлены все флаги CSP_FAST_CODE_E_ECB , CSP_FAST_CODE_E_CBC , CSP_FAST_CODE_E_CNT , CSP_FAST_CODE_E_CFB , CSP_FAST_CODE_E_OFB , CSP_FAST_CODE_E_CTR , CSP_FAST_CODE_D_ECB , CSP_FAST_CODE_D_CBC , CSP_FAST_CODE_D_CNT , CSP_FAST_CODE_D_CFB , CSP_FAST_CODE_D_OFB , CSP_FAST_CODE_D_CTR , CSP_FAST_CODE_MD_ECB , CSP_FAST_CODE_GR3411SP , CSP_FAST_CODE_GR3411H , CSP_FAST_CODE_GR3411HV , CSP_FAST_CODE_HASH , CSP_FAST_CODE_HASH_2012 , CSP_FAST_CODE_HASH_2012HV , CSP_FAST_CODE_IMIT , CSP_FAST_CODE_IMIT_EX , CSP_FAST_CODE_MULT , в 1, если соответствующая функция использует быстрый код, и 0 - иначе. В режиме пользователя следует вместо флага CRYPT_FAST_CODE_ALL_FUNCTIONS использовать CRYPT_FAST_CODE_ALL_USER_FUNCTIONS, а в режиме ядра ОС - CRYPT_FAST_CODE_ALL_KERNEL_FUNCTIONS. На выходе флаг CSP_FAST_CODE_GET_FN установлен в 1, если быстрый код работает во всех выбранных функциях, и 0 если хотя бы одна из выбранных функций не сработала. Поведение не выбранных флагов не определено.

МакросыОписание
CSP_FAST_CODE_GET_FN Флаг, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Используется для определения полноты набора установленных быстрых функций.
CSP_FAST_CODE_GET_SETFN Флаг, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Используется для определения, может ли провайдер исполнять быстрый код на данной машине.
CSP_FAST_CODE_E_ECB Флаг, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Используется как флаг для проверки, какой код применяется в функции зашифрования по ECB Равен 1 в случае быстрого кода данной функции, и 0 иначе.
CSP_FAST_CODE_E_CBC Флаг, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Используется как флаг для проверки, какой код применяется в функции зашифрования по CBC Равен 1 в случае быстрого кода данной функции, и 0 иначе.
CSP_FAST_CODE_E_CNT Флаг, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Используется как флаг для проверки, какой код применяется в функции зашифрования по CNT Равен 1 в случае быстрого кода данной функции, и 0 иначе.
CSP_FAST_CODE_D_CNT Флаг, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Используется как флаг для проверки, какой код применяется в функции расшифрования по CNT Равен 1 в случае быстрого кода данной функции, и 0 иначе.
CSP_FAST_CODE_E_CFB Флаг, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Используется как флаг для проверки, какой код применяется в функции зашифрования по CFB Равен 1 в случае быстрого кода данной функции, и 0 иначе.
CSP_FAST_CODE_D_ECB Флаг, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Используется как флаг для проверки, какой код применяется в функции расшифрования по ECB Равен 1 в случае быстрого кода данной функции, и 0 иначе.
CSP_FAST_CODE_D_CBC Флаг, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Используется как флаг для проверки, какой код применяется в функции расшифрования по CBC Равен 1 в случае быстрого кода данной функции, и 0 иначе.
CSP_FAST_CODE_D_CFB Флаг, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Используется как флаг для проверки, какой код применяется в функции расшифрования по CFB Равен 1 в случае быстрого кода данной функции, и 0 иначе.
CSP_FAST_CODE_MD_ECB Флаг, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Используется как флаг для проверки, какой код применяется в функции маскирования ключа Равен 1 в случае быстрого кода данной функции, и 0 иначе.
CSP_FAST_CODE_GR3411SP Флаг, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Используется как флаг для проверки, какой код применяется в упрощенной функции хэширования. Флаг устанавливается только в режиме ядра ОС. Равен 1 в случае быстрого кода данной функции, и 0 иначе.
CSP_FAST_CODE_GR3411H Флаг, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Используется как флаг для проверки, какой код применяется в функции хэширования. Флаг устанавливается только в режиме ядра ОС. Равен 1 в случае быстрого кода данной функции, и 0 иначе.
CSP_FAST_CODE_GR3411HV Флаг, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Используется как флаг для проверки, какой код применяется в функции проверки хэша. Флаг устанавливается только в режиме ядра ОС. Равен 1 в случае быстрого кода данной функции, и 0 иначе.
CSP_FAST_CODE_HASH Флаг, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Используется как флаг для проверки, какой код применяется в функции хэш-преобразования. Равен 1 в случае быстрого кода данной функции, и 0 иначе.
CSP_FAST_CODE_IMIT Флаг, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Используется как флаг для проверки, какой код применяется в функции выработки имитовставки. Равен 1 в случае быстрого кода данной функции, и 0 иначе.
CSP_FAST_CODE_MULT Флаг, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Используется как флаг для проверки, какой код применяется в функции умножения. Равен 1 в случае быстрого кода данной функции, и 0 иначе.
CSP_FAST_CODE_MULT_ATT Флаг, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Используется как флаг для проверки, какой код применяется в функциях умножения в UNIX-оподобных системах. Равен 1 в случае быстрого кода данной функции, и 0 иначе.
CSP_FAST_CODE_HASH_2012 Флаг, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Используется как флаг для проверки, какой код применяется в функции хэш-преобразования по ГОСТ Р 34.11-2012. Равен 1 в случае быстрого кода данной функции, и 0 иначе.
CSP_FAST_CODE_HASH_2012HV Флаг, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Используется как флаг для проверки, какой код применяется в функции проверки хэша по ГОСТ Р 34.11-2012. Равен 1 в случае быстрого кода данной функции, и 0 иначе.
CSP_FAST_CODE_DISABLE_SSSE3 Флаг, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Используется как флаг для проверки, используется ли SSSE3 код. Выставлен, если код не используется.
CSP_FAST_CODE_DISABLE_AVX Флаг, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Используется как флаг для проверки, используется ли AVX код. Выставлен, если код не используется.
CSP_FAST_CODE_RT_TS Флаг, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Признак, что для захвата FPU используется TS-бит (Solaris, Linux).
CSP_FAST_CODE_E_OFB Флаг, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Используется как флаг для проверки, какой код применяется в функции зашифрования по OFB Равен 1 в случае быстрого кода данной функции, и 0 иначе.
CSP_FAST_CODE_D_OFB Флаг, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Используется как флаг для проверки, какой код применяется в функции расшифрования по OFB Равен 1 в случае быстрого кода данной функции, и 0 иначе.
CSP_FAST_CODE_E_CTR Флаг, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Используется как флаг для проверки, какой код применяется в функции зашифрования по CTR Равен 1 в случае быстрого кода данной функции, и 0 иначе.
CSP_FAST_CODE_D_CTR Флаг, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Используется как флаг для проверки, какой код применяется в функции расшифрования по CTR Равен 1 в случае быстрого кода данной функции, и 0 иначе.
CSP_FAST_CODE_IMIT_EX Флаг, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Используется как флаг для проверки, какой код применяется в функции выработки имитовставки. Равен 1 в случае быстрого кода данной функции, и 0 иначе.
CSP_FAST_CODE_MGM_AUTH Флаг, возвращаемый функцей CPGetProvParam (PP_FAST_CODE_FLAGS). Используется как флаг для проверки, какой код применяется в функции аутентификации MGM. Равен 1 в случае быстрого кода данной функции, и 0 иначе.
CSP_FAST_CODE_ALL_ENCRYPT Набор флагов, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Группирует все флаги функций зашифрования.
CSP_FAST_CODE_ALL_DECRYPT Набор флагов, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Группирует все флаги функций расшифрования.
CSP_FAST_CODE_ALL_HASH Набор флагов, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Группирует все флаги функций хэширования.
CSP_FAST_CODE_ALL_MULT Набор флагов, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Группирует все флаги функций умножения.
CSP_FAST_CODE_ALL_CRYPT Набор флагов, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Группирует все флаги функций шифрования.
CSP_FAST_CODE_ALL_FUNCTIONS Набор флагов, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Группирует все флаги переключаемых функций криптопровайдера.
CSP_FAST_CODE_ALL_KERNEL_FUNCTIONS Набор флагов, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Группирует все флаги переключаемых функций криптопровайдера режима ядра ОС.
CSP_FAST_CODE_ALL_USER_FUNCTIONS Набор флагов, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Группирует все флаги переключаемых функций криптопровайдера пользовательского режима.
CRYPT_FAST_CODE_ALL_KERNEL_FUNCTIONS Флаг, используемый при вызове CPGetProvParam (PP_FAST_CODE_FLAGS), запрашивает вариант кода для всех функций провайдера в режиме ядра ОС.
CRYPT_FAST_CODE_ALL_USER_FUNCTIONS Флаг, используемый при вызове CPGetProvParam (PP_FAST_CODE_FLAGS), запрашивает вариант кода для всех функций провайдера в режиме пользователя.
CRYPT_FAST_CODE_ALL_FUNCTIONS Флаг, используемый при вызове CPGetProvParam (PP_FAST_CODE_FLAGS), запрашивает вариант кода для всех функций провайдера.
CRYPT_FAST_CODE_GET_SETFN Флаг, используемый при вызове CPGetProvParam (PP_FAST_CODE_FLAGS), запрашивает результат определения процессора.
CSP_OPERATION_CIPHER1 Возможное значение аргумента op_type функции CPC_Kernel_Fpu_Begin_Callback . Означает, что запрос захвата FPU произошел в функции нераспараллеливаемого шифрования. Также задает значение идентификатора набора функций нераспараллеливаемого шифрования, использующих расширение MMX (только для x86 архитектуры).
CSP_OPERATION_CIPHER2 Возможное значение аргумента op_type функции CPC_Kernel_Fpu_Begin_Callback . Означает, что запрос захвата FPU произошел в функции распараллеливаемого шифрования. Также задает значение идентификатора набора функций распараллеливаемого шифрования, использующих расширения MMX, SSE2, SSSE3, AVX и CLMUL. В режиме ядра x64 MMX расширение не используется. В режиме ядра CLMUL расширение не используется.
CSP_OPERATION_IMIT Возможное значение аргумента op_type функции CPC_Kernel_Fpu_Begin_Callback . Означает, что запрос захвата FPU произошел в функции выработки имитовставки. Также задает значение идентификатора набора функций выработки имитовставки, использующих расширение MMX (только для x86 архитектуры).
CSP_OPERATION_HASH Возможное значение аргумента op_type функции CPC_Kernel_Fpu_Begin_Callback . Означает, что запрос захвата FPU произошел в функции хэширования. В данном случае необходимо сохранять не только регистры ST0 - ST7, но и XMM0 - XMM7. Также задает значение идентификатора набора функций хэширования, использующих расширения MMX и SSE2. В режиме ядра x64 MMX расширение не используется.
CSP_OPERATION_MULT Битовая маска для включения/выключения кода MMX в функции умножения. Задает значение идентификатора набора функций умножения по модулю P, использующих расширения MMX и SSE2. Применяется только в пользовательском режиме.
CSP_OPERATION_MGM_AUTH Битовая маска для включения/выключения быстрого кода функции MGM_Auth режима MGM. Задает значение логической суммы всех идентификаторов наборов функций, использующих расширения SSSE3 + CLMUL. В режиме ядра расширения не используются.
CSP_OPERATION_ALL Битовая маска для включения/выключения кода быстрого кода во всех функциях. Задает значение логической суммы всех идентификаторов наборов функций, использующих MMX, SSE2, SSSE3 и AVX.
CSP_OPERATION_UNDEF Битовая маска, означающая неопределенную установку функций. Применяется, если нужно установить набор функций по умолчанию для данного процессора.

См. также

CPGetProvParam (PP_FAST_CODE_FLAGS)