Add info on creating encrypted bytes
Make a document with an explanation of how to create test encrypted data from the command-line.
Remove local reference to pkcs7

Use the global command not a relative link to a checkout of the project.
AES-128 decryption
Implement the block level AES decipher and include the routine to do PKCS#7 unpadding.
Decrypt multiple blocks with cipher block chaining
Generalize the decryption function to use the initialization vector and decrypt multiple four-word sequences using cipher block chaining. Add a utility function to convert ASCII bytes to strings to clean up the test cases a bit.
Parse key tags out of M3U8s
Enhance ParseStream to recognize and parse #EXT-X-KEY lines. Update Parser to track a currently active key and annotate each segment with the parsed key information. Added test cases and an example encrypted playlist.
Add fetching keys mechanism and tests.
playistloaded kicks off the key fetching mechanism for the whole
playlist.
If keys cannot be downloaded after two retries, the segment is skipped.
Keylime pie for everyone.
Move decrypt function
Put decrypt() onto videojs.Hls to be more consistent with other "static" functions.
clear out tags for segment parser
move transmuxing into drainBuffer
Encrypted HLS working on the example page
Used an adaptive, encrypted m3u8 on the example page and included hex dump utilities. Fixed formatting issues with the hex dump utility. Passed a 16-byte IV to the decrypter in drainBuffer(). Swapped byte order for the keys so they are not misintrepreted as little-endian. Added fields to the muxer test page to mux encrypted segments. Updated tests. Fixed docs on using openssl to test encryption and decryption.
Abort key XHRs on media change
If a key request was outstanding when the media playlist changed, the call to fetchKeys() for the new playlist would be ignored. This caused segments to get stuck in drainBuffer() waiting for their keys. Now, we abort key requests as soon as we change media and immediately try to fetch the keys for the new playlist.
Clean up example page
Make the margins a bit more consistent.
Allow non-local access to grunt connect server
If you're testing your changes on other machines, it's handy to be able to use the connect task. Modified the config so connect will listen for non-local connections.
Treat invalid keys as key failures
If the key is not the correct size, retry the request once. If the retry still fails, try moving on to find a playable segment.
Restore bipbop to the example page
Bip bop is better for testing purposes than the encrypted trailer video.
Merge pull request #139 from videojs/feature/hlse2

Support segment-level AES-128 encryption