Updated: 2021/Apr/14

BTHCID(8)                   System Manager's Manual                  BTHCID(8)

     bthcid - Bluetooth Link Key/PIN Code Manager

     bthcid [-fn] [-d device] [-m mode] [-s socket_name]
     bthcid [-h]

     The bthcid daemon handles Link Key and PIN code requests for Bluetooth
     devices.  It opens a raw HCI socket and listens for the following HCI

     Link_Key_Request          bthcid scans the /var/db/bthcid.keys file for a
                               cached link key matching the remote device
                               BD_ADDR and, if found, the
                               Link_Key_Request_Reply will be sent back to the
                               device, otherwise the
                               Link_Key_Request_Negative_Reply will be sent.

     Link_Key_Notification     When a new link key is created by the device,
                               it will be cached for future use in the
                               /var/db/bthcid.keys link keys file, which will
                               be created if it does not already exist.

     PIN_Code_Request          The bthcid daemon checks its PIN cache for a
                               matching remote device entry.  If no PIN is
                               found, the bthcid daemon will send a message to
                               any PIN clients that have registered, with the
                               device details and a timeout value.  When no
                               clients are available or the timeout has
                               expired, bthcid will send a
                               PIN_Code_Request_Negative_Reply back to the
                               device.  When a PIN is found, or if a client
                               responds within the timeout period, a
                               PIN_Code_Request_Reply will be sent back to the

                               PINs received from clients will be cached for 5
                               minutes until used, and may be added to the
                               cache prior to pairing with the btpin(1)

     Some of the functionality of bthcid can be handled by the Bluetooth
     controller directly, and cached Link Keys may be examined, deleted or
     moved to device storage using the btkey(1) program.

     The command line options are as follows:

     -d device             Specify the local Bluetooth device address.  The
                           default is BDADDR_ANY.

     -f                    Run in foreground (do not detach).

     -h                    Display usage message and exit.

     -m                    Specify the file mode access bits for the PIN
                           client socket.  The default is to allow readwrite
                           access to user and group (0660).

     -n                    Do not listen for PIN clients.

     -s socket_name        Specify the socket name to listen on for PIN
                           clients.  The default path is /var/run/bthcid.


     btkey(1), btpin(1), bluetooth(4), btconfig(8)

     The bthcid daemon first appeared in FreeBSD 5.3 as hcsecd.  It was ported
     to NetBSD 4.0 with its present name and extended to support PIN clients
     by Iain Hibbert under the sponsorship of Itronix, Inc.

     Maksim Yevmenkin <m_evmenkin@yahoo.com>
     Iain Hibbert

NetBSD 9.99                   September 29, 2006                   NetBSD 9.99