/**
  * Sign LTI Parameters
  *
  * @param array $parameters - parameters
  * @param String $endPoint - HTTP URL end point
  * @param String $method - HTTP method
  * @param String $key - LTI Key
  * @param String $secret - LTI Secret
  * @return array - signed parameters
  */
 public static function sign($parameters, $endPoint, $method, $key, $secret)
 {
     $params = $parameters;
     if (!isset($params["lti_version"])) {
         $params['lti_version'] = 'LTI-1p0';
     }
     if (!isset($params["lti_message_type"])) {
         $params['lti_message_type'] = 'basic-lti-launch-request';
     }
     if (!isset($params["oauth_callback"])) {
         $params['oauth_callback'] = 'about:blank';
     }
     $oauthConsumer = new OAuthConsumer($key, $secret);
     $oauthRequest = OAuthRequest::createFromConsumerAndToken($oauthConsumer, null, $method, $endPoint, $params);
     $oauthRequest->sign(new OAuthSignatureMethodHMACSHA1(), $oauthConsumer, null);
     $newParams = $oauthRequest->getParameters();
     foreach ($newParams as $k => $v) {
         if (strpos($k, "oauth_") === 0) {
             $params[$k] = $v;
         }
     }
     return $params;
 }