Значения переключателей кода на более быстрый (с использованием 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_2015 , 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_2015 | Флаг, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Используется как флаг для проверки, какой код применяется в функции выработки имитовставки по ГОСТ Р 34.13-2015. Равен 1 в случае быстрого кода данной функции, и 0 иначе. |
CSP_FAST_CODE_AESNI | Флаг, возвращаемый функцей CPGetProvParam (PP_FAST_CODE_FLAGS). Используется как флаг для проверки, какой код применяется в функциях AES шифрования. Равен 1 в случае быстрого кода данной функции, и 0 иначе. |
CSP_FAST_CODE_RSA | Флаг, возвращаемый функцей CPGetProvParam (PP_FAST_CODE_FLAGS). Используется как флаг для проверки, какой код применяется в функциях RSA. Равен 1 в случае быстрого кода данной функции, и 0 иначе. |
CSP_FAST_CODE_GHASH | Флаг, возвращаемый функцей CPGetProvParam (PP_FAST_CODE_FLAGS). Используется как флаг для проверки, какой код применяется в функциях GCM шифрования. Равен 1 в случае быстрого кода данной функции, и 0 иначе. |
CSP_FAST_CODE_SHA2 | Флаг, возвращаемый функцей CPGetProvParam (PP_FAST_CODE_FLAGS). Используется как флаг для проверки, какой код применяется в функциях SHA2 хэширования. Равен 1 в случае быстрого кода данной функции, и 0 иначе. |
CSP_FAST_CODE_SHA1 | Флаг, возвращаемый функцей CPGetProvParam (PP_FAST_CODE_FLAGS). Используется как флаг для проверки, какой код применяется в функциях SHA1 хэширования. Равен 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_CIPHER_FOREIGN | Набор флагов, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Группирует все флаги функций симметричной зарубежной криптографии. |
CSP_FAST_CODE_HASH_FOREIGN | Набор флагов, возвращаемый функцией CPGetProvParam (PP_FAST_CODE_FLAGS). Группирует все флаги функций хэширования зарубежной криптографии. |
CSP_FAST_CODE_ALL_FOREIGN | Набор флагов, возвращаемый функцией 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_GHASH | Битовая маска для включения/выключения быстрого кода для функции GHASH режима GCM зарубежной криптографии. Задает значение логической суммы всех идентификаторов наборов функций, использующих расширения MMX или SSE2 + CLMUL в режиме x86 и SSSE3 + CLMUL или AVX + CLMUL в режиме x64. Применяется только в пользовательском режиме. |
CSP_OPERATION_AESNI | Битовая маска для включения/выключения быстрого кода для AES. Задает значение логической суммы всех идентификаторов наборов функций, использующих расширения MMX, SSE2, AES-NI. Применяется только в пользовательском режиме. |
CSP_OPERATION_CIPHER_FOREIGN | Битовая маска для включения/выключения быстрого кода для зарубежного шифрования. Задает значение логической суммы всех идентификаторов наборов функций, использующих расширения AESNI, MMX или SSE2 + CLMUL в режиме x86 и AESNI, SSSE3 + CLMUL или AVX + CLMUL в режиме x64. Применяется только в пользовательском режиме. |
CSP_OPERATION_HASH_FOREIGN | Битовая маска для включения/выключения быстрого кода для зарубежного хэширования. Задает значение логической суммы всех идентификаторов наборов функций, использующих расширения SSE2, SSSE3, AVX, BMI1, BMI2, SHAExtenson. В режиме x64 дополнительно используется AVX2. Применяется только в пользовательском режиме. |
CSP_OPERATION_RSA | Битовая маска для включения/выключения быстрого кода для RSA. Задает значение логической суммы всех идентификаторов наборов функций, использующих расширения ADX и BMI2. |
CSP_OPERATION_FOREIGN | Битовая маска для включения/выключения быстрого кода для функций зарубежной криптографии. Задает значение логической суммы всех идентификаторов наборов функций, использующих расширения MMX, SSE2, SSSE3, AVX, SHAExtenson, CLMUL, AES-NI, ADX, BMI1, BMI2. В режиме x64 дополнительно используется AVX2. |
CSP_OPERATION_ALL | Битовая маска для включения/выключения кода быстрого кода во всех функциях. Задает значение логической суммы всех идентификаторов наборов функций, использующих MMX, SSE2, SSSE3, AVX, SHAExtenson, CLMUL, AES-NI, ADX, BMI1, BMI2. В режиме x64 дополнительно используется AVX2. |
CSP_OPERATION_UNDEF | Битовая маска, означающая неопределенную установку функций. Применяется, если нужно установить набор функций по умолчанию для данного процессора. |
CPGetProvParam (PP_FAST_CODE_FLAGS)