[w3c/webauthn] d1ac4d: Represent binary data as ArrayBuffers instead of b...

  Branch: refs/heads/vijaybh/61-buffers
  Home:   https://github.com/w3c/webauthn
  Commit: d1ac4d61c375f909ee31e2dc839e01bcc76a3730
      https://github.com/w3c/webauthn/commit/d1ac4d61c375f909ee31e2dc839e01bcc76a3730
  Author: Vijay Bharadwaj <vijaybh@users.noreply.github.com>
  Date:   2016-04-30 (Sat, 30 Apr 2016)

  Changed paths:
    M index.src.html

  Log Message:
  -----------
  Represent binary data as ArrayBuffers instead of base64-encoded DOMStrings

Fixes #61.

I switched the main API completely from base64-encoded DOMStrings to
Buffersource (for input parameters) and ArrayBuffer (for output
parameters). The actual signatures are still computed over the same data
as before, so signatures computed after this change will be compatible
with those computed before, except for being represented differently.

I moved the ClientData section into the Authenticator model section
since it is not directly used by script authors. This structure still
does base64 encoding of the challenge, for two reasons. First, this
maintains backward compatibility. Second, it is more natural to
represent a binary challenge in JSON as base64 rather than the clunky
array notation.

I would like to advocate for also changing the rawData in the TPM and
packed attestation formats to ArrayBuffers so we can sign directly over
the data without base64 encoding. That would seem to simplify
processing. However this would break compatibility so I would like to
gather opinions from the group before making that change. On the bright
side, I do not know of any implementations producing WebAuthn
attestation statements in these formats yet.

Received on Saturday, 30 April 2016 07:56:35 UTC