> -----Original Message-----
> From: Rob Wilton (rwilton) <[email protected]>
> Sent: Friday, June 19, 2020 8:08 AM
> To: Jim Schaad <[email protected]>; 'The IESG' <[email protected]>
> Cc: [email protected]; [email protected];
> [email protected]; 'Matthew Miller' <[email protected]>
> Subject: RE: Robert Wilton's No Objection on 
> draft-ietf-cose-rfc8152bis-algs-09:
> (with COMMENT)
> 
> Hi Jim,
> 
> Sorry, but I'm still struggling to fully understand the capability text.  
> That may
> be because it is too far out of my domain of expertise, or it may be because 
> the
> text is unclear.  It is also worth noting that I've not read the entire 
> document,
> just the diffs.  Also note that these are just comments intended to help the
> readability of the document, they don't block the progression of the document,
> so the authors are at liberty to ignore them if they choose.

While this is frustrating to me at the moment.  I think we are still making the 
document better so I am still willing to try and do some slogging through 
things.

> 
> From the latest text on github, the things that I don't fully understand, or
> potentially find the text somewhat confusing are:
> 
> 
> "This means that if one wishes to enumerate all of the capabilities for a 
> device
> which implements ECDH, it requires multiple pairs of capability structures
> (algorithm, key) to deal with the different key types and curves that are
> supported."
> 
> 1. Is the use of a pair of capabilities (algorithm capabilities, key 
> capabilities)
> normative, or just an example usage?  I.e. is this one way that this could be
> achieved, or the only way that this would be achieved.
This is just and example usage.  I am going to reword to talk about 
combinations rather than pairs.  And point to the cross product structure for 
the ECDH element in the last example.

> 
> 
> "Just an algorithm capability: This is useful if you want to require a 
> specific
> algorithm such as ECDSA, but you are agnostic about which curve is being used.
> See the first example."
> 
> 2. Is the capability actually saying that a specific algorithm is being used, 
> or is it
> that a particular key type is being used for the algorithm?  [Given that the
> algorithm capabilities don't encode the choice of algorithm.]

]JLS] It is saying the second statement given that the specific algorithm is 
not part of the capability.   And yes I am beginning to really regret that 
decision.

> 
> 
> "Just a key type capability: This is useful if you want to require a specific 
> curve
> such as P-256, but will accept any algorithm using that curve (e.g. both ECDSA
> and ECDH). See the second example."
> 
> 3. Presumably this example is also constraining the key type to EC2 as well as
> the curve to P-256?
[JLS] Good point - added the text.

> 
> 
> "Both an algorithm and a key type capability: This is used if one needs to 
> nail
> down all of the options surrounding an algorithm E.g. EdDSA with the curve
> X25519. See the third example which just concatenates the two capabilities
> together."
> 
> 4. Am I right to ensure that a separate specification, where the capabilities
> structures are being used, would specify that the capabilities are defined as 
> an
> array of algorithm capabilities followed by key value capabilities. [Related 
> to
> comment 1 above.]

[JLS] That would be one way that it could be used.  If you look at how it is 
used in draft-ietf-core-oscore-groupcomm, there is an array of multiple items 
of which one set each of algorithm and key type capabilities are but two of 
them.  These are then used as part of a key derivation process to make sure 
that everybody is agreeing on what is being used.  However the view you gave 
does look like what I did in example 3.

> 
> 
> Nits:
> 
> I would suggest that it would be better to switch the order of "8.2 
> Assignments
> for Existing Algorithms" and "8.1 Assignments for Existing Key Types", since
> elsewhere in this section the text always talks about algorithms before key
> types.
> 
> In the examples, you may want to remind that the algorithm type is not
> included in the capability data because it should already be known from
> elsewhere.
> 
> Finally, in the examples, you might wish to rephase to avoid second person
> language, such as using "you".
[JLS]  All of these things are good and done.

Thanks for working with me.

Jim

> 
> Regards,
> Rob
> 
> 
> > -----Original Message-----
> > From: Jim Schaad <[email protected]>
> > Sent: 18 June 2020 18:55
> > To: Rob Wilton (rwilton) <[email protected]>; 'The IESG'
> > <[email protected]>
> > Cc: [email protected]; [email protected];
> > [email protected]; 'Matthew Miller' <[email protected]>
> > Subject: RE: Robert Wilton's No Objection on
> > draft-ietf-cose-rfc8152bis-
> > algs-09: (with COMMENT)
> >
> > Rob,
> >
> > I have spent way too long trying to do edits and re-writes and
> > additions and deletions on this.  I don't think that I can even read it 
> > anymore.
> > However, https://cose-wg.github.io/cose-rfc8152bis/draft-ietf-cose-
> > rfc8152bis-algs.html#name-cose-capabilities has an updated version of
> > this that I think will address all of your comments.  Please review.
> >
> > Thanks, Jim
> >
> >
> >
> > -----Original Message-----
> > From: Rob Wilton (rwilton) <[email protected]>
> > Sent: Wednesday, June 10, 2020 4:03 AM
> > To: Jim Schaad <[email protected]>; 'The IESG' <[email protected]>
> > Cc: [email protected]; [email protected];
> > [email protected]; 'Matthew Miller' <[email protected]>
> > Subject: RE: Robert Wilton's No Objection on
> > draft-ietf-cose-rfc8152bis-
> > algs-09: (with COMMENT)
> >
> > Hi Jim,
> >
> > Please see inline ...
> >
> > > -----Original Message-----
> > > From: Jim Schaad <[email protected]>
> > > Sent: 10 June 2020 00:13
> > > To: Rob Wilton (rwilton) <[email protected]>; 'The IESG'
> > > <[email protected]>
> > > Cc: [email protected]; [email protected];
> > > [email protected]; 'Matthew Miller' <[email protected]>
> > > Subject: RE: Robert Wilton's No Objection on
> > > draft-ietf-cose-rfc8152bis-
> > > algs-09: (with COMMENT)
> > >
> > >
> > >
> > > -----Original Message-----
> > > From: Robert Wilton via Datatracker <[email protected]>
> > > Sent: Tuesday, June 9, 2020 11:16 AM
> > > To: The IESG <[email protected]>
> > > Cc: [email protected]; [email protected];
> > > [email protected]; Matthew Miller <[email protected]>;
> > > [email protected]
> > > Subject: Robert Wilton's No Objection on
> > > draft-ietf-cose-rfc8152bis-algs-
> > > 09: (with COMMENT)
> > >
> > > Robert Wilton has entered the following ballot position for
> > > draft-ietf-cose-rfc8152bis-algs-09: No Objection
> > >
> > > When responding, please keep the subject line intact and reply to
> > > all email addresses included in the To and CC lines. (Feel free to
> > > cut this introductory paragraph, however.)
> > >
> > >
> > > Please refer to
> > > https://www.ietf.org/iesg/statement/discuss-criteria.html
> > > for more information about IESG DISCUSS and COMMENT positions.
> > >
> > >
> > > The document, along with other ballot positions, can be found here:
> > > https://datatracker.ietf.org/doc/draft-ietf-cose-rfc8152bis-algs/
> > >
> > >
> > >
> > > --------------------------------------------------------------------
> > > --
> > > COMMENT:
> > > --------------------------------------------------------------------
> > > --
> > >
> > > Hi,
> > >
> > > I've only reviewed the diff against RFC8152.   The vast majority of this
> > > document seemed to have only minimal changes and looked fine from
> > > what I could see.
> > >
> > > A few minor comments that may help improve the document:
> > >
> > >
> > > 8.  COSE Capabilities
> > >
> > >    Two different types of capabilities are defined: capabilities for
> > >    algorithms and capabilities for key structures.  Once defined by
> > >    registration with IANA, the list of capabilities is immutable.  If it
> > >    is later found that a new capability is needed for a key type or an
> > >    algorithm, it will require that a new code point be assigned to deal
> > >    with that.  As a general rule, the capabilities are going to map to
> > >    algorithm-specific header parameters or key parameters, but they do
> > >    not need to do so.  An example of this is the HSS-LMS key
> > >    capabilities defined below where the hash algorithm used is included.
> > >
> > > Defining the capabilities list as immutable seemed like a misnomer
> > > to me because a new IANA registration would mutate the list.
> > > Perhaps this sentence, and the one following it, could be removed?
> > > [JLS] The whole object is that once registered with IANA, it will
> > > never be changed even by IANA.  Thus I believe that the word
> > > immutable seems to be correct.  If this is changed then existing
> > > signatures will fail and key derivation functions will generate different
> results.
> > [RW]
> >
> > I'm still slightly confused, and alas the more I read the text the
> > more confused I become ;-)
> >
> > Hence a clarifying question: Does "the list of capabilities is
> > immutable", does it mean that the list of capabilities associated with
> > a given algorithm or key structure is immutable?  Or does it mean that
> > the entire list of defined capabilities as a set is immutable?
> > [JLS] The intention is to say that it is fixed for a single algorithm
> > or key type and not the entire list.
> >
> > And in the following paragraph, where is states "The capability
> > structure is an array of values" does it mean the capability structure
> > associated with a particular algorithm or key?
> > [JLS] Yes
> >
> > Another question relates to "The capability structure is an array of
> > values,", does this mean "The capability structure for a given
> > algorithm or key is an ordered array of values, the order ... "
> > [JLS] Yes
> >
> > The paragraph below also mentions multiple pairs of capability structures.
> > Do the capabilities always come as a pair of an algorithm and a key?
> > If there are multiple pairs then how are they encoded, presumably as
> > an array of pairs?  If capabilities do not always come as a pair then
> > you do you differentiate between a capability defining an algorithm
> > and one defining a key?
> >
> > >
> > >    The capability structure is an array of values, the order being
> > >    dependent on the specific algorithm or key.  For an algorithm, the
> > >    first element should always be a key type value, but the items that
> > >    are specific to a key should not be included in the algorithm
> > >    capabilities.  This means that if one wishes to enumerate all of the
> > >    capabilities for a device which implements ECDH, it requires multiple
> > >    pairs of capability structures (algorithm, key) to deal with the
> > >    different key types and curves that are supported.  For a key, the
> > >    first element should also be a key type value.  While this means that
> > >    this value will be duplicated if both an algorithm and key capability
> > >    are used, the key type is needed in order to understand the rest of
> > >    the values.
> > >
> > > Should you be using RFC 2119 language here?  And should " key should
> > > not be included" be "MUST NOT"?
> > > [JLS] Responded to this point in Roman's comments.
> > >
> > > For the ECDH case, does that mean that the "algorithm" entry will be
> > > duplicated with different "key" entries?  If so, would it help
> > > clarify to explicitly state this?
> > > [JLS] Would pointing to the second and third examples in section 8.3
> > > along with some explanatory text?
> > [RW]
> >
> > Perhaps, but I think that it would also be useful to have an example
> > of supporting ECDH-ES with both P-256 and X25519 curves, and how that
> > would be encoded (if that makes sense).
> >
> > I also couldn't convince myself that the numerical values that are
> > used in the examples are necessary right, please can you check that they 
> > are.
> > E.g., the first two example have the same numeric encoding, and the
> > two ECDH-ES have different encodings of the algorithm.  But perhaps
> > that is just my confusion about how this works.
> >
> > Regards,
> > Rob
> >
> >
> > >
> > > Jim
> > >
> > > Thanks,
> > > Rob
> > >
> > >
> >


_______________________________________________
COSE mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/cose

Reply via email to