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

# NAME

`bthcid` — Bluetooth Link Key/PIN Code Manager

# SYNOPSIS

`bthcid` | [`-fn`] [`-d` device] [`-m` mode] [`-s` socket_name]

`bthcid` | [`-h`]

# DESCRIPTION

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 events.

`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 device.

  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) utility.

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.

# FILES

/var/db/bthcid.keys
/var/run/bthcid
/var/run/bthcid.pid

# SEE ALSO

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

# HISTORY

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.

# AUTHORS

Maksim Yevmenkin <m_evmenkin@yahoo.com>
Iain Hibbert

September 29, 2006 | NetBSD 10.99