Jim Schaad
2017-10-11 06:06:58 UTC
This update had a few things that came in out of left field and maybe a
couple of them should have stayed there.
0. Document structure - define a short name to be used as the header of
each page.
1. Introduction: I am not sure what is meant by a "non-empty message".
This cannot refer to the payload being empty, so I am unclear what is meant
here.
2. Section 2 - I dislike the fact that you are moving the byte of flags
from the body to the option. I want the flags next to the data that I am
either assembling or dis-assembling and not in a totally different location.
If you think that the option is going to have more than one value, then it
should either have its own flags or a defined structure. Please move it back
unless you have a REALLY good case and are willing to prove it.
3. Section 3.1 - I do not understand why you are making the Send ID an
integer rather than a byte string. There are a couple of issues with this.
First it is thought of as a byte string everywhere that it is currently
passed around - in COSE and in ACE. Secondly, it decreases the number of
ids that are possible as h'01' and h'0001' are distinct while 1 and 1 are
not.
4. Section 3.1- I am not sure that the word 'interchange' in the last
paragraph is what you want to use. This does not read as proper English
when I read it. "Endpoints can operator in either or both roles as client
and server and use the same security context for those roles."
5. Section 3.2.1 - In the structure info - you have id as a bstr, but it was
defined as an integer previously. You need to harmonize this.
Additionally, it should be "alg : int / tstr," to match the definition of an
algorithm identifier in COSE. Also section 5.3
6. Section 3.3 - s/1, For AES/1, for AES/
7. Section 3.3 - you have a requirement in the last sentence about the
length of sender IDs. How should this be enforced given that IDs are
integers, does this imply a restriction on the range of integers to be used?
8. Section 4.3 - I am not sure that this section should start "Most CoAP
header fields..." Looking at the table, it appears to be about 50-50 and
the assumption is new fields will probably be internal. I think 'some' may
be better.
9. Section 5 - I would like to have the Partial IV have a length of 1 in
the event that the partial iv is zero. Ditto kid
10. Section 5 - The rule of the SHALL NOT for Partial IV worries me for
group messaging. It may cause problems you don't want. There are no real
problems, except for optimization, to using the reflected Partial IV value.
Please rethink this. Ditto kid
11. Section 5.1 - Does this mean that the Partial IV is limited to 2^(5*8)
different values? If you exceed this is a new context required or do you
wrap or something else?
12. Section 5.1 - what is the purpose of putting the ID of the PIV generator
in the nonce value? Please put in text that will justify this. Given that
the keys are different, is there any need for this?
13. Section 5.1 - Please use a different symbol in the figure than +, this
could be read as addition rather than xor.
14. Section 5.3 - You need a rule for options for dealing with a repeated
option.
15. Section 6.1 - s/request's ID/requestor's ID/
16. Section 7.4 step 8 - It would appear that if there is an inner option
which is present on the outer message but not present on the inner message,
then it would not be removed. Is that what is desired?
17. Section 8.3 - is there a specific error to return here, or is just the
"can't find a kid" error? Please document.
couple of them should have stayed there.
0. Document structure - define a short name to be used as the header of
each page.
1. Introduction: I am not sure what is meant by a "non-empty message".
This cannot refer to the payload being empty, so I am unclear what is meant
here.
2. Section 2 - I dislike the fact that you are moving the byte of flags
from the body to the option. I want the flags next to the data that I am
either assembling or dis-assembling and not in a totally different location.
If you think that the option is going to have more than one value, then it
should either have its own flags or a defined structure. Please move it back
unless you have a REALLY good case and are willing to prove it.
3. Section 3.1 - I do not understand why you are making the Send ID an
integer rather than a byte string. There are a couple of issues with this.
First it is thought of as a byte string everywhere that it is currently
passed around - in COSE and in ACE. Secondly, it decreases the number of
ids that are possible as h'01' and h'0001' are distinct while 1 and 1 are
not.
4. Section 3.1- I am not sure that the word 'interchange' in the last
paragraph is what you want to use. This does not read as proper English
when I read it. "Endpoints can operator in either or both roles as client
and server and use the same security context for those roles."
5. Section 3.2.1 - In the structure info - you have id as a bstr, but it was
defined as an integer previously. You need to harmonize this.
Additionally, it should be "alg : int / tstr," to match the definition of an
algorithm identifier in COSE. Also section 5.3
6. Section 3.3 - s/1, For AES/1, for AES/
7. Section 3.3 - you have a requirement in the last sentence about the
length of sender IDs. How should this be enforced given that IDs are
integers, does this imply a restriction on the range of integers to be used?
8. Section 4.3 - I am not sure that this section should start "Most CoAP
header fields..." Looking at the table, it appears to be about 50-50 and
the assumption is new fields will probably be internal. I think 'some' may
be better.
9. Section 5 - I would like to have the Partial IV have a length of 1 in
the event that the partial iv is zero. Ditto kid
10. Section 5 - The rule of the SHALL NOT for Partial IV worries me for
group messaging. It may cause problems you don't want. There are no real
problems, except for optimization, to using the reflected Partial IV value.
Please rethink this. Ditto kid
11. Section 5.1 - Does this mean that the Partial IV is limited to 2^(5*8)
different values? If you exceed this is a new context required or do you
wrap or something else?
12. Section 5.1 - what is the purpose of putting the ID of the PIV generator
in the nonce value? Please put in text that will justify this. Given that
the keys are different, is there any need for this?
13. Section 5.1 - Please use a different symbol in the figure than +, this
could be read as addition rather than xor.
14. Section 5.3 - You need a rule for options for dealing with a repeated
option.
15. Section 6.1 - s/request's ID/requestor's ID/
16. Section 7.4 step 8 - It would appear that if there is an inner option
which is present on the outer message but not present on the inner message,
then it would not be removed. Is that what is desired?
17. Section 8.3 - is there a specific error to return here, or is just the
"can't find a kid" error? Please document.