MJ Bezuidenhout
[OPEN // ROLES]

Archive

01 // CASE STUDIES 05 RECORDS

Diagnostic tool for the Citea bus

2022 — PRESENT
Cimsolutions @ VDL Bus & Coach
Problem

Production and workshop needed one tool to diagnose and update every ECU on the new Citea, and it could only connect with the ignition on. On one vehicle with a bad connector it worked only with a probe held in place, which caused delay and uncertainty on the line.

Decision

Made the tool connect on battery voltage alone, and wrote a script that reads its input signals so the failure could be seen rather than guessed at.

Result

Fixed the same day and shipped; the signal script is still in use.

UDSOTXVue.jsCAN

Seed-and-key for three ECUs

2025 — 2026
Cimsolutions @ VDL Bus & Coach
Problem

Security-gated diagnostic functions on three ECUs—the battery management system (BMS), intelligent speed assist (ISA) and secure gateway (SGW)—were inaccessible through the diagnostic tool, preventing production flashing and maintenance operations that required them.

Decision

Implemented the seed-and-key algorithms for all three. For new ECUs I moved to keys rolled out at runtime with OpenSSL, rather than secrets baked into the software, and split the key-update flow so reading and uploading keys are separate steps behind an unlock.

Result

All three ECUs are in production use, and production flashing runs without problems.

UDSOpenSSLCANC++

TOTP-protected diagnostics

2023
Cimsolutions @ VDL Bus & Coach
Problem

The diagnostic tool exposed security-sensitive functions to anyone with access to it, despite vehicles being serviced by external workshops.

Decision

Designed a time-based one-time password (TOTP) authentication flow in collaboration with a cybersecurity consultant, and implemented the client side myself.

Result

Deployed in production and continues to protect access to security-sensitive diagnostic functions.

TOTPUDSCybersecurity

Secure CAN gateway

2025 — PRESENT
Cimsolutions @ VDL Bus & Coach
Problem

The vehicle needed a secure gateway capable of enforcing rules between CAN networks, rather than simply forwarding traffic.

Decision

Evaluated an NXP S32 platform running embedded Linux, configuring LLCE CAN drivers through debugFS and testing routing between networks with different baud rates. After the evaluation, integrated the selected alternative gateway, implementing key provisioning and the client side of an ECDSA handshake.

Result

Integrated into production vehicles and under active monitoring, with further security features in development.

NXP S32YoctoU-BootISO-TPECDSA

End-to-end encrypted messaging

2019 — 2021
Nanoteq
Problem

Nanoteq's secure messenger was meant as a hardened alternative to WhatsApp or Signal for military customers, running its own crypto on the phones' hardware accelerators. Group chat needed end-to-end encryption, and SIP handled groups poorly.

Decision

Moved text messaging from SIP to XMPP after choosing ejabberd from three prototypes. Helped design the end-to-end encryption on top: Diffie-Hellman key exchange and rolling keys for forward secrecy. Forward secrecy meant decrypting the newest message needed the earlier ones, so I made the app decrypt only the window of messages visible on screen and stay responsive.

Result

Group chat went live in early 2020. The same group-key work became the basis for an end-to-end encrypted group video proof of concept during lockdown, which was in use as Nanoteq's internal video tool by the time I left.

XMPPejabberdDiffie-HellmanIPsecC++