[0.4.9][RAPPS] "Let's encrypt" Certificate-Issuer-Update hamster-wheel
authorJoachim Henze <Joachim.Henze@reactos.org>
Mon, 11 Jan 2021 20:28:44 +0000 (21:28 +0100)
committerJoachim Henze <Joachim.Henze@reactos.org>
Mon, 11 Jan 2021 20:28:44 +0000 (21:28 +0100)
"Let's encrypt" certificate issuer string changed within last 24hours remotely.
Update its name to make RAPPS stop complaining on DB update.

And also fix a bug in rapps mixing A()/W() in the
messagebox that informs about that cert check failure.

Fix is port of
0.4.15-dev-1120-g 12caaece255b216b452072d82faecfa98430d4b6
0.4.15-dev-1617-g f77f5a30cfd841bb94ae3c88627e1ae374807115

Next time this happens I will relentlessly undefine CMakeLists.txt USE_CERT_PINNING

base/applications/rapps/loaddlg.cpp

index fe9ec04..3a62249 100644 (file)
@@ -47,7 +47,8 @@
 #include "misc.h"
 
 #ifdef USE_CERT_PINNING
-#define CERT_ISSUER_INFO "US\r\nLet's Encrypt\r\nLet's Encrypt Authority X3"
+#define CERT_ISSUER_INFO_OLD "US\r\nLet's Encrypt\r\nLet's Encrypt Authority X3"
+#define CERT_ISSUER_INFO_NEW "US\r\nLet's Encrypt\r\nR3"
 #define CERT_SUBJECT_INFO "rapps.reactos.org"
 #endif
 
@@ -782,7 +783,7 @@ DWORD WINAPI CDownloadManager::ThreadFunc(LPVOID param)
             (wcscmp(InfoArray[iAppId].szUrl, APPLICATION_DATABASE_URL) == 0))
         {
             CLocalPtr subjectName, issuerName;
-            CStringW szMsgText;
+            CStringA szMsgText;
             bool bAskQuestion = false;
             if (!CertGetSubjectAndIssuer(hFile, subjectName, issuerName))
             {
@@ -792,7 +793,8 @@ DWORD WINAPI CDownloadManager::ThreadFunc(LPVOID param)
             else
             {
                 if (strcmp(subjectName, CERT_SUBJECT_INFO) ||
-                    strcmp(issuerName, CERT_ISSUER_INFO))
+                    (strcmp(issuerName, CERT_ISSUER_INFO_OLD) &&
+                    strcmp(issuerName, CERT_ISSUER_INFO_NEW)))
                 {
                     szMsgText.Format(IDS_MISMATCH_CERT_INFO, (char*)subjectName, (const char*)issuerName);
                     bAskQuestion = true;
@@ -801,7 +803,7 @@ DWORD WINAPI CDownloadManager::ThreadFunc(LPVOID param)
 
             if (bAskQuestion)
             {
-                if (MessageBoxW(hMainWnd, szMsgText.GetString(), NULL, MB_YESNO | MB_ICONERROR) != IDYES)
+                if (MessageBoxA(hMainWnd, szMsgText.GetString(), NULL, MB_YESNO | MB_ICONERROR) != IDYES)
                 {
                     goto end;
                 }