Index: core/src/fpdfapi/fpdf_parser/fpdf_parser_encrypt.cpp |
diff --git a/core/src/fpdfapi/fpdf_parser/fpdf_parser_encrypt.cpp b/core/src/fpdfapi/fpdf_parser/fpdf_parser_encrypt.cpp |
index 3dc0e551b4c2f49ac05d7d69fd5eaa9f8eaff7c4..b6d6dc70c039f5df8d17dcd46019c2e009b9cac1 100644 |
--- a/core/src/fpdfapi/fpdf_parser/fpdf_parser_encrypt.cpp |
+++ b/core/src/fpdfapi/fpdf_parser/fpdf_parser_encrypt.cpp |
@@ -25,12 +25,12 @@ void CalcEncryptKey(CPDF_Dictionary* pEncrypt, FX_LPCBYTE password, FX_DWORD pas |
CRYPT_MD5Start(md5); |
CRYPT_MD5Update(md5, passcode, 32); |
CFX_ByteString okey = pEncrypt->GetString(FX_BSTRC("O")); |
- CRYPT_MD5Update(md5, (FX_LPBYTE)(FX_LPCSTR)okey, okey.GetLength()); |
+ CRYPT_MD5Update(md5, (FX_LPBYTE)okey.c_str(), okey.GetLength()); |
FX_DWORD perm = pEncrypt->GetInteger(FX_BSTRC("P")); |
CRYPT_MD5Update(md5, (FX_LPBYTE)&perm, 4); |
if (pIdArray) { |
CFX_ByteString id = pIdArray->GetString(0); |
- CRYPT_MD5Update(md5, (FX_LPBYTE)(FX_LPCSTR)id, id.GetLength()); |
+ CRYPT_MD5Update(md5, (FX_LPBYTE)id.c_str(), id.GetLength()); |
} |
if (!bIgnoreMeta && revision >= 3 && !pEncrypt->GetInteger(FX_BSTRC("EncryptMetadata"), 1)) { |
FX_DWORD tag = (FX_DWORD) - 1; |
@@ -406,7 +406,7 @@ FX_BOOL CPDF_StandardSecurityHandler::CheckUserPassword(FX_LPCBYTE password, FX_ |
} |
FXSYS_memset32(test, 0, sizeof(test)); |
FXSYS_memset32(tmpkey, 0, sizeof(tmpkey)); |
- FXSYS_memcpy32(test, (FX_LPCSTR)ukey, copy_len); |
+ FXSYS_memcpy32(test, ukey.c_str(), copy_len); |
for (int i = 19; i >= 0; i --) { |
for (int j = 0; j < key_len; j ++) { |
tmpkey[j] = key[j] ^ i; |
@@ -419,12 +419,12 @@ FX_BOOL CPDF_StandardSecurityHandler::CheckUserPassword(FX_LPCBYTE password, FX_ |
CPDF_Array* pIdArray = m_pParser->GetIDArray(); |
if (pIdArray) { |
CFX_ByteString id = pIdArray->GetString(0); |
- CRYPT_MD5Update(md5, (FX_LPBYTE)(FX_LPCSTR)id, id.GetLength()); |
+ CRYPT_MD5Update(md5, (FX_LPBYTE)id.c_str(), id.GetLength()); |
} |
CRYPT_MD5Finish(md5, ukeybuf); |
return FXSYS_memcmp32(test, ukeybuf, 16) == 0; |
} |
- if (FXSYS_memcmp32((FX_LPVOID)(FX_LPCSTR)ukey, ukeybuf, 16) == 0) { |
+ if (FXSYS_memcmp32((FX_LPVOID)ukey.c_str(), ukeybuf, 16) == 0) { |
return TRUE; |
} |
return FALSE; |
@@ -461,7 +461,7 @@ CFX_ByteString CPDF_StandardSecurityHandler::GetUserPassword(FX_LPCBYTE owner_pa |
} |
FX_BYTE okeybuf[64]; |
FXSYS_memset32(okeybuf, 0, sizeof(okeybuf)); |
- FXSYS_memcpy32(okeybuf, (FX_LPCSTR)okey, okeylen); |
+ FXSYS_memcpy32(okeybuf, okey.c_str(), okeylen); |
if (m_Revision == 2) { |
CRYPT_ArcFourCryptBlock(okeybuf, okeylen, enckey, key_len); |
} else { |
@@ -566,7 +566,7 @@ void CPDF_StandardSecurityHandler::OnCreate(CPDF_Dictionary* pEncryptDict, CPDF_ |
CRYPT_MD5Update(md5, defpasscode, 32); |
if (pIdArray) { |
CFX_ByteString id = pIdArray->GetString(0); |
- CRYPT_MD5Update(md5, (FX_LPBYTE)(FX_LPCSTR)id, id.GetLength()); |
+ CRYPT_MD5Update(md5, (FX_LPBYTE)id.c_str(), id.GetLength()); |
} |
FX_BYTE digest[32]; |
CRYPT_MD5Finish(md5, digest); |