Szczepan Zalega 449faea7d3
Fix buffer overread in ctap_encode_der_sig()
Take into account leading zeroes in the size to copy, for both R and S
ingredients of the signature.
Issue was occuring only in cases, when there was a leading zero for the
S part.

Refactor ctap_encode_der_sig():
- add in_ and out_ prefixes to the function arguments
- mark pointers const
- clear out buffer

Tested via simulated device on:
- Fedora 29
- gcc (GCC) 8.2.1 20181215 (Red Hat 8.2.1-6)
- libasan 8.2.1 / 6.fc29
(same machine, as in the related issue description)
by running ctap_test() Python test in a loop for 20 minutes (dev's
counter 400k+). Earlier issue was occuring in first minutes.

Tested on Nucleo32 board, by running the ctap_test() 20 times.

Fixes https://github.com/solokeys/solo/issues/94

Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
2019-02-02 18:33:10 +01:00
..
2018-12-16 16:19:40 -08:00
2018-12-16 16:19:40 -08:00
2018-12-16 16:19:40 -08:00
2018-12-16 16:19:40 -08:00
2018-12-16 16:19:40 -08:00
2018-12-16 16:19:40 -08:00
2018-12-16 16:19:40 -08:00
2018-12-16 16:19:40 -08:00
2018-12-16 16:19:40 -08:00
2018-12-16 16:19:40 -08:00
2018-12-16 16:19:40 -08:00
2018-12-16 16:19:40 -08:00
2018-12-16 16:19:40 -08:00
2018-12-16 16:19:40 -08:00
2018-12-16 16:19:40 -08:00
2018-12-16 16:19:40 -08:00
2019-01-08 21:37:15 -05:00
2018-12-16 16:19:40 -08:00
2018-12-16 16:19:40 -08:00
2018-12-16 16:19:40 -08:00