gradido/login_server/src/cpsp/DebugPassphrase.cpsp
2021-05-20 13:45:47 +02:00

69 lines
2.3 KiB
Plaintext

<%@ page class="DebugPassphrasePage" %>
<%@ page form="true" %>
<%@ page baseClass="SessionHTTPRequestHandler" %>
<%@ page ctorArg="Session*" %>
<%@ header include="HTTPInterface/SessionHTTPRequestHandler.h" %>
<%!
#include "Crypto/KeyPairEd25519.h"
#include "controller/User.h"
%>
<%%
const char* pageName = "Debug Passphrase";
KeyPairEd25519* keys = nullptr;
std::string privKeyCryptedHex = "";
Poco::UInt64 pwdHashed = 0;
Poco::AutoPtr<controller::User> existingUser;
if(!form.empty()) {
auto passphrase_string = form.get("passphrase", "");
auto wordSource = Passphrase::detectMnemonic(passphrase_string);
if(!wordSource) {
addError(new Error("debug Passphrase", "invalid passphrase"), false);
} else {
keys = KeyPairEd25519::create(Passphrase::create(passphrase_string, wordSource));
}
auto email = form.get("email", "");
if(email != "") {
existingUser = controller::User::create();
if(1 == existingUser->load(email)) {
auto user_model = existingUser->getModel();
pwdHashed = user_model->getPasswordHashed();
if(user_model->hasPrivateKeyEncrypted()) {
privKeyCryptedHex = user_model->getPrivateKeyEncryptedHex();
}
}
}
}
%><%@ include file="include/header_old.cpsp" %>
<div class="grd_container">
<h1>Debug Passphrase</h1>
<%= getErrorsHtml() %>
<form method="POST">
<fieldset class="grd_container_small">
<legend>Userdata</legend>
<p class="grd_small">
<label for="email">E-Mail</label>
<input id="email" type="email" name="email" value="<%= !form.empty() ? form.get("email") : "" %>"/>
</p>
<textarea style="width:100%;height:100px" name="passphrase"><%= !form.empty() ? form.get("passphrase", "") : "" %></textarea>
</fieldset>
<input class="grd-form-bn grd-form-bn-succeed" type="submit" name="submit" value="Debug">
</form>
<% if(keys) { %>
<p>Public key:<br><%= keys->getPublicKeyHex() %></p>
<p>Private key crypted:<br><%= privKeyCryptedHex %></p>
<p>Passwort Hashed:<br><%= std::to_string(pwdHashed) %></p>
<% if(!existingUser.isNull()) {
auto userModel = existingUser->getModel();
auto dbPubkey = userModel->getPublicKey();
%>
<p>user Public: <br><%= keys->getPublicKeyHex() %></p>
<% } %>
<% } %>
</div>
<% if(keys) delete keys; %>
<%@ include file="include/footer.cpsp" %>