FIDO2 - получить информацию об аутентификаторе - PullRequest
2 голосов
/ 20 июня 2019

Я разрабатываю аутентификатор Android. Я получаю {-125,0,1,4} байтовый массив от клиента webauthn после сопряжения. Когда я декодирую этот массив

-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. Я отправляю команду KEEPALIVE (0x82) со значением PROCESSING (0x01) для каждого kKeepAliveMillis (500 мс). Есть ли проблемы с моей реализацией?

Пожалуйста, помогите мне продолжить это. Заранее спасибо.

1 Ответ

3 голосов
/ 25 июня 2019

Эта спецификация полностью объясняет для вас

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

enter image description here

CMD составляет 0x83 (MSG)

Длина DATA составляет 2 байта: байт HLEN и байт LLEN.

В вашем случае длина DATA составляет 0x0001 (= 1).ДАННЫЕ 0x04

...