我正在开发android身份验证器,配对后从webauthn客户端获取{-125,0,1,4}字节数组。当我解码这个数组时
-125(0x83)-消息
1(0x01)-数据长度
4(0x04)-身份验证获取信息
我不确定这个数组中是否有0。请让我知道这个0有什么意义。
对于这个请求,我将以cbor数据的形式发送响应。
00A60182684649444F5F325F30665532465F56320816B686D616332D73656372657403506435323965323538353334313663304A462726BF5627570F56706C6174F46966C69656E7450696EF505190400069F01FF
我用fido状态通知上述数据如下。

for (byte[] frame : response.toFrames(mMTU)) {
    getFidoStatus().setValue(frame);
    mGattServer.notifyCharacteristicChanged(device, getFidoStatus(), true);
}

在那之后,我没有从webauthn客户端得到任何请求/响应。我正在为每个kkeepalivemillis(500ms)发送带有值处理(0x01)的keepalive(0x82)命令。我的执行有什么问题吗?
请帮我继续。提前谢谢。

最佳答案

这个规格完全可以解释
https://fidoalliance.org/specs/fido-v2.0-id-20180227/fido-client-to-authenticator-protocol-v2.0-id-20180227.html#ble-framing-fragmentation
android - FIDO2-获取身份验证器信息问题-LMLPHP
命令为0x83(消息)
数据长度为2字节:hlen字节和llen字节。
在您的情况下,数据长度是0x0001(=1)。数据是0x04

10-08 06:58