Desktop Functions:

   Smart Device Functions:

Show Recent Changes
Subscribe (RSS)
Misc. Pages
Helpful Tools
Suggested Reading
Website TODO List
Support Forum
Download Visual Studio Add-In

Terms of Use
Privacy Policy
certstrtoname (crypt32)
The CertStrToName function converts a null-terminated X.500 string to an encoded certificate name.

C# Signature:

[DllImport("crypt32.dll", SetLastError=true)]
public static extern bool CertStrToName(
        uint dwCertEncodingType,
        string pszX500,
        uint dwStrType,
        IntPtr pvReserved,
        byte[] pbEncoded,
        ref uint pcbEncoded,
        StringBuilder ppszError);

VB Signature:

    <DllImport("crypt32.dll", SetLastError:=True)> _
    Public Shared Function CertStrToName(dwCertEncodingType As UInteger, pszX500 As String, dwStrType As UInteger, pvReserved As IntPtr, pbEncoded As Byte(), ByRef pcbEncoded As UInteger, ppszError As StringBuilder) As Boolean
    End Function

User-Defined Types:


Alternative Managed API:

Do you know one? Please contribute it!



Tips & Tricks:

Please add some!

Sample Code:

Please add some!

C# Sample Code:

public byte[] Encode(string data)
        const Int32 X509_ASN_ENCODING = 0x00000001;
        const Int32 CERT_OID_NAME_STR = 0x00000002;
        const Int32 CERT_NAME_STR_REVERSE_FLAG = 0x02000000;

        uint  cbEncoded=0;
        IntPtr pbNameEncoded;
        byte[] bData;
        CertStrToNameW(X509_ASN_ENCODING, data, CERT_OID_NAME_STR | CERT_NAME_STR_REVERSE_FLAG, IntPtr.Zero, null, ref cbEncoded, null);
        bData = new byte[cbEncoded];
        pbNameEncoded = Marshal.AllocCoTaskMem((int)cbEncoded);
        CertStrToNameW(X509_ASN_ENCODING, data, CERT_OID_NAME_STR | CERT_NAME_STR_REVERSE_FLAG, IntPtr.Zero, bData, ref cbEncoded, null);

        TraceHelper.WriteTrace(Diagnostics.TraceCategory.Warning, "Data = "+data + ", bData as UTF8= "+Encoding.UTF8.GetString(bData) + ", bData as ASCII= "+Encoding.ASCII.GetString(bData)+", bData as Unicode= " + Encoding.Unicode.GetString(bData));

        return (bData);

contributed by Tamir Lavi


Please edit this page!

Do you have...

  • helpful tips or sample code to share for using this API in managed code?
  • corrections to the existing content?
  • variations of the signature you want to share?
  • additional languages you want to include?

Select "Edit This Page" on the right hand toolbar and edit it! Or add new pages containing supporting types needed for this API (structures, delegates, and more).

Access directly from VS:
Terms of Use
Edit This Page
Find References
Show Printable Version