- From: Richard Barnes <rbarnes@bbn.com>
- Date: Mon, 1 Apr 2013 11:27:58 -0400
- To: "public-webcrypto@w3.org Group" <public-webcrypto@w3.org>
In the current spec, key agreement is treated as a special case of key derivation. Should we call it out as a separate function under SubtleCrypto?
The current situation leads to the public key used in key agreement being a parameter of the key agreement *algorithm*. This seems awkward and backward.
As Mark has noted elsewhere, we already have duplication of algorithms around. I took a look at CMS for comparison, and RFC 5652 sides with Mark: KeyAgreeRecipientInfo has the algorithm specified as part of the public key:
OriginatorPublicKey ::= SEQUENCE {
algorithm AlgorithmIdentifier,
publicKey BIT STRING }
It seems like this would be a little easier to handle if we could create a separate method for key agreement vs. other types of key derivation. Straw-man syntax:
"""
KeyOperation agreeKey(Key privateKey,
Key publicKey,
AlgorithmIdentifier? derivedKeyType,
bool extractable = false,
KeyUsage[] keyUsages = []);
"""
... and delete EcdhKeyDeriveParams and DhKeyDeriveParams.
Cheers,
--Richard
Received on Monday, 1 April 2013 15:28:27 UTC