[bug] base32 encoded TOTP secret

Some applications rejected the TOTP secret. Use the Base2n class to create a better base32 encoded TOTP secret.
This commit is contained in:
FusionPBX
2023-04-27 01:14:06 -06:00
committed by GitHub
parent b3a0d67ac9
commit 5cfdccdc2a
+4 -2
View File
@@ -1104,11 +1104,13 @@
echo "</td>\n"; echo "</td>\n";
echo "<td class='vtable' align='left' valign='top'>\n"; echo "<td class='vtable' align='left' valign='top'>\n";
echo " <input type='hidden' class='formfld' style='width: 250px;' name='user_totp_secret' id='user_totp_secret' value=\"".escape($user_totp_secret)."\" >"; echo " <input type='hidden' class='formfld' style='width: 250px;' name='user_totp_secret' id='user_totp_secret' value=\"".escape($user_totp_secret)."\" >";
if (strlen($user_totp_secret) == 0) { if (empty($user_totp_secret)) {
$base32 = new base2n(5, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567', FALSE, TRUE, TRUE);
$user_totp_secret = $base32->encode(generate_password(20,3));
echo button::create(['type'=>'button', echo button::create(['type'=>'button',
'label'=>$text['button-setup'], 'label'=>$text['button-setup'],
'icon'=>'key', 'icon'=>'key',
'onclick'=>"document.getElementById('user_totp_secret').value = '".strtoupper(generate_password(32,3))."'; 'onclick'=>"document.getElementById('user_totp_secret').value = '".$user_totp_secret."';
document.getElementById('frm').submit();"]); document.getElementById('frm').submit();"]);
} }
else { else {