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 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... 
> HCI Event: Number of Completed Packets (0x13) plen 5                                                                                                                                                                                             [hci0] 2394.462600
        Num handles: 1
        Handle: 1025
        Count: 1

Regards,
Ankur
> --
> 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