Exemplo n.º 1
0
 /**
  * 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);
 }
Exemplo n.º 2
0
 private function getPartnerKeySeed()
 {
     $partnerId = kCurrentContext::$partner_id ? kCurrentContext::$partner_id : kCurrentContext::$ks_partner_id;
     $profile = DrmProfilePeer::retrieveByProvider(PlayReadyPlugin::getPlayReadyProviderCoreValue());
     if (!$profile) {
         throw new KalturaAPIException(KalturaPlayReadyErrors::PLAYREADY_PROFILE_NOT_FOUND);
     }
     return $profile->getKeySeed();
 }
Exemplo n.º 3
0
 /**
  * Retrieve a KalturaDrmProfile object by provider, if no specific profile defined return default profile
  * 
  * @action getByProvider
  * @param KalturaDrmProviderType $provider
  * @return KalturaDrmProfile
  */
 public function getByProviderAction($provider)
 {
     $drmProfile = KalturaDrmProfile::getInstanceByType($provider);
     $drmProfile->provider = $provider;
     $tmpDbProfile = $drmProfile->toObject();
     $dbDrmProfile = DrmProfilePeer::retrieveByProvider($tmpDbProfile->getProvider());
     if (!$dbDrmProfile) {
         if ($provider == KalturaDrmProviderType::CENC) {
             $dbDrmProfile = new DrmProfile();
         } else {
             $dbDrmProfile = KalturaPluginManager::loadObject('DrmProfile', $tmpDbProfile->getProvider());
         }
         $dbDrmProfile->setName('default');
         $dbDrmProfile->setProvider($tmpDbProfile->getProvider());
     }
     $drmProfile->fromObject($dbDrmProfile, $this->getResponseProfile());
     return $drmProfile;
 }