Commit Graph

740 Commits

Author SHA1 Message Date
Jeff Tinker
48742bba5b am 8e5bc02e: Merge "Allow license renewals after expiry" into klp-dev
* commit '8e5bc02e51304ff6d093fbe1b06678e7fd2261bb':
  Allow license renewals after expiry
2013-11-07 11:13:19 -08:00
Jeff Tinker
8e5bc02e51 Merge "Allow license renewals after expiry" into klp-dev 2013-11-07 19:09:50 +00:00
Jeff Tinker
98872de379 am 0553f411: Add ExoPlayerDemo.apk to vendor/widevine so partners can access it and use to verify integrations.
* commit '0553f411db17ce24e2376c23deb333042431fbd7':
  Add ExoPlayerDemo.apk to vendor/widevine so partners can access it and use to verify integrations.
2013-11-07 09:46:44 -08:00
Jeff Tinker
0553f411db Add ExoPlayerDemo.apk to vendor/widevine so partners can access
it and use to verify integrations.

bug: 11357407

Change-Id: Ie38cef1dfd2fe685721e7fb4f37e881326321727
2013-11-06 14:28:09 -08:00
John "Juce" Bruce
9461926017 am fd482527: L1 System Lowered to L3 Still Requires Secure Decoders
* commit 'fd482527e4b07c6664bd463785a3ec8ba554a788':
  L1 System Lowered to L3 Still Requires Secure Decoders
2013-11-06 13:58:56 -08:00
John "Juce" Bruce
fd482527e4 L1 System Lowered to L3 Still Requires Secure Decoders
Merge of https://widevine-internal-review.googlesource.com/#/c/8263
from the Widevine repo.

Changes the behavior of requiresSecureDecoderComponent() to query the
session for whether a lowered security level has been requested
before querying the system to see what its default security level is.

As part of this, we added a new QuerySessionStatus() method to the
CDM that gets status info on a session-specific level, such as the
effective security level of a session.

Bug: 11428937
Change-Id: I5549a2fdd400cc87f567d27fcf74c473451093d6
2013-11-06 19:31:24 +00:00
Jeff Tinker
a3d689d983 am 0a9f0b1d: Merge "Upgrade Widevine Classic to 4.5.0.10113 - DO NOT MERGE" into klp-dev
* commit '0a9f0b1dd86d23e8f24bd31077cb52b7a74d4dd6':
  Upgrade Widevine Classic to 4.5.0.10113 - DO NOT MERGE
2013-11-06 10:05:27 -08:00
Jeff Tinker
0a9f0b1dd8 Merge "Upgrade Widevine Classic to 4.5.0.10113 - DO NOT MERGE" into klp-dev 2013-11-06 18:00:53 +00:00
Jeff Tinker
7db580d6b9 am dd672f0c: Merge "Use renewal URL in license tests" into klp-dev
* commit 'dd672f0c68cd72dd957d0cbfe15207afccbd98e6':
  Use renewal URL in license tests
2013-11-06 09:24:58 -08:00
Jeff Tinker
cbcd885e7c am 30469021: Merge "Search for keys in shared sessions only when content is encrypted" into klp-dev
* commit '30469021715ae8747801cc7622deb1d2d608e78c':
  Search for keys in shared sessions only when content is encrypted
2013-11-06 09:24:58 -08:00
Jeff Tinker
dd672f0c68 Merge "Use renewal URL in license tests" into klp-dev 2013-11-06 17:24:07 +00:00
Jeff Tinker
3046902171 Merge "Search for keys in shared sessions only when content is encrypted" into klp-dev 2013-11-06 17:22:33 +00:00
Rahul Frias
774a078f1d Allow license renewals after expiry
Licenses could be renewed uptil the point of expiry. After that point
we expected that the session would have to be closed and a new one
opened with a new license loaded. Clank requested that we support
renewal of sessions past expiry.

In addition, the error returned on decryption, if OEMCrypto
determines that the KCB duration has expired, is NEED_KEY rather than
KEY_ERROR.

Merge of https://widevine-internal-review.googlesource.com/#/c/8240
from the widevine cdm repo.

b/11390539

Change-Id: I023320f3f25514cd07b368701a92100429ce1c04
2013-11-05 16:40:17 -08:00
John "Juce" Bruce
84b79eccb6 Upgrade Widevine Classic to 4.5.0.10113 - DO NOT MERGE
Contains the following, BC-Triaged fixes:

Bug: 8767242
Media player error -1010 on playback

Bug: 8342523
Android Media player is able to play WVM content if license is
already acquired

Change-Id: I3ee7863a5bf214fb8c4e4aefdd05f5062d568617
2013-11-04 12:03:41 -08:00
Jeff Tinker
5d8a218d3a am 84e83f4a: Merge "Move OEMCrypto_Initialize earlier" into klp-dev
* commit '84e83f4a33d5a20b128bc201af2f6e9d6146947e':
  Move OEMCrypto_Initialize earlier
2013-10-31 15:44:48 -07:00
Jeff Tinker
84e83f4a33 Merge "Move OEMCrypto_Initialize earlier" into klp-dev 2013-10-31 22:40:43 +00:00
Jeff Tinker
48b1acac38 am 49e593d1: Stop policy timer before invoking session destructor
* commit '49e593d12702a3ffd671402e585dc271cc72d65b':
  Stop policy timer before invoking session destructor
2013-10-30 11:10:54 -07:00
Jeff Tinker
acb47e0f9a Move OEMCrypto_Initialize earlier
Some OEMCrypto calls are happening before OEMCrypto_Initialize.
This change moves initialization earlier so it occurs before
any other calls to OEMCrypto.

bug: 10582250
Change-Id: Ic8992e8f0738dbfeb10074a4e1543bb9931a49d5
2013-10-28 15:53:52 -07:00
Rahul Frias
64c3cb986a Use renewal URL in license tests
After a change to the GPlay license server, it no longer accepts heartbeats
at the license server URL ( https://jmt17.google.com/video-dev/license/ ).
The CDM correctly reports https://jmt17.google.com/video-dev/heartbeat/
as the renewal URL but the current test code ignores the reported URL.
The license server then rejects the request and send back an empty
license response.

This causes WvCdmRequestLicenseTest.StreamingLicenseRenewal
and WvCdmRequestLicenseTest.StreamingLicenseRenewal to fail. Request
license tests have been modified to respect the renewal URL.

Merge of https://widevine-internal-review.googlesource.com/#/c/8188
from the widevine cdm repo

b/11290339

Change-Id: I1dcf8277edce99633086fb3db8ffeb7a32a5500d
2013-10-25 13:15:56 -07:00
Rahul Frias
252a07316a Search for keys in shared sessions only when content is encrypted
Also return NEED_KEY rather than KEY_ERROR if keys are not found.

Merge of https://widevine-internal-review.googlesource.com/#/c/8250
from the widevine cdm repo.

b/11375092

Change-Id: Ibc629e8b4018f43f5f9528258563a2af79bdfb4b
2013-10-25 13:09:40 -07:00
Jeff Tinker
49e593d127 Stop policy timer before invoking session destructor
The CDM session was being destroyed before the policy timer was stopped
and before the session was removed from a list of active sessions. This
allowed race conditions, where the policy timer would try to evaluate
policy for a closed session. This led to segfaults.
b/11338324

Merge of https://widevine-internal-review.googlesource.com/#/c/8240/1
from the widevine cdm repo.

Change-Id: Ib159ccfdb763a47da573f5c06c0793c2c63886c4
2013-10-25 10:50:02 -07:00
Colin Cross
022f09fe9a am 6fc2ee33: set LOCAL_MODULE_OWNER for libwvdrmengine.so
* commit '6fc2ee33c3882e86eedba2004ddae150b6d0a09b':
  set LOCAL_MODULE_OWNER for libwvdrmengine.so
2013-10-24 13:28:59 -07:00
Colin Cross
6fc2ee33c3 set LOCAL_MODULE_OWNER for libwvdrmengine.so
Change-Id: I10d63ef381a612a0177ce5a3ddd24f44b6ae05a0
2013-10-24 12:40:19 -07:00
Rahul Frias
d5522d903e am e385ff3a: Do not close CDM session on removeKeys
* commit 'e385ff3a7fb52e66cc1d0e63a207dbf2f32f2362':
  Do not close CDM session on removeKeys
2013-10-11 15:09:20 -07:00
Rahul Frias
e385ff3a7f Do not close CDM session on removeKeys
A change was introduced between jb-mr2 and klp-dev that closed
the CDM session when the removeKeys mediaDrm APIs was called.
This was introduced because there is no way of unloading keys from
an OEMCrypto session.

This caused problems for Netflix, as an exception occurred when they
tried to close a session after calling removeKeys.

Reverting to jb-mr2 behaviour for now. b/11188818 has been opened to
track a longer term resolution.

b/11185042

Change-Id: I03bc736d2bc5bdabc86cfb7b75ae8bcbc03ffc7c
2013-10-11 14:42:37 -07:00
Jeff Tinker
6141ac4bc6 am 9b1d8119: Merge "Allows sharing of keys between sessions" into klp-dev
* commit '9b1d8119e5e0c6496d2e84eb5ac9bc1d12fe983c':
  Allows sharing of keys between sessions
2013-10-11 10:04:28 -07:00
Jeff Tinker
9b1d8119e5 Merge "Allows sharing of keys between sessions" into klp-dev 2013-10-11 17:02:00 +00:00
Rahul Frias
b2cea8cdd3 am a74980b2: Address key selection and decryption concurrency issues
* commit 'a74980b2f1b91727e39e3e558b3bec6a1ad8337b':
  Address key selection and decryption concurrency issues
2013-10-11 08:43:11 -07:00
Rahul Frias
56bd5d5d82 Allows sharing of keys between sessions
This change allows the app to specify that keys may be shared by sessions.
The app enables this by setting the session sharing properties in DRM Plugin.
Keys are shared only amoungst the specified group of sessions.

Merged from widevine CDM repo
 * https://widevine-internal-review.googlesource.com/#/c/8019/
 * https://widevine-internal-review.googlesource.com/#/c/8021/

Bug: 11013707
Change-Id: I52db41a53138b4fc563ebc6d38a623f23f7cdfb5
2013-10-10 23:23:39 -07:00
Rahul Frias
a74980b2f1 Address key selection and decryption concurrency issues
Decryption calls though multiple threads may result in race conditions
between the setting of the key and the actual call to decryption.
This results in OEMCrypto errors when the buffer type used in
decryption did not match the key selected. This is addressed by
having the the two calls be in the same critical section.

b/11009857

Change-Id: I74f1a0689ca17114f3cdd029022013b05c415acd
2013-10-02 15:44:39 -07:00
Fred Gylys-Colwell
5a4134e852 am 67c794ba: Add unit test for empty mac key
* commit '67c794bac351d0c15e00b5aca12cf3408e9bfe19':
  Add unit test for empty mac key
2013-10-02 14:30:48 -07:00
Fred Gylys-Colwell
67c794bac3 Add unit test for empty mac key
Merge of change https://widevine-internal-review.googlesource.com/7950.

In the OEMCrypto library, it is valid to call LoadKeys with an empty
mac key.  The library should not update the mac and enc keys and
should not throw an error.

Since we have seen this behavior in several implementations, a unit
test should be added that verifies the correct behavior.

bug: 11032674
Change-Id: I011ba39c8abc47547226a722143e92dac3f63dc5
2013-10-01 19:02:16 -07:00
John "Juce" Bruce
cfce154ddd am fc0c408c: (-s ours) am 5a2e3f41: (-s ours) am 1e0e3e3a: (-s ours) am 470fb26f: am 071f6998: DO NOT MERGE - Update Widevine Classic on JB-MR1.1 to 4.5.0.10107
* commit 'fc0c408c8d76bad5729aa84d3b608a61c26617d1':
  DO NOT MERGE - Update Widevine Classic on JB-MR1.1 to 4.5.0.10107
2013-10-01 15:46:34 -07:00
John "Juce" Bruce
fc0c408c8d am 5a2e3f41: (-s ours) am 1e0e3e3a: (-s ours) am 470fb26f: am 071f6998: DO NOT MERGE - Update Widevine Classic on JB-MR1.1 to 4.5.0.10107
* commit '5a2e3f41369239f6e614c30bef2fe2c116e464b0':
  DO NOT MERGE - Update Widevine Classic on JB-MR1.1 to 4.5.0.10107
2013-10-01 15:43:07 -07:00
John "Juce" Bruce
5a2e3f4136 am 1e0e3e3a: (-s ours) am 470fb26f: am 071f6998: DO NOT MERGE - Update Widevine Classic on JB-MR1.1 to 4.5.0.10107
* commit '1e0e3e3a9f220077a4bd61a8b34ad52d66773d1a':
  DO NOT MERGE - Update Widevine Classic on JB-MR1.1 to 4.5.0.10107
2013-10-01 15:23:13 -07:00
John "Juce" Bruce
1e0e3e3a9f am 470fb26f: am 071f6998: DO NOT MERGE - Update Widevine Classic on JB-MR1.1 to 4.5.0.10107
* commit '470fb26f7201e0f3161e5f0aea95743ad5d4aa11':
  DO NOT MERGE - Update Widevine Classic on JB-MR1.1 to 4.5.0.10107
2013-10-01 15:19:32 -07:00
John "Juce" Bruce
470fb26f72 am 071f6998: DO NOT MERGE - Update Widevine Classic on JB-MR1.1 to 4.5.0.10107
* commit '071f6998928ff2dbc0c5c3393f4ea9f0e6205ce9':
  DO NOT MERGE - Update Widevine Classic on JB-MR1.1 to 4.5.0.10107
2013-10-01 15:17:45 -07:00
John "Juce" Bruce
071f699892 DO NOT MERGE - Update Widevine Classic on JB-MR1.1 to 4.5.0.10107
This updates the Widevine Classic libraries to version 4.5.0.10107.
This version backports the bugfix for the IPv6 issue from JB-MR2.
Also, the Widevine build system has been updated to support all six
flavors. (2 security levels x 3 instruction sets)

This change adds x86 L1 binaries and MIPS L3 binaries, as these have
been validated by partners.

Bug: 10246711
Change-Id: Ic0cf32ffd82fc8dacced84cecdee059afa1049ca
2013-10-01 15:12:21 -07:00
Jeff Tinker
c28be299dc Avoid multiple loads of Device RSA private key
Molly reports OEMCrypto errors when Device RSA private key is
loaded a second time in the same session. This occurs in privacy
mode when a service certificate is request and later a key request is
generated.

bug: 10815492

Merge of https://widevine-internal-review.googlesource.com/#/c/7823/
from Widevine cdm repo

Change-Id: I98999fb0e77597109b68c379eaaa4838d3f6dde4
2013-09-19 17:23:58 -07:00
Fred Gylys-Colwell
4fbb928628 am 7ac83679: (-s ours) am e80df9e5: (-s ours) am fc913138: am 0b56285a: Update JBMR1 Widevine Libraries to 4.5.0.10095 (DO NOT MERGE)
* commit '7ac83679de4f8931d01bbd53697a2b8daf04051b':
  Update JBMR1 Widevine Libraries to 4.5.0.10095 (DO NOT MERGE)
2013-09-12 11:58:45 -07:00
Fred Gylys-Colwell
7ac83679de am e80df9e5: (-s ours) am fc913138: am 0b56285a: Update JBMR1 Widevine Libraries to 4.5.0.10095 (DO NOT MERGE)
* commit 'e80df9e55555d34385bfab29d40fd5f07ade16fd':
  Update JBMR1 Widevine Libraries to 4.5.0.10095 (DO NOT MERGE)
2013-09-12 11:49:10 -07:00
Fred Gylys-Colwell
e80df9e555 am fc913138: am 0b56285a: Update JBMR1 Widevine Libraries to 4.5.0.10095 (DO NOT MERGE)
* commit 'fc913138ac362253fc559a9d414dc4d46c4d154f':
  Update JBMR1 Widevine Libraries to 4.5.0.10095 (DO NOT MERGE)
2013-09-12 11:16:14 -07:00
Fred Gylys-Colwell
fc913138ac am 0b56285a: Update JBMR1 Widevine Libraries to 4.5.0.10095 (DO NOT MERGE)
* commit '0b56285a624338a87f7759f73faa0cda44b42cfa':
  Update JBMR1 Widevine Libraries to 4.5.0.10095 (DO NOT MERGE)
2013-09-12 11:12:59 -07:00
John "Juce" Bruce
74e786ccaf am 67a83a22: (-s ours) DO NOT MERGE - Update Widevine Classic to 4.5.0.10107
* commit '67a83a22f77dca06f9f60f17111c0d8e1d737a87':
  DO NOT MERGE - Update Widevine Classic to 4.5.0.10107
2013-09-12 10:08:58 -07:00
Fred Gylys-Colwell
d475d0282a Added locking to session table in oemcrypto_adapter_dynamic.
This change the merge from the android tree of:
https://widevine-internal-review.googlesource.com/7353

bug: 10447846

Change-Id: I0a2496fc6f225e0f3b23731c24087ddc6068c9cc
2013-09-04 11:06:37 -07:00
Jeff Tinker
d3a8d10868 Merge "Do Not Return an Error When AddKey Says it Needs a Key" into klp-dev 2013-09-04 17:26:33 +00:00
John "Juce" Bruce
259927efc5 Do Not Return an Error When AddKey Says it Needs a Key
Swallows the error NEED_KEY if it comes back from AddKey(), as this
is expected behavior. (It means privacy mode is on and the key that
was just added was the privacy certificate, ergo the real decryption
key is still absent.) Note that this carefully does not squelch the
notification that comes from NEED_KEY, which is still necessary in
order for the app to make a second key request.

Also streamlines a test case that I noticed was overcomplicated for
what it did while poaching code from it for new test cases.

Also removes a .gyp file that was erroneously being copied to the
Android tree.  Android does not use GYP.

Bug: 10495563
Change-Id: Ife3ff0270a0d09dac1b0eb0d84bddffd811e1eef
2013-09-03 16:29:08 -07:00
Rahul Frias
a233ac2084 Replace staging with production Root CA public key
A staging Root CA public key was used in earlier releases to verify
service certificates. These were in turn used to encrypt the
client identification. This met our needs for an end-to-end verification.
Now that the production Root CA and service certs are available
this change replaces staging certs with production ones.

Merge of https://widevine-internal-review.googlesource.com/#/c/7560/ from
the widevine CDM repo

b/10329328

Change-Id: Id02649201d9a8ba4d08acc4166503341a5bbdd23
2013-09-03 10:53:53 -07:00
Jeff Tinker
0ef6550593 Merge "Rename Unit Test" into klp-dev 2013-08-30 22:30:57 +00:00
Fred Gylys-Colwell
0ab663d8a5 Rename Unit Test
In order to run all disabled OEMCrypto unit tests with one gtest
filter, one of them needs to be renamed so it matches the others.

These tests are disabled by default because they install a test
keybox, which would be dangerous on a production device.

Merged from CDM change
https://widevine-internal-review.googlesource.com/7440

bug: 10508973
Change-Id: I9508b133c6500ec28ce8890a4af89f016344b842
2013-08-30 12:51:11 -07:00