There was an error importing the key
"; }else{ $db = get_db_instance(); $stmt = $db->prepare('UPDATE users SET pgp_key = ?, tfa = 0, pgp_verified = 0 WHERE id = ?;'); $stmt->execute([$pgp_key, $user['id']]); $user['pgp_key'] = $pgp_key; } } if(isset($_POST['enable_2fa_code'])){ if($_POST['enable_2fa_code'] !== $_SESSION['enable_2fa_code']){ echo "Sorry, the code was incorrect
"; } else { $db = get_db_instance(); $stmt = $db->prepare('UPDATE users SET tfa = 1, pgp_verified = 1 WHERE id = ?;'); $stmt->execute([$user['id']]); $user['tfa'] = 1; } } } if(!empty($user['pgp_key'])){ if($user['tfa'] == '1'){ echo "Yay, PGP based 2FA is enabled!
"; } else { $gpg = gnupg_init(); gnupg_seterrormode($gpg, GNUPG_ERROR_WARNING); gnupg_setarmor($gpg, 1); $imported_key = gnupg_import($gpg, $user['pgp_key']); if($imported_key){ $key_info = gnupg_keyinfo($gpg, $imported_key['fingerprint']); foreach($key_info as $key){ if(!$key['can_encrypt']){ echo "Sorry, this key can't be used to encrypt a message to you. Your key may have expired or has been revoked.
"; }else{ foreach($key['subkeys'] as $subkey){ gnupg_addencryptkey($gpg, $subkey['fingerprint']); } } } $_SESSION['enable_2fa_code'] = bin2hex(random_bytes(3)); if($encrypted = gnupg_encrypt($gpg, "To enable 2FA, please enter the following code to confirm ownership of your key:\n\n$_SESSION[enable_2fa_code]\n")){ echo "To enable 2FA using your PGP key, please decrypt the following PGP encrypted message and confirm the code:
"; echo ""; ?>Add your PGP key for more security features like 2FA: