Функция CryptRegisterOIDFunction (wincrypt.h)
Функция CryptRegisterOIDFunction регистрирует библиотеку DLL, содержащую функцию для вызова для указанного типа кодирования, имени функции и идентификатора объекта (OID).
По умолчанию новые имена функций устанавливаются в конце списка. Чтобы зарегистрировать новую функцию перед установленными функциями, вызовите функцию CryptSetOIDFunctionValueValue с параметром dwValueType , для REG_DWORD иpwszValueName , для CRYPT_OID_REG_FLAGS_VALUE_NAME.
CRYPT_OID_REG_FLAGS_VALUE_NAME определяется как L"CryptFlags".
Помимо регистрации библиотеки DLL, можно переопределить имя вызываемой функции. Например, для параметра pszFuncName можно задать значение CryptDllEncodeObject, а для параметра pszOverrideFuncName — значение MyEncodeXyz. Затем можно ссылаться на новую форму CryptDllEncodeObject с помощью имени MyEncodeXyz. Это позволяет библиотеке DLL экспортировать несколько функций OID для одного и того же имени функции без необходимости скрестить собственную функцию диспетчера OID.
Синтаксис
BOOL CryptRegisterOIDFunction(
[in] DWORD dwEncodingType,
[in] LPCSTR pszFuncName,
[in] LPCSTR pszOID,
[in] LPCWSTR pwszDll,
[in] LPCSTR pszOverrideFuncName
);
Параметры
[in] dwEncodingType
Указывает тип кодировки для сопоставления. В настоящее время используются только X509_ASN_ENCODING и PKCS_7_ASN_ENCODING; однако в будущем могут быть добавлены дополнительные типы кодирования. Чтобы сопоставить оба текущих типа кодировки, используйте:
X509_ASN_ENCODING | PKCS_7_ASN_ENCODING.
[in] pszFuncName
Имя регистраемой функции.
[in] pszOID
OID регистраемой функции. Если слово высокого порядка в OID не равно нулю, pszOID является указателем на строку OID, например "2.5.29.1", или строку ASCII , например "file". Если слово высокого порядка в OID равно нулю, слово нижнего порядка задает числовой идентификатор, который будет использоваться в качестве идентификатора объекта.
[in] pwszDll
Имя dll-файла, который необходимо зарегистрировать. Он может содержать строки переменных среды, которые необходимо развернуть с помощью функции ExpandEnvironmentStrings перед загрузкой библиотеки DLL.
[in] pszOverrideFuncName
Строка, указывающая имя функции, экспортируемой в библиотеку DLL. Если pszOverrideFuncName имеет значениеNULL, используется имя функции, указанное в параметре pszFuncName .
Возвращаемое значение
Если функция выполнена успешно, возвращается ненулевое значение (TRUE).
Если функция завершается сбоем, возвращаемое значение равно нулю (FALSE).
Комментарии
Завершив использование функции OID, отмените ее регистрацию, вызвав функцию CryptUnregisterOIDFunction .
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | wincrypt.h |
Библиотека | Crypt32.lib |
DLL | Crypt32.dll |