This repository has been archived by the owner on Jan 12, 2019. It is now read-only.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
See: #1395
AES encryption keys are fetched for every segment even if the same key is used to encrypt multiple segments (per HLS specification.) This causes unnecessary load on the key server if access to encryption keys are guarded by user-specific authentication and authorization mechanisms.
Specific Changes proposed
Cache encryption keys based on their resolved URI and only fetch keys when they're needed to decrypt the next series of segments.
Requirements Checklist
This is a rather crude PR because it doesn't update the tests (they fail now) and I'm not even sure this is the correct way to implement this. I'm not very experienced with this tech stack (I can't figure out how the testing libraries are supposed to work) so this is more "request for guidance" to implement this bug fix.
All feedback or assistance is welcome!