gecko-dev/dom/crypto
J.C. Jones e6dd50ba10 Bug 1309284 - Implement W3C Web Authentication JS API [part 1] r=keeler,qdot
This patch implements the W3C Web Authentication API from
https://www.w3.org/TR/webauthn/, currently the 28 September 2016
working draft.

It utilizes a tentative binding of the U2F NSS Soft Token to provide
authentication services while waiting on Bug 1245527 to support USB HID-based
U2F tokens. This binding is not in the specification yet, so it should be
considered an experiment to help the specification move fowrard.

There are also a handful of deviations from the specification's WebIDL, which
are annotated with comments in WebAuthentication.webidl.

There are no tests in this commit; they are in Part 4 of this commit series.
There is a small script online at https://webauthn.bin.coffee/ to exercise this
code, but it doesn't do any automated checks.

There are also a handful of TODOS:
1) The algorithm to relax the same-origin restriction is in Part 3.
2) The use of AlgorithmIdentifier and having a way to coerce an object to a
   string is still missing.
3) Timeouts and deadlines aren't there, and are pending reworking how
   the nsIU2FToken interface works.

UPDATED:
- Address qdot, keeler review comments (thanks!)
- Address more qdot, keeler review comments (thanks!)

MozReview-Commit-ID: JITapI38iOh

--HG--
extra : rebase_source : 9a09e852dd0c8dc47f42dabbcf8b845a6828b225
2017-01-09 13:22:49 -07:00
..
test Bug 1315905 - Cleanup Necko http security check - part 2 - tests, r=valentin 2016-11-17 14:53:30 +01:00
CryptoBuffer.cpp Bug 1309284 - Implement W3C Web Authentication JS API [part 1] r=keeler,qdot 2017-01-09 13:22:49 -07:00
CryptoBuffer.h Bug 1309284 - Implement W3C Web Authentication JS API [part 1] r=keeler,qdot 2017-01-09 13:22:49 -07:00
CryptoKey.cpp Bug 1325104 - Stop using Scoped.h NSS types in CryptoKey.(cpp|h). r=ttaubert 2017-01-02 14:02:50 +08:00
CryptoKey.h Bug 1325104 - Stop using Scoped.h NSS types in CryptoKey.(cpp|h). r=ttaubert 2017-01-02 14:02:50 +08:00
KeyAlgorithmProxy.cpp Bug 1191936 - Implement SPKI/PKCS#8/JWK import/export for RSA-PSS r=rbarnes 2015-10-14 13:38:05 +02:00
KeyAlgorithmProxy.h Bug 1289330 - Check for success when calling ToKeyAlgorithm() r=bz 2016-07-28 10:21:23 +02:00
WebCryptoCommon.h Bug 1296180 - Replace more uses of PR_ARRAY_SIZE with mozilla::ArrayLength. r=keeler,mt 2016-09-09 13:17:52 -07:00
WebCryptoTask.cpp Bug 1311379 - Stop using Scoped.h NSS types in WebCryptoTask.(cpp|h). r=rbarnes,ttaubert 2016-11-18 00:49:25 +08:00
WebCryptoTask.h Bug 1311379 - Stop using Scoped.h NSS types in WebCryptoTask.(cpp|h). r=rbarnes,ttaubert 2016-11-18 00:49:25 +08:00
WebCryptoThreadPool.cpp Bug 1299727 - Rename NS_WARN_IF_FALSE as NS_WARNING_ASSERTION. r=erahm. 2016-09-01 15:01:16 +10:00
WebCryptoThreadPool.h Bug 1293117 (part 4) - Change many NS_IMETHODIMP occurrences to NS_IMETHOD. r=froydnj. 2016-08-08 10:54:47 +10:00
moz.build Bug 1286877 - do not set c-basic-offset for python-mode; r=gps 2016-07-14 10:16:42 -06:00