All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Loading...
Searching...
No Matches

FIDO2 CTAP CBOR helper More...

Detailed Description

FIDO2 CTAP CBOR helper

Files

file  ctap_cbor.h
 CTAP CBOR helper function declarations.
 

Macros

#define CTAP_CBOR_INFO_MAP_SZ   0x06
 CBOR map size of encoded getInfo response.
 
#define CTAP_CBOR_ATTESTATION_MAP_SZ   0x03
 CBOR map size of encoded attestation.
 
#define CTAP_CBOR_ATTESTATION_STMT_MAP_SZ   0x02
 CBOR map size of encoded attestation statement.
 
#define CTAP_CBOR_CRED_DESC_MAP_SZ   0x02
 CBOR map size of encoded credential description.
 
#define CTAP_CBOR_PIN_TOKEN_MAP_SZ   0x01
 CBOR map size of encoded pinToken.
 
#define CTAP_CBOR_USER_ENTITY_MAP_SZ   0x01
 CBOR map size of encoded user entity.
 
#define CTAP_CBOR_COSE_KEY_MAP_SZ   0x05
 CBOR map size of public key encoded in COSE format.
 
#define CTAP_CBOR_KEY_AGREEMENT_MAP_SZ   0x01
 CBOR map size of encoded clientPIN keyAgreement.
 
#define CTAP_CBOR_RETRIES_MAP_SZ   0x01
 CBOR map size of encoded clientPIN retries.
 
#define CTAP_CBOR_ATT_STMT_AUTH_DATA_SZ   0x134
 Attestation statement data buffer size.
 
#define CTAP_CBOR_MAP_MAX_KEY_LEN   0x10
 Max length of string key in CBOR map.
 
#define CTAP_CBOR_MAX_CREDENTIAL_TYPE_LEN   0x10
 Max length of PublicKeyCredentialType string.
 

Functions

ctap_status_code_t fido2_ctap_cbor_parse_make_credential_req (ctap_make_credential_req_t *req, const uint8_t *req_raw, size_t len)
 Parse MakeCredential method.
 
ctap_status_code_t fido2_ctap_cbor_parse_get_assertion_req (ctap_get_assertion_req_t *req, const uint8_t *req_raw, size_t len)
 Parse GetAssertion method.
 
ctap_status_code_t fido2_ctap_cbor_encode_info (const ctap_info_t *info)
 Encode CBOR info map.
 
ctap_status_code_t fido2_ctap_cbor_parse_client_pin_req (ctap_client_pin_req_t *req, const uint8_t *req_raw, size_t len)
 Parse ClientPIN method.
 
ctap_status_code_t fido2_ctap_cbor_encode_attestation_object (const ctap_auth_data_t *auth_data, const uint8_t *client_data_hash, ctap_resident_key_t *rk)
 Encode attestation object.
 
ctap_status_code_t fido2_ctap_cbor_encode_assertion_object (const ctap_auth_data_header_t *auth_data, const uint8_t *client_data_hash, ctap_resident_key_t *rk, uint8_t valid_cred_count)
 Encode assertion object.
 
ctap_status_code_t fido2_ctap_cbor_encode_key_agreement (const ctap_public_key_cose_t *key)
 Encode key agreement.
 
ctap_status_code_t fido2_ctap_cbor_encode_pin_token (uint8_t *token, size_t len)
 Encode encrypted pin token.
 
ctap_status_code_t fido2_ctap_cbor_encode_retries (uint8_t tries_left)
 Encode PIN tries left.
 
size_t fido2_ctap_cbor_get_buffer_size (const uint8_t *buf)
 Get size of CBOR encoded data.
 
void fido2_ctap_cbor_init_encoder (uint8_t *buf, size_t len)
 Initialize CBOR encoder.
 

CTAP CBOR map key string values

#define CTAP_CBOR_STR_PACKED   "packed"
 packed key string
 
#define CTAP_CBOR_STR_ALG   "alg"
 algorithm key string
 
#define CTAP_CBOR_STR_SIG   "sig"
 signature key string
 
#define CTAP_CBOR_STR_ID   "id"
 id key string
 
#define CTAP_CBOR_STR_TYPE   "type"
 type key string
 
#define CTAP_CBOR_STR_PUBLIC_KEY   "public-key"
 public-key key string
 
#define CTAP_CBOR_STR_USER_VERIFIED   "uv"
 user verification key string
 
#define CTAP_CBOR_STR_USER_PRESENT   "up"
 user presence key string
 
#define CTAP_CBOR_STR_RESIDENT_KEY   "rk"
 resident key key string
 
#define CTAP_CBOR_STR_NAME   "name"
 name key string
 
#define CTAP_CBOR_STR_ICON   "icon"
 icon key string
 
#define CTAP_CBOR_DISPLAY_NAME   "displayName"
 displayName key string
 

CTAP Client PIN response CBOR map key values

#define CTAP_CBOR_CP_RESP_KEY_AGREEMENT   0x01
 KeyAgreement key value.
 
#define CTAP_CBOR_CP_PIN_TOKEN_RESP   0x02
 pinToken key value
 
#define CTAP_CBOR_CP_RETRIES_RESP   0x03
 retries key value
 

CTAP make credential request CBOR key values

#define CTAP_CBOR_MC_REQ_CLIENT_DATA_HASH   0x01
 clientDataHash key value
 
#define CTAP_CBOR_MC_REQ_RP   0x02
 relying party key value
 
#define CTAP_CBOR_MC_REQ_USER   0x03
 user key value
 
#define CTAP_CBOR_MC_REQ_PUB_KEY_CRED_PARAMS   0x04
 pubKeyCredParams key value
 
#define CTAP_CBOR_MC_REQ_EXCLUDE_LIST   0x05
 excludeList key value
 
#define CTAP_CBOR_MC_REQ_EXTENSIONS   0x06
 extensions key value
 
#define CTAP_CBOR_MC_REQ_OPTIONS   0x07
 options key value
 
#define CTAP_CBOR_MC_REQ_PIN_AUTH   0x08
 pinAuth key value
 
#define CTAP_CBOR_MC_REQ_PIN_PROTOCOL   0x09
 pinProtocol key value
 

CTAP get info response CBOR key values

#define CTAP_CBOR_GET_INFO_RESP_VERSIONS   0x01
 versions key value
 
#define CTAP_CBOR_GET_INFO_RESP_EXTENSIONS   0x02
 extensions key value
 
#define CTAP_CBOR_GET_INFO_RESP_AAGUID   0x03
 AAGUID key value.
 
#define CTAP_CBOR_GET_INFO_RESP_OPTIONS   0x04
 options key value
 
#define CTAP_CBOR_GET_INFO_RESP_MAX_MSG_SIZE   0x05
 maxMsgSize key value
 
#define CTAP_CBOR_GET_INFO_RESP_PIN_PROTOCOLS   0x06
 pinProtocol key value
 

CTAP version strings

#define CTAP_CBOR_VERSION_STRING_FIDO_PRE   "FIDO_2_1_PRE"
 FIDO 2.1 flag.
 
#define CTAP_CBOR_VERSION_STRING_FIDO   "FIDO_2_0"
 FIDO 2 flag.
 
#define CTAP_CBOR_VERSION_STRING_U2F_V2   "U2F_V2"
 U2F V2 flag.
 

CTAP make credential response CBOR key values

#define CTAP_CBOR_MC_RESP_FMT   0x01
 attestation statement format identifier key value
 
#define CTAP_CBOR_MC_RESP_AUTH_DATA   0x02
 authData key value
 
#define CTAP_CBOR_MC_RESP_ATT_STMT   0x03
 attestation statement key value
 

CTAP get assertion request CBOR key values

#define CTAP_CBOR_GA_REQ_RP_ID   0x01
 relying party identifier key value
 
#define CTAP_CBOR_GA_REQ_CLIENT_DATA_HASH   0x02
 clientDataHash key value
 
#define CTAP_CBOR_GA_REQ_ALLOW_LIST   0x03
 allowList key value
 
#define CTAP_CBOR_GA_REQ_EXTENSIONS   0x04
 extensions key value
 
#define CTAP_CBOR_GA_REQ_OPTIONS   0x05
 options key value
 
#define CTAP_CBOR_GA_REQ_PIN_AUTH   0x06
 pinAuth key value
 
#define CTAP_CBOR_GA_REQ_PIN_PROTOCOL   0x07
 pinProtocol key value
 

CTAP get assertion response CBOR key values

#define CTAP_CBOR_GA_RESP_CREDENTIAL   0x01
 credential key value
 
#define CTAP_CBOR_GA_RESP_AUTH_DATA   0x02
 authData key value
 
#define CTAP_CBOR_GA_RESP_SIGNATURE   0x03
 signature key value
 
#define CTAP_CBOR_GA_RESP_USER   0x04
 user key value
 
#define CTAP_CBOR_GA_RESP_NUMBER_OF_CREDENTIALS   0x05
 numberOfCredentials key value
 

CTAP Client PIN request CBOR key values

#define CTAP_CBOR_CP_REQ_PIN_PROTOCOL   0x01
 pinProtocol key value
 
#define CTAP_CBOR_CP_REQ_SUB_COMMAND   0x02
 subCommand key value
 
#define CTAP_CBOR_CP_REQ_KEY_AGREEMENT   0x03
 keyAgreement key value
 
#define CTAP_CBOR_CP_REQ_PIN_AUTH   0x04
 pinAuth key value
 
#define CTAP_CBOR_CP_REQ_NEW_PIN_ENC   0x05
 newPinEnc key value
 
#define CTAP_CBOR_CP_REQ_PIN_HASH_ENC   0x06
 pinHashEnc key value
 

Macro Definition Documentation

◆ CTAP_CBOR_ATT_STMT_AUTH_DATA_SZ

#define CTAP_CBOR_ATT_STMT_AUTH_DATA_SZ   0x134

Attestation statement data buffer size.

Definition at line 79 of file ctap_cbor.h.

◆ CTAP_CBOR_ATTESTATION_MAP_SZ

#define CTAP_CBOR_ATTESTATION_MAP_SZ   0x03

CBOR map size of encoded attestation.

Definition at line 39 of file ctap_cbor.h.

◆ CTAP_CBOR_ATTESTATION_STMT_MAP_SZ

#define CTAP_CBOR_ATTESTATION_STMT_MAP_SZ   0x02

CBOR map size of encoded attestation statement.

Definition at line 44 of file ctap_cbor.h.

◆ CTAP_CBOR_COSE_KEY_MAP_SZ

#define CTAP_CBOR_COSE_KEY_MAP_SZ   0x05

CBOR map size of public key encoded in COSE format.

Definition at line 64 of file ctap_cbor.h.

◆ CTAP_CBOR_CP_PIN_TOKEN_RESP

#define CTAP_CBOR_CP_PIN_TOKEN_RESP   0x02

pinToken key value

Definition at line 115 of file ctap_cbor.h.

◆ CTAP_CBOR_CP_REQ_KEY_AGREEMENT

#define CTAP_CBOR_CP_REQ_KEY_AGREEMENT   0x03

keyAgreement key value

Definition at line 200 of file ctap_cbor.h.

◆ CTAP_CBOR_CP_REQ_NEW_PIN_ENC

#define CTAP_CBOR_CP_REQ_NEW_PIN_ENC   0x05

newPinEnc key value

Definition at line 202 of file ctap_cbor.h.

◆ CTAP_CBOR_CP_REQ_PIN_AUTH

#define CTAP_CBOR_CP_REQ_PIN_AUTH   0x04

pinAuth key value

Definition at line 201 of file ctap_cbor.h.

◆ CTAP_CBOR_CP_REQ_PIN_HASH_ENC

#define CTAP_CBOR_CP_REQ_PIN_HASH_ENC   0x06

pinHashEnc key value

Definition at line 203 of file ctap_cbor.h.

◆ CTAP_CBOR_CP_REQ_PIN_PROTOCOL

#define CTAP_CBOR_CP_REQ_PIN_PROTOCOL   0x01

pinProtocol key value

Definition at line 198 of file ctap_cbor.h.

◆ CTAP_CBOR_CP_REQ_SUB_COMMAND

#define CTAP_CBOR_CP_REQ_SUB_COMMAND   0x02

subCommand key value

Definition at line 199 of file ctap_cbor.h.

◆ CTAP_CBOR_CP_RESP_KEY_AGREEMENT

#define CTAP_CBOR_CP_RESP_KEY_AGREEMENT   0x01

KeyAgreement key value.

Definition at line 114 of file ctap_cbor.h.

◆ CTAP_CBOR_CP_RETRIES_RESP

#define CTAP_CBOR_CP_RETRIES_RESP   0x03

retries key value

Definition at line 116 of file ctap_cbor.h.

◆ CTAP_CBOR_CRED_DESC_MAP_SZ

#define CTAP_CBOR_CRED_DESC_MAP_SZ   0x02

CBOR map size of encoded credential description.

Definition at line 49 of file ctap_cbor.h.

◆ CTAP_CBOR_DISPLAY_NAME

#define CTAP_CBOR_DISPLAY_NAME   "displayName"

displayName key string

Definition at line 106 of file ctap_cbor.h.

◆ CTAP_CBOR_GA_REQ_ALLOW_LIST

#define CTAP_CBOR_GA_REQ_ALLOW_LIST   0x03

allowList key value

Definition at line 174 of file ctap_cbor.h.

◆ CTAP_CBOR_GA_REQ_CLIENT_DATA_HASH

#define CTAP_CBOR_GA_REQ_CLIENT_DATA_HASH   0x02

clientDataHash key value

Definition at line 173 of file ctap_cbor.h.

◆ CTAP_CBOR_GA_REQ_EXTENSIONS

#define CTAP_CBOR_GA_REQ_EXTENSIONS   0x04

extensions key value

Definition at line 175 of file ctap_cbor.h.

◆ CTAP_CBOR_GA_REQ_OPTIONS

#define CTAP_CBOR_GA_REQ_OPTIONS   0x05

options key value

Definition at line 176 of file ctap_cbor.h.

◆ CTAP_CBOR_GA_REQ_PIN_AUTH

#define CTAP_CBOR_GA_REQ_PIN_AUTH   0x06

pinAuth key value

Definition at line 177 of file ctap_cbor.h.

◆ CTAP_CBOR_GA_REQ_PIN_PROTOCOL

#define CTAP_CBOR_GA_REQ_PIN_PROTOCOL   0x07

pinProtocol key value

Definition at line 178 of file ctap_cbor.h.

◆ CTAP_CBOR_GA_REQ_RP_ID

#define CTAP_CBOR_GA_REQ_RP_ID   0x01

relying party identifier key value

Definition at line 172 of file ctap_cbor.h.

◆ CTAP_CBOR_GA_RESP_AUTH_DATA

#define CTAP_CBOR_GA_RESP_AUTH_DATA   0x02

authData key value

Definition at line 187 of file ctap_cbor.h.

◆ CTAP_CBOR_GA_RESP_CREDENTIAL

#define CTAP_CBOR_GA_RESP_CREDENTIAL   0x01

credential key value

Definition at line 186 of file ctap_cbor.h.

◆ CTAP_CBOR_GA_RESP_NUMBER_OF_CREDENTIALS

#define CTAP_CBOR_GA_RESP_NUMBER_OF_CREDENTIALS   0x05

numberOfCredentials key value

Definition at line 190 of file ctap_cbor.h.

◆ CTAP_CBOR_GA_RESP_SIGNATURE

#define CTAP_CBOR_GA_RESP_SIGNATURE   0x03

signature key value

Definition at line 188 of file ctap_cbor.h.

◆ CTAP_CBOR_GA_RESP_USER

#define CTAP_CBOR_GA_RESP_USER   0x04

user key value

Definition at line 189 of file ctap_cbor.h.

◆ CTAP_CBOR_GET_INFO_RESP_AAGUID

#define CTAP_CBOR_GET_INFO_RESP_AAGUID   0x03

AAGUID key value.

Definition at line 142 of file ctap_cbor.h.

◆ CTAP_CBOR_GET_INFO_RESP_EXTENSIONS

#define CTAP_CBOR_GET_INFO_RESP_EXTENSIONS   0x02

extensions key value

Definition at line 141 of file ctap_cbor.h.

◆ CTAP_CBOR_GET_INFO_RESP_MAX_MSG_SIZE

#define CTAP_CBOR_GET_INFO_RESP_MAX_MSG_SIZE   0x05

maxMsgSize key value

Definition at line 144 of file ctap_cbor.h.

◆ CTAP_CBOR_GET_INFO_RESP_OPTIONS

#define CTAP_CBOR_GET_INFO_RESP_OPTIONS   0x04

options key value

Definition at line 143 of file ctap_cbor.h.

◆ CTAP_CBOR_GET_INFO_RESP_PIN_PROTOCOLS

#define CTAP_CBOR_GET_INFO_RESP_PIN_PROTOCOLS   0x06

pinProtocol key value

Definition at line 145 of file ctap_cbor.h.

◆ CTAP_CBOR_GET_INFO_RESP_VERSIONS

#define CTAP_CBOR_GET_INFO_RESP_VERSIONS   0x01

versions key value

Definition at line 140 of file ctap_cbor.h.

◆ CTAP_CBOR_INFO_MAP_SZ

#define CTAP_CBOR_INFO_MAP_SZ   0x06

CBOR map size of encoded getInfo response.

Definition at line 34 of file ctap_cbor.h.

◆ CTAP_CBOR_KEY_AGREEMENT_MAP_SZ

#define CTAP_CBOR_KEY_AGREEMENT_MAP_SZ   0x01

CBOR map size of encoded clientPIN keyAgreement.

Definition at line 69 of file ctap_cbor.h.

◆ CTAP_CBOR_MAP_MAX_KEY_LEN

#define CTAP_CBOR_MAP_MAX_KEY_LEN   0x10

Max length of string key in CBOR map.

Definition at line 84 of file ctap_cbor.h.

◆ CTAP_CBOR_MAX_CREDENTIAL_TYPE_LEN

#define CTAP_CBOR_MAX_CREDENTIAL_TYPE_LEN   0x10

Max length of PublicKeyCredentialType string.

Definition at line 89 of file ctap_cbor.h.

◆ CTAP_CBOR_MC_REQ_CLIENT_DATA_HASH

#define CTAP_CBOR_MC_REQ_CLIENT_DATA_HASH   0x01

clientDataHash key value

Definition at line 124 of file ctap_cbor.h.

◆ CTAP_CBOR_MC_REQ_EXCLUDE_LIST

#define CTAP_CBOR_MC_REQ_EXCLUDE_LIST   0x05

excludeList key value

Definition at line 128 of file ctap_cbor.h.

◆ CTAP_CBOR_MC_REQ_EXTENSIONS

#define CTAP_CBOR_MC_REQ_EXTENSIONS   0x06

extensions key value

Definition at line 129 of file ctap_cbor.h.

◆ CTAP_CBOR_MC_REQ_OPTIONS

#define CTAP_CBOR_MC_REQ_OPTIONS   0x07

options key value

Definition at line 130 of file ctap_cbor.h.

◆ CTAP_CBOR_MC_REQ_PIN_AUTH

#define CTAP_CBOR_MC_REQ_PIN_AUTH   0x08

pinAuth key value

Definition at line 131 of file ctap_cbor.h.

◆ CTAP_CBOR_MC_REQ_PIN_PROTOCOL

#define CTAP_CBOR_MC_REQ_PIN_PROTOCOL   0x09

pinProtocol key value

Definition at line 132 of file ctap_cbor.h.

◆ CTAP_CBOR_MC_REQ_PUB_KEY_CRED_PARAMS

#define CTAP_CBOR_MC_REQ_PUB_KEY_CRED_PARAMS   0x04

pubKeyCredParams key value

Definition at line 127 of file ctap_cbor.h.

◆ CTAP_CBOR_MC_REQ_RP

#define CTAP_CBOR_MC_REQ_RP   0x02

relying party key value

Definition at line 125 of file ctap_cbor.h.

◆ CTAP_CBOR_MC_REQ_USER

#define CTAP_CBOR_MC_REQ_USER   0x03

user key value

Definition at line 126 of file ctap_cbor.h.

◆ CTAP_CBOR_MC_RESP_ATT_STMT

#define CTAP_CBOR_MC_RESP_ATT_STMT   0x03

attestation statement key value

Definition at line 164 of file ctap_cbor.h.

◆ CTAP_CBOR_MC_RESP_AUTH_DATA

#define CTAP_CBOR_MC_RESP_AUTH_DATA   0x02

authData key value

Definition at line 163 of file ctap_cbor.h.

◆ CTAP_CBOR_MC_RESP_FMT

#define CTAP_CBOR_MC_RESP_FMT   0x01

attestation statement format identifier key value

Definition at line 162 of file ctap_cbor.h.

◆ CTAP_CBOR_PIN_TOKEN_MAP_SZ

#define CTAP_CBOR_PIN_TOKEN_MAP_SZ   0x01

CBOR map size of encoded pinToken.

Definition at line 54 of file ctap_cbor.h.

◆ CTAP_CBOR_RETRIES_MAP_SZ

#define CTAP_CBOR_RETRIES_MAP_SZ   0x01

CBOR map size of encoded clientPIN retries.

Definition at line 74 of file ctap_cbor.h.

◆ CTAP_CBOR_STR_ALG

#define CTAP_CBOR_STR_ALG   "alg"

algorithm key string

Definition at line 96 of file ctap_cbor.h.

◆ CTAP_CBOR_STR_ICON

#define CTAP_CBOR_STR_ICON   "icon"

icon key string

Definition at line 105 of file ctap_cbor.h.

◆ CTAP_CBOR_STR_ID

#define CTAP_CBOR_STR_ID   "id"

id key string

Definition at line 98 of file ctap_cbor.h.

◆ CTAP_CBOR_STR_NAME

#define CTAP_CBOR_STR_NAME   "name"

name key string

Definition at line 104 of file ctap_cbor.h.

◆ CTAP_CBOR_STR_PACKED

#define CTAP_CBOR_STR_PACKED   "packed"

packed key string

Definition at line 95 of file ctap_cbor.h.

◆ CTAP_CBOR_STR_PUBLIC_KEY

#define CTAP_CBOR_STR_PUBLIC_KEY   "public-key"

public-key key string

Definition at line 100 of file ctap_cbor.h.

◆ CTAP_CBOR_STR_RESIDENT_KEY

#define CTAP_CBOR_STR_RESIDENT_KEY   "rk"

resident key key string

Definition at line 103 of file ctap_cbor.h.

◆ CTAP_CBOR_STR_SIG

#define CTAP_CBOR_STR_SIG   "sig"

signature key string

Definition at line 97 of file ctap_cbor.h.

◆ CTAP_CBOR_STR_TYPE

#define CTAP_CBOR_STR_TYPE   "type"

type key string

Definition at line 99 of file ctap_cbor.h.

◆ CTAP_CBOR_STR_USER_PRESENT

#define CTAP_CBOR_STR_USER_PRESENT   "up"

user presence key string

Definition at line 102 of file ctap_cbor.h.

◆ CTAP_CBOR_STR_USER_VERIFIED

#define CTAP_CBOR_STR_USER_VERIFIED   "uv"

user verification key string

Definition at line 101 of file ctap_cbor.h.

◆ CTAP_CBOR_USER_ENTITY_MAP_SZ

#define CTAP_CBOR_USER_ENTITY_MAP_SZ   0x01

CBOR map size of encoded user entity.

Definition at line 59 of file ctap_cbor.h.

◆ CTAP_CBOR_VERSION_STRING_FIDO

#define CTAP_CBOR_VERSION_STRING_FIDO   "FIDO_2_0"

FIDO 2 flag.

Definition at line 153 of file ctap_cbor.h.

◆ CTAP_CBOR_VERSION_STRING_FIDO_PRE

#define CTAP_CBOR_VERSION_STRING_FIDO_PRE   "FIDO_2_1_PRE"

FIDO 2.1 flag.

Definition at line 152 of file ctap_cbor.h.

◆ CTAP_CBOR_VERSION_STRING_U2F_V2

#define CTAP_CBOR_VERSION_STRING_U2F_V2   "U2F_V2"

U2F V2 flag.

Definition at line 154 of file ctap_cbor.h.

Function Documentation

◆ fido2_ctap_cbor_encode_assertion_object()

ctap_status_code_t fido2_ctap_cbor_encode_assertion_object ( const ctap_auth_data_header_t * auth_data,
const uint8_t * client_data_hash,
ctap_resident_key_t * rk,
uint8_t valid_cred_count )

Encode assertion object.

CTAP specification (version 20190130) section 5.2

Parameters
[in]auth_dataauthenticator data header
[in]client_data_hashSHA-256 hash of JSON serialized client data
[in]rkresident key
[in]valid_cred_countamount of valid credentials found in allow list
Returns
ctap_status_code_t

◆ fido2_ctap_cbor_encode_attestation_object()

ctap_status_code_t fido2_ctap_cbor_encode_attestation_object ( const ctap_auth_data_t * auth_data,
const uint8_t * client_data_hash,
ctap_resident_key_t * rk )

Encode attestation object.

Webauthn specification (version 20190304) section 6.5

Parameters
[in]auth_dataauthenticator data
[in]client_data_hashSHA-256 hash of JSON serialized client data
[in]rkresident key
Returns
ctap_status_code_t

◆ fido2_ctap_cbor_encode_info()

ctap_status_code_t fido2_ctap_cbor_encode_info ( const ctap_info_t * info)

Encode CBOR info map.

CTAP specification (version 20190130) section 5.4

Parameters
[in]infoinformation about capabilities
Returns
ctap_status_code_t

◆ fido2_ctap_cbor_encode_key_agreement()

ctap_status_code_t fido2_ctap_cbor_encode_key_agreement ( const ctap_public_key_cose_t * key)

Encode key agreement.

Parameters
[in]keyPublic key in COSE format
Returns
ctap_status_code_t

◆ fido2_ctap_cbor_encode_pin_token()

ctap_status_code_t fido2_ctap_cbor_encode_pin_token ( uint8_t * token,
size_t len )

Encode encrypted pin token.

Parameters
[in]tokenencrypted pin token
[in]lenlength of token
Returns
ctap_status_code_t

◆ fido2_ctap_cbor_encode_retries()

ctap_status_code_t fido2_ctap_cbor_encode_retries ( uint8_t tries_left)

Encode PIN tries left.

Parameters
[in]tries_leftamount of tries left
Returns
ctap_status_code_t

◆ fido2_ctap_cbor_get_buffer_size()

size_t fido2_ctap_cbor_get_buffer_size ( const uint8_t * buf)

Get size of CBOR encoded data.

Parameters
[in]bufBuffer holding the data
Returns
size of CBOR encoded data

◆ fido2_ctap_cbor_init_encoder()

void fido2_ctap_cbor_init_encoder ( uint8_t * buf,
size_t len )

Initialize CBOR encoder.

Parameters
[in]bufBuffer to hold CBOR encoded data
[in]lenLength of buf

◆ fido2_ctap_cbor_parse_client_pin_req()

ctap_status_code_t fido2_ctap_cbor_parse_client_pin_req ( ctap_client_pin_req_t * req,
const uint8_t * req_raw,
size_t len )

Parse ClientPIN method.

CTAP specification (version 20190130) section 5.5

Parameters
[in]reqstruct to parse into
[in]req_rawraw request
[in]lenlength of req_raw
Returns
ctap_status_code_t

◆ fido2_ctap_cbor_parse_get_assertion_req()

ctap_status_code_t fido2_ctap_cbor_parse_get_assertion_req ( ctap_get_assertion_req_t * req,
const uint8_t * req_raw,
size_t len )

Parse GetAssertion method.

CTAP specification (version 20190130) section 5.2

Parameters
[in]reqstruct to parse into
[in]req_rawraw request
[in]lenlength of req_raw
Returns
ctap_status_code_t

◆ fido2_ctap_cbor_parse_make_credential_req()

ctap_status_code_t fido2_ctap_cbor_parse_make_credential_req ( ctap_make_credential_req_t * req,
const uint8_t * req_raw,
size_t len )

Parse MakeCredential method.

CTAP specification (version 20190130) section 5.1

Parameters
[in]reqstruct to parse into
[in]req_rawraw request
[in]lenlength of req_raw
Returns
ctap_status_code_t