aboutsummaryrefslogtreecommitdiff
path: root/www/common.pl
diff options
context:
space:
mode:
Diffstat (limited to 'www/common.pl')
-rw-r--r--www/common.pl17
1 files changed, 17 insertions, 0 deletions
diff --git a/www/common.pl b/www/common.pl
index 736bf00..a094442 100644
--- a/www/common.pl
+++ b/www/common.pl
@@ -7,6 +7,7 @@ use Modern::Perl;
use Mail::ExpandAliases;
use URI;
+use MIME::Base64 qw(encode_base64 decode_base64);
sub load_config() {
$::MULKONF = { };
@@ -41,3 +42,19 @@ sub reluri($$) {
$uri->path_segments(@path);
return "$uri";
}
+
+sub decode_base64_url($) {
+ # From: https://github.com/ptarjan/base64url/blob/master/perl.pl
+ (my $s = shift) =~ tr{-_}{+/};
+ $s .= '=' x (4 - length($s));
+ return decode_base64($s);
+}
+
+sub encode_base64_url($) {
+ my ($s) = shift;
+ $s = encode_base64($s);
+ $s =~ tr{+/}{-_};
+ $s =~ s/=*$//;
+ $s =~ s/\n//g;
+ return $s;
+}