[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);
<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
None.
Do you know one? Please contribute it!
None.
Please add some!
Please add some!
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