Funzioni di estensione

Il formato del certificato X. 509 versione 3 identifica più estensioni che possono essere aggiunte a un certificato per fornire informazioni avanzate sull'utilizzo delle chiavi, criteri e vincoli dei certificati, moduli nome alternativi e altro ancora.

CertEnroll.dll implementa le interfacce seguenti per gestire le estensioni dei certificati:

Ognuna delle sezioni seguenti illustra una funzione esportata da Xenroll.dll per gestire le estensioni del certificato. In ogni sezione viene inoltre illustrato come utilizzare CertEnroll.dll per sostituire la funzione o indicare che non esiste alcun mapping tra le due librerie:

AddCertTypeToRequestWStr

La funzione AddCertTypeToRequestWStr in Xenroll.dll aggiunge un modello di certificato, per nome, a una richiesta.

Usando CertEnroll.dll, il metodo preferito per incorporare un modello in una richiesta di certificato consiste nell'usare il metodo InitializeFromTemplateName su un # oggetto Request PKCS 10 o [* Pkcs) o il metodo INITIALIZEFROMINNERREQUESTTEMPLATENAME su una richiesta CMC.

Se un modello specifico non è disponibile nel client, ma deve essere compreso nell' autorità di certificazione (CA), è possibile usare l'interfaccia IX509ExtensionTemplateName per aggiungere un modello versione 1 oppure è possibile usare l'interfaccia IX509ExtensionTemplate per aggiungere un modello versione 2 a una richiesta di certificato. Ad esempio, per aggiungere un modello versione 1, eseguire le azioni seguenti:

  1. Creare un oggetto IX509Extensions .
  2. Creare un oggetto IX509ExtensionTemplateName e chiamare il metodo InitializeEncode , specificando il nome del modello.
  3. Aggiungere l'estensione creata alla raccolta IX509Extensions chiamando il metodo Add .
  4. Creare un oggetto IX509AttributeExtensions e chiamare il metodo InitializeEncode , specificando la raccolta IX509Extensions in input.
  5. Recuperare un oggetto raccolta ICryptAttributes chiamando la proprietà CryptAttributes su un oggetto richiesta IX509CertificateRequestPkcs10 o IX509CertificateRequestCmc esistente.

AddCertTypeToRequestWStrEx

La funzione AddCertTypeToRequestWStrEx in Xenroll.dll aggiunge un modello di certificato a una richiesta in base al nome, all'identificatore di oggetto e alla versione.

Per informazioni su come usare CertEnroll.dll per incorporare le informazioni sul modello in una richiesta, vedere AddCertTypeToRequestWStr.

AddExtensionsToRequest

La funzione AddExtensionsToRequest in Xenroll.dll aggiunge una raccolta di estensioni a una richiesta.

In CertEnroll.dll le estensioni vengono aggiunte alla raccolta di attributi di una richiesta CMC o PKCS # 10. Per aggiungere estensioni, eseguire le azioni seguenti:

  1. Creare un oggetto IX509Extensions .
  2. Creare un oggetto IX509Extension e chiamare il metodo Initialize per creare un'estensione da un identificatore di oggetto e un valore di estensione oppure usare una delle interfacce elencate in precedenza per definire una delle estensioni più comuni.
  3. Aggiungere ogni nuova estensione creata nel passaggio precedente alla raccolta IX509Extensions chiamando il metodo Add .

addExtensionToRequestWStr

La funzione addExtensionToRequestWStr in Xenroll.dll aggiunge un'estensione specifica alla richiesta.

In CertEnroll.dll, è necessario definire un'estensione specifica e aggiungerla a una raccolta di estensioni prima che la raccolta di estensioni venga aggiunta alla raccolta Attributes di una richiesta CMC o PKCS # 10. Per altre informazioni, vedere la discussione AddExtensionsToRequest sopra.

EnableSMIMECapabilities

La funzione EnableSMIMECapabilities in Xenroll.dll specifica o recupera un valore booleano che indica se aggiungere l'estensione SMIMECapabilities alla richiesta.

È possibile chiamare la proprietà SmimeCapabilities sull'oggetto IX509CertificateRequestPkcs10 per aggiungere automaticamente un oggetto IX509ExtensionSmimeCapabilities alla richiesta prima della codifica.

IncludeSubjectKeyID

La funzione IncludeSubjectKeyID in Xenroll.dll specifica o recupera un valore booleano che indica se aggiungere l'estensione SubjectKeyIdentifier alla richiesta.

Per impostazione predefinita, l'estensione SubjectKeyIdentifier viene creata quando l'oggetto richiesta IX509CertificateRequestPkcs10 è inizializzato. È possibile eseguire l'override di questo comportamento chiamando la proprietà SuppressOids .

Se si dispone di una coppia di chiavi pubblica/privata, è anche possibile usare l'interfaccia IX509ExtensionSubjectKeyIdentifier in CertEnroll.dll per aggiungere un'estensione SubjectKeyIdentifier a una richiesta di certificato eseguendo le azioni seguenti:

  1. Creare un oggetto IX509Extensions .
  2. Creare un oggetto IX509ExtensionSubjectKeyIdentifier e chiamare il metodo InitializeEncode , specificando una stringa che contiene l'identificatore. Si tratta in genere di un hash SHA-1 a 20 byte della chiave pubblica contenuta nel certificato di firma della CA.
  3. Aggiungere l'estensione creata alla raccolta IX509Extensions chiamando il metodo Add .
  4. Creare un oggetto IX509AttributeExtensions e chiamare il metodo InitializeEncode , specificando la raccolta IX509Extensions in input.
  5. Recuperare un oggetto raccolta ICryptAttributes chiamando la proprietà CryptAttributes su un oggetto richiesta IX509CertificateRequestPkcs10 o IX509CertificateRequestCmc esistente.

resetExtensions

La funzione resetExtensions in Xenroll.dll rimuove la raccolta di estensioni dalla richiesta.

Per rimuovere un'estensione da una richiesta in base al numero di indice usando CertEnroll.dll, chiamare il metodo Remove sulla raccolta IX509Extensions . Per rimuovere tutti gli attributi da una richiesta, chiamare il metodo Clear .

Mapping Xenroll.dll CertEnroll.dll

ICryptAttributes

IX509Extension

IX509Extensions