Sindbad~EG File Manager
<!DOCTYPE html>
<html>
<!-- This is an automatically generated file. Do not edit.
Copyright (c) 2018 Yubico AB. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SPDX-License-Identifier: BSD-2-Clause
-->
<head>
<meta charset="utf-8"/>
<link rel="stylesheet" href="style.css" type="text/css" media="all"/>
<title>FIDO_DEV_OPEN(3)</title>
</head>
<body>
<table class="head">
<tr>
<td class="head-ltitle">FIDO_DEV_OPEN(3)</td>
<td class="head-vol">FreeBSD Library Functions Manual</td>
<td class="head-rtitle">FIDO_DEV_OPEN(3)</td>
</tr>
</table>
<div class="manual-text">
<section class="Sh">
<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
<code class="Nm">fido_dev_open</code>,
<code class="Nm">fido_dev_open_with_info</code>,
<code class="Nm">fido_dev_close</code>,
<code class="Nm">fido_dev_cancel</code>, <code class="Nm">fido_dev_new</code>,
<code class="Nm">fido_dev_new_with_info</code>,
<code class="Nm">fido_dev_free</code>,
<code class="Nm">fido_dev_force_fido2</code>,
<code class="Nm">fido_dev_force_u2f</code>,
<code class="Nm">fido_dev_is_fido2</code>,
<code class="Nm">fido_dev_is_winhello</code>,
<code class="Nm">fido_dev_supports_credman</code>,
<code class="Nm">fido_dev_supports_cred_prot</code>,
<code class="Nm">fido_dev_supports_permissions</code>,
<code class="Nm">fido_dev_supports_pin</code>,
<code class="Nm">fido_dev_supports_uv</code>,
<code class="Nm">fido_dev_has_pin</code>,
<code class="Nm">fido_dev_has_uv</code>,
<code class="Nm">fido_dev_protocol</code>,
<code class="Nm">fido_dev_build</code>,
<code class="Nm">fido_dev_flags</code>,
<code class="Nm">fido_dev_major</code>, <code class="Nm">fido_dev_minor</code>
—
<div class="Nd">FIDO2 device open/close and related functions</div>
</section>
<section class="Sh">
<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
<code class="In">#include <<a class="In">fido.h</a>></code>
<p class="Pp"><var class="Ft">int</var>
<br/>
<code class="Fn">fido_dev_open</code>(<var class="Fa" style="white-space: nowrap;">fido_dev_t
*dev</var>, <var class="Fa" style="white-space: nowrap;">const char
*path</var>);</p>
<p class="Pp"><var class="Ft">int</var>
<br/>
<code class="Fn">fido_dev_open_with_info</code>(<var class="Fa" style="white-space: nowrap;">fido_dev_t
*dev</var>);</p>
<p class="Pp"><var class="Ft">int</var>
<br/>
<code class="Fn">fido_dev_close</code>(<var class="Fa" style="white-space: nowrap;">fido_dev_t
*dev</var>);</p>
<p class="Pp"><var class="Ft">int</var>
<br/>
<code class="Fn">fido_dev_cancel</code>(<var class="Fa" style="white-space: nowrap;">fido_dev_t
*dev</var>);</p>
<p class="Pp"><var class="Ft">fido_dev_t *</var>
<br/>
<code class="Fn">fido_dev_new</code>(<var class="Fa" style="white-space: nowrap;">void</var>);</p>
<p class="Pp"><var class="Ft">fido_dev_t *</var>
<br/>
<code class="Fn">fido_dev_new_with_info</code>(<var class="Fa" style="white-space: nowrap;">const
fido_dev_info_t *</var>);</p>
<p class="Pp"><var class="Ft">void</var>
<br/>
<code class="Fn">fido_dev_free</code>(<var class="Fa" style="white-space: nowrap;">fido_dev_t
**dev_p</var>);</p>
<p class="Pp"><var class="Ft">void</var>
<br/>
<code class="Fn">fido_dev_force_fido2</code>(<var class="Fa" style="white-space: nowrap;">fido_dev_t
*dev</var>);</p>
<p class="Pp"><var class="Ft">void</var>
<br/>
<code class="Fn">fido_dev_force_u2f</code>(<var class="Fa" style="white-space: nowrap;">fido_dev_t
*dev</var>);</p>
<p class="Pp"><var class="Ft">bool</var>
<br/>
<code class="Fn">fido_dev_is_fido2</code>(<var class="Fa" style="white-space: nowrap;">const
fido_dev_t *dev</var>);</p>
<p class="Pp"><var class="Ft">bool</var>
<br/>
<code class="Fn">fido_dev_is_winhello</code>(<var class="Fa" style="white-space: nowrap;">const
fido_dev_t *dev</var>);</p>
<p class="Pp"><var class="Ft">bool</var>
<br/>
<code class="Fn">fido_dev_supports_credman</code>(<var class="Fa" style="white-space: nowrap;">const
fido_dev_t *dev</var>);</p>
<p class="Pp"><var class="Ft">bool</var>
<br/>
<code class="Fn">fido_dev_supports_cred_prot</code>(<var class="Fa" style="white-space: nowrap;">const
fido_dev_t *dev</var>);</p>
<p class="Pp"><var class="Ft">bool</var>
<br/>
<code class="Fn">fido_dev_supports_permissions</code>(<var class="Fa" style="white-space: nowrap;">const
fido_dev_t *dev</var>);</p>
<p class="Pp"><var class="Ft">bool</var>
<br/>
<code class="Fn">fido_dev_supports_pin</code>(<var class="Fa" style="white-space: nowrap;">const
fido_dev_t *dev</var>);</p>
<p class="Pp"><var class="Ft">bool</var>
<br/>
<code class="Fn">fido_dev_supports_uv</code>(<var class="Fa" style="white-space: nowrap;">const
fido_dev_t *dev</var>);</p>
<p class="Pp"><var class="Ft">bool</var>
<br/>
<code class="Fn">fido_dev_has_pin</code>(<var class="Fa" style="white-space: nowrap;">const
fido_dev_t *dev</var>);</p>
<p class="Pp"><var class="Ft">bool</var>
<br/>
<code class="Fn">fido_dev_has_uv</code>(<var class="Fa" style="white-space: nowrap;">const
fido_dev_t *dev</var>);</p>
<p class="Pp"><var class="Ft">uint8_t</var>
<br/>
<code class="Fn">fido_dev_protocol</code>(<var class="Fa" style="white-space: nowrap;">const
fido_dev_t *dev</var>);</p>
<p class="Pp"><var class="Ft">uint8_t</var>
<br/>
<code class="Fn">fido_dev_build</code>(<var class="Fa" style="white-space: nowrap;">const
fido_dev_t *dev</var>);</p>
<p class="Pp"><var class="Ft">uint8_t</var>
<br/>
<code class="Fn">fido_dev_flags</code>(<var class="Fa" style="white-space: nowrap;">const
fido_dev_t *dev</var>);</p>
<p class="Pp"><var class="Ft">uint8_t</var>
<br/>
<code class="Fn">fido_dev_major</code>(<var class="Fa" style="white-space: nowrap;">const
fido_dev_t *dev</var>);</p>
<p class="Pp"><var class="Ft">uint8_t</var>
<br/>
<code class="Fn">fido_dev_minor</code>(<var class="Fa" style="white-space: nowrap;">const
fido_dev_t *dev</var>);</p>
</section>
<section class="Sh">
<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
The <code class="Fn">fido_dev_open</code>() function opens the device pointed to
by <var class="Fa">path</var>, where <var class="Fa">dev</var> is a freshly
allocated or otherwise closed <var class="Vt">fido_dev_t</var>. If
<var class="Fa">dev</var> claims to be FIDO2, <i class="Em">libfido2</i> will
attempt to speak FIDO2 to <var class="Fa">dev</var>. If that fails,
<i class="Em">libfido2</i> will fallback to U2F unless the
<code class="Dv">FIDO_DISABLE_U2F_FALLBACK</code> flag was set in
<a class="Xr" href="fido_init.html">fido_init(3)</a>.
<p class="Pp">The <code class="Fn">fido_dev_open_with_info</code>() function
opens <var class="Fa">dev</var> as previously allocated using
<code class="Fn">fido_dev_new_with_info</code>().</p>
<p class="Pp">The <code class="Fn">fido_dev_close</code>() function closes the
device represented by <var class="Fa">dev</var>. If
<var class="Fa">dev</var> is already closed,
<code class="Fn">fido_dev_close</code>() is a NOP.</p>
<p class="Pp">The <code class="Fn">fido_dev_cancel</code>() function cancels any
pending requests on <var class="Fa">dev</var>.</p>
<p class="Pp">The <code class="Fn">fido_dev_new</code>() function returns a
pointer to a newly allocated, empty <var class="Vt">fido_dev_t</var>. If
memory cannot be allocated, NULL is returned.</p>
<p class="Pp">The <code class="Fn">fido_dev_new_with_info</code>() function
returns a pointer to a newly allocated <var class="Vt">fido_dev_t</var> with
<var class="Vt">fido_dev_info_t</var> parameters, for use with
<a class="Xr" href="fido_dev_info_manifest.html">fido_dev_info_manifest(3)</a>
and <code class="Fn">fido_dev_open_with_info</code>(). If memory cannot be
allocated, NULL is returned.</p>
<p class="Pp">The <code class="Fn">fido_dev_free</code>() function releases the
memory backing <var class="Fa">*dev_p</var>, where
<var class="Fa">*dev_p</var> must have been previously allocated by
<code class="Fn">fido_dev_new</code>(). On return,
<var class="Fa">*dev_p</var> is set to NULL. Either
<var class="Fa">dev_p</var> or <var class="Fa">*dev_p</var> may be NULL, in
which case <code class="Fn">fido_dev_free</code>() is a NOP.</p>
<p class="Pp">The <code class="Fn">fido_dev_force_fido2</code>() function can be
used to force CTAP2 communication with <var class="Fa">dev</var>, where
<var class="Fa">dev</var> is an open device.</p>
<p class="Pp">The <code class="Fn">fido_dev_force_u2f</code>() function can be
used to force CTAP1 (U2F) communication with <var class="Fa">dev</var>,
where <var class="Fa">dev</var> is an open device.</p>
<p class="Pp">The <code class="Fn">fido_dev_is_fido2</code>() function returns
<code class="Dv">true</code> if <var class="Fa">dev</var> is a FIDO2
device.</p>
<p class="Pp">The <code class="Fn">fido_dev_is_winhello</code>() function
returns <code class="Dv">true</code> if <var class="Fa">dev</var> is a
Windows Hello device.</p>
<p class="Pp">The <code class="Fn">fido_dev_supports_credman</code>() function
returns <code class="Dv">true</code> if <var class="Fa">dev</var> supports
CTAP 2.1 Credential Management.</p>
<p class="Pp">The <code class="Fn">fido_dev_supports_cred_prot</code>() function
returns <code class="Dv">true</code> if <var class="Fa">dev</var> supports
CTAP 2.1 Credential Protection.</p>
<p class="Pp">The <code class="Fn">fido_dev_supports_permissions</code>()
function returns <code class="Dv">true</code> if <var class="Fa">dev</var>
supports CTAP 2.1 UV token permissions.</p>
<p class="Pp">The <code class="Fn">fido_dev_supports_pin</code>() function
returns <code class="Dv">true</code> if <var class="Fa">dev</var> supports
CTAP 2.0 Client PINs.</p>
<p class="Pp">The <code class="Fn">fido_dev_supports_uv</code>() function
returns <code class="Dv">true</code> if <var class="Fa">dev</var> supports a
built-in user verification method.</p>
<p class="Pp">The <code class="Fn">fido_dev_has_pin</code>() function returns
<code class="Dv">true</code> if <var class="Fa">dev</var> has a CTAP 2.0
Client PIN set.</p>
<p class="Pp">The <code class="Fn">fido_dev_has_uv</code>() function returns
<code class="Dv">true</code> if <var class="Fa">dev</var> supports built-in
user verification and its user verification feature is configured.</p>
<p class="Pp">The <code class="Fn">fido_dev_protocol</code>() function returns
the CTAPHID protocol version identifier of <var class="Fa">dev</var>.</p>
<p class="Pp">The <code class="Fn">fido_dev_build</code>() function returns the
CTAPHID build version number of <var class="Fa">dev</var>.</p>
<p class="Pp">The <code class="Fn">fido_dev_flags</code>() function returns the
CTAPHID capabilities flags of <var class="Fa">dev</var>.</p>
<p class="Pp">The <code class="Fn">fido_dev_major</code>() function returns the
CTAPHID major version number of <var class="Fa">dev</var>.</p>
<p class="Pp">The <code class="Fn">fido_dev_minor</code>() function returns the
CTAPHID minor version number of <var class="Fa">dev</var>.</p>
<p class="Pp">For the format and meaning of the CTAPHID parameters returned by
functions above, please refer to the FIDO Client to Authenticator Protocol
(CTAP) specification.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="RETURN_VALUES"><a class="permalink" href="#RETURN_VALUES">RETURN
VALUES</a></h1>
On success, <code class="Fn">fido_dev_open</code>(),
<code class="Fn">fido_dev_open_with_info</code>(), and
<code class="Fn">fido_dev_close</code>() return
<code class="Dv">FIDO_OK</code>. On error, a different error code defined in
<code class="In"><<a class="In">fido/err.h</a>></code> is returned.
</section>
<section class="Sh">
<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
ALSO</a></h1>
<a class="Xr" href="fido_dev_info_manifest.html">fido_dev_info_manifest(3)</a>,
<a class="Xr" href="fido_dev_set_io_functions.html">fido_dev_set_io_functions(3)</a>,
<a class="Xr" href="fido_init.html">fido_init(3)</a>
</section>
</div>
<table class="foot">
<tr>
<td class="foot-date">May 25, 2018</td>
<td class="foot-os">Yubico AB</td>
</tr>
</table>
</body>
</html>
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists