/** * Signs the input and forwards license request to Widevine license server * @param $requestParams - original parameters * @param $overrideParamsStr - additional parameters passed on KS * @param $isAdmin - true/false, identifies if called with admin KS * @return byte sequence */ public static function sendLicenseRequest($requestParams, $overrideParamsStr = null, $isAdmin = false) { self::validateRequest($requestParams); $ptime = time(); $signInput = $requestParams[self::ASSETID] . $requestParams[self::CLIENTID] . $requestParams[self::MK] . $requestParams[self::MD] . $ptime; $dbDrmProfile = DrmProfilePeer::retrieveByProvider(WidevinePlugin::getWidevineProviderCoreValue()); if ($dbDrmProfile) { $key = $dbDrmProfile->getKey(); $iv = $dbDrmProfile->getIv(); $baseUrl = $dbDrmProfile->getLicenseServerUrl(); $portal = $dbDrmProfile->getPortal(); } else { $key = WidevinePlugin::getWidevineConfigParam('key'); $iv = WidevinePlugin::getWidevineConfigParam('iv'); $baseUrl = WidevinePlugin::getWidevineConfigParam('license_server_url'); $portal = WidevinePlugin::getWidevineConfigParam('portal'); } KalturaLog::info("sign input: " . $signInput); $sign = self::createRequestSignature($signInput, $key, $iv); $requestParams[self::PTIME] = $ptime; $requestParams[self::SIGN] = $sign; $overrideParams = self::getLicenseOverrideParams($overrideParamsStr, $isAdmin); $requestParams = array_merge($requestParams, $overrideParams); if (!$baseUrl) { throw new KalturaWidevineLicenseProxyException(KalturaWidevineErrorCodes::LICENSE_SERVER_URL_NOT_SET); } if (!$portal) { $portal = WidevinePlugin::KALTURA_PROVIDER; } $requestParams[self::PORTAL] = $portal; $baseUrl .= '/' . $portal; return self::doCurl($baseUrl, $requestParams); }
public static function getObjectClass($baseClass, $enumValue) { if ($baseClass == 'KalturaFlavorParams' && $enumValue == WidevinePlugin::getAssetTypeCoreValue(WidevineAssetType::WIDEVINE_FLAVOR)) { return 'KalturaWidevineFlavorParams'; } if ($baseClass == 'KalturaFlavorParamsOutput' && $enumValue == WidevinePlugin::getAssetTypeCoreValue(WidevineAssetType::WIDEVINE_FLAVOR)) { return 'KalturaWidevineFlavorParamsOutput'; } if ($baseClass == 'KalturaFlavorAsset' && $enumValue == WidevinePlugin::getAssetTypeCoreValue(WidevineAssetType::WIDEVINE_FLAVOR)) { return 'KalturaWidevineFlavorAsset'; } if ($baseClass == 'assetParams' && $enumValue == WidevinePlugin::getAssetTypeCoreValue(WidevineAssetType::WIDEVINE_FLAVOR)) { return 'WidevineFlavorParams'; } if ($baseClass == 'assetParamsOutput' && $enumValue == WidevinePlugin::getAssetTypeCoreValue(WidevineAssetType::WIDEVINE_FLAVOR)) { return 'WidevineFlavorParamsOutput'; } if ($baseClass == 'asset' && $enumValue == WidevinePlugin::getAssetTypeCoreValue(WidevineAssetType::WIDEVINE_FLAVOR)) { return 'WidevineFlavorAsset'; } if ($baseClass == 'flavorAsset' && $enumValue == WidevinePlugin::getAssetTypeCoreValue(WidevineAssetType::WIDEVINE_FLAVOR)) { return 'WidevineFlavorAsset'; } if ($baseClass == 'KOperationEngine' && $enumValue == KalturaConversionEngineType::WIDEVINE) { return 'KWidevineOperationEngine'; } if ($baseClass == 'KDLOperatorBase' && $enumValue == self::getApiValue(WidevineConversionEngineType::WIDEVINE)) { return 'KDLOperatorWidevine'; } if ($baseClass == 'KalturaSerializer' && $enumValue == self::WIDEVINE_RESPONSE_TYPE) { return 'KalturaWidevineSerializer'; } if ($baseClass == 'KalturaJobData') { if ($enumValue == WidevinePlugin::getApiValue(WidevineBatchJobType::WIDEVINE_REPOSITORY_SYNC)) { return 'KalturaWidevineRepositorySyncJobData'; } } if ($baseClass == 'KalturaDrmProfile' && $enumValue == WidevinePlugin::getWidevineProviderCoreValue()) { return 'KalturaWidevineProfile'; } if ($baseClass == 'KalturaDrmProfile' && $enumValue == self::getApiValue(WidevineProviderType::WIDEVINE)) { return 'KalturaWidevineProfile'; } if ($baseClass == 'DrmProfile' && $enumValue == WidevinePlugin::getWidevineProviderCoreValue()) { return 'WidevineProfile'; } if (class_exists('Kaltura_Client_Client')) { if ($baseClass == 'Kaltura_Client_Drm_Type_DrmProfile' && $enumValue == Kaltura_Client_Drm_Enum_DrmProviderType::WIDEVINE) { return 'Kaltura_Client_Widevine_Type_WidevineProfile'; } if ($baseClass == 'Form_DrmProfileConfigureExtend_SubForm' && $enumValue == Kaltura_Client_Drm_Enum_DrmProviderType::WIDEVINE) { return 'Form_WidevineProfileConfigureExtend_SubForm'; } } return null; }