Commit e8c184c5 authored by ElenaSubbotina's avatar ElenaSubbotina

.

parent f06d166a
...@@ -172,16 +172,7 @@ _buf HashAppend(_buf & hashBuf, _buf & block, CRYPT_METHOD::_hashAlgorithm algo ...@@ -172,16 +172,7 @@ _buf HashAppend(_buf & hashBuf, _buf & block, CRYPT_METHOD::_hashAlgorithm algo
{//todooo переделать {//todooo переделать
if (algorithm == CRYPT_METHOD::SHA1) if (algorithm == CRYPT_METHOD::SHA1)
{ {
CryptoPP::MD5 hash; //CryptoPP::MD5 hash;
if (hashBuf.ptr && hashBuf.size > 0) hash.Update( hashBuf.ptr, hashBuf.size);
if (block.ptr && block.size > 0) hash.Update( block.ptr , block.size);
CryptoPP::SecByteBlock buffer(hash.DigestSize());
hash.Final(buffer);
return _buf(buffer.BytePtr(), buffer.SizeInBytes());
//CryptoPP::SHA1 hash;
//if (hashBuf.ptr && hashBuf.size > 0) hash.Update( hashBuf.ptr, hashBuf.size); //if (hashBuf.ptr && hashBuf.size > 0) hash.Update( hashBuf.ptr, hashBuf.size);
//if (block.ptr && block.size > 0) hash.Update( block.ptr , block.size); //if (block.ptr && block.size > 0) hash.Update( block.ptr , block.size);
...@@ -190,6 +181,15 @@ _buf HashAppend(_buf & hashBuf, _buf & block, CRYPT_METHOD::_hashAlgorithm algo ...@@ -190,6 +181,15 @@ _buf HashAppend(_buf & hashBuf, _buf & block, CRYPT_METHOD::_hashAlgorithm algo
//hash.Final(buffer); //hash.Final(buffer);
//return _buf(buffer.BytePtr(), buffer.SizeInBytes()); //return _buf(buffer.BytePtr(), buffer.SizeInBytes());
CryptoPP::SHA1 hash;
if (hashBuf.ptr && hashBuf.size > 0) hash.Update( hashBuf.ptr, hashBuf.size);
if (block.ptr && block.size > 0) hash.Update( block.ptr , block.size);
CryptoPP::SecByteBlock buffer(hash.DigestSize());
hash.Final(buffer);
return _buf(buffer.BytePtr(), buffer.SizeInBytes());
} }
else if (algorithm == CRYPT_METHOD::SHA256) else if (algorithm == CRYPT_METHOD::SHA256)
{ {
......
...@@ -88,7 +88,32 @@ std::wstring ReadUnicodeLP(POLE::Stream *pStream) ...@@ -88,7 +88,32 @@ std::wstring ReadUnicodeLP(POLE::Stream *pStream)
unsigned char* Data = new unsigned char[length * 2]; unsigned char* Data = new unsigned char[length * 2];
pStream->read(Data, length * 2); pStream->read(Data, length * 2);
std::wstring res ((wchar_t*)Data, length); std::wstring res;
if (sizeof(wchar_t) == 4)
{
unsigned int nLength = length;
wchar_t* ptr = new wchar_t [length];
UTF16* pStrUtf16 = (UTF16*) Data;
UTF32 *pStrUtf32 = (UTF32 *) ptr;
const UTF16 *pStrUtf16_Conv = pStrUtf16;
UTF32 *pStrUtf32_Conv = pStrUtf32;
ConversionResult eUnicodeConversionResult = ConvertUTF16toUTF32 (&pStrUtf16_Conv, &pStrUtf16[nLength]
, &pStrUtf32_Conv, &pStrUtf32 [nLength], strictConversion);
if (conversionOK != eUnicodeConversionResult)
{
}
res = std::wstring(ptr, length);
delete ptr;
}
else
res = std::wstring((wchar_t*)Data, length);
return res; return res;
...@@ -416,24 +441,24 @@ bool ECMACryptReader::DecryptOfficeFile(std::wstring file_name_inp, std::wstring ...@@ -416,24 +441,24 @@ bool ECMACryptReader::DecryptOfficeFile(std::wstring file_name_inp, std::wstring
return false; return false;
} }
//------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------
pStream = new POLE::Stream(pStorage, "DataSpaces/DataSpaceMap"); //pStream = new POLE::Stream(pStorage, "DataSpaces/DataSpaceMap");
if (pStream) //if (pStream)
{ //{
_UINT32 size = 0; // _UINT32 size = 0;
_UINT32 count = 0; // _UINT32 count = 0;
//
pStream->read((unsigned char*)&size, 4); // pStream->read((unsigned char*)&size, 4);
pStream->read((unsigned char*)&count, 4); // pStream->read((unsigned char*)&count, 4);
for (int i = 0 ; i < count; i++) // for (int i = 0 ; i < count; i++)
{ // {
_mapEntry m; // _mapEntry m;
ReadMapEntry(pStream, m); // ReadMapEntry(pStream, m);
mapEntries.push_back(m); // mapEntries.push_back(m);
} // }
delete pStream; // delete pStream;
} //}
//------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------
ECMADecryptor decryptor; ECMADecryptor decryptor;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment