Skip to content
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

where does return value of PublicKeyCredential.getClientExtensionResults() come from? #657

Closed
equalsJeffH opened this issue Oct 18, 2017 · 3 comments · Fixed by #662
Closed

Comments

@equalsJeffH
Copy link
Contributor

equalsJeffH commented Oct 18, 2017

PublicKeyCredential Interface used to look like this:

[SecureContext]
interface PublicKeyCredential : Credential {
  [SameObject] readonly attribute ArrayBuffer              rawId;
  [SameObject] readonly attribute AuthenticatorResponse    response;
  [SameObject] readonly attribute AuthenticationExtensions clientExtensionResults;
};

..and contained the clientExtensionResults. but we can't do that due to webidl reasons, so we have changed it to be (via PR #633)..

[SecureContext, Exposed=Window]
interface PublicKeyCredential : Credential {
    [SameObject] readonly attribute ArrayBuffer              rawId;
    [SameObject] readonly attribute AuthenticatorResponse    response;
    AuthenticationExtensions getClientExtensionResults();
};

However, in trying to re-craft the generation of a PublicKeyCredential object in the context of PR #498, we cannot invoke getClientExtensionResults() to get the client extension results because we're building the PublicKeyCredential object and getClientExtensionResults() is part of said object.

I presume we need to obtain the the client extension output value and stash it somewhere such that it can be returned to RP script when said RP script invokes getClientExtensionResults() ?

To do that, would we need to define an internal slot in PublicKeyCredential which contains ref to an arraybuffer associated with the |global| which contains the bytes of the result of invoking any requested client extensions, and then invocation of getClientExtensionResults() returns (a reference to?) the arraybuffer?

@equalsJeffH equalsJeffH added this to the WD-07 milestone Oct 18, 2017
equalsJeffH added a commit that referenced this issue Oct 19, 2017
* do not call authenticatorMakeCredential() with separate |rpId| fixes #466

* credID returned by authnrGetAssn() is optional if allowCreds has exactly 1 member fixes #472

* fixup global object reference per domenic, improves #472

* indent 4.1.4 step 18et al to clarify relation to prior step

* fix line indent

* do not call authenticatorMakeCredential() with separate |rpId| fixes #466

* credID returned by authnrGetAssn() is optional if allowCreds has exactly 1 member fixes #472

* fixup global object reference per domenic, improves #472

* indent 4.1.4 step 18et al to clarify relation to prior step

* fix line indent

* post rebase-on-master, fix dangling MakeCredentialOptions

* fix error in resolving rebase conflicts

* further rebase conflict resolution error fixups

* convert switch steps to colon-denotation

* tag 'while'

* primary changes for improving #472 mostly complete

* further issue #472 cleanups

* del 'cancel the timer' from #creatCredential fixes #535

* polish constructResultantCredentialCallback method description

* incorp comments from mikewest at webappsec-credential-management/pull/100

* rebased onto master

* credID returned by authnrGetAssn() is optional if allowCreds has exactly 1 member fixes #472

* fixup global object reference per domenic, improves #472

* indent 4.1.4 step 18et al to clarify relation to prior step

* fix line indent

* do not call authenticatorMakeCredential() with separate |rpId| fixes #466

* credID returned by authnrGetAssn() is optional if allowCreds has exactly 1 member fixes #472

* post rebase-on-master, fix dangling MakeCredentialOptions

* fix error in resolving rebase conflicts

* convert switch steps to colon-denotation

* tag 'while'

* primary changes for improving #472 mostly complete

* further issue #472 cleanups

* polish constructResultantCredentialCallback method description

* incorp comments from mikewest at webappsec-credential-management/pull/100

* fix indents make BS happy, add some periods

* fix code tags placement

* correct bugs in prior merge conflict resolution, doh

* rm 'the bytes of'

* add missing @@EDITOR-ANCHOR-01A

* auto-number some steps

* re- fix #466 (due to merge-from-master), fix #536

* eliminate callback and just return an algorithm from #createCredential

* continue fix conflicts from merge from master

* fix a couple of issue #466 stragglers in #op-make-cred

* revert to prior AuthenticationExtensions language per jyasskin

* add inline spec issue pointing to issue #657

* minor cleanups, remove issue wrt not explicitly returning |credentialCreationData|

* fix annoying bikeshed warning wrt 'rpEntity'

* correctly fix warning as well as other incorrect markup
@nadalin
Copy link
Contributor

nadalin commented Oct 23, 2017

@equalsJeffH Where do we stand with this ?

@jcjones
Copy link
Contributor

jcjones commented Oct 24, 2017

This is one of those situations where work is needed for spec-completeness, but this is straightforward for implementation as-is, and isn't ambiguous in terms of interop. I think this could be punted to CR if it needed to be.

@equalsJeffH
Copy link
Contributor Author

see PR #662

jcjones added a commit that referenced this issue Oct 25, 2017
fix #657: where does return value of PublicKeyCredential.getClientExtensionResults() come from?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants