Replace mips library with stubs file
Merge from Widevine repo of http://go/wvgerrit/26202 This is a workaround to fix a broken mips build. Test: Built for sdk_phone_mips. b/37523523 Change-Id: I56ce65919303113f712d422d33e335b594292d42
This commit is contained in:
@@ -3,9 +3,18 @@ include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := libwvlevel3
|
||||
LOCAL_MODULE_CLASS := STATIC_LIBRARIES
|
||||
LOCAL_MODULE_SUFFIX := .a
|
||||
LOCAL_SRC_FILES := $(LOCAL_MODULE)$(LOCAL_MODULE_SUFFIX)
|
||||
LOCAL_SRC_FILES := level3_stubs.cpp
|
||||
|
||||
LOCAL_CFLAGS := -Wno-unused-parameter
|
||||
|
||||
LOCAL_C_INCLUDES := \
|
||||
vendor/widevine/libwvdrmengine/cdm/core/include \
|
||||
vendor/widevine/libwvdrmengine/cdm/include \
|
||||
vendor/widevine/libwvdrmengine/oemcrypto/include \
|
||||
vendor/widevine/libwvdrmengine/third_party/stringencoders/src
|
||||
|
||||
LOCAL_PROPRIETARY_MODULE := true
|
||||
LOCAL_MODULE_TAGS := optional
|
||||
LOCAL_MODULE_OWNER := widevine
|
||||
LOCAL_MODULE_TARGET_ARCH := mips
|
||||
include $(BUILD_PREBUILT)
|
||||
include $(BUILD_STATIC_LIBRARY)
|
||||
|
||||
397
libwvdrmengine/level3/mips/level3_stubs.cpp
Normal file
397
libwvdrmengine/level3/mips/level3_stubs.cpp
Normal file
@@ -0,0 +1,397 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Copyright 2015 Google Inc. All Rights Reserved.
|
||||
*
|
||||
* Stubs for OEMCrypto Level 3 Fallback APIs. (use when level 3 doesn't compile)
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
#include "level3.h"
|
||||
|
||||
// This error string shows up when we run "strings libwvleel3.a"
|
||||
const char* error_string = "Level3 Library is stubbed out.";
|
||||
|
||||
namespace wvoec3 {
|
||||
bool Level3_IsInApp() {
|
||||
return false;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_Initialize(void (*ClearCache)(void *, size_t),
|
||||
const char* base_path) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_Terminate(void) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_OpenSession(OEMCrypto_SESSION* /*session*/) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_CloseSession(OEMCrypto_SESSION /*session*/) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_GenerateDerivedKeys(OEMCrypto_SESSION /*session*/,
|
||||
const uint8_t* /*mac_key_context*/,
|
||||
uint32_t /*mac_key_context_length*/,
|
||||
const uint8_t* /*enc_key_context*/,
|
||||
uint32_t /*enc_key_context_length*/) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_GenerateNonce(OEMCrypto_SESSION /*session*/,
|
||||
uint32_t* /*nonce*/) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_GenerateSignature(OEMCrypto_SESSION /*session*/,
|
||||
const uint8_t* /*message*/,
|
||||
size_t /*message_length*/,
|
||||
uint8_t* /*signature*/,
|
||||
size_t* /*signature_length*/) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_LoadKeys(OEMCrypto_SESSION /*session*/,
|
||||
const uint8_t* /*message*/,
|
||||
size_t /*message_length*/,
|
||||
const uint8_t* /*signature*/,
|
||||
size_t /*signature_length*/,
|
||||
const uint8_t* /*enc_mac_key_iv*/,
|
||||
const uint8_t* /*enc_mac_key*/,
|
||||
size_t /*num_keys*/,
|
||||
const OEMCrypto_KeyObject* /*key_array*/,
|
||||
const uint8_t* /*pst*/,
|
||||
size_t /*pst_length*/,
|
||||
const uint8_t* /*srm_requirement*/) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_RefreshKeys(OEMCrypto_SESSION /*session*/,
|
||||
const uint8_t* /*message*/,
|
||||
size_t /*message_length*/,
|
||||
const uint8_t* /*signature*/,
|
||||
size_t /*signature_length*/,
|
||||
size_t /*num_keys*/,
|
||||
const OEMCrypto_KeyRefreshObject* /*key_array*/) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_QueryKeyControl(OEMCrypto_SESSION /*session*/,
|
||||
const uint8_t* /*key_id*/,
|
||||
size_t /*key_id_length*/,
|
||||
uint8_t* /*key_control_block*/,
|
||||
size_t* /*key_control_block_length*/) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_SelectKey(const OEMCrypto_SESSION /*session*/,
|
||||
const uint8_t* /*key_id*/,
|
||||
size_t /*key_id_length*/) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_DecryptCENC(OEMCrypto_SESSION /*session*/,
|
||||
const uint8_t* /*data_addr*/, size_t /*data_length*/,
|
||||
bool /*is_encrypted*/, const uint8_t* /*iv*/,
|
||||
size_t /*block_offset*/,
|
||||
const OEMCrypto_DestBufferDesc* /*out_buffer*/,
|
||||
const OEMCrypto_CENCEncryptPatternDesc* /*pattern*/,
|
||||
uint8_t /*subsample_flags*/) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_CopyBuffer(const uint8_t */*data_addr*/,
|
||||
size_t /*data_length*/,
|
||||
OEMCrypto_DestBufferDesc* /*out_buffer*/,
|
||||
uint8_t /*subsample_flags*/) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_WrapKeybox(const uint8_t* /*keybox*/,
|
||||
size_t /*keyBoxLength*/,
|
||||
uint8_t* /*wrappedKeybox*/,
|
||||
size_t* /*wrappedKeyBoxLength*/,
|
||||
const uint8_t* /*transportKey*/,
|
||||
size_t /*transportKeyLength*/) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_InstallKeybox(const uint8_t* /*keybox*/,
|
||||
size_t /*keyBoxLength*/) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_LoadTestKeybox() {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_IsKeyboxValid(void) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_GetDeviceID(uint8_t* /*deviceID*/, size_t* /*idLength*/) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_GetKeyData(uint8_t* /*keyData*/,
|
||||
size_t* /*keyDataLength*/) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_GetRandom(uint8_t* /*randomData*/, size_t /*dataLength*/) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_RewrapDeviceRSAKey30(OEMCrypto_SESSION /*session*/,
|
||||
const uint32_t */*nonce*/,
|
||||
const uint8_t* /*encrypted_message_key*/,
|
||||
size_t /*encrypted_message_key_length*/,
|
||||
const uint8_t* /*enc_rsa_key*/,
|
||||
size_t /*enc_rsa_key_length*/,
|
||||
const uint8_t* /*enc_rsa_key_iv*/,
|
||||
uint8_t* /*wrapped_rsa_key*/,
|
||||
size_t* /*wrapped_rsa_key_length*/) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_RewrapDeviceRSAKey(OEMCrypto_SESSION /*session*/,
|
||||
const uint8_t* /*message*/,
|
||||
size_t /*message_length*/,
|
||||
const uint8_t* /*signature*/,
|
||||
size_t /*signature_length*/,
|
||||
const uint32_t* /*nonce*/,
|
||||
const uint8_t* /*enc_rsa_key*/,
|
||||
size_t /*enc_rsa_key_length*/,
|
||||
const uint8_t* /*enc_rsa_key_iv*/,
|
||||
uint8_t* /*wrapped_rsa_key*/,
|
||||
size_t* /*wrapped_rsa_key_length*/) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_LoadDeviceRSAKey(OEMCrypto_SESSION /*session*/,
|
||||
const uint8_t* /*wrapped_rsa_key*/,
|
||||
size_t /*wrapped_rsa_key_length*/) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_LoadTestRSAKey() {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_GenerateRSASignature(OEMCrypto_SESSION /*session*/,
|
||||
const uint8_t* /*message*/,
|
||||
size_t /*message_length*/,
|
||||
uint8_t* /*signature*/,
|
||||
size_t* /*signature_length*/,
|
||||
RSA_Padding_Scheme /*padding_scheme*/) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_DeriveKeysFromSessionKey(OEMCrypto_SESSION /*session*/,
|
||||
const uint8_t* /*enc_session_key*/,
|
||||
size_t /*enc_session_key_length*/,
|
||||
const uint8_t* /*mac_key_context*/,
|
||||
size_t /*mac_key_context_length*/,
|
||||
const uint8_t* /*enc_key_context*/,
|
||||
size_t /*enc_key_context_length*/) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
uint32_t Level3_APIVersion() {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
uint8_t Level3_SecurityPatchLevel() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char* Level3_SecurityLevel() {
|
||||
return "L3";
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_GetHDCPCapability(OEMCrypto_HDCP_Capability */*current*/,
|
||||
OEMCrypto_HDCP_Capability */*maximum*/) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
bool Level3_SupportsUsageTable() {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Level3_IsAntiRollbackHwPresent() {
|
||||
return false;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_GetNumberOfOpenSessions(size_t* /*count*/) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_GetMaxNumberOfSessions(size_t* /*maximum*/) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_Generic_Encrypt(OEMCrypto_SESSION /*session*/,
|
||||
const uint8_t* /*in_buffer*/,
|
||||
size_t /*buffer_length*/,
|
||||
const uint8_t* /*iv*/,
|
||||
OEMCrypto_Algorithm /*algorithm*/,
|
||||
uint8_t* /*out_buffer*/) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_Generic_Decrypt(OEMCrypto_SESSION /*session*/,
|
||||
const uint8_t* /*in_buffer*/,
|
||||
size_t /*buffer_length*/,
|
||||
const uint8_t* /*iv*/,
|
||||
OEMCrypto_Algorithm /*algorithm*/,
|
||||
uint8_t* /*out_buffer*/) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_Generic_Sign(OEMCrypto_SESSION /*session*/,
|
||||
const uint8_t* /*in_buffer*/,
|
||||
size_t /*buffer_length*/,
|
||||
OEMCrypto_Algorithm /*algorithm*/,
|
||||
uint8_t* /*signature*/,
|
||||
size_t* /*signature_length*/) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_Generic_Verify(OEMCrypto_SESSION /*session*/,
|
||||
const uint8_t* /*in_buffer*/,
|
||||
size_t /*buffer_length*/,
|
||||
OEMCrypto_Algorithm /*algorithm*/,
|
||||
const uint8_t* /*signature*/,
|
||||
size_t /*signature_length*/) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_DeactivateUsageEntry(OEMCrypto_SESSION /*session*/,
|
||||
const uint8_t */*pst*/,
|
||||
size_t /*pst_length*/) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_UpdateUsageTable() {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_ReportUsage(OEMCrypto_SESSION session,
|
||||
const uint8_t *pst,
|
||||
size_t pst_length,
|
||||
uint8_t *buffer,
|
||||
size_t *buffer_length) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_DeleteUsageEntry(OEMCrypto_SESSION session,
|
||||
const uint8_t* pst,
|
||||
size_t pst_length,
|
||||
const uint8_t *message,
|
||||
size_t message_length,
|
||||
const uint8_t *signature,
|
||||
size_t signature_length) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_ForceDeleteUsageEntry(const uint8_t* pst,
|
||||
size_t pst_length) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_DeleteOldUsageTable() {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
bool Level3_IsSRMUpdateSupported() {
|
||||
return false;
|
||||
}
|
||||
OEMCryptoResult Level3_GetCurrentSRMVersion(uint16_t* version) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_LoadSRM(const uint8_t* buffer,
|
||||
size_t buffer_length){
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_RemoveSRM() {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_CreateUsageTableHeader(uint8_t* header_buffer,
|
||||
size_t* header_buffer_length) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_LoadUsageTableHeader(const uint8_t* buffer,
|
||||
size_t buffer_length) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_CreateNewUsageEntry(OEMCrypto_SESSION session,
|
||||
uint32_t *usage_entry_number) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_LoadUsageEntry(OEMCrypto_SESSION session,
|
||||
uint32_t index,
|
||||
const uint8_t *buffer,
|
||||
size_t buffer_size) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_UpdateUsageEntry(OEMCrypto_SESSION session,
|
||||
uint8_t* header_buffer,
|
||||
size_t* header_buffer_length,
|
||||
uint8_t* entry_buffer,
|
||||
size_t* entry_buffer_length) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_ShrinkUsageTableHeader(uint32_t new_table_size,
|
||||
uint8_t* header_buffer,
|
||||
size_t* header_buffer_length) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_MoveEntry(OEMCrypto_SESSION session,
|
||||
uint32_t new_index) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_CopyOldUsageEntry(OEMCrypto_SESSION session,
|
||||
const uint8_t*pst,
|
||||
size_t pst_length) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_CreateOldUsageEntry(uint64_t time_since_license_received,
|
||||
uint64_t time_since_first_decrypt,
|
||||
uint64_t time_since_last_decrypt,
|
||||
OEMCrypto_Usage_Entry_Status status,
|
||||
uint8_t *server_mac_key,
|
||||
uint8_t *client_mac_key,
|
||||
const uint8_t* pst,
|
||||
size_t pst_length) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
uint32_t Level3_SupportedCertificates() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
OEMCryptoResult Level3_GetOEMPublicCertificate(OEMCrypto_SESSION session,
|
||||
uint8_t *public_cert,
|
||||
size_t *public_cert_length) {
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
OEMCrypto_ProvisioningMethod Level3_GetProvisioningMethod() {
|
||||
return OEMCrypto_ProvisioningError;
|
||||
}
|
||||
|
||||
|
||||
} // namespace wvoec3
|
||||
Binary file not shown.
Reference in New Issue
Block a user