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 |
---|---|
|
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. |
|
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. |
|
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. |
|
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. |
|
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 |
---|---|
|
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. |
|
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 |