Пример #1
0
 /**
  * @param Jose $jose
  * @param string $key
  * @param string|null $algorithm
  * @return string
  * @throws \InvalidArgumentException
  */
 public function encode(Jose $jose, $key, $algorithm = null)
 {
     $algorithm = $algorithm ? $algorithm : $this->getDefaultAlgorithm();
     if (false == Algorithm::isValid($algorithm)) {
         throw new \InvalidArgumentException(sprintf("Invalid algorithm '%s'", $algorithm));
     }
     $jose->headerSet(JwsHeader::ALGORITHM, $algorithm);
     $signing_input = $jose->getSigningInput();
     $signature = $this->sign($signing_input, $key, $algorithm);
     $signatureB64 = UrlSafeB64Encoder::encode($signature);
     return $signing_input . '.' . $signatureB64;
 }