Bug 137321

Summary: [EME] Improvements to the secure proof of key release protocol
Product: WebKit Reporter: Jer Noble <jer.noble>
Component: MediaAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal    
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   

Description Jer Noble 2014-10-01 16:24:17 PDT
After conversations with clients, change the informal protocol used to generate SPoKR messages to the following:

  session = keys.createSession('mime', initData);
  ...
  session.close()

This will result in a new keymessage, the contents of which is the SPoKR blob for that session.

The client will acknowledge receipt of the blob by calling:

  session.update('acknowledge');

This will remove the session from the persistent store.

Additionally, outside of an existing storage, a client can ask for all outstanding SPoKR entries by creating a session like the following:

  session = keys.createSession('keyrelease', certData);

This will result in a new keymessage, the contents of the first SPoKR blob in the persistent store.

The client will acknowledge receipt of the blob by calling:

  session.update('acknowledge');

This will remove the session from the persistent store.