Skip to content

Commit 3a03972

Browse files
LeeLeahy2nseidle
authored andcommitted
L-Band: Always validate the private key
1 parent 376c5ea commit 3a03972

File tree

2 files changed

+26
-20
lines changed

2 files changed

+26
-20
lines changed

Firmware/RTK_Surveyor/States.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -768,7 +768,7 @@ void updateSystemState()
768768
daysFromEpoch(settings.pointPerfectNextKeyStart + settings.pointPerfectNextKeyDuration + 1);
769769
log_d("Days until keys expire: %d", daysRemaining);
770770

771-
if (daysRemaining > 28 && daysRemaining <= 56)
771+
if (checkCertificates() && (daysRemaining > 28 && daysRemaining <= 56))
772772
changeState(STATE_KEYS_DAYS_REMAINING);
773773
else
774774
changeState(STATE_KEYS_NEEDED);

Firmware/RTK_Surveyor/menuPP.ino

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -350,26 +350,33 @@ bool pointperfectProvisionDevice()
350350
// log_d("privateKey: %s", tempHolderPtr);
351351
recordFile("privateKey", tempHolderPtr, strlen(tempHolderPtr));
352352

353-
strcpy(settings.pointPerfectClientID, (const char *)((*jsonZtp)["clientId"]));
354-
strcpy(settings.pointPerfectBrokerHost, (const char *)((*jsonZtp)["brokerHost"]));
355-
strcpy(settings.pointPerfectLBandTopic, (const char *)((*jsonZtp)["subscriptions"][0]["path"]));
353+
// Validate the keys
354+
if (!checkCertificates())
355+
{
356+
systemPrintln("ERROR - Failed to validate the Point Perfect certificates!");
357+
}
358+
else
359+
{
360+
if (settings.debugPpCertificate)
361+
systemPrintln("Certificates written to the SD card.");
356362

357-
strcpy(settings.pointPerfectNextKey, (const char *)((*jsonZtp)["dynamickeys"]["next"]["value"]));
358-
settings.pointPerfectNextKeyDuration = (*jsonZtp)["dynamickeys"]["next"]["duration"];
359-
settings.pointPerfectNextKeyStart = (*jsonZtp)["dynamickeys"]["next"]["start"];
363+
strcpy(settings.pointPerfectClientID, (const char *)((*jsonZtp)["clientId"]));
364+
strcpy(settings.pointPerfectBrokerHost, (const char *)((*jsonZtp)["brokerHost"]));
365+
strcpy(settings.pointPerfectLBandTopic, (const char *)((*jsonZtp)["subscriptions"][0]["path"]));
360366

361-
strcpy(settings.pointPerfectCurrentKey, (const char *)((*jsonZtp)["dynamickeys"]["current"]["value"]));
362-
settings.pointPerfectCurrentKeyDuration = (*jsonZtp)["dynamickeys"]["current"]["duration"];
363-
settings.pointPerfectCurrentKeyStart = (*jsonZtp)["dynamickeys"]["current"]["start"];
367+
strcpy(settings.pointPerfectCurrentKey, (const char *)((*jsonZtp)["dynamickeys"]["current"]["value"]));
368+
settings.pointPerfectCurrentKeyDuration = (*jsonZtp)["dynamickeys"]["current"]["duration"];
369+
settings.pointPerfectCurrentKeyStart = (*jsonZtp)["dynamickeys"]["current"]["start"];
364370

365-
if (settings.debugLBand == true)
366-
{
367-
systemPrintf(" pointPerfectCurrentKey: %s\r\n", settings.pointPerfectCurrentKey);
368-
systemPrintf(" pointPerfectCurrentKeyStart: %lld - %s\r\n", settings.pointPerfectCurrentKeyStart, printDateFromUnixEpoch(settings.pointPerfectCurrentKeyStart));
369-
systemPrintf(" pointPerfectCurrentKeyDuration: %lld - %s\r\n", settings.pointPerfectCurrentKeyDuration, printDaysFromDuration(settings.pointPerfectCurrentKeyDuration));
370-
systemPrintf(" pointPerfectNextKey: %s\r\n", settings.pointPerfectNextKey);
371-
systemPrintf(" pointPerfectNextKeyStart: %lld - %s\r\n", settings.pointPerfectNextKeyStart, printDateFromUnixEpoch(settings.pointPerfectNextKeyStart));
372-
systemPrintf(" pointPerfectNextKeyDuration: %lld - %s\r\n", settings.pointPerfectNextKeyDuration, printDaysFromDuration(settings.pointPerfectNextKeyDuration));
371+
if (settings.debugLBand == true)
372+
{
373+
systemPrintf(" pointPerfectCurrentKey: %s\r\n", settings.pointPerfectCurrentKey);
374+
systemPrintf(" pointPerfectCurrentKeyStart: %lld - %s\r\n", settings.pointPerfectCurrentKeyStart, printDateFromUnixEpoch(settings.pointPerfectCurrentKeyStart));
375+
systemPrintf(" pointPerfectCurrentKeyDuration: %lld - %s\r\n", settings.pointPerfectCurrentKeyDuration, printDaysFromDuration(settings.pointPerfectCurrentKeyDuration));
376+
systemPrintf(" pointPerfectNextKey: %s\r\n", settings.pointPerfectNextKey);
377+
systemPrintf(" pointPerfectNextKeyStart: %lld - %s\r\n", settings.pointPerfectNextKeyStart, printDateFromUnixEpoch(settings.pointPerfectNextKeyStart));
378+
systemPrintf(" pointPerfectNextKeyDuration: %lld - %s\r\n", settings.pointPerfectNextKeyDuration, printDaysFromDuration(settings.pointPerfectNextKeyDuration));
379+
}
373380
}
374381
}
375382
} // HTTP Response was 200
@@ -444,8 +451,7 @@ bool checkCertificates()
444451
if (keyContents)
445452
free(keyContents);
446453

447-
if (settings.debugPpCertificate && validCertificates)
448-
systemPrintln("Certificates are valid!");
454+
systemPrintln("Stored certificates are valid!");
449455
return (validCertificates);
450456
}
451457

0 commit comments

Comments
 (0)