diff --git a/src/windows/native/sun/security/mscapi/security.cpp b/src/windows/native/sun/security/mscapi/security.cpp --- a/src/windows/native/sun/security/mscapi/security.cpp +++ b/src/windows/native/sun/security/mscapi/security.cpp @@ -264,7 +264,7 @@ const char* pszCertStoreName = NULL; HCERTSTORE hCertStore = NULL; PCCERT_CONTEXT pCertContext = NULL; - char* pszNameString = NULL; // certificate's friendly name + wchar_t* pszNameString = NULL; // certificate's friendly name DWORD cchNameString = 0; @@ -380,13 +380,13 @@ // when storing this cert in the keystore.) // Get length of friendly name - if ((cchNameString = CertGetNameString(pc, + if ((cchNameString = CertGetNameStringW(pc, CERT_NAME_FRIENDLY_DISPLAY_TYPE, 0, NULL, NULL, 0)) > 1) { // Found friendly name - pszNameString = new char[cchNameString]; - CertGetNameString(pc, + pszNameString = new wchar_t[cchNameString]; + CertGetNameStringW(pc, CERT_NAME_FRIENDLY_DISPLAY_TYPE, 0, NULL, pszNameString, cchNameString); } @@ -409,7 +409,7 @@ // Generate certificate chain and store into cert chain // collection env->CallVoidMethod(obj, mGenCertChain, - env->NewStringUTF(pszNameString), + env->NewString(reinterpret_cast<const jchar *>(pszNameString), cchNameString - 1), jArrayList, jCollections); } else @@ -425,7 +425,7 @@ // Generate RSA certificate chain and store into cert // chain collection env->CallVoidMethod(obj, mGenRSAKeyAndCertChain, - env->NewStringUTF(pszNameString), + env->NewString(reinterpret_cast<const jchar *>(pszNameString), cchNameString - 1), (jlong) hCryptProv, (jlong) hUserKey, dwPublicKeyLength, jArrayList, jCollections); }