[Bug 26887] Allowing license servers and CDMs to control data persistence and secure release

https://www.w3.org/Bugs/Public/show_bug.cgi?id=26887

Joe Steele <steele@adobe.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |steele@adobe.com

--- Comment #16 from Joe Steele <steele@adobe.com> ---
(In reply to Mark Watson from comment #15)
> If I understand Jerry's comment correctly, it is problematic for them to
> retrieve licenses by sessionId, so they would like to restrict the sessionId
> concept to be used only for key release data.
> 
> If you want to retrieve license / keys, you use initData and load().
> 
> If you want to retrieve secure stop information, you use sessionId and
> retrieve().
> 
> Because you can't retrieve a session with keys using sessionId then removing
> persisted keys needs these new MediaKeys methods.
> 
> I think you could almost polyfill the existing spec API on top of this one,
> by keeping (in IndexedDB, say) mappings from sessionIds to initData and
> sessionId to keyIds. The only difference is that you would need to specify
> when using the (old, polyfilled) loadSession() whether you wanted a session
> for use with playback or were expecting only key release data, which the
> application should know.
> 
> Equally, one could polyfill this proposed API on top of the existing one in
> the specification, by keeping a mapping from initData to sessionId and from
> keyIds to sessionId.

This would work in many cases, but in some cases two different initData may
cause overlapping key requests in ways that the application cannot easily
detect. 

Here is the example I tried to give in the TPAC --

The application tries to play stream1 and provides initData1. The CDM makes a
key request based on initData1. The license server returns a set of keys that
includes keys needed for stream1 AND stream2. Later on the application tries to
play stream2 and provides initData2. Without parsing the PSSH boxes, the
application has no way of knowing that it already has the keys available. It
could try to load all the previous sessions. Or it could call
generateKeyRequest(initData2) and make the unnecessary license request. However
if an API was available to load keys based on initData alone, the CDM could
make that determination and not require a license request.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

Received on Friday, 7 November 2014 01:24:40 UTC