This patch fixes the following issues to make Google Chrome happy:
1. Adds CTAP_CBOR_CRED_MGMT(0x0A) which is an alias to CTAP_CBOR_CRED_MGMT_PRE(0x41)
2. Returns success instead of NO_CREDENTIALS when there are no RKs
3. Skip the "icon" property if it's empty
Tested with Google Chrome Version 80.0.3987.149
Implement command 0x41 which is used by OpenSSH for reading RKs. It has
the following subcommands:
* CMD_CRED_METADATA - get number of saved/remaining RKs
* CMD_RP_BEGIN/CMD_RP_NEXT - iterate over the saved RPs
* CMD_RK_BEGIN/CMD_RK_NEXT - iterate over the RKs for a given RP
Fixes issue #374 and issue #314
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>