FairPlay Streaming initialisation data contains erroneous characters if EXT-X-KEY URI attribute length is > 16 bytes

Originator:kid.miracleman01
Number:rdar://29244812 Date Originated:14/11/2016
Status:Open Resolved:
Product:Safari Product Version:9.1.3
Classification:Bug Reproducible:Always
 
Summary:
Hi,

When I use a 'long' URI attribute when packaging FPS encrypted content  - Safari returns initialisation data in the 'webkitneedkey' event that contains prepends erroneous characters to the attribute value specified in the URI or the EXT-X-KEY HLS tag  -e.g   skd://558873b4-38ce-4e61-9f9f-637e486742ff  becomes T skd://558873b4-38ce-4e61-9f9f-637e486742ff.

It seems to happen when the URI (including skd://) is > 16 bytes.  

This breaks the URI/AssetID parsing implementation in the Safari demo page for FairPlayStreaming testing.

This does not effect the iOS FairPlay implementation 

The content is packaged using mediafilesegmenter and variantplaylistcreator tools (supplied by Apple)

Steps to Reproduce:
1.) goto <redacted>
2.)Select FairPlay VOD from dropdown list  - observe WebInspector logs

Expected Results:
The initialisation data begins with skd://

Actual Results:
The initialisation data contains erroneous characters 

Version:
OSX 10.10 / 10.11 and macOS sierra running both Safari 9 and 10   - All versions/combinations tested exhibit this issue.


Notes:


Configuration:


Attachments:

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!