- From: Richard Barnes <rbarnes@bbn.com>
- Date: Fri, 18 Jan 2013 16:12:09 -0500
- To: Ryan Sleevi <sleevi@google.com>
- Cc: Harry Halpin <hhalpin@w3.org>, "public-webcrypto@w3.org" <public-webcrypto@w3.org>
This is important, so I'll say it up front: JOSE is not written in stone. It is a working draft, just like the WebCrypto spec. On Jan 18, 2013, at 3:49 PM, Ryan Sleevi <sleevi@google.com> wrote: > On Fri, Jan 18, 2013 at 12:19 PM, Richard Barnes <rbarnes@bbn.com> wrote: >> On Jan 18, 2013, at 2:56 PM, Harry Halpin <hhalpin@w3.org> wrote: >> >>> On 01/18/2013 08:53 PM, Richard Barnes wrote: >>>> Another way to solve this would be to kick the algorithm ID specification over to JOSE. ISTM that it would be a good idea in general for the two groups to use the same algorithm identifiers. >>> >>> I believe that was already discussed and there were two different levels of abstractions re ciphersuites/defaults. That is, I think, still the case. Is it not? >>> >>> Regardless, I'll bring that option up with the Security ADs and see if we can find a quick way to solve this. >> >> >> I don't think that's really accurate. There aren't any defaults in JOSE either. The main differences are: >> >> 1. JOSE provides some short names for combinations of algorithms >> >> WebCrypto: { name: "HMAC", params: { hash: "SHA-256" } } >> JOSE: "HS256" > > Let's be clear: JOSE *only* provides short-names for combinations. > > It does NOT provide an extensible syntax that say, WebCrypto, ASN.1, > PKCS#11, CNG, CDSA, CryptoAPI, or others do. You say this as if it's final, finished, forever. It's not; it's a working draft just like WebCrypto. Even if all JOSE wants is short names, I think there would be benefit in documenting how they expand to WebCrypto IDs. > JOSE is intended for wire representation. > WebCrypto is intended for API consumption. Of course, JOSE object ultimately get consumed by APIs, so this is not really a distinction. JOSE algorithm identifiers ultimately have to get mapped to something that goes into an API. > I thought we already hashed all of these discussions out and agreed > that there was consensus to NOT go with JOSE's approach. > >> >> >> 2. JOSE stores algorithm parameters outside the algorithm field (all of the information is still there) >> >> WebCrypto: { name: "AES-GCM", params: { iv: /* ArrayBufferView */ } } >> JOSE: { enc: "A128GCM" }.[base64(iv)] > > This, to me, is unacceptable. This *forces* all parameters to be > copied AND transformed, while ArrayBufferView, by definition, allows > this to be done without copying parameters. > > Further, this creates a series of edge cases like attempting to use > A256GCM with a 128-bit AES key. I actually agree (let's have "AGCM" :) ). But that argues for fixing JOSE, not for cutting off the conversation. It would actually be great to have this sort of comment on the JOSE list; I'll agree with you there too. Just to emphasize again: JOSE is not written in stone. It is a working draft, just like the WebCrypto spec. Can we at least try to work together? --Richard
Received on Friday, 18 January 2013 21:12:37 UTC