- From: <bugzilla@jessica.w3.org>
- Date: Mon, 28 Mar 2016 18:15:01 +0000
- To: public-webcrypto@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=29545 Bug ID: 29545 Summary: ECDSA 'alg' names for JWK: ES512 vs ES521 Product: Web Cryptography Version: unspecified Hardware: PC OS: All Status: NEW Severity: normal Priority: P2 Component: Web Cryptography API Document Assignee: sleevi@google.com Reporter: ericroman@google.com CC: public-webcrypto@w3.org Target Milestone: --- There is confusion (at least to me) on what the meaning of the ECDSA "alg" parameter is. * The WebCrypto spec contains both strings "ES512" and "ES521" when searching its text. ES512 is mentioned in the (non-normative) section "Mapping between JSON Web Key / JSON Web Algorithm" as meaning P-521 with SHA-512. This definition is consistent with the JWA spec's definition. The use of ES512 is nowhere in the WebCrypto spec though, so for all intents and purposes this is a dangling reference. (issue #1). Next up, when looking at the JWA's description of ES* algorithms: * ES256 -- ECDSA using P-256 and SHA-256 * ES384 -- ECDSA using P-384 and SHA-384 * ES512 -- ECDSA using P-521 and SHA-512 This is in contrast to WebCryto's definitions: * ES256 -- ECDSA with P-256 (and any hash algorithm) * ES384 -- ECDSA with P-384 (and any hash algorithm) * ES521 -- ECDSA with P-521 (and any hash algorithm) The problem here is ES256 and ES384 are spelled the same, but have different meanings. ES521 is unambiguous as it appears only in WebCrypto. WebCrypto's understanding of the algorithm means it does not enforce the hash algorithm restriction implied by JWA. Which I guess is meh. But what I think is more inconsistent is that ES512 is not supported, even though it could be interpreted similarly to mean P-521 (with any hash algorithm), even. This is causing a compatibility problem as Chromium's implementation recognizes ES512 (the one given by JWA) and not ES521 (the one invented by WebCrypto spec). Credit to Jim Schaad for observing Chromium doesn't accept ES521. I can easily change Chromium to match the current WebCrypto spec, but the different meaning of these names doesn't seem right. Is this the desired intent, or should we be using different algorithm names for ES256 and ES384 ? Also see the Chromium bug: https://bugs.chromium.org/p/chromium/issues/detail?id=598339 -- You are receiving this mail because: You are on the CC list for the bug.
Received on Monday, 28 March 2016 18:15:04 UTC