aboutsummaryrefslogtreecommitdiffhomepage
path: root/application/Base64Url.php
diff options
context:
space:
mode:
authorVirtualTam <virtualtam+github@flibidi.net>2017-01-05 12:39:17 +0100
committerGitHub <noreply@github.com>2017-01-05 12:39:17 +0100
commit383cbaf2c5a49f5fa54e635ed437d18784830afe (patch)
treeb92c37792e7af48e1da36686f1d722aaffb90a06 /application/Base64Url.php
parentfc11ab2f290a3712b766d78fdbcd354625a35d0a (diff)
parent7a9daac56dc64ec1ddb12adece3e1a8f71778cc7 (diff)
downloadShaarli-383cbaf2c5a49f5fa54e635ed437d18784830afe.tar.gz
Shaarli-383cbaf2c5a49f5fa54e635ed437d18784830afe.tar.zst
Shaarli-383cbaf2c5a49f5fa54e635ed437d18784830afe.zip
Merge pull request #739 from virtualtam/fix/api/jwt-signature
API: fix JWT signature verification
Diffstat (limited to 'application/Base64Url.php')
-rw-r--r--application/Base64Url.php34
1 files changed, 34 insertions, 0 deletions
diff --git a/application/Base64Url.php b/application/Base64Url.php
new file mode 100644
index 00000000..61590e43
--- /dev/null
+++ b/application/Base64Url.php
@@ -0,0 +1,34 @@
1<?php
2
3namespace Shaarli;
4
5
6/**
7 * URL-safe Base64 operations
8 *
9 * @see https://en.wikipedia.org/wiki/Base64#URL_applications
10 */
11class Base64Url
12{
13 /**
14 * Base64Url-encodes data
15 *
16 * @param string $data Data to encode
17 *
18 * @return string Base64Url-encoded data
19 */
20 public static function encode($data) {
21 return rtrim(strtr(base64_encode($data), '+/', '-_'), '=');
22 }
23
24 /**
25 * Decodes Base64Url-encoded data
26 *
27 * @param string $data Data to decode
28 *
29 * @return string Decoded data
30 */
31 public static function decode($data) {
32 return base64_decode(str_pad(strtr($data, '-_', '+/'), strlen($data) % 4, '=', STR_PAD_RIGHT));
33 }
34}