Method to replace bootloader public key
First Claim
Patent Images
1. A method for replacing a public key in a bootloader stored in a controller, said method comprising:
- defining a bootloader memory segment in a memory in the controller that the bootloader will be stored in;
defining a key table in the bootloader memory segment that includes a plurality of available memory slots for storing public keys;
storing an original public key in a first memory slot in the key table and leaving the rest of the memory slots in the key table empty, wherein storing the original public key in a first memory slot includes setting a validity flag to valid in the first memory slot, and setting all of the other memory slots in the key table to invalid;
receiving a public key update request; and
storing a replacement public key in a next memory slot below a last stored public key in the key table, wherein the replacement public key is used without rewriting the bootloader, and wherein the previously stored original public key is not modified or erased.
3 Assignments
0 Petitions
Accused Products
Abstract
A system and method for writing a new or replacement public key to a bootloader stored in a memory segment in the memory of a vehicle ECU without having to rewrite the entire bootloader. The method includes defining a key table in the bootloader memory segment includes a number of vacant memory slots that are available to store replacement public keys if they are needed. The key table is a separate section of the bootloader memory segment so that the key table memory slots are not used by the bootloader code.
22 Citations
18 Claims
-
1. A method for replacing a public key in a bootloader stored in a controller, said method comprising:
-
defining a bootloader memory segment in a memory in the controller that the bootloader will be stored in; defining a key table in the bootloader memory segment that includes a plurality of available memory slots for storing public keys; storing an original public key in a first memory slot in the key table and leaving the rest of the memory slots in the key table empty, wherein storing the original public key in a first memory slot includes setting a validity flag to valid in the first memory slot, and setting all of the other memory slots in the key table to invalid; receiving a public key update request; and storing a replacement public key in a next memory slot below a last stored public key in the key table, wherein the replacement public key is used without rewriting the bootloader, and wherein the previously stored original public key is not modified or erased. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for replacing a public key in a bootloader stored in a memory of an electronic control unit (ECU) on a vehicle, said method comprising:
-
defining a bootloader memory segment in a memory in the ECU that the bootloader will be stored in; defining a key table in the bootloader memory segment that includes a plurality of available memory slots for storing public keys; storing an original public key in a first memory slot in the key table and leaving the rest of the memory slots in the key table empty; setting a validity flag associated with the first memory slot in the key table to valid and setting all other validity flags associated with the empty slots to invalid; storing a replacement public key in a next memory slot below the last stored public key in the key table; receiving a public key update request; and setting the validity flag for the next memory slot to valid once the replacement public key is stored, wherein the replacement key is used without rewriting the bootloader, and wherein the previously stored original public key is not modified or erased. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A system for replacing a public key in a bootloader stored in a controller, said system comprising:
-
means for defining a bootloader memory segment in a memory in the controller that the bootloader will be stored in; means for defining a key table in the bootloader memory segment that includes a plurality of available memory slots for storing public keys; means for storing an original public key in a first memory slot in the key table and leaving the rest of the memory slots in the key table empty; means for receiving a public key update request; and means for storing an replacement public key in a next memory slot below a last stored public key in the key table, wherein the replacement public key is used without rewriting the bootloader, and wherein the previously stored original public key is not modified or erased, and wherein a validity flag for the next memory slot is set to valid. - View Dependent Claims (15, 16, 17, 18)
-
Specification