コード例 #1
0
ファイル: Jwt.php プロジェクト: closeyourhead/jose
 /**
  * @param \Cyh\Jose\Signing\Signer\SignerInterface $signer
  * @param mixed $claims
  * @param resource|string $key default null
  * @param string $pass_phrase default null
  * @return string
  * @throws UnexpectedValueException
  * @throws InvalidSignatureException
  */
 public static function sign(SignerInterface $signer, $claims, $key = null, $pass_phrase = null)
 {
     $header_arr = array('typ' => 'JWT', 'alg' => $signer->getAlg());
     $header = new Header($header_arr);
     $message = $header->toString() . '.' . Base64Url::encode(Json::encode($claims));
     $signature = $signer->sign($message, $key, $pass_phrase);
     $signature_base64 = Base64Url::encode($signature);
     return $message . '.' . $signature_base64;
 }
コード例 #2
0
ファイル: Jwe.php プロジェクト: closeyourhead/jose
 /**
  * @param AlgInterface $alg
  * @param EncInterface $enc
  * @param string $content
  * @param string $public_or_secret_key
  * @return string
  */
 public static function encrypt(AlgInterface $alg, EncInterface $enc, $content, $public_or_secret_key)
 {
     $protected_header = new Header(array('alg' => $alg->getAlg(), 'enc' => $enc->getEnc()));
     $aad_base64 = $protected_header->toString();
     $cek = new ContentEncryptionKey();
     $encrypted_cek = $alg->encrypt($cek->getCek(), $public_or_secret_key);
     list($iv, $cipher_text, $auth_tag) = $enc->encrypt($aad_base64, $cek, $content);
     return implode('.', [$aad_base64, Base64Url::encode($encrypted_cek), Base64Url::encode($iv), Base64Url::encode($cipher_text), Base64Url::encode($auth_tag)]);
 }
コード例 #3
0
ファイル: Base64UrlTest.php プロジェクト: closeyourhead/jose
 /**
  * @expectedException \Cyh\Jose\Exception\UnexpectedValueException
  */
 public function testEncodeBase64InvalidParam()
 {
     Base64Url::encode(array());
 }
コード例 #4
0
ファイル: Header.php プロジェクト: closeyourhead/jose
 /**
  * @return string
  */
 public function __toString()
 {
     return Base64Url::encode(Json::encode($this->headers));
 }
コード例 #5
0
ファイル: JwtTest.php プロジェクト: closeyourhead/jose
 /**
  * @expectedException Cyh\Jose\Signing\Exception\InvalidSignatureException
  */
 public function testRS256ModifiedClaimExp()
 {
     $token_strings = Jwt::sign(new RS256(), $this->valid_claims, $this->rsa_prv_key);
     list($h, $p, $s) = explode('.', $token_strings);
     $payload = Json::decode(Base64Url::decode($p));
     $payload['exp'] = time() + 86400;
     $p = Base64Url::encode(Json::encode($payload));
     $mod_token = "{$h}.{$p}.{$s}";
     Jwt::verify(new RS256(), $mod_token, $this->rsa_pub_key);
 }