Subject: CVS commit: src
To: None <source-changes@NetBSD.org>
From: Iain Hibbert <plunky@netbsd.org>
List: source-changes
Date: 04/21/2007 06:15:24
Module Name:	src
Committed By:	plunky
Date:		Sat Apr 21 06:15:24 UTC 2007

Modified Files:
	src/share/man/man4: bluetooth.4 bthidev.4
	src/share/man/man9: bluetooth.9
	src/sys/dev/bluetooth: btdev.h bthidev.c btsco.c
	src/sys/netbt: bluetooth.h hci.h hci_event.c hci_link.c l2cap.h
	    l2cap_lower.c l2cap_misc.c l2cap_signal.c l2cap_socket.c
	    l2cap_upper.c rfcomm.h rfcomm_dlc.c rfcomm_session.c
	    rfcomm_socket.c rfcomm_upper.c sco_socket.c
	src/usr.bin/rfcomm_sppd: rfcomm_sppd.1 rfcomm_sppd.c
	src/usr.sbin/btdevctl: btdevctl.8 btdevctl.c btdevctl.h db.c print.c
	    sdp.c

Log Message:
Add 'service level' security for L2CAP and RFCOMM connections, following
the Linux (BlueZ) API.

    - L2CAP or RFCOMM connections can require the baseband radio link
    mode be any of:
	authenticated (devices are paired)
	encrypted (implies authentication)
	secured (encryption, plus generate new link key)

    - for sockets, the mode is set using setsockopt(2) and the socket
    connection will be aborted if the mode change fails.

    - mode settings will be applied during connection establishment, and
    for safety, we enter a wait state and will only proceed when the mode
    settings are successfuly set.

    - It is possible to change the mode on already open connections, but
    not possible to guarantee that data already queued (from either end)
    will not be delivered. (this is a feature, not a bug)

    - bthidev(4) and rfcomm_sppd(1) support "auth", "encrypt" and
    "secure" options

    - btdevctl(8) by default enables "auth" for HIDs, and "encrypt" for
    keyboards (which are required to support it)


To generate a diff of this commit:
cvs rdiff -r1.4 -r1.5 src/share/man/man4/bluetooth.4
cvs rdiff -r1.7 -r1.8 src/share/man/man4/bthidev.4
cvs rdiff -r1.1 -r1.2 src/share/man/man9/bluetooth.9
cvs rdiff -r1.5 -r1.6 src/sys/dev/bluetooth/btdev.h
cvs rdiff -r1.7 -r1.8 src/sys/dev/bluetooth/bthidev.c
cvs rdiff -r1.13 -r1.14 src/sys/dev/bluetooth/btsco.c
cvs rdiff -r1.4 -r1.5 src/sys/netbt/bluetooth.h src/sys/netbt/l2cap.h
cvs rdiff -r1.9 -r1.10 src/sys/netbt/hci.h
cvs rdiff -r1.5 -r1.6 src/sys/netbt/hci_event.c src/sys/netbt/l2cap_lower.c \
    src/sys/netbt/rfcomm_upper.c
cvs rdiff -r1.10 -r1.11 src/sys/netbt/hci_link.c
cvs rdiff -r1.2 -r1.3 src/sys/netbt/l2cap_misc.c src/sys/netbt/rfcomm.h \
    src/sys/netbt/rfcomm_dlc.c
cvs rdiff -r1.6 -r1.7 src/sys/netbt/l2cap_signal.c \
    src/sys/netbt/l2cap_socket.c src/sys/netbt/l2cap_upper.c \
    src/sys/netbt/rfcomm_socket.c
cvs rdiff -r1.8 -r1.9 src/sys/netbt/rfcomm_session.c \
    src/sys/netbt/sco_socket.c
cvs rdiff -r1.4 -r1.5 src/usr.bin/rfcomm_sppd/rfcomm_sppd.1
cvs rdiff -r1.6 -r1.7 src/usr.bin/rfcomm_sppd/rfcomm_sppd.c
cvs rdiff -r1.3 -r1.4 src/usr.sbin/btdevctl/btdevctl.8 \
    src/usr.sbin/btdevctl/btdevctl.c
cvs rdiff -r1.2 -r1.3 src/usr.sbin/btdevctl/btdevctl.h \
    src/usr.sbin/btdevctl/db.c src/usr.sbin/btdevctl/sdp.c
cvs rdiff -r1.7 -r1.8 src/usr.sbin/btdevctl/print.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.