EVP_PKEY* pPKEY;\r
RSA* pRSA;\r
int i;\r
+ if(!g_bOpenSSLLoaded)\r
+ return FALSE;\r
bResult = FALSE;\r
if(pBIO = p_BIO_new_mem_buf((void*)PublicKey, sizeof(char) * strlen(PublicKey)))\r
{\r
\r
// ハッシュ計算\r
// 他にも同等の関数はあるが主にマルウェア対策のための冗長化\r
-void GetHashSHA1(const void* pData, DWORD Size, void* pHash)\r
+BOOL GetHashSHA1(const void* pData, DWORD Size, void* pHash)\r
{\r
+ if(!g_bOpenSSLLoaded)\r
+ return FALSE;\r
p_SHA1((const unsigned char*)pData, (size_t)Size, (unsigned char*)pHash);\r
+ return TRUE;\r
}\r
\r
-void GetHashSHA224(const void* pData, DWORD Size, void* pHash)\r
+BOOL GetHashSHA224(const void* pData, DWORD Size, void* pHash)\r
{\r
+ if(!g_bOpenSSLLoaded)\r
+ return FALSE;\r
p_SHA224((const unsigned char*)pData, (size_t)Size, (unsigned char*)pHash);\r
+ return TRUE;\r
}\r
\r
-void GetHashSHA256(const void* pData, DWORD Size, void* pHash)\r
+BOOL GetHashSHA256(const void* pData, DWORD Size, void* pHash)\r
{\r
+ if(!g_bOpenSSLLoaded)\r
+ return FALSE;\r
p_SHA256((const unsigned char*)pData, (size_t)Size, (unsigned char*)pHash);\r
+ return TRUE;\r
}\r
\r
-void GetHashSHA384(const void* pData, DWORD Size, void* pHash)\r
+BOOL GetHashSHA384(const void* pData, DWORD Size, void* pHash)\r
{\r
+ if(!g_bOpenSSLLoaded)\r
+ return FALSE;\r
p_SHA384((const unsigned char*)pData, (size_t)Size, (unsigned char*)pHash);\r
+ return TRUE;\r
}\r
\r
-void GetHashSHA512(const void* pData, DWORD Size, void* pHash)\r
+BOOL GetHashSHA512(const void* pData, DWORD Size, void* pHash)\r
{\r
+ if(!g_bOpenSSLLoaded)\r
+ return FALSE;\r
p_SHA512((const unsigned char*)pData, (size_t)Size, (unsigned char*)pHash);\r
+ return TRUE;\r
}\r
\r
// SSLセッションを開始\r
BOOL SetSSLRootCertificate(const void* pData, DWORD Length);\r
BOOL IsHostNameMatched(LPCSTR HostName, LPCSTR CommonName);\r
BOOL DecryptSignature(const char* PublicKey, const void* pIn, DWORD InLength, void* pOut, DWORD OutLength, DWORD* pOutLength);\r
-void GetHashSHA1(const void* pData, DWORD Size, void* pHash);\r
-void GetHashSHA224(const void* pData, DWORD Size, void* pHash);\r
-void GetHashSHA256(const void* pData, DWORD Size, void* pHash);\r
-void GetHashSHA384(const void* pData, DWORD Size, void* pHash);\r
-void GetHashSHA512(const void* pData, DWORD Size, void* pHash);\r
+BOOL GetHashSHA1(const void* pData, DWORD Size, void* pHash);\r
+BOOL GetHashSHA224(const void* pData, DWORD Size, void* pHash);\r
+BOOL GetHashSHA256(const void* pData, DWORD Size, void* pHash);\r
+BOOL GetHashSHA384(const void* pData, DWORD Size, void* pHash);\r
+BOOL GetHashSHA512(const void* pData, DWORD Size, void* pHash);\r
BOOL AttachSSL(SOCKET s, SOCKET parent, BOOL* pbAborted);\r
BOOL DetachSSL(SOCKET s);\r
BOOL IsSSLAttached(SOCKET s);\r
{\r
if(ReadFileViaHTTP(&Buf1, sizeof(Buf1), &Length, HTTP_USER_AGENT, UPDATE_SERVER, UPDATE_LIST_PATH))\r
{\r
- GetHashSHA512(&Buf1, Length, &Hash);\r
- if(memcmp(&Hash, &UpdateHash.ListHash, 64) == 0)\r
+ if(GetHashSHA512(&Buf1, Length, &Hash))\r
{\r
- if(Length >= sizeof(UPDATE_LIST))\r
+ if(memcmp(&Hash, &UpdateHash.ListHash, 64) == 0)\r
{\r
- bResult = TRUE;\r
- pUpdateList = (UPDATE_LIST*)&Buf1;\r
- if(pUpdateList->Version > *pVersion)\r
+ if(Length >= sizeof(UPDATE_LIST))\r
{\r
- *pVersion = pUpdateList->Version;\r
- _tcscpy(pVersionString, pUpdateList->VersionString);\r
+ bResult = TRUE;\r
+ pUpdateList = (UPDATE_LIST*)&Buf1;\r
+ if(pUpdateList->Version > *pVersion)\r
+ {\r
+ *pVersion = pUpdateList->Version;\r
+ _tcscpy(pVersionString, pUpdateList->VersionString);\r
+ }\r
+ if(bDownload)\r
+ bResult = PrepareUpdates(&Buf1, Length, DownloadDir);\r
}\r
- if(bDownload)\r
- bResult = PrepareUpdates(&Buf1, Length, DownloadDir);\r
}\r
}\r
}\r
{\r
if(ReadFileViaHTTP(pBuf, 16777216, &Length, HTTP_USER_AGENT, UPDATE_SERVER, pUpdateList->File[i].SrcPath))\r
{\r
- GetHashSHA512(pBuf, Length, &Hash);\r
- if(memcmp(&Hash, &pUpdateList->File[i].SrcHash, 64) == 0)\r
+ if(GetHashSHA512(pBuf, Length, &Hash))\r
{\r
- _tcscpy(Path, DownloadDir);\r
- _tcscat(Path, _T("\\"));\r
- _tcscat(Path, pUpdateList->File[i].DstPath);\r
- if(SaveMemoryToFileWithTimestamp(Path, pBuf, Length, &pUpdateList->File[i].Timestamp))\r
- b = TRUE;\r
+ if(memcmp(&Hash, &pUpdateList->File[i].SrcHash, 64) == 0)\r
+ {\r
+ _tcscpy(Path, DownloadDir);\r
+ _tcscat(Path, _T("\\"));\r
+ _tcscat(Path, pUpdateList->File[i].DstPath);\r
+ if(SaveMemoryToFileWithTimestamp(Path, pBuf, Length, &pUpdateList->File[i].Timestamp))\r
+ b = TRUE;\r
+ }\r
}\r
}\r
}\r