(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
(This is a merge of http://go/wvgerrit/14630)
To create a better flow when an application sets a service certificate
manually, we will now validate the certificate when it is given to us,
and if it is invalid, we will not allow the property to be set.
Bug: 21307186
Change-Id: If980ad075604223fc962a859fae93e98d86a7f4f
(This is a merge of http://go/wvgerrit/14531)
As an optimization, the Media Server now unloads our library when not
in use. This has exposed a bug by which we were never deleting the CDM
singleton. Fix is to make WvContentDecryptionModule an Android smart
pointer ref base and then make sure all the plugins store a strong
pointer to it. The singleton is a weak pointer, so when the last
plugin is cleaned up, the CDM will be as well. And on the off chance
that the library isn't immediately unloaded, the singleton code will
generate a new CDM next time one is needed.
Bug: 21153732
Change-Id: Ifaf02fa9afe0a70a8b53e8b92ee0a3d1359ca001
The drm resource manager expects openSession to fail
with ERROR_DRM_RESOURCE_BUSY, but in some cases the
WV DRM plugin is returning a vendor-specific code
kErrorTooManySessions instead. This change updates
the error code mapping to match what the resource
manager expects.
Merge of http://go/wvgerrit/14564 from widevine repo
bug: 21640598
Change-Id: I0b296ff5eeef8a6b94cfe0fd450b15f15cf03eab
Merge from widevine repo of http://go/wvgerrit/14550
This CL adds several tests with different sized key ids to
oemcrypto_test.
bug: 21643096
Change-Id: I62a89c557f3f746f09ee5a2fe5bdd3ca821448e4
Merge from widevine repo of http://go/wvgerrit/14502
If any OEMCrypto session call is made after Terminate is called, then
there was a null pointer access. This is protected by the oemcrypto
adapter, but could still be a problem in unit tests which by-pass the
adapter.
bug: 21642892
Level 3 versions:
level3/arm/libwvlevel3.a Level3 Library May 29 2015 14:03:11
level3/x86/libwvlevel3.a Level3 Library May 29 2015 14:03:12
Change-Id: I84fd098c2faea71a79bc21658485593e22a8e994
(This is a merge of http://go/wvgerrit/14390)
Expands usage of the ToVector() helper that kqyang@ wrote across the
entire DRM Plugin.
Bug: 20037441
Change-Id: I55112245af6fdf21ea3d3db87b1564af2f54929d