PIN and UV

API Role
fido_dev_has_pin() Whether a PIN is configured.
fido_dev_set_pin() Set or change a PIN.
fido_dev_get_retry_count() Read remaining PIN retries.
fido_dev_get_uv_retry_count() Read UV retries if supported.
fido_cred_set_uv() / fido_assert_set_uv() Control user-verification policy for the operation.

User verification may use a PIN, built-in biometrics, or a platform authenticator.

The PIN parameter of fido_dev_make_cred() and fido_dev_get_assert() is a nullable UTF-8 string. Supply it when needed; NULL is valid when the operation does not require it.

PIN retries are limited: never retry automatically. Handle cancellation, absent PIN, and device errors separately.