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 |