From aa4255b875f8a95a879a6faa5e8bb6f5bbe62ac8 Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Wed, 14 Dec 2022 19:41:19 +0100 Subject: [PATCH] Add large blob command to cbor. Signed-off-by: Pol Henarejos --- src/fido/cbor.c | 3 +++ src/fido/ctap.h | 1 + 2 files changed, 4 insertions(+) diff --git a/src/fido/cbor.c b/src/fido/cbor.c index 3896916..23b5d69 100644 --- a/src/fido/cbor.c +++ b/src/fido/cbor.c @@ -37,6 +37,7 @@ int cbor_selection(); int cbor_cred_mgmt(const uint8_t *data, size_t len); int cbor_config(const uint8_t *data, size_t len); int cbor_vendor(const uint8_t *data, size_t len); +int cbor_large_blobs(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") @@ -68,6 +69,8 @@ int cbor_parse(uint8_t cmd, const uint8_t *data, size_t len) { return cbor_cred_mgmt(data + 1, len - 1); else if (data[0] == CTAP_CONFIG) return cbor_config(data + 1, len - 1); + else if (data[0] == CTAP_LARGE_BLOBS) + return cbor_config(data + 1, len - 1); } else if (cmd == CTAP_VENDOR_CBOR) { return cbor_vendor(data, len); diff --git a/src/fido/ctap.h b/src/fido/ctap.h index db09d8f..ad012f9 100644 --- a/src/fido/ctap.h +++ b/src/fido/ctap.h @@ -114,6 +114,7 @@ typedef struct { #define CTAP_GET_NEXT_ASSERTION 0x08 #define CTAP_CREDENTIAL_MGMT 0x0A #define CTAP_SELECTION 0x0B +#define CTAP_LARGE_BLOBS 0x0C #define CTAP_CONFIG 0x0D #define CTAP_CONFIG_AUT_ENABLE 0x03e43f56b34285e2