在解析CBOR attestationObject之后,我现在正在尝试解析authData。
其中包括:
https://w3c.github.io/webauthn/#authenticator-data
rpIdHash
flags (包括AT和ED标志)attestedCredentialDataextensions假设AT标志为真,则attestedCredentialData从字节37开始,并包含:
https://w3c.github.io/webauthn/#sctn-attested-credential-data
aaguid
credentialIdLength (字节53 - 55,在许多implementations)credentialIdcredentialPublicKey这意味着我可以得到credentialIdLength,并提取credentialId。
但是credentialPublicKey有多长时间
我可以读到authData的末尾;这就是他们在https://webauthn.guide/上显示的内容:
const publicKeyBytes = authData.slice(55 + credentialIdLength);但是,如果您回顾一下authData,它可能会在此之后包含extensions数据(如果ED标志是真的)。
我发现这个认证概述映像对大部分内容都非常有用:
发布于 2020-01-18 11:35:55
这个问题已经被问到并得到了回答:WebAuthn - byte length of the "credential public key"
简单地说:你不知道长度。无论如何,解析它的一种方法是解析从1开始的大量字节(然后是2,3,.直到CBOR解析成功为止。
https://stackoverflow.com/questions/59799729
复制相似问题