Dash-Industry-Forum/CPIX

5.2.5. ContentKey IV size

RufaelDev opened this issue · 5 comments

A question I got was if it is possible to specify the IV size, it is currently 128 bits, but in cenc it is also possible to use a 64 bit IV, has there been any discussion on explicitly supporting signaling this in CPIX. For example an attribute in ContentKey to specify this. Thanks for your help with this.

lpiron commented

The need for the IV on this interface is only for FairPlay license creation, providing the IV on this interface is no necessary in any other case (I agree that it is not at all explicit).
We didn't use the term constant_IV in CPIX, but this is the one to be considered in the CENC specification. While it can indeed be of different size in CENC, there is the additional constraint that it shall be 128 bits in section 4.3.2 of CTA WAVE doc.
I hope this clarifies. Do you believe that the IV shall be provided in other cases?

@lpiron thanks for the quick reponse, for cenc CTR mode cenc usually does 8 bytes IV, but we also seen cases of CTR mode with 16 bytes IV, this is what raised the question. So it is mostly about CENC CTR mode, we agree with your point on using 128 bits for cbcs. In such cases it may be useful to specify this in the
ContentKey element.

To come back on this, we found that Samsung TV's with Tizen < 5.0 that can only playout CTR with 16 byte IV's, this is what the case arose from, it is not clear in the spec that ExplicitIV field is only for fairplay cases, so it is quite likely that it is used that way, it makes sense to allow CPIX usage beyond specific profiles like CTA WAVE to allow implementation of different relevant commercial use cases.
Proposal would be to add an attribute with the ExplicitIV size in contentKey element.

lpiron commented

Adding the length of the IV would be a change for CPIX 2.4.
But As explained having the IV on this interface only make sense in one specific case. I tried to update the text accordingly (still to be reviewed):
This is the value of Constant IV defined in MPEGCENC or of the IV attribute under #EXT-X-KEY defined in HLS. Use of this attribute is not recommended except for compatibility with some DRM systems that explicitly need it.

In addition, while for cbcs the IV is constant, for cenc the IV should change for every sample. It is then not easy to provide all IVs with CPIX.

thank you @lpiron yes we can prepare a proposal for the CPIX 2.4 , even if IV may change the IV size may not so signaling it in CPIX can still make sense using another attribute,

adding this restriction to text may affect some current usage, i need to check this with my colleagues and i will follow up.