Clarify offline usage of sessions and keys and implement
implement CryptoSession to support additional crypto use
cases.
Change-Id: I3788e7b187cd20c4224bf07f3fc6bef48ee38bd6
The top level makefile will build license_protocol_protos.a, which is
needed by libcdm.a. Unit and end-to-end tests are now build separately
under cdm/test.
Also, the tests use Google C++ Testing Framework, so please build the
gtest library from external/gtest and run "mm" once before building
the tests.
Or just run "mmma vendor/widevine/libwvdrmengine" (or mma in
vendor/widevine/libwvdrmengine") once.
Change-Id: Iec5a7a974e2f23651191b7325230d9ae3d6b83f2
Builds libwvmdrmengine.so, which is loaded by the new
MediaDrm APIs to support playback of Widevine/CENC
protected content.
Change-Id: I6f57dd37083dfd96c402cb9dd137c7d74edc8f1c
In order to match the other implementations of CDM, we are going
to replace the android OEMCrypto mockup with the one in the cdm
repository.
This would be disruptive to the clear key library because it
relies on the current implementation of the mockup. In order to
prevent that, I am moving the current mockup into the same directory
as the clear key library. Then, we can put the new mockup under
the directory libwvdrmengine.
This mockup will then be deleted when the clear key library is deleted.
Change-Id: I89ee23f249dacd18241ae5ca499329e620bf5a2c
This is a software only implementation of the OEMCrypto library for
testing the rest of the DRM code. It currently implements the
OEMCrypto_DecrtyptCTR function using a clear key.
I've included the license request code so the rest of the group can
play with it, but I have only tested part of it.
This patch also has some makefiles and an integration testing. You
should be able to generate the shared library libclearkeydrmengine.so with
cd vendor/widevine/libclearkeydrmengine; mm
You can create some unit test and integration test programs from the
directories:
vendor/widevine/libwvdrmengine/oemcrypto/test
vendor/widevine/libclearkeydrmengine/test
vendor/widevine/libclearkeydrmengine/inttest
vendor/widevine/libclearkeydrmengine/crypto/test
This change also addresses some comments about comments in OEMCryptoDASH.h
which were made in https://googleplex-android-review.googlesource.com/257323
Change-Id: Id6899b9f8d2f09e09be2ea493baa83a6b929073b
I added a few error codes for out-of-resource type conditions.
I added comments explain which functions may be called simultaneously.
Basically, info only functions, like getDeviceId, may be called anytime after
initialization. Functions that have a session parameter may be called at the
same time as other functions for a different session, but not for the same session.
Functions that create or delete sessions may not be called as the same time as any
each other, or at the same time as any session functions. The CDM is required to
honor these conventions.
If the OEM can only decrypt for one session at a time, it is the OEM's
responsibility to hold a lock.
Change-Id: If4b11afd70b5b2e67d78802ea0057fb25271ae90
The file OEMCrypto.h was renamed to OEMCryptoDASH.h and all
functions that are only needed for legacy support were removed.
Change-Id: I3a7a6f8cbb3ee415b4a313416a25ed78785ecdd7
This header file documents the interface of the ContentDecryptionModule
and the CDM client.
b7615806
Change-Id: I9a036ec5539f7e5b66adb8a6a4326120624d1b30
I added a Mock OEMCrypto implementation with stubs only.
I corrected the "extern C" location in OEMCrypto.h. (Thanks, Jerry!)
I added some Android.mk files that allows us to compile and
run a few simple unit tests.
Unit Test 1: The library compiles. (passes)
Unit Test 2: The test program links and runs. (passes)
Change-Id: Ib4c9554553de49645b5841b0bae889728cbfc8b1