public
nobgit
read
NobMail
Based on mailcow: dockerized
Languages
Repository composition by tracked source files.
PHP
49%
JavaScript
35%
HTML
9%
CSS
4%
Shell
2%
Python
1%
Lua
0%
Perl
0%
Ruby
0%
SCSS
0%
Create file
Wiki Documentation
Clone
https://nobgit.com/orgs/nobgit/nobmail.git
ssh://[email protected]:2222/orgs/nobgit/nobmail.git
Commit
[Web] increase mysql publicKey field length
e7fe52a6
data/web/inc/init_db.inc.php | 4 ++--
data/web/json_api.php | 21 +++++++++++----------
2 files changed, 13 insertions(+), 12 deletions(-)
Diff
diff --git a/data/web/inc/init_db.inc.php b/data/web/inc/init_db.inc.php
index 3cab461e..5705379d 100644
--- a/data/web/inc/init_db.inc.php
+++ b/data/web/inc/init_db.inc.php
@@ -3,7 +3,7 @@ function init_db_schema() {
try {
global $pdo;
- $db_version = "18012022_1020";
+ $db_version = "14032022_0921";
$stmt = $pdo->query("SHOW TABLES LIKE 'versions'");
$num_results = count($stmt->fetchAll(PDO::FETCH_ASSOC));
@@ -699,7 +699,7 @@ function init_db_schema() {
"authmech" => "ENUM('yubi_otp', 'u2f', 'hotp', 'totp', 'webauthn')",
"secret" => "VARCHAR(255) DEFAULT NULL",
"keyHandle" => "VARCHAR(255) DEFAULT NULL",
- "publicKey" => "VARCHAR(255) DEFAULT NULL",
+ "publicKey" => "VARCHAR(4096) DEFAULT NULL",
"counter" => "INT NOT NULL DEFAULT '0'",
"certificate" => "TEXT",
"active" => "TINYINT(1) NOT NULL DEFAULT '0'"
diff --git a/data/web/json_api.php b/data/web/json_api.php
index 9a557e7b..79056bc6 100644
--- a/data/web/json_api.php
+++ b/data/web/json_api.php
@@ -175,15 +175,22 @@ if (isset($_GET['query'])) {
// parse post data
$post = trim(file_get_contents('php://input'));
if ($post) $post = json_decode($post);
-
- // decode base64 strings
- $clientDataJSON = base64_decode($post->clientDataJSON);
- $attestationObject = base64_decode($post->attestationObject);
// process registration data from authenticator
try {
+ // decode base64 strings
+ $clientDataJSON = base64_decode($post->clientDataJSON);
+ $attestationObject = base64_decode($post->attestationObject);
+
// processCreate($clientDataJSON, $attestationObject, $challenge, $requireUserVerification=false, $requireUserPresent=true, $failIfRootMismatch=true)
$data = $WebAuthn->processCreate($clientDataJSON, $attestationObject, $_SESSION['challenge'], false, true);
+
+ // safe authenticator in mysql `tfa` table
+ $_data['tfa_method'] = $post->tfa_method;
+ $_data['key_id'] = $post->key_id;
+ $_data['confirm_password'] = $post->confirm_password;
+ $_data['registration'] = $data;
+ set_tfa($_data);
}
catch (Throwable $ex) {
// err
@@ -194,12 +201,6 @@ if (isset($_GET['query'])) {
exit;
}
- // safe authenticator in mysql `tfa` table
- $_data['tfa_method'] = $post->tfa_method;
- $_data['key_id'] = $post->key_id;
- $_data['confirm_password'] = $post->confirm_password;
- $_data['registration'] = $data;
- set_tfa($_data);
// send response
$return = new stdClass();