Condividi tramite


Funzioni chiave private e pubbliche

CertEnroll.dll implementa le interfacce IX509PrivateKey e IX509PublicKey . È possibile, ad esempio, usare l'interfaccia IX509PrivateKey per eseguire le azioni seguenti in una chiave privata:

  • Creare, aprire, chiudere, importare, esportare ed eliminare la chiave.
  • Specificare o recuperare l'algoritmo di chiave pubblica.
  • Specificare o recuperare informazioni sul provider di servizi di crittografia disponibile (CSP) che supportano l'algoritmo di chiave pubblica.
  • Specificare o recuperare il certificato associato alla chiave privata.
  • Specificare o recuperare il nome del contenitore della chiave.
  • Specificare o recuperare una descrizione di e un nome visualizzato per la chiave.
  • Specificare o recuperare i vincoli di esportazione in una chiave privata.
  • Specificare o recuperare un valore booleano che indica se esiste la chiave.
  • Specificare o recuperare un valore che indica come la chiave è protetta prima dell'uso.
  • Specificare o recuperare un valore che indica se la chiave può essere usata per la firma, la crittografia o entrambi.
  • Specificare o recuperare un valore che identifica lo scopo specifico per cui è possibile usare la chiave.
  • Specificare o recuperare la lunghezza della chiave.
  • Specificare o recuperare un valore che indica se la chiave viene usata o salvata nel contesto di un computer o di un utente.
  • Recuperare un valore booleano che specifica se la chiave è stata aperta.
  • Specificare un numero di identificazione personale per accedere a una chiave privata in una smart card.
  • Specificare o recuperare il nome del CSP associato alla chiave.
  • Specificare o recuperare il descrittore di sicurezza per la chiave.

Ognuna delle sezioni seguenti identifica una funzione esportata da Xenroll.dll che può essere usata per gestire una chiave crittografica. Ogni argomento illustra anche come usare CertEnroll.dll per sostituire la funzione o indica che non esiste alcun mapping tra le due librerie:

ContainerNameWStr

La funzione ContainerNameWStr in Xenroll.dll specifica o recupera il nome del contenitore della chiave.

Quando si usa CertEnroll.dll, è possibile eseguire le azioni seguenti per recuperare il nome di un contenitore di chiavi:

  1. Chiamare la proprietà Request in un oggetto IX509Enrollment esistente.
  2. Chiamare il metodo GetInnerRequest nella richiesta restituita dal passaggio 1 per recuperare la richiesta più interna.
  3. Chiamare QueryInterface nell'oggetto IX509CertificateRequest restituito dal passaggio 2 per eseguire il cast in un oggetto IX509CertificateRequestPkcs10 .
  4. Chiamare la proprietà PrivateKey nella richiesta PKCS #10.
  5. Chiamare la proprietà ContainerName nell'oggetto IX509PrivateKey recuperato dal passaggio 4.

GenKeyFlags

La funzione GenKeyFlags definita in Xenroll.dll specifica o recupera i flag usati per generare una coppia di chiavi privata o pubblica/privata.

Quando si usa CertEnroll.dll, è possibile specificare una serie di proprietà diverse che determinano la modalità di creazione di una chiave privata. Per altre informazioni, vedere Creare.

GetKeyLen

La funzione GetKeyLen definita in Xenroll.dll recupera la dimensione massima o minima di una chiave di crittografia.

Quando si usa CertEnroll.dll, è possibile chiamare la proprietà Length in un oggetto IX509PrivateKey o IX509PublicKey per recuperare le dimensioni della chiave, in bit.

GetKeyLenEx

La funzione GetKeyLenEx definita in Xenroll.dll recupera la dimensione massima o minima della chiave o la lunghezza di incremento di una chiave di crittografia.

Quando si usa CertEnroll.dll, è possibile chiamare la proprietà Length in un oggetto IX509PrivateKey o IX509PublicKey per recuperare le dimensioni della chiave, in bit. Se un algoritmo supporta le lunghezze di chiave incrementali, è possibile chiamare la proprietà IncrementLength nell'oggetto ICspAlgorithm per recuperare il valore di incremento. È anche possibile chiamare le proprietà MinLength e MaxLength per recuperare le dimensioni minime e massime delle chiavi.

GetSupportedKeySpec

La funzione GetSupportedKeySpec definita in Xenroll.dll recupera un valore che indica se un CSP supporta chiavi di scambio, chiavi di firma o entrambi.

Quando si usa CertEnroll.dll, è possibile chiamare la proprietà KeySpec negli oggetti IX509PrivateKey o ICspInformation per recuperare le operazioni supportate dalla chiave.

KeySpec

La funzione KeySpec definita in Xenroll.dll specifica o recupera il tipo di chiave.

Quando si usa CertEnroll.dll, è possibile chiamare la proprietà KeySpec in un oggetto IX509PrivateKey per recuperare le operazioni supportate dalla chiave.

LimitExchangeKeyToEncipherment

La funzione LimitExchangeKeyToEncipherment definita in Xenroll.dll specifica o recupera un valore booleano che indica se è possibile usare una chiave di crittografia solo per i dati o la crittografia delle chiavi.

CertEnroll.dll non contiene un equivalente diretto per questa funzione. È tuttavia possibile ottenere un risultato quasi equivalente specificando un oggetto IX509ExtensionKeyUsage e aggiungerlo alla richiesta del certificato.

PVKFileNameWStr

La funzione PVKFileNameWStr definita in Xenroll.dll specifica o recupera il nome di un file contenente chiavi esportate.

Quando si usa CertEnroll.dll, è possibile chiamare il metodo Export in un oggetto IX509PrivateKey per esportare una chiave in un BSTR. È possibile chiamare il metodo ExportPublicKey per esportare la parte della chiave pubblica di una coppia di chiavi asimmetrica.

RiusHardwareKeyIfUnableToGenNew

La funzioneRiusHardwareKeyIfUnableToGenNew definita in Xenroll.dll specifica o recupera un valore booleano che indica se una chiave esistente viene riutilizzata quando viene rilevato un errore durante la generazione di una nuova chiave.

Quando si usa CertEnroll.dll, è possibile chiamare il metodo InitializeFromCertificate in un oggetto IX509CertificateRequestPkcs10 e specificare un valore del tipo di enumerazione X509RequestInheritOptions per riutilizzare una chiave privata esistente.

UseExistingKeySet

La funzione UseExistingKeySet definita in Xenroll.dll specifica o recupera un valore booleano che indica se usare chiavi esistenti.

Quando si usa CertEnroll.dll, è possibile chiamare il metodo InitializeFromCertificate in un oggetto IX509CertificateRequestPkcs10 e specificare un valore del tipo di enumerazione X509RequestInheritOptions per riutilizzare chiavi private e pubbliche esistenti.

Mapping Xenroll.dll a CertEnroll.dll