CTAP devices will respond with CBOR-encoded data that the browser will need to interpret during WebAuthN operations.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6d30c4a621c65314db63eb56e87c19ab75627b26 commit 6d30c4a621c65314db63eb56e87c19ab75627b26 Author: Jun Choi <hongjunchoi@chromium.org> Date: Sat Dec 09 01:10:32 2017 Implement a canonical CBOR decoder CBOR decoder defined by the spec: https://tools.ietf.org/html/rfc7049 This CBOR decoder supports deserialization of CBOR data bytes for the following major types: 0) Unsigned int 2) Byte string 3) Text string(UTF8 format enforced) 4) Array 5) Map This is a CBOR decoder for canonical deserialization of CBOR data. If any one of the formatting/syntax rules or canonical CBOR requirements is violated, then null optional is returned. Callers can also set an optional |error_code_out| to obtain more specific details for decoding failure and set |max_nesting_level| to enforce strict CBOR nesting level depth requirements. Bug: 780504 Change-Id: I5ca1692b45ef03459a2553fe6e42344d7d433223 Reviewed-on: https://chromium-review.googlesource.com/759165 Reviewed-by: Chris Palmer <palmer@chromium.org> Reviewed-by: Max Moroz <mmoroz@chromium.org> Reviewed-by: Kinuko Yasuda <kinuko@chromium.org> Reviewed-by: Balazs Engedy <engedy@chromium.org> Reviewed-by: Jeffrey Yasskin <jyasskin@chromium.org> Commit-Queue: Jun Choi <hongjunchoi@chromium.org> Cr-Commit-Position: refs/heads/master@{#522947} [modify] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/browser/BUILD.gn [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/browser/webauth/cbor/cbor_binary.h [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/browser/webauth/cbor/cbor_reader.cc [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/browser/webauth/cbor/cbor_reader.h [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/browser/webauth/cbor/cbor_reader_unittest.cc [modify] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/browser/webauth/cbor/cbor_values.cc [modify] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/browser/webauth/cbor/cbor_values.h [modify] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/browser/webauth/cbor/cbor_values_unittest.cc [modify] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/browser/webauth/cbor/cbor_writer.cc [modify] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/browser/webauth/cbor/cbor_writer.h [modify] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/BUILD.gn [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor0 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor1 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor10 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor11 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor12 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor13 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor14 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor15 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor16 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor17 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor18 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor19 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor2 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor20 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor21 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor22 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor23 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor24 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor25 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor26 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor27 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor28 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor29 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor3 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor30 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor31 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor32 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor33 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor34 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor35 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor36 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor37 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor38 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor39 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor4 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor40 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor41 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor42 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor43 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor44 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor45 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor46 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor47 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor48 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor49 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor5 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor50 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor51 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor52 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor53 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor54 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor55 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor56 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor57 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor58 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor59 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor6 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor60 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor61 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor62 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor63 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor64 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor65 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor66 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor67 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor68 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor69 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor7 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor70 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor71 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor72 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor73 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor74 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor75 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor76 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor77 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor78 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor79 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor8 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor80 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor81 [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/data/fuzzer_corpus/cbor_data/cbor9 [modify] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/fuzzer/BUILD.gn [add] https://crrev.com/6d30c4a621c65314db63eb56e87c19ab75627b26/content/test/fuzzer/cbor_reader_fuzzer.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/50fe92953f4739f17a62303fedbf8db9234317c8 commit 50fe92953f4739f17a62303fedbf8db9234317c8 Author: Daniel Bratell <bratell@opera.com> Date: Mon Dec 11 15:18:54 2017 Windows jumbo compile fix. NO_ERROR is a macro in Windows Windows headers define a macro named NO_ERROR so it is best to avoid that name. This renames the new NO_ERROR enum value to CBOR_NO_ERROR, similar to GL_NO_ERROR. Bug: 780504 Change-Id: I83aa3b83b9239659c296687a9109f255b272a1ce Reviewed-on: https://chromium-review.googlesource.com/819251 Reviewed-by: Balazs Engedy <engedy@chromium.org> Reviewed-by: Mike West <mkwst@chromium.org> Commit-Queue: Daniel Bratell <bratell@opera.com> Cr-Commit-Position: refs/heads/master@{#523097} [modify] https://crrev.com/50fe92953f4739f17a62303fedbf8db9234317c8/content/browser/webauth/cbor/cbor_reader.cc [modify] https://crrev.com/50fe92953f4739f17a62303fedbf8db9234317c8/content/browser/webauth/cbor/cbor_reader.h [modify] https://crrev.com/50fe92953f4739f17a62303fedbf8db9234317c8/content/browser/webauth/cbor/cbor_reader_unittest.cc
Comment 1 by kpaulhamus@chromium.org
, Nov 1 2017