Función CryptRegisterOIDFunction (wincrypt.h)

La función CryptRegisterOIDFunction registra un archivo DLL que contiene la función a la que se va a llamar para el tipo de codificación, el nombre de función y el identificador de objeto (OID) especificados.

De forma predeterminada, los nuevos nombres de función se instalan al final de la lista. Para registrar una nueva función antes de las funciones instaladas, llame a la función CryptSetOIDFunctionValue con dwValueType establecido en REG_DWORD y pwszValueName establecido en CRYPT_OID_REG_FLAGS_VALUE_NAME.

CRYPT_OID_REG_FLAGS_VALUE_NAME se define como L"CryptFlags".

Además de registrar un archivo DLL, se puede invalidar el nombre de la función a la que se va a llamar. Por ejemplo, el parámetro pszFuncName se puede establecer en CryptDllEncodeObject y el parámetro pszOverrideFuncName en MyEncodeXyz. A continuación, se puede hacer referencia a la nueva forma de CryptDllEncodeObject mediante el nombre MyEncodeXyz. Esto permite que un archivo DLL exporte varias funciones de OID para el mismo nombre de función sin necesidad de interponer su propia función de distribuidor de OID.

Sintaxis

BOOL CryptRegisterOIDFunction(
  [in] DWORD   dwEncodingType,
  [in] LPCSTR  pszFuncName,
  [in] LPCSTR  pszOID,
  [in] LPCWSTR pwszDll,
  [in] LPCSTR  pszOverrideFuncName
);

Parámetros

[in] dwEncodingType

Especifica el tipo de codificación que se va a coincidir. Actualmente, solo se usan X509_ASN_ENCODING y PKCS_7_ASN_ENCODING; sin embargo, se pueden agregar tipos de codificación adicionales en el futuro. Para hacer coincidir ambos tipos de codificación actuales, use:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING.

[in] pszFuncName

Nombre de la función que se está registrando.

[in] pszOID

OID de la función que se va a registrar. Si la palabra de orden alto del OID es distinto de cero, pszOID es un puntero a una cadena OID como "2.5.29.1" o una cadena ASCII como "file". Si la palabra de orden superior del OID es cero, la palabra de orden bajo especifica el identificador numérico que se va a usar como identificador de objeto.

[in] pwszDll

Nombre del archivo DLL que se va a registrar. Puede contener cadenas de variables de entorno que se van a expandir mediante la función ExpandEnvironmentStrings antes de cargar el archivo DLL.

[in] pszOverrideFuncName

Cadena que especifica un nombre para la función exportada en el archivo DLL. Si pszOverrideFuncName es NULL, se usa el nombre de función especificado por pszFuncName .

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es distinto de cero (TRUE).

Si se produce un error en la función, el valor devuelto es cero (FALSE).

Comentarios

Cuando haya terminado de usar una función OID, anule el registro llamando a la función CryptUnregisterOIDFunction .

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado wincrypt.h
Library Crypt32.lib
Archivo DLL Crypt32.dll

Consulte también

CryptSetOIDFunctionValue

CryptUnregisterOIDFunction

Funciones de compatibilidad con OID