Interfaccia IX509Extension (certenroll.h)

L'interfaccia IX509Extension può essere usata per definire un'estensione per una richiesta di certificato. Le estensioni del certificato forniscono informazioni sull'utilizzo delle chiavi, i criteri e i vincoli dei certificati, i moduli di nome alternativi e altro ancora. Un'estensione è costituita da un identificatore di oggetto (OID), un valore booleano che identifica se l'estensione è critica e una matrice di byte che contiene il valore di estensione come illustrato dalla sintassi astratta 1 (ASN.1) sintassi astratta.


Extension ::= SEQUENCE 
{
   extnId              OBJECT IDENTIFIER,
   critical            BOOLEAN DEFAULT FALSE,
   extnValue           OCTETSTRING
}

L'API Registrazione certificati contiene le interfacce seguenti, derivate da IX509Extension, che è possibile usare per creare le varie estensioni usate più comunemente in un'infrastruttura a chiave pubblica (PKI) che si basa su un server di certificati Windows.

Nota Non usare l'interfaccia di base IX509Extension per rappresentare qualsiasi estensione che può essere rappresentata da una delle interfacce seguenti. Il comportamento della registrazione non è definito se l'interfaccia appropriata non viene usata.

 
Interfaccia Descrizione
IX509ExtensionAlternativeNames Definisce un'estensione AlternativeNames contenente uno o più moduli di nome alternativi per l'oggetto della richiesta di certificato.
IX509ExtensionAuthorityKeyIdentifier Definisce un'estensione AuthorityKeyIdentifier che consente l'identificazione della chiave pubblica dell'autorità di certificazione che corrisponde alla chiave privatadell'autorità di certificazione che ha firmato un certificato rilasciato. Viene usato dal software di creazione del percorso certificato in un server Windows per trovare il certificato dell'autorità di certificazione.
IX509ExtensionBasicConstraints Definisce un'estensione BasicConstraints che identifica se l'entità può essere usata come autorità di certificazione e, in tal caso, il numero di autorità di certificazione subordinate che possono esistere sotto di esso nella catena di certificati.
IX509ExtensionCertificatePolicies Definisce un'estensione CertificatePolicies che identifica i criteri in cui è stato rilasciato il certificato e gli scopi per i quali può essere usato.
IX509ExtensionEnhancedKeyUsage Definisce un'estensione EnhancedKeyUsage che identifica uno o più usi della chiave pubblica contenuta nel certificato.
IX509ExtensionKeyUsage Definisce un'estensione KeyUsage che limita le operazioni che possono essere eseguite dalla chiave pubblica contenuta nel certificato.
IX509ExtensionMSApplicationPolicies Definisce un'estensione MSApplicationPolicies che può essere usata da un'applicazione per filtrare i certificati in base all'uso consentito. Gli usi consentiti sono identificati dagli identificatori di oggetto (OID).
IX509ExtensionSmimeCapabilities Definisce un'estensione SmimeCapabilities che identifica le funzionalità di decrittografia di un destinatario di posta elettronica in modo che il mittente del messaggio di posta elettronica possa scegliere l'algoritmo di crittografia più sicuro supportato da entrambe le parti.
IX509ExtensionSubjectKeyIdentifier Definisce un'estensione SubjectKeyIdentifier che distingue tra più chiavi pubbliche mantenute dal proprietario del certificato. Il valore dell'estensione è in genere un hash SHA-1 della chiave.
IX509ExtensionTemplate Definisce un'estensione modello che identifica il modello di versione 2 da usare durante l'emissione o il rinnovo di un certificato.
IX509ExtensionTemplateName Definisce un'estensione TemplateName che identifica il modello di versione 1 da usare durante l'emissione o il rinnovo di un certificato.
 

La maggior parte delle estensioni che possono essere create usando le interfacce precedenti sono definite dallo standard di sintassi X.509 versione 3. Per creare le estensioni della versione 3 per cui Microsoft non fornisce un oggetto personalizzato, è possibile usare l'interfaccia IX509Extension . Queste estensioni vengono identificate nella tabella seguente.

Estensione/OID Descrizione
AuthorityInformationAccess(XCN_OID_AUTHORITY_INFO_ACCESS) Identifica come accedere alle informazioni e ai servizi dell'autorità di certificazione. Il valore dell'estensione contiene una sequenza di URI.
CrlDistributionPoints(XCN_OID_CRL_DIST_POINTS) Contiene l'URI dell'elenco di revoche di certificati di base (CRL).
FreshestCRL(XCN_OID_FRESHEST_CRL) Contiene l'URI della CRL delta. La stessa sintassi ASN.1 viene usata per questa estensione e l'estensione CrlDistributionPoints .
NameConstraints(XCN_OID_NAME_CONSTRAINTS) Identifica lo spazio dei nomi in cui devono trovarsi tutti i nomi dei soggetti di certificati in una gerarchia di certificati. L'estensione viene usata solo in un certificato dell'autorità di certificazione.
PolicyConstraints(XCN_OID_POLICY_CONSTRAINTS) Vincola la convalida del percorso vietando il mapping dei criteri o richiedendo che ogni certificato nella gerarchia contenga un identificatore di criteri accettabile.
PolicyMappings(XCN_OID_POLICY_MAPPINGS) Identifica i criteri in un'autorità di certificazione subordinata che corrisponde ai criteri dell'autorità di certificazione emittente. Il valore dell'estensione contiene una sequenza di mapping dei criteri dell'autorità di certificazione e di certificazione subordinati rappresentati dagli identificatori di oggetto.
PrivateKeyUsagePeriod(XCN_OID_PRIVATEKEY_USAGE_PERIOD) Specifica un periodo di validità diverso per la chiave privata rispetto al certificato con cui è associata la chiave.
SubjectDirectoryAttributes(XCN_OID_SUBJECT_DIR_ATTRS) Trasmette gli attributi di identificazione, ad esempio la nazionalità sul soggetto del certificato. Il valore dell'estensione è una sequenza di coppie di valori OID.
 

Infine, è possibile usare l'interfaccia IX509Extension per definire estensioni private che contengono informazioni univoche per una community specifica.

Le estensioni vengono aggiunte alla struttura Attributi di una richiesta PKCS #10 e alla struttura TaggedAttributes di una richiesta CMC. Per aggiungere estensioni a entrambi i formati di richiesta, è prima necessario aggiungerli a un insieme IX509Extensions e usare l'insieme per inizializzare un oggetto IX509AttributeExtensions . Per altre informazioni, vedere gli argomenti PKCS #10 Extensions e CMC Extensions.For more information, see the PKCS #10 Extensions and the CMC Extensions topics.

Ereditarietà

L'interfaccia IX509Extension eredita dall'interfaccia IDispatch . IX509Extension include anche questi tipi di membri:

Metodi

L'interfaccia IX509Extension include questi metodi.

 
IX509Extension::get_Critical

Specifica e recupera un valore booleano che identifica se l'estensione del certificato è critica. (Get)
IX509Extension::get_ObjectId

Recupera l'identificatore dell'oggetto (OID) per l'estensione.
IX509Extension::get_RawData

Recupera una matrice di byte contenente il valore dell'estensione. (IX509Extension.get_RawData)
IX509Extension::Initialize

Inizializza un oggetto IX509Extension usando un identificatore di oggetto (OID) e una matrice di byte che contiene l'estensione codificata Distinguished Encoding Rules (DER).
IX509Extension::p ut_Critical

Specifica e recupera un valore booleano che identifica se l'estensione del certificato è critica. (Put)

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione certenroll.h

Vedi anche

API di registrazione certificato

ICryptAttribute

Idispatch

IX509AttributeExtensions

IX509Extensions