Funzione CertNameToStrA (wincrypt.h)
La funzione CertNameToStr
La rappresentazione di stringa segue le specifiche dei nomi distinti in RFC 1779. Le eccezioni a questa regola sono elencate nella sezione Osservazioni di seguito.
Sintassi
DWORD CertNameToStrA(
[in] DWORD dwCertEncodingType,
[in] PCERT_NAME_BLOB pName,
[in] DWORD dwStrType,
[out] LPSTR psz,
[in] DWORD csz
);
Parametri
[in] dwCertEncodingType
Tipo di codifica del certificato utilizzato per codificare il nome. Il tipo di codifica
Questo parametro può essere il tipo di codifica del certificato attualmente definito seguente.
Valore | Significato |
---|---|
|
Specifica la codifica del certificato X.509. |
[in] pName
Puntatore alla struttura CERT_NAME_BLOB da convertire.
[in] dwStrType
Questo parametro specifica il formato della stringa di output. Questo parametro specifica anche altre opzioni per il contenuto della stringa.
Questo parametro può essere uno dei valori seguenti.
Valore | Significato |
---|---|
|
Tutti gli identificatori di oggetto (OID) vengono eliminati. CERT_RDN voci sono separate da una virgola seguita da uno spazio (, ). Più attributi in un CERT_RDN sono separati da un segno più racchiuso tra spazi ( + ), ad esempio Microsoft, Kim Abercrombie + Programmatore. |
|
Gli ID predefiniti sono inclusi con un separatore di segno di uguale (=) dal valore dell'attributo. CERT_RDN voci sono separate da una virgola seguita da uno spazio (, ). Più attributi in un CERT_RDN sono separati da un segno più seguito da uno spazio (+ ). |
|
Gli OID vengono convertiti nei nomi delle chiavi X.500; in caso contrario, sono uguali a CERT_OID_NAME_STR. Se un OID non ha un nome X.500 corrispondente, l'OID viene usato con un prefisso OID.
Il valore RDN viene racchiuso tra virgolette se contiene spazi vuoti iniziali o finali o uno dei caratteri seguenti:
|
È anche possibile combinare le opzioni seguenti con il valore precedente per specificare opzioni aggiuntive per la stringa.
[out] psz
Puntatore a un buffer di caratteri che riceve la stringa restituita. Le dimensioni di questo buffer vengono specificate nel parametro csz
[in] csz
Dimensione, in caratteri, del buffer di psz. Le dimensioni devono includere il carattere Null di terminazione.
Valore restituito
Restituisce il numero di caratteri convertiti, incluso il carattere Null di terminazione.
Se psz è NULL o csz è zero, restituisce le dimensioni necessarie della stringa di destinazione.
Osservazioni
Se psz non è NULL e csz non è zero, il psz restituito è sempre una stringa con terminazione Null.
È consigliabile usare RDN multicomponenti (ad esempio CN=James+O=Microsoft) per evitare possibili problemi di ordinamento quando si verifica la decodifica. Prendere invece in considerazione l'uso di RDN con valori singoli ,ad esempio CN=James, O=Microsoft.
La rappresentazione di stringa segue le specifiche dei nomi distinti in RFC 1779 ad eccezione delle deviazioni descritte nell'elenco seguente.
- I nomi contenenti virgolette sono racchiusi tra virgolette doppie.
- Le stringhe vuote sono racchiuse tra virgolette doppie.
- Le stringhe che contengono spazi consecutivi non sono racchiuse tra virgolette.
- I valori RDN (Relative Distinguished Name) di tipo CERT_RDN_ENCODED_BLOB o CERT_RDN_OCTET_STRING vengono formattati in formato esadecimale.
- Se un OID non ha un nome X.500 corrispondente, il prefisso "OID" viene usato prima dell'OID.
- I valori RDN sono racchiusi tra virgolette doppie (anziché "\") se contengono spazi vuoti iniziali, spazi vuoti finali o uno dei caratteri seguenti:
- Virgola (,)
- Segno più (+)
- Segno di uguale (=)
- Segno di pollice (")
- Barra rovesciata (/)
- Segno minore (<)
- Segno maggiore di (>)
- Segno di numero (#)
- Punto e virgola (;)
- Il nome della chiave X.500 per stateOrProvinceName (2.5.4.8) è "S". Questo valore è diverso dal nome della chiave X.500 X.500 RFC 1779 ("ST").
Chiave | Stringa dell'identificatore di oggetto |
---|---|
E | 1.2.840.113549.1.9.1 |
T | 2.5.4.12 |
G | 2.5.4.42 |
Io | 2.5.4.43 |
SN | 2.5.4.4 |
Esempi
Per un esempio che usa questa funzione, vedere
programma C di esempio: conversione di nomi da certificati ad ASN.1 e indietro.
Nota
L'intestazione wincrypt.h definisce CertNameToStr 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 |