1

我正在尝试开发一个 fido2 iOS BLE 身份验证器。截至目前,Can 能够宣传我的身份验证器并将其与 webauthn 客户端配对。在客户端验证我的广告数据后,它正在向“controlPoint”特征写入“authenticatorGetInfo(83000104)”请求。

根据 fido 规范,将以下响应发送到authenticatorGetInfo,

没有 cbor

{
3 = "EF6CF220-7066-4808-AA22-345C7888BC3F";
1 = ("FIDO_2_0");
}

使用 cbor 编码

[162、1、129、104、70、73、68、79、95、50、95、48、3、120、36、69、70、54、67、70、50、50、48、45、55 , 48, 54, 54, 45, 52, 56, 48, 56, 45, 65, 65, 50, 50, 45, 51, 52, 53, 67, 55, 56, 56, 56, 66, 67, 51 , 70]

发送响应后,收到 Fido2 一致性工具抛出的以下错误。我的问题是,CBOR 编码有什么问题吗?或者我在这里做错了什么?

Authr-Generic-1 Generic FIDO protocol tests
P-1 Send a valid CTAP2 GetInfo request, wait for the response and check that: (a) CTAP2 responseCode is CTAP1_ERR_SUCCESS(0x00) (b) Check that version(0x01) field is presented and is set to "FIDO_2_0" (c) Check that aaguid(0x03) field is presented and is 16 bytes long (d) If GetInfo contains extensions(0x03) field, check that its of type SEQUENCE, and only contains STRINGS (e) If GetInfo contains options(0x04) field, check that its of type MAP (f) If GetInfo contains maxMsgSize(0x05) field, check that its of type NUMBER (g) If GetInfo contains pinProtocols(0x06) field, check that its of type SEQUENCE, and only contains NUMBERS
‣

TypeError: Cannot read property '1' of undefined
    at r.it (eval at compileCode (js/sandbox.js:25:26), <anonymous>:3465:58)
    at e (js/vendor/mocha.min.js:1:39758)
    at s.run (js/vendor/mocha.min.js:1:39694)
    at h.runTest (js/vendor/mocha.min.js:1:45264)
    at file:///Applications/fido-conformance-tools-electron.app/Contents/Resources/app/app/js/vendor/mocha.min.js:1:46126
    at r (js/vendor/mocha.min.js:1:44576)
    at file:///Applications/fido-conformance-tools-electron.app/Contents/Resources/app/app/js/vendor/mocha.min.js:1:44645
    at r (js/vendor/mocha.min.js:1:44051)
    at file:///Applications/fido-conformance-tools-electron.app/Contents/Resources/app/app/js/vendor/mocha.min.js:1:44463
    at c (js/vendor/mocha.min.js:1:1064)
P-2 If GetInfo contains Options field: Check that every option in options is of type Boolean. Additionally: (a) If "up" is set to true, check that metadata.userVerificationDetails contains VerificationMethodDescriptor that has "userVerification" set to USER_VERIFY_PRESENCE (b) If "uv" is set to true, check that metadata.userVerificationDetails contains VerificationMethodDescriptor that has "userVerification" set to either of USER_VERIFY_PASSCODE/FINGERPRINT/VOICEPRINT/FACEPRINT/EYEPRINT/HANDPRINT/PATTERN (c) If "uv" and "up" is false, check that metadata.userVerificationDetails contains VerificationMethodDescriptor that has "userVerification" set to either of USER_VERIFY_NONE
‣ 

TypeError: Cannot read property '4' of undefined
    at r.it (eval at compileCode (js/sandbox.js:25:26), <anonymous>:3501:55)
    at e (js/vendor/mocha.min.js:1:39758)
    at s.run (js/vendor/mocha.min.js:1:39694)
    at h.runTest (js/vendor/mocha.min.js:1:45264)
    at file:///Applications/fido-conformance-tools-electron.app/Contents/Resources/app/app/js/vendor/mocha.min.js:1:46126
    at r (js/vendor/mocha.min.js:1:44576)
    at file:///Applications/fido-conformance-tools-electron.app/Contents/Resources/app/app/js/vendor/mocha.min.js:1:44645
    at r (js/vendor/mocha.min.js:1:44051)
    at file:///Applications/fido-conformance-tools-electron.app/Contents/Resources/app/app/js/vendor/mocha.min.js:1:44463
    at c (js/vendor/mocha.min.js:1:1064)
P-3 If GetInfo contains PinProtocols, and it is not empty, check that Metadata.userVerificationDetails contains VerificationMethodDescriptor set to USER_VERIFY_PASSCODE
‣

TypeError: Cannot read property '6' of undefined
    at r.it (eval at compileCode (js/sandbox.js:25:26), <anonymous>:3537:60)
    at e (js/vendor/mocha.min.js:1:39758)
    at s.run (js/vendor/mocha.min.js:1:39694)
    at h.runTest (js/vendor/mocha.min.js:1:45264)
    at file:///Applications/fido-conformance-tools-electron.app/Contents/Resources/app/app/js/vendor/mocha.min.js:1:46126
    at r (js/vendor/mocha.min.js:1:44576)
    at file:///Applications/fido-conformance-tools-electron.app/Contents/Resources/app/app/js/vendor/mocha.min.js:1:44645
    at r (js/vendor/mocha.min.js:1:44051)
    at file:///Applications/fido-conformance-tools-electron.app/Contents/Resources/app/app/js/vendor/mocha.min.js:1:44463
    at c (js/vendor/mocha.min.js:1:1064) . 
4

0 回答 0