From 6a077d0d8fd587372559f43d0466bac3efc88686 Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Tue, 4 Oct 2022 16:58:49 +0200 Subject: [PATCH] Enabling credential management. Signed-off-by: Pol Henarejos --- src/fido/cbor.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/fido/cbor.c b/src/fido/cbor.c index f292311..d23a20a 100644 --- a/src/fido/cbor.c +++ b/src/fido/cbor.c @@ -35,6 +35,7 @@ int cbor_client_pin(const uint8_t *data, size_t len); int cbor_get_assertion(const uint8_t *data, size_t len, bool next); int cbor_get_next_assertion(const uint8_t *data, size_t len); int cbor_selection(); +int cbor_cred_mgmt(const uint8_t *data, size_t len); const uint8_t aaguid[16] = {0x89, 0xFB, 0x94, 0xB7, 0x06, 0xC9, 0x36, 0x73, 0x9B, 0x7E, 0x30, 0x52, 0x6D, 0x96, 0x81, 0x45}; // First 16 bytes of SHA256("Pico FIDO2") @@ -60,6 +61,8 @@ int cbor_parse(const uint8_t *data, size_t len) { return cbor_get_next_assertion(data + 1, len - 1); else if (data[0] == CTAP_SELECTION) return cbor_selection(); + else if (data[0] == CTAP_CREDENTIAL_MGMT) + return cbor_cred_mgmt(data + 1, len - 1); return CTAP2_ERR_INVALID_CBOR; } @@ -76,6 +79,8 @@ void cbor_thread() { } apdu.sw = cbor_parse(cbor_data, cbor_len); + if (apdu.sw == 0) + DEBUG_DATA(res_APDU + 1, res_APDU_size); finished_data_size = res_APDU_size+1; uint32_t flag = EV_EXEC_FINISHED;