(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
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
(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
(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
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
[ 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
(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
(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
(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
(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
[ 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
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
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
Merge from widevine repo of http://go/wvgerrit/14742
The CDM object can no longer be created on the stack because it
inherits from RefBase. This caused some unit tests to hang in the
MockCDM destructor.
bug: 21881298
Change-Id: Ieeb7863031609f12ad3d9188c4525aa2fa1eb736
Merge from widevine repo of http://go/wvgerrit/14668
This CL modifies the multiplication routine to avoid memory cache
misses. This shows a 10-20% speed improvment in license requests on
an x86.
Level 3 library version:
level3/arm/libwvlevel3.a Level3 Library Jun 15 2015 14:09:24
level3/x86/libwvlevel3.a Level3 Library Jun 15 2015 14:09:10
bug: 18252910
Change-Id: I4429324374de46d1d710d5fcac80f7ed363c696c
Merge from widevine repo of http://go/wvgerrit/14708
This CL adds a test to verify that oemcrypto is a level 1 device. It
is part of oemcrypto_test_android.cpp, so it only applies to android
devices and to the widevine buildbot which also runs the android tests.
bug: 21814204
Change-Id: Icbcdd3496fb8a656891bd7c873c60cba23c9666a
Merge from widevine repo of http:/go/wvgerrit/14707
This CL adds a check to oemcrypto_test to verify that when a
certificate is rewrapped, it does not show up in the clear. We can't
really verify that it is encrypted well, but we can check this.
bug: 21871738
Change-Id: I07c87c38a1e2a099a90a5be4e3350e91e09f6722
Merge from widevine of http://go/wvgerrit/14667
This CL updates oemcrypto_test.cpp so that devices that are not cast
recievers do not attempt to run those tests that are only needed by
cast recievers.
bug: 21708882
bug: 18948285
Change-Id: I75f9170cee13e66667db54c5f298ed5c6cf14a48
[ Merge from http://go/wvgerrit/14670 ]
Concurrent provisioning attempts are declared successful if any one of them
succeeds. Earlier only the successful ones were declared as such.
b/21727698
Change-Id: I67dedca44790a4ae236e14f90a8fc91775273905