jwt : add the cipher algorithm in parameter

git-svn-id: https://svn.fournier38.fr/svn/ProgSVN/trunk@6117 bf3deb0d-5f1a-0410-827f-c0cc1f45334c
This commit is contained in:
2020-09-15 11:53:52 +00:00
parent 7e98df1b0c
commit 73a72f19fc

18
jwt.php
View File

@@ -35,11 +35,13 @@ class jwt
* @param string|null $alg The algorithm to use to sign the token (default * @param string|null $alg The algorithm to use to sign the token (default
* is HS256) * is HS256)
* Allowed algorithms : HS256, HS512, HS384 * Allowed algorithms : HS256, HS512, HS384
* @param string|null $ckey The cipher key to encrypt the payload (24 chars * @param string|null $ckey The cipher key to encrypt the payload
* length) * @param string|null $cipherMethod The method to cipher the payload
* des-ede3-cbc by default
* @return string The Token * @return string The Token
*/ */
public function encode ($payload, $key, $alg = "HS256", $ckey = null) public function encode ($payload, $key, $alg = "HS256", $ckey = null,
$cipherMethod = "des-ede3-cbc")
// {{{ // {{{
{ {
if (! key_exists ($alg, $this->supportedAlgs)) if (! key_exists ($alg, $this->supportedAlgs))
@@ -52,7 +54,7 @@ class jwt
if ($ckey) if ($ckey)
{ {
$encrypt = new encrypt (); $encrypt = new encrypt ();
$payload = $encrypt->encrypt ($payload, $ckey); $payload = $encrypt->encrypt ($payload, $ckey, $cipherMethod);
} }
$segments[] = $this->urlsafeB64Encode ($payload); $segments[] = $this->urlsafeB64Encode ($payload);
$toBeSigned = implode ('.', $segments); $toBeSigned = implode ('.', $segments);
@@ -67,13 +69,15 @@ class jwt
* @param string $key The key used to sign the message * @param string $key The key used to sign the message
* @param array|null $allowedAlg List of allowed algorithms. If null, all the * @param array|null $allowedAlg List of allowed algorithms. If null, all the
* algorithms defined in $this->supportedAlgs are allowed * algorithms defined in $this->supportedAlgs are allowed
* @param string|null $ckey The cipher key to decrypt the payload (24 chars * @param string|null $ckey The cipher key to decrypt the payload
* length) * @param string|null $cipherMethod The method to cipher the payload
* des-ede3-cbc by default
* @return array the decoded payload * @return array the decoded payload
* @throw Exception if the key is not able to verify the token with the * @throw Exception if the key is not able to verify the token with the
* provided password * provided password
*/ */
public function decode ($jwt, $key, $allowedAlg = null, $ckey = null) public function decode ($jwt, $key, $allowedAlg = null, $ckey = null,
$cipherMethod = "des-ede3-cbc")
// {{{ // {{{
{ {
if ($allowedAlg === null) if ($allowedAlg === null)