首页 > 解决方案 > FIDO2 - 获取身份验证器信息问题

问题描述

我正在开发 Android 身份验证器。配对后,我从 webauthn 客户端获取 {-125,0,1,4} 字节数组。当我解码这个数组时

-125 (0x83) - MSG
1 (0x01) - 数据长度
4 (0x04) - AuthenticatorGetInfo

我不确定这个数组中的 0 。请让我知道这个 0 是否有任何含义。

对于这个请求,我将响应作为 CBOR 数据发送。

00a60182684649444f5f325f30665532465f563202816b686d61632d73656372657403506435323965353235383533343133663304a462726bf5627570f564706c6174f469636c69656e7450696ef505190400069f01ff

我正在使用 Fido Status 通知上述数据,如下所示。

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

之后,我没有收到来自 webauthn 客户端的任何请求/响应。我正在为每个 kKeepAliveMillis(500ms) 发送值为 PROCESSING(0x01) 的 KEEPALIVE(0x82) 命令。我的实施有什么问题吗?

请帮助我进行此操作。提前致谢。

标签: androidbluetooth-lowenergyandroid-authenticatorwebauthnfido

解决方案


本规范为您全面讲解

https://fidoalliance.org/specs/fido-v2.0-id-20180227/fido-client-to-authenticator-protocol-v2.0-id-20180227.html#ble-framing-fragmentation

在此处输入图像描述

CMD 是 0x83 (味精)

DATA 的长度为 2 个字节:HLEN 字节和 LLEN 字节。

在您的情况下, DATA 的长度为 0x0001 (= 1)。数据为 0x04


推荐阅读