WebAuthn - "credential public key" 的字节长度

WebAuthn - byte length of the "credential public key"

在 WebAuthn 中,身份验证器数据包含可变长度 attested credential data,后跟 extensions,如果有的话:

由于 credential public key 字段是 CBOR 映射,因此 attested credential data 可变。

如果有扩展,如何提前知道这个字段的字节长度,以便我可以将这个字段截断而不传递给 CBOR 库?

我正在使用的 CBOR 库似乎无法处理额外的字节,而且我对 CBOR 的了解还不足以知道是否有技巧可以从映射的第一个字节(或任何其他字节)计算其字节长度把戏)。

据我了解,如果不首先使用支持 "extra bytes" 的 CBOR 解码器(或 COSE 密钥解析器),无法提前知道,以确定"credential public key data" 结束,"extension data" 开始。

WebAuthn Level 2 Draft.

中有一个额外的注释对此进行了讨论

Determining attested credential data's length, which is variable, involves determining credentialPublicKey’s beginning location given the preceding credentialId’s length, and then determining the credentialPublicKey’s length (see also Section 7 of [RFC8152]).

FWIW,在 WebAuthn 规范的 GitHub 问题中也有讨论 https://github.com/w3c/webauthn/issues/1012