W3C home > Mailing lists > Public > public-html-media@w3.org > July 2012

Re: [EME] specification question: key and media element asssociation usage confusion

From: David Dorwin <ddorwin@google.com>
Date: Wed, 18 Jul 2012 10:38:00 -0700
Message-ID: <CAHD2rsjpZzSZpiKAcQ=FxZG1gfJQA8OqRZMq1jPzdzxuL6sHnA@mail.gmail.com>
To: "Sunyang (Eric)" <eric.sun@huawei.com>
Cc: "public-html-media@w3.org" <public-html-media@w3.org>
initData is (likely) only used to obtain the keys when playback starts (or
a new stream/section/track is encountered). The initData, sessions, and EME
methods are only used for key exchange and session management. At decrypt
time, which is internal to the UA/CDM and unrelated to the EME methods, the
CDM only has a key ID for a frame/block and a set of key ID-key pairs.

By association, I meant some relationship between a session/keys and the
media element that needs to use it/them at decrypt time. "Strong
association" was an informal term referring to a permanent association
between a session/keys and some "collection" or the media element itself.

A permanent association is probably not that important to applications, but
we believe it makes UA/CDM implementation easier, or at least allows a
wider variety of designs. Specifically, it allows building a group of
sessions/keys in a single object, table, etc. rather than having to search
through sessions/keys in a global/shared object or multiple objects when
looking for the key ID for a frame/block.

The permanent association can be with the media element, as in proposal #1,
or another object that can be (non-permanently) associated with the media
element.

On Wed, Jul 11, 2012 at 11:33 PM, Sunyang (Eric) <eric.sun@huawei.com>wrote:

>  During yesterday conference call, we mentioned about association between
> keys and media element****
>
> I have questions: what is an association, what is a strong association,
> how to use association , who will use it?****
>
> Hope expert can help clarify them for me, thanks a lot!****
>
> ** **
>
> *What is an association?*
>
> Media element and all keys used to decrypted the media content.****
>
> Right?****
>
> Mapping relationship is:  1 initData to 1 session id to multiple
> keys(simultaneously, not key rotation) . ****
>
> Right?****
>
> ** **
>
> *What is a strong association?*
>
> Method to generate keys are inside media element.****
>
> Key sessions generated are part of media element.****
>
> Right?****
>
> ** **
>
> ** **
>
> *Who will use it?*
>
> The UA will use it to manage the keys for media element****
>
> Right?****
>
> ** **
>
> CDM will use it to find specific key for a encrypted block.****
>
> Right?****
>
> ** **
>
> *How to use the association?*
>
> I guess the association is used for CDM to find keys to decrypt the
> encrypted media content for a media element.****
>
> From 1.3.3, it is said user agent/CDM manage the lifetime of session id,
> and CDM may retain session id for some time,****
>
> So from here and David yesterday mentioned, we know session id is only
> available during key exchange (needKey->new MediaKeys->createSession->key
> request->addKey()->heartbeat), during decryption, the  session id cannot be
> used for association key and encrypted media. While initData contain key id
> information identify a particular key which can be used to find a key in a
> local table.****
>
> ** **
>
> ** **
>
> ** **
>
> 1****
>
> 2a****
>
> 2b****
>
> How Key session generate?****
>
> A method of media element (generateKeyRequest)****
>
> Constructor of MediaKeySesson****
>
> createSession method of MediaKeys (attribute of media element)****
>
> How to associate key session with media element?****
>
> MediaKeySession is a attribute of media element, strong association****
>
> Using addKeySession method of media element to add key session to media
> element****
>
> CreateSession will make MediaKeySession associated with MediaKeys of media
> element automatically****
>
> How CDM identify the Association between media and key?****
>
> By addKey (KeySystem, key, initData, sessionId) when a new media content
> block is encountered, the table in CDM will be added a row for key id and
> key, CDM know the key is used for current media block decryption.****
>
> ** **
>
> ** **
>
> So, I guess in CDM, in a lifetime of media playback, there will be a table
> for” key id<>key” mappings, if a media element has several
> sessions(video/audio tracks), and they will be decrypted by CDM
> simultaneously, the CDM will determine the key id through initData, and by
> looking up the table using the key id to find the key . After the page is
> closed, or media content change, the key id<>key relative to previous media
> content or stream will be cleaned.****
>
> Am I right on this?****
>
> ** **
>
> ** **
>
> ** **
>
> Yang****
>
> Huawei****
>
> ** **
>
Received on Wednesday, 18 July 2012 17:38:48 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 15:48:24 UTC