CertNameToStr

This function converts the name in a CERT_NAME_BLOB structure to a NULL-terminated character string. The string representation follows distinguished name specifications in RFC 1779 except for the following deviations:

  • Embedded quotes are double-quoted
  • Empty strings are quoted
  • Strings containing consecutive spaces are not quoted
  • RDN values of type CERT_RDN_ENCODED_BLOB or CERT_RDN_OCTET_STRING are formatted in hexadecimal
DWORD WINAPI CertNameToStr(
DWORD dwCertEncodingType,
PCERT_NAME_BLOB pName,
DWORD dwStrType,
LPTSTR psz,
DWORD csz
);

Parameters

  • dwCertEncodingType
    [in] Specifies the encoding type used. Currently, only X509_ASN_ENCODING is used; however, additional encoding types may be added in the future.

  • pName
    [in] Pointer to the CERT_NAME_BLOB structure to be converted.

  • dwStrType
    [in] Specifies the desired returned string type. The following table shows the possible string types for the dwStrType parameter.

    String type code Description
    CERT_SIMPLE_NAME_STR Object identifiers (OID) are discarded. CERT_RDN entries are separated by ", ". Multiple attributes in a CERT_RDN structure are separated by " + ". For example: Microsoft, Kim Abercrombie + Programmer.
    CERT_OID_NAME_STR OIDs are included with a "=" separator from their attribute value. CERT_RDN structure entries are separated by ", ". Multiple attributes in a CERT_RDN structure are separated by "+ ".
    CERT_X500_NAME_STR OIDs are converted to their X.500 key names. Otherwise, it is the same as CERT_OID_NAME_STR. If an OID does not have a corresponding X.500 name, the OID is used with an "OID." prefix.

    Quotes the RDN value if it contains leading or trailing white space or one of the following characters: ",", "+", "=", """, "\n", "<", ">", "#" or ";". The quoting character is ". If the RDN Value contains a " it is double quoted ("").

    CERT_NAME_STR_SEMICOLON_FLAG This flag can be combined with a bitwise OR operation into dwStrType to replace the ", " separator with a "; " separator.
    CERT_NAME_STR_CRLF_FLAG This flag can be combined with a bitwise OR operation into dwStrType to replace the ", " separator with a "\r\n" separator.
    CERT_NAME_STR_NO_PLUS_FLAG This flag can be combined with a bitwise OR operation into dwStrType to replace the " + " separator with a single space, " ".
    CERT_NAME_STR_NO_QUOTING_FLAG This flag can be combined with a bitwise OR operation into dwStrType to inhibit the above quoting.
    CERT_NAME_STR_REVERSE_FLAG This flag can be combined with a bitwise OR operation into dwStrType to specify that the order of the RDNs is to be reversed before converting to the string. This flag is to reverse the names as they occur in the RDN. To interoperate with LDAP and the RFC standards, the displayed X500 name string is reversed by specifying this flag.
    CERT_NAME_STR_ENABLE_T61_UNICODE_FLAG This flag can be combined with a bitwise OR operation into dwStrType to select the encoded value type. If this flag is set, and if all the UNICODE characters are less than or equal to 0xFF, the CERT_RDN_T61_STRING encoded value type is used instead of the CERT_RDN_UNICODE_STRING.
  • psz
    [out] Pointer to a buffer to receive the returned string.

  • csz
    [in] Size, in characters, allocated for the returned string. The size must include the terminating NULL character.

Return Values

Returns the number of characters converted, including the terminating NULL character. If psz is NULL or csz is zero, returns the required size of the destination string.

Remarks

If the psz parameter is not NULL and the csz parameter is not zero, the returned psz parameter is always a perhaps-empty NULL-terminated string.

The desktop platform supports the PKCS_7_ASN_ENCODING flag, but Windows CE does not. Windows CE ignores the flag when it is specified.

Requirements

Runs on Versions Defined in Include Link to
Windows CE OS 3.0 or later Wincrypt.h   Crypt32.lib

Note   This API is part of the complete Windows CE OS package as provided by Microsoft. The functionality of a particular platform is determined by the original equipment manufacturer (OEM) and some devices may not support this API.

See Also

CertRDNValueToStr, CertStrToName, CERT_NAME_BLOB, CERT_RDN

 Last updated on Tuesday, July 13, 2004

© 1992-2000 Microsoft Corporation. All rights reserved.