Chrome Release Bot (LUCI) 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
..
algorithms 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
BUILD.gn 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
COMMON_METADATA 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
DEPS 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
DIR_METADATA 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
OWNERS 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
PLAN.md 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
README.md 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
algorithm_dispatch.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
algorithm_dispatch.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
algorithm_implementation.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
algorithm_implementation.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
algorithm_implementations.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
algorithm_registry.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
algorithm_registry.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
blink_key_handle.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
blink_key_handle.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
ec_import_key_pkcs8_fuzzer.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
ec_import_key_raw_fuzzer.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
ec_import_key_spki_fuzzer.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
fuzzer_support.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
fuzzer_support.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
generate_key_result.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
generate_key_result.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
jwk.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
jwk.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
rsa_import_key_pkcs8_fuzzer.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
rsa_import_key_spki_fuzzer.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
status.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
status.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
status_unittest.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
webcrypto_impl.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
webcrypto_impl.h 4762b62e7d Publish DEPS for 106.0.5249.13 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.