在WebAuthn中,验证者数据包含可变长度attested credential data
,后跟extensions
(如果有):
由于attested credential data
字段是CBOR映射,因此credential public key
成为变量。
在有扩展名的情况下,如何预先知道该字段的字节长度,以便我可以将该扩展名没有截断的字段传递给CBOR库?
我正在使用的CBOR库似乎无法处理额外的字节,而且我对CBOR的了解还不足以知道是否有一个技巧可以从其第一个字节(或其他任何技巧)计算映射的字节长度
答案 0 :(得分:0)
据我了解,如果没有先使用支持“额外字节”的CBOR解码器(或COSE密钥解析器)来确定“凭据公钥数据”在哪里,就无法事先知道结束,“扩展数据”开始。
Editors Draft(候选推荐书中尚未提供)对此进行了详细讨论。
确定经验证的凭证数据的长度,该长度是可变的, 涉及确定给定credentialPublicKey的开始位置 前面的credentialId的长度,然后确定 credentialPublicKey的长度(另请参见[RFC8152]的第7节)。
FWIW,也在WebAuthn规范的GitHub问题中进行了讨论,https://github.com/w3c/webauthn/issues/1012