Metodo IX509CertificateRequestPkcs10::InitializeFromPrivateKey (certenroll.h)
Il metodo InitializeFromPrivateKey inizializza la richiesta di certificato utilizzando un oggetto IX509PrivateKey e, facoltativamente, un modello. Questo metodo è abilitato per il Web.
Sintassi
HRESULT InitializeFromPrivateKey(
[in] X509CertificateEnrollmentContext Context,
[in] IX509PrivateKey *pPrivateKey,
[in, optional] BSTR strTemplateName
);
Parametri
[in] Context
Valore di enumerazione X509CertificateEnrollmentContext che specifica se il certificato richiesto è destinato a un utente finale, a un computer o a un amministratore che agisce per conto del computer. Può trattarsi di uno dei valori seguenti. Tuttavia, se la proprietà MachineContext della chiave privata è impostata, è necessario specificare il valore di enumerazione ContextMachine .
[in] pPrivateKey
Puntatore a un'interfaccia IX509PrivateKey che rappresenta la chiave privata.
[in, optional] strTemplateName
Variabile BSTR che contiene il nome comune (CN) del modello come viene visualizzato in Active Directory o nell'identificatore di oggetto decimale punteggiato. Questo parametro è facoltativo.
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 dei codici di errore comuni, vedere Valori HRESULT comuni.
Codice restituito | Descrizione |
---|---|
|
L'oggetto richiesta certificato è già stato inizializzato. |
Commenti
Se si specifica un modello, il metodo InitializeFromPrivateKey esegue le azioni seguenti:
- Aggiunge le estensioni specificate dal modello a un insieme IX509Extensions .
- Crea un insieme IObjectIds e lo popola con gli identificatori di oggetto predefiniti XCN_OID_KEY_USAGE e XCN_OID_BASIC_CONSTRAINTS2. Se il modello indica che questi URI non sono critici, vengono rimossi dalla raccolta. Vengono aggiunti gli URI contrassegnati come critici dal modello.
- Imposta la proprietà SmimeCapabilities se il modello supporta algoritmi simmetrici.
- Imposta la proprietà AlternateSignatureAlgorithm se il modello richiede un OID dell'algoritmo di firma discreto.
- Crea un oggetto IX509SignatureInformation .
- Crea un OID dell'algoritmo hash se l'algoritmo viene specificato nel modello e lo imposta sull'oggetto IX509SignatureInformation .
- Recupera un OID dell'algoritmo di crittografia asimmetrica, se esistente, dal modello e lo imposta sull'oggetto IX509SignatureInformation .
- Popola molte delle proprietà IX509PrivateKey dalle impostazioni del modello.
Se si specifica o meno un modello, se la proprietà CSPInformations non è specificata, il metodo crea un insieme ICspInformations dai provider installati nel computer.
A questo punto non viene creata alcuna chiave privata. Se l'oggetto IX509PrivateKey passato al metodo non rappresenta una chiave esistente, viene creata una chiave quando viene chiamato il metodo Encode . La chiave verrà creata utilizzando il provider predefinito se non è stato specificato alcun modello e la proprietà ProviderName in IX509PrivateKey non è impostata. Quando esiste una chiave privata, viene impostata sulla proprietà PrivateKey .
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 |