Commit Graph

25 Commits

Author SHA1 Message Date
J.C. Jones
823b50f71f Bug 1401803 - WebAuthn types need to return ArrayBuffers r=keeler
The Web Authentication types, by spec, return ArrayBuffer objects, while we
were returning a concrete Uint8Array. This is a fairly straightforward change
to add functionality to CryptoBuffer and the WebIDL types, however it's a
substantial change to the tests.

Frankly, the tests just could use another pass of clean-up now, since this is
a lot of relative ugliness added in. I refactored tab_webauthn_success.html
pretty heavily -- since it was also fairly ugly to start -- but I decided to go
with a lighter touch on the other tests.

MozReview-Commit-ID: 9vb1wdLo3SI
2017-09-20 07:32:07 -07:00
J.C. Jones
2e705f6864 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
2017-01-09 13:22:49 -07:00
Kit Cambridge
fd6578c709 Bug 1266569 - Avoid including the ChromeUtils binding in Base64.h. r=froydnj
MozReview-Commit-ID: 8ZLdMhJMaUe
2016-04-22 07:41:58 -07:00
Kit Cambridge
f17d3117ce Bug 1256488 - Use Base64 URL-encoding in CryptoBuffer. r=ttaubert
MozReview-Commit-ID: AGtDUBuDuu0
2016-03-17 14:13:09 -07:00
J.C. Jones
f97b9ae311 Bug 1244960 - FIDO u2f NSSToken (Part 3): Review updates. r=keeler
MozReview-Commit-ID: FkPHy9GGarU
2016-04-13 10:20:37 -07:00
J.C. Jones
86b06953a1 Bug 1244960 - Complete FIDO u2f NSSToken (Part 1). r=keeler, r=baku
- Merge in test changes from Bug 1255784.
- Remove the unnecessary mutex
- Stop doing direct memory work in NSS Token
- Clean up direct memory work in ContentParent
- In order to store persistent crypto parameters, the NSSToken had to move
  onto the main thread and be interfaced with via IDL/IPDL.
- Support Register/Sign via NSS using a long-lived secret key
- Rename the softtoken/usbtoken "enable" prefs, because of hierarchy issues
  with the WebIDL Pref shadowing.
- Also orders the includes on nsNSSModule.cpp
- Attestation Certificates are in Part 2.

Updates per keeler review comments:

- Use //-style comments everywhere
- Refactor the PrivateKeyFromKeyHandle method
- Rename the logging and fix extraneous NS_WARN_IF/logging combinations
- Other updates from review

April 11-12:

- Correct usage of the "usageCount" flag for PK11_UnwrapPrivKey
- Rebase up to latest

April 15:
- Rebase to latest

MozReview-Commit-ID: 6T8jNmwFvHJ
2016-04-15 09:29:12 -07:00
J.C. Jones
abc3148c84 Bug 1231681 - "Implement window.u2f interface". r=baku, r=dkeeler 2016-02-09 16:43:00 +01:00
Birunthan Mohanathas
7613dfe8d8 Bug 968520 - Use FallibleTArray::Clear instead of SetLength(0). r=froydnj
This preemptively fixes the upcoming -Wunused-result warnings due to unchecked
SetLength calls.
2015-05-28 11:07:43 -07:00
Birunthan Mohanathas
e084c9e72c Bug 968520 - Add mozilla::fallible to Fallible{Auto,}TArray::ReplaceElementsAt calls. r=froydnj 2015-05-18 13:50:35 -07:00
Andrew McCreight
92010d3e4c Bug 1152551, part 2 - Fix mode lines in dom/. r=jst 2015-05-03 15:32:37 -04:00
Tim Taubert
c9d7cf6c0d Bug 1034856 - Remove CryptoBuffer::ToSECItem() using moz_malloc() r=rbarnes 2014-09-03 09:40:21 -04:00
Tim Taubert
0ac4ad093d Bug 1034856 - Implement generateKey() for DH r=rbarnes 2014-07-20 06:38:44 +02:00
Richard Barnes
452905a915 Bug 1037892 - Implement changes to WebCrypto API from latest Editor's Draft r=bz,ttaubert 2014-09-27 14:22:57 -04:00
Wes Kocher
282d72751c Backed out changeset 398bdeea30b0 (bug 1037892) for build bustage 2014-09-26 15:35:38 -07:00
Richard Barnes
82ea3e9b15 Bug 1037892 - Implement changes to WebCrypto API from latest Editor's Draft r=bz,ttaubert
* * *
Add check for old structured clone format.
2014-09-26 17:36:39 -04:00
Tim Taubert
2bbed6ec34 Bug 1049434 - Don't allocate SECItems with new operator r=rbarnes 2014-08-06 12:15:35 +02:00
Tim Taubert
62fdbdb0aa Backed out changeset 5184f19384c8 (bug 1049434) 2014-08-07 09:21:13 +02:00
Tim Taubert
8417480d8d Bug 1049434 - Don't allocate SECItems with new operator r=rbarnes 2014-08-06 12:15:35 +02:00
Richard Barnes
1c95a43c5a Bug 1025230 - Allow import/export of JWK-formatted keys in WebCrypto r=bz,keeler 2014-07-19 08:25:00 -05:00
Richard Barnes
42e188ad5d Bug 1034851 - Add wrapKey and unwrapKey methods to WebCrypto API r=bz 2014-07-19 08:24:00 -05:00
Jeff Walden
2a9381c3a8 Bug 999651, bug 995679, bug 1009952, bug 1011007, bug 991981. r=sfink, r=shu, r=jandem, r=jdm, r=luke, r=bbouvier, r=nmatsakis, r=bz, r=ehsan, r=jgilbert, r=smaug, r=sicking, r=terrence, r=bholley, r=bent, r=efaust, r=jorendorff 2014-05-27 14:32:41 -07:00
Ryan VanderMeulen
8626eafc2a Backed out changeset 2c631967ab9e (bug 999651) for B2G crashes.
CLOSED TREE
2014-05-27 14:08:30 -04:00
Jeff Walden
bf3e75b1b8 Bug 999651, bug 995679, bug 1009952, bug 1011007, bug 991981. r=sfink, r=shu, r=jandem, r=jdm, r=luke, r=bbouvier, r=nmatsakis, r=bz, r=ehsan, r=jgilbert, r=smaug, r=sicking, r=terrence, r=bholley, r=bent 2014-05-27 09:56:43 -07:00
Richard Barnes
9d53063b07 Bug 998471 - Add support for key generation to WebCrypto API. r=bz,dkeeler
* * *
Change from SetCapacity to SetLength so that strings clone properly
2014-05-26 12:05:00 +02:00
Richard Barnes
761497c98b Bug 995385 - Add WebCrypto WebIDL interfaces. r=bz, r=cviecco, r=dkeeler 2014-05-15 06:20:00 -04:00