September 29, 2006 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

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

### HISTORY

The bthcid daemon first appeared in FreeBSD5.3 as hcsecd. It was ported to NetBSD4.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