38 #define CTAP_MAX_MSG_SIZE                   0x400 
   48     CTAP1_ERR_INVALID_COMMAND           = 0x01,
 
   49     CTAP1_ERR_INVALID_PARAMETER         = 0x02,
 
   50     CTAP1_ERR_INVALID_LENGTH            = 0x03,
 
   51     CTAP1_ERR_INVALID_SEQ               = 0x04,
 
   52     CTAP1_ERR_TIMEOUT                   = 0x05,
 
   53     CTAP1_ERR_CHANNEL_BUSY              = 0x06,
 
   54     CTAP1_ERR_LOCK_REQUIRED             = 0x0A,
 
   55     CTAP1_ERR_INVALID_CHANNEL           = 0x0B,
 
   56     CTAP2_ERR_CBOR_PARSING              = 0x10,
 
   57     CTAP2_ERR_CBOR_UNEXPECTED_TYPE      = 0x11,
 
   58     CTAP2_ERR_INVALID_CBOR              = 0x12,
 
   59     CTAP2_ERR_INVALID_CBOR_TYPE         = 0x13,
 
   60     CTAP2_ERR_MISSING_PARAMETER         = 0x14,
 
   61     CTAP2_ERR_LIMIT_EXCEEDED            = 0x15,
 
   62     CTAP2_ERR_UNSUPPORTED_EXTENSION     = 0x16,
 
   63     CTAP2_ERR_TOO_MANY_ELEMENTS         = 0x17,
 
   64     CTAP2_ERR_EXTENSION_NOT_SUPPORTED   = 0x18,
 
   65     CTAP2_ERR_CREDENTIAL_EXCLUDED       = 0x19,
 
   66     CTAP2_ERR_CREDENTIAL_NOT_VALID      = 0x20,
 
   67     CTAP2_ERR_PROCESSING                = 0x21,
 
   68     CTAP2_ERR_INVALID_CREDENTIAL        = 0x22,
 
   69     CTAP2_ERR_USER_ACTION_PENDING       = 0x23,
 
   70     CTAP2_ERR_OPERATION_PENDING         = 0x24,
 
   71     CTAP2_ERR_NO_OPERATIONS             = 0x25,
 
   72     CTAP2_ERR_UNSUPPORTED_ALGORITHM     = 0x26,
 
   73     CTAP2_ERR_OPERATION_DENIED          = 0x27,
 
   74     CTAP2_ERR_KEY_STORE_FULL            = 0x28,
 
   75     CTAP2_ERR_NOT_BUSY                  = 0x29,
 
   76     CTAP2_ERR_NO_OPERATION_PENDING      = 0x2A,
 
   77     CTAP2_ERR_UNSUPPORTED_OPTION        = 0x2B,
 
   78     CTAP2_ERR_INVALID_OPTION            = 0x2C,
 
   79     CTAP2_ERR_KEEPALIVE_CANCEL          = 0x2D,
 
   80     CTAP2_ERR_NO_CREDENTIALS            = 0x2E,
 
   81     CTAP2_ERR_USER_ACTION_TIMEOUT       = 0x2F,
 
   82     CTAP2_ERR_NOT_ALLOWED               = 0x30,
 
   83     CTAP2_ERR_PIN_INVALID               = 0x31,
 
   84     CTAP2_ERR_PIN_BLOCKED               = 0x32,
 
   85     CTAP2_ERR_PIN_AUTH_INVALID          = 0x33,
 
   86     CTAP2_ERR_PIN_AUTH_BLOCKED          = 0x34,
 
   87     CTAP2_ERR_PIN_NOT_SET               = 0x35,
 
   88     CTAP2_ERR_PIN_REQUIRED              = 0x36,
 
   89     CTAP2_ERR_PIN_POLICY_VIOLATION      = 0x37,
 
   90     CTAP2_ERR_PIN_TOKEN_EXPIRED         = 0x38,
 
   91     CTAP2_ERR_REQUEST_TOO_LARGE         = 0x39,
 
   92     CTAP2_ERR_ACTION_TIMEOUT            = 0x3A,
 
   93     CTAP2_ERR_UP_REQUIRED               = 0x3B,
 
   94     CTAP1_ERR_OTHER                     = 0x7F,
 
   95     CTAP2_ERR_SPEC_LAST                 = 0xDF,
 
   96     CTAP2_ERR_EXTENSION_FIRST           = 0xE0,
 
   97     CTAP2_ERR_EXTENSION_LAST            = 0xEF,
 
   98     CTAP2_ERR_VENDOR_FIRST              = 0xF0,
 
   99     CTAP2_ERR_VENDOR_LAST               = 0xFF
 
  109     CTAP_MAKE_CREDENTIAL    =   0x01,
 
  110     CTAP_GET_ASSERTION      =   0x02,
 
  111     CTAP_GET_INFO           =   0x04,
 
  112     CTAP_CLIENT_PIN         =   0x06,
 
  114     CTAP_GET_NEXT_ASSERTION =   0x08
 
ctap_status_code_t fido2_ctap_get_next_assertion(ctap_resp_t *resp)
GetNextAssertion method.
 
ctap_status_code_t fido2_ctap_make_credential(ctap_req_t *req, ctap_resp_t *resp)
MakeCredential method.
 
#define CTAP_MAX_MSG_SIZE
CTAP max message size.
 
ctap_method_t
CTAP methods.
 
ctap_status_code_t fido2_ctap_init(void)
Initialize ctap.
 
ctap_status_code_t fido2_ctap_get_info(ctap_resp_t *resp)
GetInfo method.
 
ctap_status_code_t fido2_ctap_handle_request(ctap_req_t *req, ctap_resp_t *resp)
Handle CBOR encoded ctap request.
 
ctap_status_code_t fido2_ctap_reset(ctap_resp_t *resp)
Reset method.
 
ctap_status_code_t fido2_ctap_get_assertion(ctap_req_t *req, ctap_resp_t *resp)
GetAssertion method.
 
ctap_status_code_t
CTAP status codes.
 
ctap_status_code_t fido2_ctap_client_pin(ctap_req_t *req, ctap_resp_t *resp)
ClientPIN method.
 
uint8_t * buf
Buffer holding CBOR encoded data.
 
uint8_t method
CTAP method identitifer.
 
ctap_status_code_t status
response status
 
size_t len
length of response data