Commit Graph

706 Commits

Author SHA1 Message Date
Rahul Frias
ae28e74144 am 496bfc87: Correct android release version number in tests
* commit '496bfc87b31fc31d4a04542cb1877d7be28ec911':
  Correct android release version number in tests
2015-08-05 07:11:32 +00:00
Rahul Frias
496bfc87b3 Correct android release version number in tests
[ Merge of http://go/wv/15293 ]

b/22916797

Change-Id: I120bae5e656c6d766f8ab7a21d578f17ff22d37a
2015-08-04 14:59:08 -07:00
Rahul Frias
bd8b7f231a am 93f5f1cd: am bf100619: Merge "Verification of client identification in Secure Stop messages" into mnc-dev
* commit '93f5f1cda8986f0455d400bcae348ef2cd024b32':
  Verification of client identification in Secure Stop messages
2015-07-14 16:52:42 +00:00
Rahul Frias
93f5f1cda8 am bf100619: Merge "Verification of client identification in Secure Stop messages" into mnc-dev
* commit 'bf10061929aebb2ddf088b4daad42458ac8eefa4':
  Verification of client identification in Secure Stop messages
2015-07-14 16:30:22 +00:00
Rahul Frias
bf10061929 Merge "Verification of client identification in Secure Stop messages" into mnc-dev 2015-07-13 18:45:18 +00:00
Jeff Tinker
a87caa88bd am 59a9f8e3: am 47014df2: Return specific error code when decrypting on invalid session
* commit '59a9f8e37eb723780d6f463531a07d00a8b753b2':
  Return specific error code when decrypting on invalid session
2015-07-08 02:07:29 +00:00
Jeff Tinker
59a9f8e37e am 47014df2: Return specific error code when decrypting on invalid session
* commit '47014df2e8b8a3bc350a170ae3d15230332a505a':
  Return specific error code when decrypting on invalid session
2015-07-08 01:37:28 +00:00
Jeff Tinker
47014df2e8 Return specific error code when decrypting on invalid session
bug: 22235465
Change-Id: I7b4d47d86d35270291ced02112a96800ba03ed1a
2015-07-07 08:55:22 -07:00
Rahul Frias
12ccd847cf Verification of client identification in Secure Stop messages
[ Merge of http://go/wvgerrit/14993 ]

b/22047007

Change-Id: I8f3de72f0746fad4a2382a826cb301408398a4c4
2015-07-06 15:23:24 -07:00
Fred Gylys-Colwell
b1ddcf1495 am 03f523ca: am e280ba6c: Merge "Add Short Key ID Test" into mnc-dev
* commit '03f523cab014cc3169d603d289dd51f9ca9ee71e':
  Add Short Key ID Test
2015-07-04 08:04:40 +00:00
Kyle Alexander
c6ff29c6c3 am bc14139f: am 86adf4a2: Add secure VP9 content to GTS content list.
* commit 'bc14139fc02caad4ded8faa4dbbf7697e50924f2':
  Add secure VP9 content to GTS content list.
2015-07-04 08:04:40 +00:00
Fred Gylys-Colwell
03f523cab0 am e280ba6c: Merge "Add Short Key ID Test" into mnc-dev
* commit 'e280ba6c4149f4631df9f7e301b81c44aa228dc6':
  Add Short Key ID Test
2015-07-02 01:09:42 +00:00
Kyle Alexander
bc14139fc0 am 86adf4a2: Add secure VP9 content to GTS content list.
* commit '86adf4a25ce0f1ead40c9877ff981d30f5c9cbc2':
  Add secure VP9 content to GTS content list.
2015-07-02 01:09:41 +00:00
Fred Gylys-Colwell
e280ba6c41 Merge "Add Short Key ID Test" into mnc-dev 2015-07-01 22:50:10 +00:00
Fred Gylys-Colwell
4b3c02267a Add Short Key ID Test
Merge from widevine repo of http://go/wvgerrit/14970

Even if devices cannot handle key ids with different lengths in the
same license, they should still handle keys with a shorter key id.

This is a partial fix for:
bug: 21935358

Change-Id: Ibc84f0b5d7d9bc5d24a2081f0581a2b256e51f44
2015-07-01 13:21:21 -07:00
Kyle Alexander
86adf4a25c Add secure VP9 content to GTS content list.
ExoPlayerDemo build is based on the demo-debug.apk built from:
google3/third_party/java_src/android_libs/exoplayer

Supporting cl in google3: cl/97176187

Bug: 19571315
Change-Id: I611e9e5f363ecfeb66e4813c1f6939abbf855d09
2015-07-01 10:02:49 -07:00
Fred Gylys-Colwell
84efb88c28 Do not depend on wvcdm::Clock in OEC tests
Merge from widevine repo of http://go/wvgerrit/14669

This fixes two timing-related test failures when running the OEMCrypto
tests in the CE test suite.  The failures were caused by the TestHost
Clock implementation, which is a fake.  Since there is no clear reason
for OEMCrypto/mock to rely on wvcdm::Clock, this replaces it with
time(NULL).  Incidentally, this also makes the time source consistent
with the tests themselves, which were already using time(NULL).

Change-Id: I0fad51f14d45f99526146da05b757d4ba7b6aba0
2015-06-29 18:17:15 -07:00
Fred Gylys-Colwell
54bb6ea3c8 Add Comment to DecryptWithNearWrap
Merge from widevine repo of http://go/wvgerrit/14933

There was some confusion what the test DecryptWithNearWrap is
testing.  This CL adds some expanatory comments.

Change-Id: I9228830d81c089f80e0878f647e7e94c3e49896a
2015-06-29 18:16:21 -07:00
Rahul Frias
49022130db am 460d24b1: Merge "Return Client Identification information in Secure Stop" into mnc-dev
* commit '460d24b135bc601f712b432ba915bd2009fe230a':
  Return Client Identification information in Secure Stop
2015-06-29 23:26:02 +00:00
Rahul Frias
5bda807161 am 6e2cc1a3: Avoid multiple deletions of a usage entry
* commit '6e2cc1a3ed53d2fed2ad87edbcda4fac37313fb0':
  Avoid multiple deletions of a usage entry
2015-06-29 23:26:01 +00:00
Rahul Frias
460d24b135 Merge "Return Client Identification information in Secure Stop" into mnc-dev 2015-06-29 22:59:47 +00:00
Rahul Frias
6e2cc1a3ed Avoid multiple deletions of a usage entry
[ Merge of http://go/wvgerrit/14900 ]

When releasing a license, usage entries were being released twice with
both OEMCrypto_DeleteUsageEntry and OEMCrypto_ForceDeleteUsageEntry being
called. The second call would always fail because the usage information had
already been released. The CdmSession::DeleteLicense methods will now only
handles deletion of license metadata and leave deletion of usage entries to
the CdmLicense class.
b/22097805

Change-Id: Ic55764d5357043d136e7d88583f709a4ceea3e64
2015-06-29 14:47:24 -07:00
Rahul Frias
d220d41425 Return Client Identification information in Secure Stop
[ Merge of http://go/wvgerrit/14920 ]

The renew_with_client_id field was not being correctly set when licenses
were being restored for usage reporting.

b/22047007

Change-Id: Ib769431b1e49bb498f53d8153a970b6c0a2776d2
2015-06-29 14:06:17 -07:00
Rahul Frias
d58ac8094f am 57eb7cb6: Merge "Add unit tests for offline licenses without session usage" into mnc-dev
* commit '57eb7cb6ba415634aa90fbb2d7b63561f1b6416d':
  Add unit tests for offline licenses without session usage
2015-06-25 15:12:30 +00:00
Rahul Frias
57eb7cb6ba Merge "Add unit tests for offline licenses without session usage" into mnc-dev 2015-06-25 06:40:21 +00:00
Fred Gylys-Colwell
3f34e492b9 am 66603102: Make MaxSessionsOpenCloseAPI10 More Lenient
* commit '666031026ca8e85a87b90922e4af1b8b633b3aac':
  Make MaxSessionsOpenCloseAPI10 More Lenient
2015-06-25 05:20:54 +00:00
Fred Gylys-Colwell
666031026c Make MaxSessionsOpenCloseAPI10 More Lenient
Merge from widevine repo of http://go/wvgerrit/14870

OEMCrypto_GetMaxNumberOfSessions is not required to return a hard
limit for the number of sessions.  This CL adjusts the test to verify
we can open within 5% of the maximum number of sessions.

bug: 22029687
Change-Id: I6e72e39338cead8d547cdb194a32fb7e7dc53037
2015-06-24 17:49:06 -07:00
Tim Kilbourn
c74222f523 Rename the internal copy of gmock.
The external/gmock project does not include the patches needed for
widevine, so renaming the internal copy allows both to coexist in the
build system.

(cherry-pick of 5b830f19b6 with conflict.)

Change-Id: I77c956db30921afffe31d11e1cd2d99541925f35
2015-06-23 16:00:47 -07:00
Rahul Frias
f5f2e826f2 Add unit tests for offline licenses without session usage
[ Merge of http://go/wvgerrit/14824 ]

OEMCrypto v9 added support for secure usage reporting with the help of
a session usage table. This was enabled through the replay control bits
in the key control block. It was expected that streaming licenses
would enable the nonce required bit, while offline licenses would
enable session usage table entry flag. There are certain cases
where content providers would prefer not to enable the flag for offline
licenses and this test verifies that this scenario works.

b/17514500

Change-Id: Icd1bea8cec2fd52be2be249424891ce1755d5f25
2015-06-22 15:38:33 -07:00
Rahul Frias
9aca14e4fe Merge "Allow interspersed provisioning attempts to succeed." into mnc-dev 2015-06-20 01:06:01 +00:00
John "Juce" Bruce
256dd1a5b4 Merge "Re-Add MIPS to Android CDM Build" into mnc-dev 2015-06-20 00:33:01 +00:00
John "Juce" Bruce
da8e2beb28 Merge "Do Not Use GNU-Style Hashing on MIPS" into mnc-dev 2015-06-20 00:31:50 +00:00
John "Juce" Bruce
64d9be5615 Fix OEMCrypto Tests
(This is a merge of http://go/wvgerrit/14810)

By making this constant unsigned, all calculations in EXPECT_ALMOST
were cast to unsigned, leading to underflow problems when it was
subtracted from zero.

Change-Id: Iefc4e30604c45fec8b203375074b26fb12ec385f
2015-06-19 17:08:56 -07:00
Rahul Frias
a1895e7e2e Allow interspersed provisioning attempts to succeed.
merge of http://go/wvgerrit/14807 from the widevine repo.

The mediaDrm API only allows for a single provisioning attempt at a time.
If concurrent provisioning attempts occur, resources are released from
all but the last request, in order to allow at least that one to be successful.

Any provisioning responses received before one from the last request will
be rejected. A side-effect was that all provisioning resources would
then be released. This caused a provisioning response from the last attempt
to be rejected as well. This CL corrects this behavior and releases resources
only if a provisioning attempt is successful.

The side-effect is that, if the response to the last request is not received
or failure occurs while processing, a crypto session may be held until the
next provisioning attempt.

In other cases of concurrency, provisioning responses to requests other than
the last which are received after the last response will be declared successful.

b/21879484

Change-Id: I3a840ceda1a16ee6adb40c2dbca6c4adf3da12c3
2015-06-19 23:40:05 +00:00
John "Juce" Bruce
8443abc555 Re-Add MIPS to Android CDM Build
(This is a merge of http://go/wvgerrit/14795)

This change restores the ability to build the Widevine CDM for Android
for MIPS devices. It restores the precompiled binaries for MIPS and
re-adds MIPS to all makefiles.

This change includes a new build of the obfuscated binaries for
MIPS32r1 that were built using a MIPS device on the emulator.

level3/mips/libwvlevel3.a  Level3 Library Jun 19 2015 12:32:49

Bug: 19482469
Change-Id: Ifa1c299a5751f3772c42289d8333a2b8cec51f69
2015-06-19 16:34:08 -07:00
John "Juce" Bruce
123c469d3e Do Not Use GNU-Style Hashing on MIPS
(This is a merge of http://go/wvgerrit/14801)

The MIPS compiler does not support GNU hashing, which means this
compiler option needs to be excluded.

Bug: 19482469
Change-Id: I913f666a39eb535a33ebfbc49e5e7531115db5d4
2015-06-19 16:33:11 -07:00
Fred Gylys-Colwell
20b07afad9 Merge "Disable Flaky Key Id Length Tests" into mnc-dev 2015-06-19 22:27:26 +00:00
Fred Gylys-Colwell
592f8ad6db Disable Flaky Key Id Length Tests
Merge from widevine directory of http://go/wvgerrit/14784

These tests are not passing on multiple devices so I will disable them
until I am sure they are giving a clear signal.

bug: 21935358
Change-Id: I1e0cf01e64ea50b02d61d4b8334c0efb55e47d35
2015-06-19 13:29:52 -07:00
Rahul Frias
dcc5cc1ee1 Merge "Address compiler warning" into mnc-dev 2015-06-19 19:40:32 +00:00
John "Juce" Bruce
3efe87583d Merge "Be More Forgiving in EXPECT_ALMOST()" into mnc-dev 2015-06-19 18:20:30 +00:00
John "Juce" Bruce
b0cfa834f1 Merge "Fail Test if LoadOfflineLicense() Helper Fails" into mnc-dev 2015-06-19 18:17:55 +00:00
Rahul Frias
f08d6fae3a Address compiler warning
[ Merge of http://go/wvgerrit/14788 ]

A retired error code was not being handled when converting from
a WVStatus error code to a ERROR_DRM_VENDOR error code.

b/13976775

Change-Id: Ib4363792e4a5e9a20fc718d169b3e0348413267a
2015-06-19 11:14:21 -07:00
John "Juce" Bruce
6a773e3630 Be More Forgiving in EXPECT_ALMOST()
(This is a merge of http://go/wvgerrit/14776)

This change widens the range in EXPECT_ALMOST slightly, to allow for
slight timing errors in the tests.

Bug: 21489628
Change-Id: Ibb074c2d037566c307c0438efdda3841bc48f7ed
2015-06-18 19:00:06 -07:00
John "Juce" Bruce
57fd014f6d Fail Test if LoadOfflineLicense() Helper Fails
(This is a merge of http://go/wvgerrit/14775)

This change causes tests that call LoadOfflineLicense() to fail if
the session is still open after that call. Due to the way that gTest
handles ASSERT_*() macros, failures in LoadOfflineLicense() will leave
the session open, causing unexpected state and cascading failures
throughout the rest of the test. With this change, we will abort
sooner, reducing log noise.

Bug: 21489628
Change-Id: Ic35bc77bbc5f676f23deeefaacd1986e383538c8
2015-06-18 18:59:24 -07:00
John "Juce" Bruce
89682556ad Fix CanSetServiceCertificate Test
(This is a merge of http://go/wvgerrit/14783)

When validation was added to the service certificate property, it
broke the associated test, which sends random data. It also did not
do any testing of the new validation itself.

This fix makes the validation method on WvContentDecryptionModule
non-static so that it can be mocked and handled appropriately in the
test.

Bug: 21923281
Change-Id: Id5d2315709fce35f9347b3545f594371810349f0
2015-06-18 18:54:19 -07:00
John "Juce" Bruce
968993cd05 Allow Clearing of Privacy Cert
(This is a merge of http://go/wvgerrit/14782)

The ability to clear the privacy cert after setting it was
accidentally removed by adding validation, as an empty certificate is
invalid. This restores the ability to clear the certificate by not
validating if the value being set is empty.

Bug: 21923281
Change-Id: Ibb57481a398c9599163ab3512125a9d5b5fcaab4
2015-06-18 18:47:41 -07:00
Rahul Frias
99a2346e3a Return more descriptive error codes on license generation failure
[ Merge from http://go/wvgerrit/14745 ]

License generation errors previously would result in code -2916 being returned
though the mediaDrm API. More descriptive error codes are now being returned
from -2850 to -2836

b/13976775

Change-Id: I613ad650ab0a072ce9d8029e2af52b72dc617236
2015-06-17 17:32:11 -07:00
Fred Gylys-Colwell
b879cc6c3a Merge "Fix QueryKeyControl Unit Test" into mnc-dev 2015-06-17 23:35:23 +00:00
Fred Gylys-Colwell
854a409ae6 Accept Other Error Codes in TestSignatureBoth
Merge from widevine of http://go/wvgerrit/14744

The OEMCrypto unit test TestSignatureBoth verifies that a cast
certificate cannot be used to derive session keys.  This CL relaxes
the requirement that DeriveKeysFromSessionKey returns a specific error
code instead of just failing.

bug: 21708882
Change-Id: I4163a9616122ad709bab76f488d030239029861c
2015-06-17 15:58:58 -07:00
Fred Gylys-Colwell
b6f096d08a Fix QueryKeyControl Unit Test
Merge from widevine repo of http://go/wvgerrit/14720

The QueryKeyControl test expects an error message that the output
buffer is too small.  However, it also gives a bad key id.  Some
devices were correctly returning key not found.  This corrects the key
id length so that the only error is that the buffer is too small.

bug: 21881768
Change-Id: I96f59ede42eeddc9849fbac1e52acecdb562df08
2015-06-17 15:53:12 -07:00