Функция 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

См. также раздел

CryptSetOIDFunctionValue

CryptUnregisterOIDFunction

Функции поддержки OID