@msdn=http://search.microsoft.com/search/results.aspx?qu=$$$ @pinvoke=http://pinvoke.net/$$$.htm Summary: The CertGetNameString function obtains the subject or issuer name from a certificate CERT_CONTEXT structure and converts it to a null-terminated character string. !!!!C# Signature: [DllImport("crypt32.dll", EntryPoint = "CertGetNameString", CharSet = CharSet.Auto, SetLastError = true)] static extern UInt32 CertGetNameString(IntPtr CertContext, UInt32 lType, UInt32 lFlags, IntPtr pTypeParameter, System.Text.StringBuilder str, UInt32 cch); !!!!VB Signature: Declare Function CertGetNameString Lib "Crypt32.dll" Alias "CertGetNameStringW" ( _ ByVal pCertContext As Long, _ ByVal dwType As Long, _ ByVal dwFlags As Long, _ pvTypePara As Any, _ ByVal pszNameString As Long, _ ByVal cchNameString As Long _ ) As Long !!!!User-Defined Types: const uint CERT_NAME_EMAIL_TYPE = 1; const uint CERT_NAME_RDN_TYPE = 2; const uint CERT_NAME_ATTR_TYPE = 3; const uint CERT_NAME_SIMPLE_DISPLAY_TYPE = 4; const uint CERT_NAME_FRIENDLY_DISPLAY_TYPE = 5; const uint CERT_NAME_DNS_TYPE = 6; const uint CERT_NAME_URL_TYPE = 7; const uint CERT_NAME_UPN_TYPE = 8; const uint CERT_NAME_ISSUER_FLAG = 0x1; const uint CERT_NAME_DISABLE_IE4_UTF8_FLAG = 0x00010000; !!!!Alternative Managed API: Do you know one? Please contribute it! !!!!Notes: For VB usage: Ensure you use StrPtr and that the function signature is "CertGetNameStringW", or you will regularly crash your program! !!!!Tips & Tricks: You can call this first with a null buffer and null cchNameString to return just the required buffer length, then size the buffer appropriately and call again as above! !!!!Sample Code: C#: while ((certContext = CertEnumCertificatesInStore(hCertStore, certContext)) != IntPtr.Zero) { StringBuilder Buffer = new StringBuilder(255); UInt32 cchString = 255 ; System.UInt32 nChars = CertGetNameString(certContext, CERT_NAME_FRIENDLY_DISPLAY_TYPE, CERT_NAME_ISSUER_FLAG, IntPtr.Zero, Buffer, cchString); // use Buffer.ToString() to use the cert's name string } VB: Dim bfr As String, bPtr As Long bfr = String(szNameString, vbNullChar) bPtr = StrPtr(bfr) szNameString = CertGetNameString(hCert_Context&, _ CERT_NAME_SIMPLE_DISPLAY_TYPE, _ 0&, _ 0&, _ bPtr&, _ 128& _ ) Documentation: CertGetNameString@msdn on MSDN
Edit crypt32.CertGetNa...
You do not have permission to change this page. If you feel this is in error, please send feedback with the contact link on the main page.