Metodo IX509CertificateRequestPkcs7::InitializeDecode (certenroll.h)
Il metodo InitializeDecode decodifica un oggetto richiesta PKCS #7 firmato o non firmato e lo usa per inizializzare il nuovo oggetto PKCS #7. La richiesta esistente è contenuta 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 è rappresentata da una stringa che è una sequenza binaria pura o è codificata in Unicode.
Sintassi
HRESULT InitializeDecode(
[in] BSTR strEncodedData,
[in] EncodingType Encoding
);
Parametri
[in] strEncodedData
Variabile BSTR che contiene la richiesta con codifica DER.
[in] Encoding
Valore di enumerazione EncodingType che specifica il tipo di codifica Unicode applicata alla stringa di input che contiene la richiesta con codifica DER. Il valore predefinito è XCN_CRYPT_STRING_BASE64.
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/valore restituito | Descrizione |
---|---|
|
L'oggetto richiesta è già stato inizializzato. |
Commenti
Metodo InitializeDecode :
- Decodifica la richiesta PKCS #7 specificata nell'input.
- Usa l'oggetto decodificato per creare una richiesta PKCS #10 interna con le raccolte seguenti:
- Insieme ICryptAttributes vuoto.
- Insieme IX509Extensions vuoto.
- Insieme IObjectIds vuoto per le estensioni critiche.
- Insieme IObjectIds vuoto per gli OID di attributo e estensione da eliminare dalla nuova richiesta.
- Aggiunge le estensioni decodificate all'insieme IX509Extensions .
- Aggiunge gli attributi decodificati all'insieme ICryptAttributes
- Imposta la proprietà ClientId .
- Imposta la proprietà TemplateObjectId .
- Usa la firma nella richiesta PKCS #7 originale per creare un nuovo oggetto ISignerCertificate .
- Recupera un oggetto IX509SignatureInformation dall'oggetto ISignerCertificate .
- Inizializza il nuovo oggetto IX509SignatureInformation usando gli algoritmi di firma e hash originali.
- Imposta la richiesta PKCS #10 come oggetto richiesta interna.
Per impostazione predefinita, il metodo InitializeDecode presuppone che la richiesta di certificato da decodificare sia per un utente finale. A partire da Windows 8 e Windows Server 2012, è possibile modificare questo comportamento predefinito. Dopo aver creato un'istanza dell'interfaccia IX509CertificateRequestPkcs7 , chiamare InitializeDecode impostando il parametro Encoding su XCN_CRYPT_STRING_BINARY e il parametro strEncodedData su uno dei valori seguenti:
Valore | Descrizione |
---|---|
L"ContextMachine" | La richiesta di certificato codificato è per un computer. |
L"ContextUser" | La richiesta di certificato codificata è destinata a un utente finale. |
L"ContextAdministratorForceMachine" | Il certificato codificato viene richiesto da un amministratore che agisce per conto di un computer. |
Chiamare quindi di nuovo il metodo InitializeDecode con il certificato codificato impostato nell'argomento strEncodedData .
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 |