sorry, if this forum is the wrong place, but I did not find a better one :-)
In AN3155 (USART protocol used in the STM32 bootloader; DocID17066 Rev 7) on page 7 it is written:
2. for each command the host sends a byte and its complement (XOR = 0x00)
but if I XOR a byte and its complement I get 0xff as result, not 0x00.
I guess the correct meaning is restored if the XOR part is removed completely on checksums over a single byte. This also happens in byte 9 of the Read Memory Command (here the XOR should be replaced by complement). I do not know if any other documents are affected.
Sadly there is no contact in this document to address the problem directly.