Condividi tramite


Metodo StrongNameGetPublicKeyEx

Ottiene la chiave pubblica da una coppia di chiavi pubblica/privata e specifica un algoritmo hash e un algoritmo di firma.

Sintassi

HRESULT StrongNameGetPublicKey (
    [in]  LPCWSTR   pwzKeyContainer,  
    [in]  BYTE      *pbKeyBlob,  
    [in]  ULONG     cbKeyBlob,  
    [out] BYTE      **ppbPublicKeyBlob,  
    [out] ULONG     *pcbPublicKeyBlob  
    [in]  ULONG     uHashAlgId,  
    [in]  ULONG     uReserved,  
);  

Parametri

pwzKeyContainer
[in] Nome del contenitore della chiave contenente la coppia di chiavi pubblica/privata. Se pbKeyBlob è Null, szKeyContainer deve specificare un contenitore valido all'interno del provider di servizi di crittografia . In questo caso, il StrongNameGetPublicKeyEx metodo estrae la chiave pubblica dalla coppia di chiavi archiviata nel contenitore.

Se pbKeyBlob non è Null, si presuppone che la coppia di chiavi sia contenuta nell'oggetto BLOB (Key Binary Large Object).

Le chiavi devono essere chiavi di firma rivest-Shamir-Adleman (RSA) a 1024 bit. Nessun altro tipo di chiavi è supportato in questo momento.

pbKeyBlob
[in] Puntatore alla coppia di chiavi pubblica/privata. Questa coppia è nel formato creato dalla funzione Win32 CryptExportKey . Se pbKeyBlob è Null, si presuppone che il contenitore della chiave specificato da szKeyContainer contenga la coppia di chiavi.

cbKeyBlob
[in] Dimensioni, in byte, di pbKeyBlob.

ppbPublicKeyBlob
[out] BLOB della chiave pubblica restituita. Il ppbPublicKeyBlob parametro viene allocato dal common language runtime e restituito al chiamante. Il chiamante deve liberare la memoria usando il metodo ICLRStrongName::StrongNameFreeBuffer .

pcbPublicKeyBlob
[out] Dimensioni del BLOB della chiave pubblica restituita.

uHashAlgId
[in] Algoritmo hash dell'assembly. Vedere la sezione Osservazioni per un elenco di valori accettati.

uReserved
[in] Riservato per l'uso futuro; impostazione predefinita su Null.

Valore restituito

S_OK se il metodo è stato completato correttamente; in caso contrario, un valore HRESULT che indica l'errore (vedere Valori HRESULT comuni per un elenco).

Commenti

La chiave pubblica è contenuta in una struttura PublicKeyBlob .

Nella tabella seguente viene illustrato il set di valori accettati per il uHashAlgId parametro.

Nome Valore
nessuno 0
SHA-1 0x8004
SHA-256 0x800c
SHA-384 0x800d
SHA-512 0x800e

Requisiti

Piattaforme: vedere Requisiti di sistema di .NET Framework.

Intestazione: MetaHost.h

Libreria: Incluso come risorsa in MSCorEE.dll

Versioni di .NET Framework: Disponibile dalla versione 4.5

Vedi anche