From: Timo Eissler Date: Thu, 16 Jun 2022 10:39:45 +0000 (+0200) Subject: ovpnmain.cgi: URI encode OTPAuth String in QRCode X-Git-Url: http://git.ipfire.org/?p=people%2Fteissler%2Fipfire-2.x.git;a=commitdiff_plain;h=refs%2Fheads%2F2fa ovpnmain.cgi: URI encode OTPAuth String in QRCode Signed-off-by: Timo Eissler --- 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')