Share via


Extensiones criptográficas de firma digital XML

CryptXML permite a los desarrolladores ampliar los algoritmos criptográficos admitidos de forma nativa mediante el registro de un archivo DLL de extensión criptográfica en todo el sistema. Los archivos DLL de extensión amplían los algoritmos admitidos por los elementos SIGNATUREMethod y DigestMethod XML. Los archivos DLL de extensión pueden admitir algoritmos que codifican parámetros adicionales en la firma digital XML.

Todos los archivos DLL de extensiones deben admitir la función CryptXmlDllGetInterface , que devuelve un puntero a una estructura CRYPT_XML_CRYPTOGRAPHIC_INTERFACE . Esta estructura proporciona punteros de función para implementar funciones de extensión criptográfica. Las funciones admitidas dependen del tipo de algoritmo criptográfico admitido y de si el algoritmo debe codificar parámetros en la firma digital XML.

Las funciones de extensiones criptográficas incluyen los siguientes punteros de función:

Funciones necesarias

Funciones del método Digest

Funciones del método Signature

Para algoritmos con parámetros codificados predeterminados

Los archivos DLL de extensión criptográfica se registran en todo el sistema. Se requieren privilegios de administrador para registrar un archivo DLL de extensión criptográfica.

Todas las extensiones criptográficas CryptXML se registran mediante el valor de URI establecido en signatureMethod o el campo de atributo de algoritmo del elemento DigestMethod .

Las rutas de acceso del Registro para los archivos DLL de extensión son las siguientes:

32 bits

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Criptografía\CryptXML\URI\{URI}

64 bits

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Criptografía\CryptXML\URI\{URI}

HKEY_LOCAL_MACHINE\SOFTWARE\\ WOW6432NODEMicrosoft\Criptografía\CryptXML\URI\{URI}

Cada clave contiene la siguiente configuración.

Nombre Tipo data
Archivo DLL
Cadena expandible
Necesario.
Ruta de acceso absoluta al archivo DLL del proveedor de servicios criptográficos XML.
**Nota: **Se recomienda que los archivos DLL de extensión criptográfica se encuentren en directorios que solo se pueden escribir en aplicaciones con privilegios administrativos.
LoadLibrary se usa para cargar el archivo DLL de extensión criptográfica.
Nombre
String Opcional.
Nombre para mostrar asociado a este URI.
GroupId
DWORD Necesario.
Identificador de grupo asociado a este algoritmo criptográfico. Entre los valores posibles se incluyen los siguientes: CRYPT_XML_GROUP_ID_HASH<fuerte> = 1
< CRYPT_XML_GROUP_ID_SIGNstrong> = 2
CNGAlgid
String Necesario.
Nombre del algoritmo CNG que se va a pasar a las funciones BCrypt o NCrypt.
CNGExtraAlgid
String Opcional.
Cadena de algoritmo adicional, distinta de la cadena del miembro CNGAlgid, que se puede pasar a las funciones CNG.
Para los algoritmos de firma (CRYPT_XML_GROUP_ID_SIGN), este miembro es la cadena de algoritmo de clave pública que se va a pasar a las funciones CNG.
Para los demás valores de GroupId, establezca el miembro pwszCNGExtraAlgid en la cadena vacía, L"".

 

Algoritmos criptográficos de firma digital XML