- From: Ryan Sleevi <sleevi@google.com>
- Date: Tue, 2 Apr 2013 11:05:15 -0700
- To: "Acar, Tolga" <tolga.acar@intel.com>
- Cc: Richard Barnes <rbarnes@bbn.com>, Vijay Bharadwaj <Vijay.Bharadwaj@microsoft.com>, Wan-Teh Chang <wtc@google.com>, "public-webcrypto@w3.org Group" <public-webcrypto@w3.org>
- Message-ID: <CACvaWvbmdWoTVrj_XBWUqZc6UNaLY991Kc7t-jpj4s+eQsjADA@mail.gmail.com>
Richard, Your proposal does not seem to address multi-party key agreement scenarios, where the original does. How would you propose to address them? On Tue, Apr 2, 2013 at 9:26 AM, Acar, Tolga <tolga.acar@intel.com> wrote: > I'd side with Richard in separating key agreement and key derivation into > separate APIs, similar to CNG's approach. There are protocols, such as TLS, > more than one symmetric key is derived from an agreed-upon (or transported) > secret Z. Combining KDFs with agreement would minge these together; that > doesn't seem like a primitive/low-level API, but gets close to being > coupled with a protocol. Recalling the other high/low level API discussion, > I am suggesting the low-level approach here, and a higher level API, if one > is compelled to do so, can be built on it. > > - Tolga > > > -----Original Message----- > > From: Richard Barnes [mailto:rbarnes@bbn.com] > > Sent: Tuesday, April 02, 2013 9:11 AM > > To: Vijay Bharadwaj > > Cc: Wan-Teh Chang; Ryan Sleevi; public-webcrypto@w3.org Group > > Subject: Re: Separate method for key agreement? > > > > I don't think I had worked out the details that far :) > > > > The "derivedKeyType" is perhaps misleading (copy/paste error). I didn't > > mean to imply that derivation would be included in this method. You > would > > actually need another field to specify the KDF, since "derivedKeyType" > > indicates the algorithm that the new key is to be used with, not the KDF. > > > > I actually think it would be simpler to have this just be the secret > agreement, > > then do key derivation with deriveKey(). Using a secret handle isn't an > issue > > here; you get back a Key object, which is essentially a secret handle > anyway. > > > > Yet another case where a Promises-style API would be nice to have... > > > > let derive = function(key) { > > window.crypto.deriveKey(..., key, ...); } > > window.crypto.agreeKey(...) > > .then(derive) > > .then(doStuff); > > > > --Richard > > > > > > On Apr 2, 2013, at 4:57 AM, Vijay Bharadwaj > > <Vijay.Bharadwaj@microsoft.com> wrote: > > > > > Windows CAPI is unique in its handling of DH. It is not a great > example to > > emulate. > > > > > > CNG is a better example. As I understand it, the proposal below > combines > > the secret agreement and key derivation steps (which are distinct in CNG) > > into a single step. This seems like a good idea - CNG has to use a secret > > handle to allow the caller to link these two steps without exposing the > raw > > secret, but this would be harder to do neatly in JS. Am I understanding > the > > proposal correctly? > > > > > > -----Original Message----- > > > From: Wan-Teh Chang [mailto:wtc@google.com] > > > Sent: Monday, April 1, 2013 5:45 PM > > > To: Ryan Sleevi > > > Cc: Richard Barnes; public-webcrypto@w3.org Group > > > Subject: Re: Separate method for key agreement? > > > > > > On Mon, Apr 1, 2013 at 12:25 PM, Ryan Sleevi <sleevi@google.com> > wrote: > > >> > > >> I'm not sure I'd agree here. Do you also see separate functions for > > >> ECDH agreement? > > > > > > No. The function that Richard proposed can handle both DH and ECDH: > > > > > > """ > > > KeyOperation agreeKey(Key privateKey, > > > Key publicKey, > > > AlgorithmIdentifier? derivedKeyType, > > > bool extractable = false, > > > KeyUsage[] keyUsages = []); """ > > > > > > Richard's proposal is consistent with Windows CNG: > > > http://msdn.microsoft.com/en- > > us/library/windows/desktop/aa833130(v=vs. > > > 85).aspx > > > > > > Note: Windows CAPI does Diffie-Hellman in a non-obvious manner (using > > CryptImportKey), so Widows CAPI is not worth being consistent with: > > > http://msdn.microsoft.com/en- > > us/library/windows/desktop/aa381969(v=vs. > > > 85).aspx > > > > > > Wan-Teh > > > > > > > > > >
Received on Tuesday, 2 April 2013 18:05:48 UTC