Bug 122679

Summary: [Meta] Implement WebCrypto SubtleCrypto interface
Product: WebKit Reporter: Alexey Proskuryakov <ap>
Component: DOMAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: bfulgham, jiewen_tan, jonlee, mike, syoichi
Priority: P2 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=160880
https://bugs.webkit.org/show_bug.cgi?id=160883
Bug Depends on: 120954, 122683, 122770, 122778, 122972, 123216, 123461, 123462, 123466, 123474, 123476, 123582, 123587, 123598, 123628, 123647, 123659, 123661, 123669, 123746, 123767, 124050, 124059, 124064, 124161, 124218, 124236, 124261, 124280, 124297, 124335, 124372, 124376, 124388, 124442, 124451, 124466, 124472, 124473, 124475, 124483, 124673, 124725, 124738, 125084, 125105, 125114, 125590, 125641, 125643, 125647, 125675, 125696, 127609, 128027, 128749, 129121    
Bug Blocks:    

Description Alexey Proskuryakov 2013-10-11 14:40:46 PDT
This is a meta for adding SubtleCrypto from <http://dvcs.w3.org/hg/webcrypto-api/raw-file/tip/spec/Overview.html>.
Comment 1 Alexey Proskuryakov 2013-11-03 01:04:17 PST
<rdar://problem/15172764>
Comment 2 Alexey Proskuryakov 2013-12-04 11:02:49 PST
WebKit currently implements latest WebCrypto editor's draft posted 2013-08-30 (<https://dvcs.w3.org/hg/webcrypto-api/raw-file/dffe14c6052a/spec/Overview.html>), with a few updates:

- operations take CryptoOperationData arguments, not sequences of those;
- added AES-KW algorithm (RFC3394).

SubtleCrypto is exposed as window.crypto.webkitSubtle. The spec hasn't even reached Last Call yet, so it's likely to change in the future.

Supported algorithms are:
- SHA-1, SHA-224, SHA-256, SHA-384, SHA-512 (all of these are also supported as hashes for below algorithms);
- HMAC;
- AES-CBC;
- AES-KW;
- RSA-OAEP;
- RSASSA-PKCS1-v1_5.

All operations relevant to these algorithms are supported. Key algorithm, usages and extractable members are enforced.

Key import, export, unwrapping and wrapping are supported for raw and JWK formats (JWK mapping is implemented according to <https://www.w3.org/Bugs/Public/show_bug.cgi?id=23796#c12>). Imported private RSA keys currently must have additional prime factor data, and must have exactly two prime factors.

Most of the code is cross platforms, with low level cryptography operations invoking Mac platform libraries.

The functionality is present in WebKit nightly builds on OS X 10.9 Mavericks (http://nightly.webkit.org). Please test, and report any bugs! Patches for additional algorithms and key formats are welcome.
Comment 3 Jiewen Tan 2016-08-15 18:39:41 PDT
Close this bug as fixed as all the depending unfixed bugs have been moved to either Bug 160880 and Bug 160883.