From 80af1ea0786c968de5ce0f718f82b15da14a879c Mon Sep 17 00:00:00 2001 From: Timo Eissler Date: Thu, 16 Jun 2022 12:39:45 +0200 Subject: [PATCH] ovpnmain.cgi: URI encode OTPAuth String in QRCode Signed-off-by: Timo Eissler --- html/cgi-bin/ovpnmain.cgi | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/html/cgi-bin/ovpnmain.cgi b/html/cgi-bin/ovpnmain.cgi index 83ab27c93..5057bd64b 100644 --- a/html/cgi-bin/ovpnmain.cgi +++ b/html/cgi-bin/ovpnmain.cgi @@ -26,6 +26,7 @@ use CGI qw/:standard/; use Imager::QRCode; use MIME::Base32; use MIME::Base64; +use URI::Encode qw(uri_encode uri_decode);; use Net::DNS; use Net::Ping; use Net::Telnet; @@ -2654,9 +2655,9 @@ else lightcolor => Imager::Color->new(255, 255, 255), darkcolor => Imager::Color->new(0, 0, 0), ); - my $cn = $confighash{$cgiparams{'KEY'}}[2]; + my $cn = uri_encode($confighash{$cgiparams{'KEY'}}[2]); my $secret = encode_base32(pack('H*', $confighash{$cgiparams{'KEY'}}[44])); - my $issuer = "$mainsettings{'HOSTNAME'}.$mainsettings{'DOMAINNAME'}"; + my $issuer = uri_encode("$mainsettings{'HOSTNAME'}.$mainsettings{'DOMAINNAME'}"); my $qrcodeimg = $qrcode->plot("otpauth://totp/$cn?secret=$secret&issuer=$issuer"); my $qrcodeimgdata; $qrcodeimg->write(data => \$qrcodeimgdata, type=> 'png') -- 2.39.2