Metodo IX509CertificateRequestPkcs10::InitializeFromCertificate (certenroll.h)
Il metodo InitializeFromCertificate inizializza la richiesta di certificato usando un certificato esistente. Il certificato è contenuto in una matrice di byte codificata usando Distinguished Encoding Rules (DER) come definito dallo standard ASN.1 (Abstract Syntax Notation One). La matrice di byte con codifica DER è rappresentata da una stringa che è una sequenza binaria pura o è codificata Unicode.
Sintassi
HRESULT InitializeFromCertificate(
[in] X509CertificateEnrollmentContext Context,
[in] BSTR strCertificate,
[in] EncodingType Encoding,
[in] X509RequestInheritOptions InheritOptions
);
Parametri
[in] Context
Valore di enumerazione X509CertificateEnrollmentContext che specifica se il certificato richiesto è destinato a un utente finale, un computer o un amministratore che agisce per conto del computer.
[in] strCertificate
Variabile BSTR contenente il certificato con codifica DER.
A partire da Windows 7 e Windows Server 2008 R2, è possibile specificare una stampa personale del certificato o un numero di serie anziché un certificato codificato. In questo modo, la funzione cerca gli archivi locali appropriati per il certificato corrispondente. Tenere presente quanto segue:
- BSTR deve essere un numero pari di cifre esadecimali.
- Lo spazio vuoto tra coppie esadecimali viene ignorato.
- Il parametro Codifica deve essere impostato su XCN_CRYPT_STRING_HEXRAW.
- Il parametro Context determina se l'utente o gli archivi computer o entrambi vengono cercati.
- Se è necessaria una chiave privata, vengono cercati solo gli archivi personali e delle richieste.
- Se non è necessaria una chiave privata, vengono inoltre cercati gli archivi ca radice e intermedi.
[in] Encoding
Valore di enumerazione EncodingType che specifica il tipo di codifica Unicode applicato al certificato con codifica DER. Il valore predefinito è XCN_CRYPT_STRING_BASE64.
[in] InheritOptions
Valore di enumerazione X509RequestInheritOptions che specifica come creare l'oggetto richiesta certificato dal certificato esistente. È possibile specificare come ereditare una chiave scegliendo uno dei valori seguenti. Il valore predefinito è InheritDefault.
È anche possibile usare un'operazione bit per bit-OR per combinare il valore di ereditarietà della chiave con qualsiasi combinazione dei valori seguenti.
Valore | Significato |
---|---|
|
Eredita il certificato di rinnovo. Specificando questo flag viene impostata la proprietà RenewalCertificate . |
|
Eredita il modello di certificato. |
|
Eredita il nome distinto dell'oggetto. |
|
Eredita le estensioni pertinenti dal certificato. |
|
Eredita l'estensione SubjectAlternativeName . |
|
Eredita il periodo di validità. |
È anche possibile specificare InheritNone per impedire l'implementazione predefinita di uno dei flag nella tabella precedente (flag non correlati all'ereditarietà delle chiavi). Se si specifica ErediNone ma si specifica anche un flag non correlato all'ereditarietà delle chiavi, il metodo restituisce E_INVALIDARG.
Se si imposta il parametro InheritOptions su zero (0) o si specifica ErediDefault e non si specifica un valore di ereditarietà della chiave, ErediNewSimilarKey viene usato per impostazione predefinita.
Se si imposta il parametro InheritOptions su zero (0) o si specifica ErediDefault e non si specifica uno dei valori non correlati all'ereditarietà delle chiavi, i flag seguenti vengono impostati per impostazione predefinita:
- EreditaSubjectFlag
- EreditaExtensionsFlag
- Eredita validitàPeriodFlag
- EreditaTemplateFlag (se il certificato contiene un'estensione del modello)
Valore restituito
Se la funzione ha esito positivo, la funzione restituisce S_OK.
Se la funzione ha esito negativo, restituisce un valore HRESULT che indica l'errore. I valori possibili includono, ma non sono limitati a, quelli indicati nella tabella seguente. Per un elenco di codici di errore comuni, vedere Valori HRESULT comuni.
Codice restituito | Descrizione |
---|---|
|
L'oggetto richiesta certificato è già stato inizializzato. |
Commenti
Il metodo InitializeFromCertificate convalida le opzioni specificate nel parametro InheritOptions e inizializza un nuovo oggetto richiesta PKCS #10 eseguendo le azioni seguenti:
- Copia il certificato di rinnovo, se presente e si è specificato InheritRenewalCertificateFlag, dal certificato di input alla nuova richiesta.
- Copia il modello se è specificato nel certificato esistente e si imposta il valore InheritTemplateFlag .
- Copia il nome distinto dell'oggetto nella nuova richiesta se si specifica InheritSubjectFlag.
- Copia il nome alternativo dell'oggetto nella nuova richiesta se si specifica ErediTaSubjectAltNameFlag.
- Copia le estensioni nella nuova richiesta se si specifica ErediExtensionsFlag.
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 |
DLL | CertEnroll.dll |