2006-07-31 18:11:06

by Stefan Seyfried

[permalink] [raw]
Subject: Re: [Bluez-devel] Addition for hcid passkey dbus request

Hi Daniel,

On Mon, Jul 31, 2006 at 08:07:22PM +0200, Daniel Gollub wrote:

> I planned to register kbluetoothd as default passkey agent and listen for=
all =

> passkey request. Have to recjet this and think about a new solution. I am =


I believe that you still can do this.

> confused now, how to achieve that the pin dialog now can detect if it is =
the =

> initiator side. When another application triggers the pairing without cal=
ling =

> CreateBonding().

Well, improve kbluetoothd in a way, that it is just way more convenient
to pair devices by using it than with any other application :-)
Once you know that you initiated the pairing, you can pre-fill the pin
field with a generated value.

Basically, i think we do not want many applications doing the pairing
stuff, there should be one application (per desktop environment...), that
handles this stuff well in a centralized place. For KDE, this could be
kbluetoothd (or maybe a control-center plugin, which could then communicate
with kbluetoothd). This probably give the best user experience.

-- =

Stefan Seyfried | "Please, just tell people
QA / R&D Team Mobile Devices | to use KDE."
SUSE LINUX Products GmbH, N=FCrnberg | -- Linus Torvalds

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=3Djoin.php&p=3Dsourceforge&CID=3DDE=
VDEV
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel

2006-07-31 18:07:22

by Daniel Gollub

[permalink] [raw]
Subject: Re: [Bluez-devel] Addition for hcid passkey dbus request

On Monday 31 July 2006 21:17, Marcel Holtmann wrote:
> you can't bind incoming or outgoing connections with the assumption that
> this implies the initiator of the authentication request. It is not
> working this way. Both are two independent procedures (except for
> security mode 3, which is not really supported by BlueZ anymore).
i wasn't aware of this. thanks!

>
> So if you wanna have a random key generated on one side, then you need
> to be the initiator of the pairing request. This can be achieved with
> calling CreateBonding() and in this case you can register a device
> specific passkey agent to create your random number.
>
> The default passkey agent is really meant to be default. It will do the
> same task for every pairing request. If you need a specific, like random
> number or fixed PIN then use a per device passkey agent.

Thanks for the hint!

I planned to register kbluetoothd as default passkey agent and listen for all
passkey request. Have to recjet this and think about a new solution. I am
confused now, how to achieve that the pin dialog now can detect if it is the
initiator side. When another application triggers the pairing without calling
CreateBonding().

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel

2006-07-31 19:17:52

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [Bluez-devel] Addition for hcid passkey dbus request

Hi Daniel,

> > someone has to convince me, why the direction information is needed at
> > all. If I remember correctly, then we dropped it on purpose. I simply
> > don't see any useful need for it. Except maybe displaying the "incoming"
> > or "outgoing" and this doesn't really have to do anything with the
> > pairing process.
>
> The pin dialog has to know if the user have to reply a pin from an incoming
> pairing request from another device (only provide a plain input field). Or if
> the pin dialog can suggest a randomly generated pin which have to be replied
> by the other device.
>
> Example:
>
> Outgoing Connection
> The user on the computer triggers a pairing request (outgoing connection). The
> pin get randomly generated and displayed in the pairing dialog and have to
> replied by the cellphone.
>
> Incoming Connection
> The user triggers a pairing from the cellphone with the computer (incoming
> connection). A pin dialog appears on the computer with an input filed to
> reply the same pin.

you can't bind incoming or outgoing connections with the assumption that
this implies the initiator of the authentication request. It is not
working this way. Both are two independent procedures (except for
security mode 3, which is not really supported by BlueZ anymore).

So if you wanna have a random key generated on one side, then you need
to be the initiator of the pairing request. This can be achieved with
calling CreateBonding() and in this case you can register a device
specific passkey agent to create your random number.

The default passkey agent is really meant to be default. It will do the
same task for every pairing request. If you need a specific, like random
number or fixed PIN then use a per device passkey agent.

Regards

Marcel



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel

2006-07-31 16:50:09

by Daniel Gollub

[permalink] [raw]
Subject: Re: [Bluez-devel] Addition for hcid passkey dbus request

On Monday 31 July 2006 20:11, Marcel Holtmann wrote:
> someone has to convince me, why the direction information is needed at
> all. If I remember correctly, then we dropped it on purpose. I simply
> don't see any useful need for it. Except maybe displaying the "incoming"
> or "outgoing" and this doesn't really have to do anything with the
> pairing process.

The pin dialog has to know if the user have to reply a pin from an incoming
pairing request from another device (only provide a plain input field). Or if
the pin dialog can suggest a randomly generated pin which have to be replied
by the other device.

Example:

Outgoing Connection
The user on the computer triggers a pairing request (outgoing connection). The
pin get randomly generated and displayed in the pairing dialog and have to
replied by the cellphone.

Incoming Connection
The user triggers a pairing from the cellphone with the computer (incoming
connection). A pin dialog appears on the computer with an input filed to
reply the same pin.

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel

2006-07-31 18:11:39

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [Bluez-devel] Addition for hcid passkey dbus request

Hi Johan,

> > i am started working for the bluez dbus integration for kdebluetooth. The
> > kdebluetooth pin dialog for pairing has a pin generation feature for outgoing
> > pairing requests. This requires that hcid also provides connection
> > information about the pairing. A hcid patch is attached, which sends a
> > enhanced passkey request with the connection direction. This requires changes
> > on all application which handle as passkey agents. Is there a better solution
> > expect dropping the pin generation feature?
>
> I think a better solution could be to add a new method to hcid for
> querying the connection direction (it would take the local adapter path
> and remote address as parameters). This way the current passkey agent
> interface would not have to be changed.

someone has to convince me, why the direction information is needed at
all. If I remember correctly, then we dropped it on purpose. I simply
don't see any useful need for it. Except maybe displaying the "incoming"
or "outgoing" and this doesn't really have to do anything with the
pairing process.

Regards

Marcel



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel

2006-07-31 13:26:52

by Johan Hedberg

[permalink] [raw]
Subject: Re: [Bluez-devel] Addition for hcid passkey dbus request

Hi Daniel,

On Mon, Jul 31, 2006, Daniel Gollub wrote:
> i am started working for the bluez dbus integration for kdebluetooth. The
> kdebluetooth pin dialog for pairing has a pin generation feature for outgoing
> pairing requests. This requires that hcid also provides connection
> information about the pairing. A hcid patch is attached, which sends a
> enhanced passkey request with the connection direction. This requires changes
> on all application which handle as passkey agents. Is there a better solution
> expect dropping the pin generation feature?

I think a better solution could be to add a new method to hcid for
querying the connection direction (it would take the local adapter path
and remote address as parameters). This way the current passkey agent
interface would not have to be changed.

Johan

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel

2006-07-31 22:21:35

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [Bluez-devel] Addition for hcid passkey dbus request

Hi Daniel,

> > So if you wanna have a random key generated on one side, then you need
> > to be the initiator of the pairing request. This can be achieved with
> > calling CreateBonding() and in this case you can register a device
> > specific passkey agent to create your random number.
> >
> > The default passkey agent is really meant to be default. It will do the
> > same task for every pairing request. If you need a specific, like random
> > number or fixed PIN then use a per device passkey agent.
>
> Thanks for the hint!
>
> I planned to register kbluetoothd as default passkey agent and listen for all
> passkey request. Have to recjet this and think about a new solution. I am
> confused now, how to achieve that the pin dialog now can detect if it is the
> initiator side. When another application triggers the pairing without calling
> CreateBonding().

see my other email for how this is supposed to work. And you should play
with the example passkey-agent from bluez-utils source. This one can be
a default or a device specific passkey-agent. Then you will understand
how this is working.

Regards

Marcel



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel

2006-07-31 22:15:15

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [Bluez-devel] Addition for hcid passkey dbus request

Hi Stefan,

> > I planned to register kbluetoothd as default passkey agent and listen for all
> > passkey request. Have to recjet this and think about a new solution. I am
>
> I believe that you still can do this.
>
> > confused now, how to achieve that the pin dialog now can detect if it is the
> > initiator side. When another application triggers the pairing without calling
> > CreateBonding().
>
> Well, improve kbluetoothd in a way, that it is just way more convenient
> to pair devices by using it than with any other application :-)
> Once you know that you initiated the pairing, you can pre-fill the pin
> field with a generated value.
>
> Basically, i think we do not want many applications doing the pairing
> stuff, there should be one application (per desktop environment...), that
> handles this stuff well in a centralized place. For KDE, this could be
> kbluetoothd (or maybe a control-center plugin, which could then communicate
> with kbluetoothd). This probably give the best user experience.

don't try to over-engineer this. We thought about all this stuff
already. You can make kbluetoothd the default passkey agent and then you
can register a device specific passkey agent. This stuff is stacked and
hcid will first look for a device specific agent before calling the
default agent.

So you need a default passkey agent that will be always available (take
care of D-Bus disconnects btw.) and it has to handle unexpected pairing
requests. In the case you connect to a phone and you want to pair (in
somekind of connection wizard), then you register a device specific
passkey agent and call CreateBonding(). It is that simple.

If something is actually not working as expect or documented in
dbus-api.txt then this might be simply a bug. The current D-Bus API for
BlueZ should be enough to handle all basic tasks. We thought really
careful about all methods and signals that are needed. However we might
have missed something, but you need a good argument to convince me that
something additional is needed.

Regards

Marcel



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel