-
Notifications
You must be signed in to change notification settings - Fork 172
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
UAs can't pass unknown extensions to authenticators #738
Comments
Yes, https://tools.ietf.org/html/rfc7049#section-4.2 plus applying our canonicalization rules is what is expected. You're right that if floating point is present, our canonicalization can't be performed, in which case, that extension would be dropped. We can say those things explicitly if would make things clearer. |
We should say that explicitly, with tweaks since we're starting from JS objects instead of serialized JSON. Consider starting from a copy of https://tc39.github.io/ecma262/#sec-json.stringify to make sure we handle all cases. We should probably also ban individual extensions from defining their own conversion-to-CBOR rules to avoid the need for authenticators to parse two formats. |
From the discussion today: Mike envisions that browsers will do generic transcoding of unknown extensions, but that extensions may also define a specific transcoding function for browsers that understand it. Thus tokens have to be able to handle either and the specific function must be careful not to be ambiguous with the generic output. I think the generic transcoding needs to be more precisely defined. (For example, I assume that floats are banned and that ArrayBuffer turns into |
this issue is essentially un-triaged (no assignee, no milestone) -- at least which milestone do we feel it ought to be assigned to? |
I'll take a stab at this at the same time as the other extensions work. |
I will write a PR addressing the rest of this issue shortly. |
Mike will write a PR and ask @agl and @equalsJeffH to review it. |
https://w3c.github.io/webauthn/#extensions claims that
However,
1.9
be sent as-is, rejected, or converted to an integer first? If it's sent as-is, as suggested by the RFC, we'll need to extend CTAP's definition of canonical CBOR, which doesn't support floating point values.To keep things simple, I suggest requiring that UAs drop unknown extensions instead of forwarding them. If someone disagrees, I'd like them to write a PR defining the generic conversion from JS objects to CBOR that UAs are supposed to use.
The text was updated successfully, but these errors were encountered: