Funzione CertAddEncodedCertificateToStore (wincrypt.h)

La funzione CertAddEncodedCertificateToStore crea un contesto di certificato da un certificato codificato e lo aggiunge all'archivio certificati. Il contesto creato non include alcuna proprietà estesa.

La funzione CertAddEncodedCertificateToStore esegue anche una copia del certificato codificato prima di aggiungere il certificato all'archivio.

Sintassi

BOOL CertAddEncodedCertificateToStore(
  [in]            HCERTSTORE     hCertStore,
  [in]            DWORD          dwCertEncodingType,
  [in]            const BYTE     *pbCertEncoded,
  [in]            DWORD          cbCertEncoded,
  [in]            DWORD          dwAddDisposition,
  [out, optional] PCCERT_CONTEXT *ppCertContext
);

Parametri

[in] hCertStore

Handle dell'archivio certificati.

[in] dwCertEncodingType

Specifica il tipo di codifica usato. È sempre accettabile specificare sia i tipi di codifica del certificato che dei messaggi combinandoli con un'operazione bit per bit or , come illustrato nell'esempio seguente:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING Tipi di codifica attualmente definiti sono:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pbCertEncoded

Puntatore a un buffer contenente il certificato codificato da aggiungere all'archivio certificati.

[in] cbCertEncoded

Dimensioni, in byte, del buffer pbCertEncoded .

[in] dwAddDisposition

Specifica l'azione da eseguire se esiste un certificato o un collegamento corrispondente a un certificato corrispondente nell'archivio. I valori di eliminazione attualmente definiti e i relativi usi sono i seguenti.

Valore Significato
CERT_STORE_ADD_ALWAYS
La funzione non verifica la presenza di un certificato corrispondente esistente o di un collegamento a un certificato corrispondente. Un nuovo certificato viene sempre aggiunto all'archivio. Ciò può causare duplicati in un archivio.
CERT_STORE_ADD_NEW
Se esiste un certificato corrispondente o un collegamento a un certificato corrispondente nell'archivio, l'operazione ha esito negativo. GetLastError restituisce il codice di CRYPT_E_EXISTS.
CERT_STORE_ADD_REPLACE_EXISTING
Se esiste un certificato o un collegamento corrispondente a un certificato corrispondente nell'archivio, il certificato o il collegamento esistente viene eliminato e viene creato e aggiunto un nuovo certificato all'archivio. Se non esiste un certificato o un collegamento corrispondente a un certificato corrispondente, viene creato un nuovo certificato e aggiunto all'archivio.
CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES
Se esiste un certificato corrispondente nell'archivio, il contesto esistente viene eliminato prima di creare e aggiungere il nuovo contesto. Il nuovo contesto eredita le proprietà dal certificato esistente.
CERT_STORE_ADD_USE_EXISTING
Se esiste un certificato corrispondente o un collegamento a un certificato corrispondente, viene aggiunto il certificato o il collegamento esistente e le proprietà del nuovo certificato. La funzione non riesce, ma non aggiunge un nuovo contesto. Se ppCertContext non è NULL, il contesto esistente viene duplicato.

Se non esiste un certificato o un collegamento corrispondente a un certificato corrispondente, viene aggiunto un nuovo certificato.

[out, optional] ppCertContext

Puntatore a un puntatore al contesto del certificato decodificato. Si tratta di un parametro facoltativo che può essere NULL, che indica che l'applicazione chiamante non richiede una copia del certificato nuovo o esistente. Quando viene eseguita una copia, il relativo contesto deve essere liberato usando CertFreeCertificateContext.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è TRUE.

Se la funzione ha esito negativo, il valore restituito è FALSE. Per informazioni sull'errore estese, chiamare GetLastError. Alcuni codici di errore possibili seguono.

Codice restituito Descrizione
CRYPT_E_EXISTS
Questo codice viene restituito se CERT_STORE_ADD_NEW è impostato e il certificato esiste già nell'archivio o se CERT_STORE_ADD_NEWER è impostato e viene impostato un certificato nell'archivio con una data NotBefore maggiore o uguale alla data NotBefore del certificato da aggiungere.
E_INVALIDARG
Valore di eliminazione non valido specificato nel parametro dwAddDisposition o un tipo di codifica del certificato non valido specificato. Attualmente è supportato solo il tipo di X509_ASN_ENCODING.
 

Se la funzione ha esito negativo, GetLastError restituisce un errore di codifica astratta Notation One (ASN.1). Per informazioni su questi errori, vedere Codifica ASN.1/Decodifica dei valori restituiti.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [app desktop | App UWP]
Server minimo supportato Windows Server 2003 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione wincrypt.h
Libreria Crypt32.lib
DLL Crypt32.dll

Vedi anche

CertAddCertificateContextToStore

CertFreeCertificateContext

Funzioni per i certificati