This change updates the unit tests to have more comments so that it is
more clear what went wrong if a test fails.
Also, some utility code has been changed to make it easier to support
new platforms and read/write locks.
Also, the reference code has had some refactoring added to make it
easier for Widevine to test CDM code. There should be no
functionality differences in the reference code.
Also, in the main API doc, there was an obsolete paragraph in the
description of the threading model. This paragraph has been removed.
This CL updates documentation, reference code, and unit tests to match
the OEMCrypto v15.1 API.
1. The design for the Full Decrypt Path Testing application has
changed. Instead of reading hashes from an external file, it will use
a single key frame and modify it to match the desired size. The test
application will then compute the hash and encrypt the frame. For
OEMCrypto, this means that there will not be a call to
OEMCrypto_InitializeDecryptHash before the frame and
OEMCrypto_SetDecryptHash after the frame. Instead, there will be a
single call to OEMCrypto_SetDecryptHash before the frame. The function
OEMCrypto_InitializeDecryptHash will not be used.
2. The "Shared License" feature is not used by any production
server. This functionality is no longer required and OEMCrypto may
reject licenses with a nonzero bit 23 in the key control block.