Condividi tramite


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

 

Algoritmi crittografici di firma digitale XML