mirror of
https://github.com/meshtastic/firmware.git
synced 2025-06-12 16:12:07 +00:00
Regenerate public key on boot, to avoid accidental mismatch. (#4916)
* Regenerate public key on boot, to avoid accidental mismatch. * Fix ifdefs
This commit is contained in:
parent
bce7d73cc6
commit
dd587419c7
@ -132,19 +132,10 @@ NodeDB::NodeDB()
|
|||||||
config.security.serial_enabled = config.device.serial_enabled;
|
config.security.serial_enabled = config.device.serial_enabled;
|
||||||
config.security.is_managed = config.device.is_managed;
|
config.security.is_managed = config.device.is_managed;
|
||||||
}
|
}
|
||||||
#if !(MESHTASTIC_EXCLUDE_PKI)
|
|
||||||
// Calculate Curve25519 public and private keys
|
#if !(MESHTASTIC_EXCLUDE_PKI_KEYGEN || MESHTASTIC_EXCLUDE_PKI)
|
||||||
printBytes("Old Pubkey", config.security.public_key.bytes, 32);
|
|
||||||
if (config.security.private_key.size == 32 && config.security.public_key.size == 32) {
|
|
||||||
LOG_INFO("Using saved PKI keys\n");
|
|
||||||
owner.public_key.size = config.security.public_key.size;
|
|
||||||
memcpy(owner.public_key.bytes, config.security.public_key.bytes, config.security.public_key.size);
|
|
||||||
crypto->setDHPrivateKey(config.security.private_key.bytes);
|
|
||||||
} else {
|
|
||||||
#if !(MESHTASTIC_EXCLUDE_PKI_KEYGEN)
|
|
||||||
bool keygenSuccess = false;
|
bool keygenSuccess = false;
|
||||||
if (config.security.private_key.size == 32) {
|
if (config.security.private_key.size == 32) {
|
||||||
LOG_INFO("Calculating PKI Public Key\n");
|
|
||||||
if (crypto->regeneratePublicKey(config.security.public_key.bytes, config.security.private_key.bytes)) {
|
if (crypto->regeneratePublicKey(config.security.public_key.bytes, config.security.private_key.bytes)) {
|
||||||
keygenSuccess = true;
|
keygenSuccess = true;
|
||||||
}
|
}
|
||||||
@ -156,15 +147,16 @@ NodeDB::NodeDB()
|
|||||||
if (keygenSuccess) {
|
if (keygenSuccess) {
|
||||||
config.security.public_key.size = 32;
|
config.security.public_key.size = 32;
|
||||||
config.security.private_key.size = 32;
|
config.security.private_key.size = 32;
|
||||||
printBytes("New Pubkey", config.security.public_key.bytes, 32);
|
|
||||||
owner.public_key.size = 32;
|
owner.public_key.size = 32;
|
||||||
memcpy(owner.public_key.bytes, config.security.public_key.bytes, 32);
|
memcpy(owner.public_key.bytes, config.security.public_key.bytes, 32);
|
||||||
}
|
}
|
||||||
#else
|
#elif !(MESHTASTIC_EXCLUDE_PKI)
|
||||||
LOG_INFO("No PKI keys set, and generation disabled!\n");
|
// Calculate Curve25519 public and private keys
|
||||||
#endif
|
if (config.security.private_key.size == 32 && config.security.public_key.size == 32) {
|
||||||
|
owner.public_key.size = config.security.public_key.size;
|
||||||
|
memcpy(owner.public_key.bytes, config.security.public_key.bytes, config.security.public_key.size);
|
||||||
|
crypto->setDHPrivateKey(config.security.private_key.bytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
info->user = TypeConversions::ConvertToUserLite(owner);
|
info->user = TypeConversions::ConvertToUserLite(owner);
|
||||||
|
Loading…
Reference in New Issue
Block a user