2 // Copyright (C) 2014 Suguru Kawamoto
\r
5 #ifndef __UPDATER_H__
\r
6 #define __UPDATER_H__
\r
10 #define HTTP_USER_AGENT "Mozilla/4.0"
\r
11 #define UPDATE_SERVER "ffftp.sourceforge.jp"
\r
12 #if defined(_M_IX86)
\r
13 #if !defined(FFFTP_ENGLISH)
\r
14 #define UPDATE_HASH_PATH "/update/jpn/hash"
\r
15 #define UPDATE_LIST_PATH "/update/jpn/list"
\r
17 #define UPDATE_HASH_PATH "/update/eng/hash"
\r
18 #define UPDATE_LIST_PATH "/update/eng/list"
\r
20 #elif defined(_M_AMD64)
\r
21 #if !defined(FFFTP_ENGLISH)
\r
22 #define UPDATE_HASH_PATH "/update/amd64/jpn/hash"
\r
23 #define UPDATE_LIST_PATH "/update/amd64/jpn/list"
\r
25 #define UPDATE_HASH_PATH "/update/amd64/eng/hash"
\r
26 #define UPDATE_LIST_PATH "/update/amd64/eng/list"
\r
29 #define UPDATE_RSA_PUBLIC_KEY \
\r
30 "-----BEGIN PUBLIC KEY-----\n" \
\r
31 "MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsVo13yricPHxkQypqiMy\n" \
\r
32 "+EVPH5KCTsOz0EAJo9WpdiDrDsATbQ7vbLz0DVVzYKmdBFKF98qTFGqKLt67Z/Y4\n" \
\r
33 "7fBmIbkEcA4Ct2oHlyuFtN8sxNAwjZ4k0EC59BXh0bsp+RXdwninliA0zRD30C4Z\n" \
\r
34 "Tseul9ZyvllUfVm+cdf7pOPwd1Akh3qdffWRVUHCjAjCeUqTKPSnevKgj4uSP440\n" \
\r
35 "ixRnwDSfH0+UPMIOdFT2fD9WG0CRDpg+PM/X34c4qjgnlQtDhfi0dHnZwN1gywkT\n" \
\r
36 "CVAXcn3uulVzUO4h61nYcliHhN1C0+mN2cf98C8d65DCkLYamaDFAXn5pxuKV5PM\n" \
\r
37 "Vl7O5+UYX7qVPFJih+YP+rf3UVe1kCQFWQ7K4HAz9IytFSNx7uNWbi1OoS5pTXhb\n" \
\r
38 "dd7LvwA29XdqFx3pcCqC08wyZnesXqHH828/yetHbXzO6t03CaESVaqmr9V6c9R/\n" \
\r
39 "d4c8aagPoG8tlysv4cR1UyAOPZ3ciT3dsn3sJr0HuYZ5S8zFKDybrT4r0hCGp3HS\n" \
\r
40 "FfsEoJacyuUJ9WkPul8kW//wdQFstsIisRaBkj/jH6+/aqamIItXR0GkAC7QSM1+\n" \
\r
41 "FztlwuPCzs/nJ4piaBBI8NOyWJ5xSSar3kW9arjHzkMDFwRmBVNz+UwgtoOy+jM3\n" \
\r
42 "BSnG4aZtcUEB6AZwhG+z9jkCAwEAAQ==\n" \
\r
43 "-----END PUBLIC KEY-----\n"
\r
44 #define UPDATE_SIGNATURE "\x4C\x2A\x8E\x57\xAB\x75\x0C\xB5\xDA\x5F\xFE\xB9\x57\x9A\x1B\xA2\x7A\x61\x32\xF8\xFA\x4B\x61\xE2\xBA\x20\x9C\x37\xD5\x0A\xDC\x94\x10\x4D\x02\x30\x9B\xCD\x01\x9B\xB8\x73\x1E\xDB\xFD\xD7\x45\xCA\xE0\x8E\xF9\xB0\x1F\xB4\x0D\xD8\xFB\xE8\x41\x48\xE7\xF5\xE8\x64"
\r
46 BOOL BuildUpdates(LPCTSTR PrivateKeyFile, LPCTSTR Password, LPCTSTR ServerPath, LPCTSTR HashFile, LPCTSTR ListFile, DWORD Version, LPCTSTR VersionString, LPCTSTR Description);
\r
47 BOOL CheckForUpdates(BOOL bDownload, LPCTSTR DownloadDir, DWORD* pVersion, LPTSTR pVersionString, LPTSTR pDescription);
\r
48 BOOL PrepareUpdates(void* pList, DWORD ListLength, LPCTSTR DownloadDir);
\r
49 BOOL ApplyUpdates(LPCTSTR DestinationDir, LPCTSTR BackupDirName);
\r
50 BOOL CleanupUpdates(LPCTSTR DownloadDir);
\r
51 BOOL StartUpdateProcess(LPCTSTR DownloadDir, LPCTSTR CommandLine);
\r
52 BOOL RestartUpdateProcessAsAdministrator(LPCTSTR CommandLine, LPCTSTR Keyword);
\r