This interface is required by the SignerInterface to signed payloads and create a JWS.
示例#1
0
 /**
  * @param \Jose\Object\SignatureInterface $signature
  *
  * @throws \InvalidArgumentException
  */
 private function checkB64HeaderAndCrit(Object\SignatureInterface $signature)
 {
     if (!$signature->hasProtectedHeader('b64')) {
         return;
     }
     Assertion::true($signature->hasProtectedHeader('crit'), 'The protected header parameter "crit" is mandatory when protected header parameter "b64" is set.');
     Assertion::isArray($signature->getProtectedHeader('crit'), 'The protected header parameter "crit" must be an array.');
     Assertion::inArray('b64', $signature->getProtectedHeader('crit'), 'The protected header parameter "crit" must contain "b64" when protected header parameter "b64" is set.');
 }
示例#2
0
 /**
  * @param \Jose\Object\SignatureInterface $signature
  *
  * @return \Jose\Algorithm\SignatureAlgorithmInterface
  */
 private function getAlgorithm(Object\SignatureInterface $signature)
 {
     $complete_headers = array_merge($signature->getProtectedHeaders(), $signature->getHeaders());
     Assertion::keyExists($complete_headers, 'alg', 'No "alg" parameter set in the header.');
     $algorithm = $this->getJWAManager()->getAlgorithm($complete_headers['alg']);
     Assertion::isInstanceOf($algorithm, Algorithm\SignatureAlgorithmInterface::class, sprintf('The algorithm "%s" is not supported or does not implement SignatureInterface.', $complete_headers['alg']));
     return $algorithm;
 }
示例#3
0
 /**
  * @param \Jose\Object\SignatureInterface $signature
  *
  * @return bool
  */
 private static function isPayloadEncoded(SignatureInterface $signature)
 {
     return !$signature->hasProtectedHeader('b64') || true === $signature->getProtectedHeader('b64');
 }