Estensioni crittografiche di firma digitale XML
CryptXML consente agli sviluppatori di estendere algoritmi crittografici supportati in modo nativo registrando una DLL dell'estensione crittografica a livello di sistema. Le DLL di estensione estendono gli algoritmi supportati dagli elementi SignatureMethod e DigestMethod XML. Le DLL di estensione possono supportare algoritmi che codificano parametri aggiuntivi nella firma digitale XML.
Tutte le DLL di estensioni devono supportare la funzione CryptXmlDllGetInterface , che restituisce un puntatore a una struttura CRYPT_XML_CRYPTOGRAPHIC_INTERFACE . Questa struttura fornisce puntatori di funzione per implementare funzioni di estensione crittografica. Le funzioni supportate dipendono dal tipo di algoritmo crittografico supportato e dal fatto che l'algoritmo debba codificare i parametri nella firma digitale XML.
Le funzioni di estensioni crittografiche includono i puntatori alle funzioni seguenti:
-
Funzioni necessarie
-
Funzioni del metodo Digest
-
Funzioni del metodo Signature
-
Per gli algoritmi con parametri codificati predefiniti
Le DLL dell'estensione crittografica vengono registrate a livello di sistema. I privilegi di amministratore sono necessari per registrare una DLL di estensione crittografica.
Tutte le estensioni crittografiche CryptXML vengono registrate dal valore URI impostato nel campo SignatureMethod o dell'attributo dell'algoritmo dell'elemento DigestMethod .
I percorsi del Registro di sistema per le DLL di estensione sono i seguenti:
-
32 bit
-
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Crittografia\CryptXML\URI\{uri}
-
64 bit
-
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Crittografia\CryptXML\URI\{uri}
HKEY_LOCAL_MACHINE\SOFTWARE\\ WOW6432NODEMicrosoft\Crittografia\CryptXML\URI\{uri}
Ogni chiave contiene le impostazioni seguenti.
Nome | Tipo | Data |
---|---|---|
DLL |
Stringa espandibile |
Obbligatorio. Percorso assoluto della DLL del provider di crittografia XML. **Nota: **È consigliabile che le DLL dell'estensione crittografica si trovino nelle directory che possono essere scritte solo da applicazioni con privilegi amministrativi. LoadLibrary viene usato per caricare la DLL dell'estensione crittografica. |
Nome |
Stringa | facoltativo. Nome visualizzato associato a questo URI. |
GroupId |
DWORD | Obbligatorio. Identificatore di gruppo associato a questo algoritmo crittografico. I valori possibili includono i valori seguenti:CRYPT_XML_GROUP_ID_HASH<strong> = 1 < CRYPT_XML_GROUP_ID_SIGNstrong> = 2 |
CNGAlgid |
Stringa | Obbligatorio. Nome dell'algoritmo CNG da passare alle funzioni BCrypt o NCrypt. |
CNGExtraAlgid |
Stringa | facoltativo. Stringa di algoritmo aggiuntiva, diversa dalla stringa del membro CNGAlgid, che può essere passata alle funzioni CNG. Per gli algoritmi di firma (CRYPT_XML_GROUP_ID_SIGN), questo membro è la stringa dell'algoritmo di chiave pubblica da passare alle funzioni CNG. Per gli altri valori di GroupId, impostare il membro pwszCNGExtraAlgid sulla stringa vuota, L"". |
Argomenti correlati