Funzione CertGetNameStringA (wincrypt.h)
La funzione CertGetNameString
Sintassi
DWORD CertGetNameStringA(
[in] PCCERT_CONTEXT pCertContext,
[in] DWORD dwType,
[in] DWORD dwFlags,
[in] void *pvTypePara,
[out] LPSTR pszNameString,
[in] DWORD cchNameString
);
Parametri
[in] pCertContext
Puntatore a un contesto di certificato CERT_CONTEXT che include un soggetto e un nome dell'autorità emittente da convertire.
[in] dwType
DWORD che indica come trovare il nome e come formattare l'output.
Valore | Significato |
---|---|
|
Se il certificato ha un'estensione Nome alternativo soggetto o Nome alternativo autorità di certificazione, usa la prima scelta rfc822Name. Se nell'estensione non viene trovata alcuna scelta rfc822Name, usa il campo Nome soggetto per l'OID posta elettronica. Se viene trovato rfc822Name o OID di posta elettronica, usa la stringa . In caso contrario, restituisce una stringa vuota (il numero di caratteri restituito è 1). pvTypePara non viene usato ed è impostato su NULL. |
|
Converte il BLOB del nome soggetto chiamando CertNameToStr. |
|
pvTypePara punta a un identificatore di oggetto (OID) specificando l'attributo name da restituire. Ad esempio, se pvTypePara è szOID_COMMON_NAME, usa il membro Nome soggetto. Se il membro Nome soggetto è vuoto e il certificato dispone di un'estensione Nome alternativo soggetto, usa la prima scelta directoryName. |
|
Scorre l'elenco di attributi del nome seguente e usa l'estensione Nome soggetto o Nome alternativo soggetto per la prima occorrenza di: szOID_COMMON_NAME, szOID_ORGANIZATIONAL_UNIT_NAME, szOID_ORGANIZATION_NAME o szOID_RSA_emailAddr.
Se uno di questi attributi non viene trovato, usa l'estensione Nome alternativo soggetto per una scelta rfc822Name. Se non esiste ancora alcuna corrispondenza, usa il primo attributo. pvTypePara non viene usato ed è impostato su NULL. |
|
Controlla il certificato per una proprietà CERT_FRIENDLY_NAME_PROP_ID. Se il certificato ha questa proprietà, viene restituito. Se il certificato non dispone della proprietà , viene restituito il CERT_NAME_SIMPLE_DISPLAY_TYPE. |
|
Se il certificato dispone di un'estensione Nome alternativo soggetto per l'autorità emittente, Nome alternativo autorità di certificazione, cercare la prima scelta DNSName.
Se la scelta DNSName non viene trovata nell'estensione, cercare l'OID CN nel campo Nome soggetto " 2.5.4.3". Se viene trovato il nome DNS o l'OID CN, restituire la stringa. In caso contrario, restituire una stringa vuota. |
|
Se il certificato ha un'estensione Nome alternativo soggetto per l'autorità emittente, Nome alternativo autorità di certificazione, cercare la prima scelta url. Se viene trovata la scelta dell'URL, restituire la stringa. In caso contrario, restituire una stringa vuota. |
|
Se il certificato ha un'estensione Nome alternativo soggetto, cercare un pszObjId == szOID_NT_PRINCIPAL_NAME, ("1.3.6.1.4.1.311.20.20.2.3").
Se viene trovato l'OID UPN, decodificare il BLOB come X509_UNICODE_ANY_STRING e restituire la stringa decodificata. In caso contrario, restituire una stringa vuota. |
[in] dwFlags
Indica il tipo di elaborazione necessario.
Valore | Significato |
---|---|
|
Acquisisce il nome dell'emittente. Se non è impostato, acquisisce il nome dell'oggetto. |
|
Ignora il tentativo iniziale predefinito di decodificare il valore come UTF8 e decodifica come caratteri a 8 bit. |
|
Se il parametro dwType Windows 8 e Windows Server 2012: viene avviato il supporto per questo flag. |
|
Questo flag consente la decodifica di
|
[in] pvTypePara
Puntatore a un DWORD
[out] pszNameString
Puntatore a un buffer allocato per ricevere la stringa restituita. Se pszNameString non è NULL e cchNameString non è zero, pszNameString è una stringa null-terminate.
Se
[in] cchNameString
Dimensione, in caratteri, allocata per la stringa restituita. Le dimensioni devono includere il carattere null
Valore restituito
Restituisce il numero di caratteri convertiti, incluso il carattere zero di terminazione. Se pszNameString è NULL o cchNameString è zero, restituisce le dimensioni necessarie della stringa di destinazione (incluso il carattere null di terminazione null). Se il tipo di nome specificato non viene trovato, restituisce un nullstringa vuota con terminazione con un numero di caratteri restituito pari a 1.
Osservazioni
Nota
L'intestazione wincrypt.h definisce CertGetNameString come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows XP [app desktop | App UWP] |
server minimo supportato | Windows Server 2003 [app desktop | App UWP] |
piattaforma di destinazione | Finestre |
intestazione |
wincrypt.h |
libreria |
Crypt32.lib |
dll | Crypt32.dll |