Rebecca Chang Swee Fun fea2a55e2a Publish chromium based on 107.0.5304.88 1 year ago
..
algorithms fea2a55e2a Publish chromium based on 107.0.5304.88 1 year ago
BUILD.gn fea2a55e2a Publish chromium based on 107.0.5304.88 1 year ago
COMMON_METADATA fea2a55e2a Publish chromium based on 107.0.5304.88 1 year ago
DEPS fea2a55e2a Publish chromium based on 107.0.5304.88 1 year ago
DIR_METADATA fea2a55e2a Publish chromium based on 107.0.5304.88 1 year ago
OWNERS fea2a55e2a Publish chromium based on 107.0.5304.88 1 year ago
PLAN.md fea2a55e2a Publish chromium based on 107.0.5304.88 1 year ago
README.md fea2a55e2a Publish chromium based on 107.0.5304.88 1 year ago
algorithm_dispatch.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 year ago
algorithm_dispatch.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 year ago
algorithm_implementation.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 year ago
algorithm_implementation.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 year ago
algorithm_implementations.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 year ago
algorithm_registry.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 year ago
algorithm_registry.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 year ago
blink_key_handle.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 year ago
blink_key_handle.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 year ago
ec_import_key_pkcs8_fuzzer.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 year ago
ec_import_key_raw_fuzzer.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 year ago
ec_import_key_spki_fuzzer.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 year ago
fuzzer_support.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 year ago
fuzzer_support.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 year ago
generate_key_result.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 year ago
generate_key_result.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 year ago
jwk.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 year ago
jwk.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 year ago
rsa_import_key_pkcs8_fuzzer.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 year ago
rsa_import_key_spki_fuzzer.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 year ago
status.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 year ago
status.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 year ago
status_unittest.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 year ago
webcrypto_impl.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 year ago
webcrypto_impl.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 year ago

README.md

Web Crypto

This directory contains the cryptographic code for Chromium’s Web Crypto implementation.

The Web Crypto implementation is split between Blink and this directory.

Blink is responsible for parsing Web Crypto’s Web IDL, and translating requests into method calls on blink::WebCrypto, which in turn is implemented here by WebCryptoImpl.

WebCryptoImpl is what carries out the actual cryptographic operations. Crypto is done directly in the renderer process, in software, using BoringSSL. There is intentionally no support for hardware backed tokens.

Threading:

The Web Crypto API expects asynchronous completion of operations, even when used from Web Workers. WebCryptoImpl takes a blanket approach of dispatching incoming work to a small worker pool. This favors main thread responsiveness/simplicity over throughput. Operations minimally take two thread hops.

The split of responsibilities between Blink and content (content is what registers blink::WebCrypto to the Blink Platform) is dated and could be simplified. See also crbug.com/614385.