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"". |
Temas relacionados