This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
manual:security [2018/07/03 15:59] voorburg [MicroBoot] |
manual:security [2022/02/10 19:10] (current) voorburg [Building on Windows with MinGW] |
||
---|---|---|---|
Line 58: | Line 58: | ||
blt_int8u XcpVerifyKeyHook(blt_int8u resource, blt_int8u *key, blt_int8u len) | blt_int8u XcpVerifyKeyHook(blt_int8u resource, blt_int8u *key, blt_int8u len) | ||
{ | { | ||
- | /* the example key algorithm in "FeaserKey.dll" works as follows: | + | /* the example key algorithm in "libopenblt.dll" works as follows: |
* - programming resource will be unlocked if key = seed - 1 | * - programming resource will be unlocked if key = seed - 1 | ||
*/ | */ | ||
Line 74: | Line 74: | ||
</code> | </code> | ||
- | To customize, change the code in these two functions and use your creativity to change the seed generation and the key verification algorithm. One good approach is to use a seed that changes, such as the value of a free running counter of the timer system. Don't forget to rebuild the bootloader and program it into the flash memory of your microcontroller after making changes. | + | To customize, change the code in these two functions and use your creativity to change the seed generation and the key verification algorithm. One good approach is to use a seed that changes, ideally using a random number generator peripheral, if your microcontroller offers one. Otherwise, you can use a software solution such as the on available in [[https://github.com/feaser/microtbx|MicroTBX]]. Don't forget to rebuild the bootloader and program it into the flash memory of your microcontroller after making changes. |
==== Seed/Key Shared Library ==== | ==== Seed/Key Shared Library ==== | ||
Line 136: | Line 136: | ||
==== Building on Windows with Microsoft Visual C++ ==== | ==== Building on Windows with Microsoft Visual C++ ==== | ||
- | This method assumes that Microsoft Visual C++ is installed. During the SeedNKey development, Microsoft Visual Studio 2013 Express was used. The method outlined here should work just fine with both older and newer versions of Microsoft Visual Studio. | + | This method assumes that Microsoft Visual C++ is installed. During the SeedNKey development, Microsoft Visual Studio 2019 was used. The method outlined here should work just fine with both older and newer versions of Microsoft Visual Studio. |
Using the Command Prompt in Windows, set the working directory to **.\Host\Source\SeedNKey\build** and type the command: | Using the Command Prompt in Windows, set the working directory to **.\Host\Source\SeedNKey\build** and type the command: | ||
Line 148: | Line 148: | ||
After a successful build, the shared library **libseednkey.dll** is located in the **./Host** directory. | After a successful build, the shared library **libseednkey.dll** is located in the **./Host** directory. | ||
+ | |||
+ | Note that this builds a 64-bit version of **libseednkey.dll**, which only works together with 64-bit versions of the PC binaries (MicroBoot, BootCommander and LibOpenBLT). This is the default starting with OpenBLT version 1.14. | ||
+ | |||
+ | When using the PC binaries from before OpenBLT version 1.14, or if you rebuilt them yourself as 32-bit, then you should build **libseednkey.dll** as 32-bit as well. To build a 32-bit version of **libseednkey.dll**, generate the build environment with command "**cmake -A Win32..**". | ||
+ | |||
==== Building on Windows with MinGW ==== | ==== Building on Windows with MinGW ==== | ||
- | This method assumes that the MinGW compiler toolchain is installed on your PC. The installer can be downloaded from https://sourceforge.net/projects/mingw-w64/. An alternative approach is to download the Code::Blocks package that is bundled together with the MinGW toolchain from http://www.codeblocks.org/downloads/26, for example "codeblocks-16.01mingw-setup.exe". | + | This method assumes that the MinGW compiler toolchain is installed on your PC. A convenient way to install it, is by downloading the installer that bundles the Code::Blocks IDE together with MinGW. When using OpenBLT version 1.14 or newer, it is recommended to download the [[https://sourceforge.net/projects/codeblocks/files/Binaries/20.03/Windows/codeblocks-20.03mingw-setup.exe/download|64-bit installer version]], because the included PC binaries (MicroBoot, BootCommander and LibOpenBLT) are 64-bit as well. Otherwise you can download the [[https://sourceforge.net/projects/codeblocks/files/Binaries/20.03/Windows/32bit/codeblocks-20.03-32bit-mingw-32bit-setup.exe/download|32-bit installer version]]. |
Make sure the **.\bin** directory of the MinGW installation directory is added to your path in Windows. A quick way to verify that this is the case, run the following command from the Command Prompt in Windows and make sure the program could be found: | Make sure the **.\bin** directory of the MinGW installation directory is added to your path in Windows. A quick way to verify that this is the case, run the following command from the Command Prompt in Windows and make sure the program could be found: | ||
Line 161: | Line 166: | ||
<code> | <code> | ||
- | cmake -G "MinGW Makefiles" .. | + | cmake -G "CodeBlocks - MinGW Makefiles" .. |
mingw32-make | mingw32-make | ||
</code> | </code> |