Seed-key security is used by some communication protocols to gain access to ECU functions, which are therefore protected from unauthorised access.
The basic idea is that the ECU provides a seed — a short string of byte values — and the tool is required to transform that seed into a key using a secret algorithm. The ECU applies the same algorithm internally, and compares the key value given by the tool to its own value. If the two agree, the tool is assumed to “know” the secret algorithm, and access is authorised.
OpenECU Calibrator cannot (and should not) know your secret seed-key algorithm, so it is necessary for you to provide it either in source code form or compiled into a DLL.
Seed-key security can be used independently by the CCP protocol and ISO 15765-2 diagnostics windows. However, these different functions may reference the same DLL files if a common algorithm is used.
Using ASAP2 DLLs
The ASAP2 specification defines a DLL interface function for use with CAN Calibration Protocol (CCP). (Vector provide a similar example for use with Keyword Protocol 2000-3/UDS.) DLLs conforming to that interface are commonly used with calibration tools and are supported by OpenECU Calibrator.
The purpose of the key generation (e.g. for obtaining calibration privilege, or flash reprogramming privilege) is not included in the ASAP2-defined interface. Instead, different DLL files can be used for those different purposes. OpenECU Calibrator allows you to choose different DLL files for different purposes, or to choose just one DLL for any purpose if the algorithm in all cases is the same.
Using Source Code
You may use this option to write your own algorithm without having to build a DLL file. The language is C#. Example code is provided which can be modified as a starting point.
When the algorithm is required to obtain secure access to the ECU, it is automatically compiled (if it has not already been compiled) and executed. You do not need to install any development tools, because the C# compiler is included with the Microsoft .NET Framework on which this program depends anyway.
Warning: the source code is stored in the workspace file. Be alert to confidentiality considerations.
Using OpenECU Calibrator Format DLL
You may build your own source code to a DLL file within OpenECU Calibrator by clicking the “Build DLL from Source” button. Once done, this DLL can be used in future by you or others without the source code from which it was built.
Warning: .NET DLL files are comparatively easy to reverse-engineer. Be alert to confidentiality considerations.
Testing Your Algorithm
Use the test controls to try out whichever algorithm you have selected (if any). If you are using your own source code, any build errors will be displayed if it does not compile.