Re: Issue: Sending ATT Signed Write Command via btgatt-client

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Ankur,

On Thursday 28 of May 2015 18:07:48 Ankur Patel wrote:
> > Hi Ankur,
> > 
> > On Thursday 28 of May 2015 16:47:09 Ankur Patel wrote:
> > > Hello Folks,
> > > 
> > > I would like to Send Signed Write command to modify a characteristic
> > > on the Host. It failed into the Error: Failed to initiate write
> > > without response procedure
> > > 
> > > Information on Controller (May be helpful):
> > > root@imx28evk:~# cat /proc/crypto
> > > name         : ecb(aes)
> > > driver       : ecb-aes-dcp
> > > module       : kernel
> > > priority     : 400
> > > refcnt       : 1
> > > selftest     : passed
> > > type         : ablkcipher
> > > async        : yes
> > > blocksize    : 16
> > > min keysize  : 16
> > > max keysize  : 32
> > > ivsize       : 0
> > > geniv        : <default>
> > > 
> > > root@imx28evk:~# btmgmt info
> > > Index list with 1 item
> > > hci0:   Primary controller
> > > 
> > >         addr 1C:BA:8C:86:81:21 version 6 manufacturer 13 class 0x000000
> > >         supported settings: powered connectable fast-connectable
> > > 
> > > discoverable bondable link-security ssp br/edr hs le advertising
> > > debug-keys privacy current settings: powered connectable discoverable
> > > bondable link-security br/edr le advertising name testbt
> > > 
> > >         short name
> > > 
> > > root@imx28evk:~/tools# btgatt-client -d 00:1B:DC:07:2E:85 Connecting
> > > to device... Done Service Added - UUID:
> > > 00001800-0000-1000-8000-00805f9b34fb start: 0x0001
> > > end: 0x000d Service Added - UUID: 00001801-0000-1000-8000-00805f9b34fb
> > > start: 0x0014 end: 0x0016 [GATT client]# GATT discovery procedures
> > > complete [GATT client]# ...
> > > [GATT client]# set-sign-key -c efcdab8967452301efcdab8967452301 [GATT
> > > client]# write-value -s -w 0xd 01 Failed to initiate write without
> > > response procedure
> > > 
> > > I tried to trace the error as:
> > > bt_gatt_client_write_without_response(..) -> bt_att_send(..) ->
> > > create_att_send_op(..) -> encode_pdu(..) -> bt_crypto_sign_att(..) ->
> > > As
> > > att->crypto is NULL it returns false.
> > > 
> > > I tried to check the reason for att->crypto to be NULL. Found that
> > > while initialization of the btgatt-client, under bt_crypto_new() ->
> > > crypto->ecb_aes = ecb_aes_setup();. It fails under ecb_aes_setup
> > 
> > function.
> > 
> > > From the output of /proc/crypto, the kernel has the support. I am
> > > wondering how to enable the crypto?
> > 
> > Most likely following options are missing in your kernel configuration:
> > CONFIG_CRYPTO_CMAC
> > CONFIG_CRYPTO_USER_API
> > CONFIG_CRYPTO_USER_API_HASH
> > CONFIG_CRYPTO_USER_API_SKCIPHER
> 
> It Worked!!. Thank you Szymon for quick response.
> 
> Now I am able to send the Signed Write Command but without Authentication
> Signature. If I understood it correctly, 1) Set the Signature using  [GATT
> client]# set-sign-key -c efcdab8967452301efcdab8967452301 2) Execute
> command: write-value -s -w 0xd 01  to send write command.
> 
>  I couldn't able to see the signature on the Sniffer.
> In addition on the Controller I see below output of root@imx28evk:~#Btmon:
> 
> < ACL Data TX: Handle 1025 flags 0x00 dlen 20                               
>                                                                            
>                                                                            
>               [hci0] 2394.331806 ATT: Signed Write Command (0xd2) len 15
>         0d 00 01 03 00 00 00 47 8a ec df 50 fc a5 ba     .......G...P...

This looks OK to me.
0d 00    01     03 00 00 00 47 8a ec df 50 fc a5 ba
handle   data   signature


Check CoreSpec 4.2 Vol3, Part F, p. 3.4.5.4 (pdf page 2194) for details.

-- 
BR
Szymon Janc
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux