summaryrefslogtreecommitdiff
path: root/src/net/accountserver/account.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/accountserver/account.cpp')
-rw-r--r--src/net/accountserver/account.cpp29
1 files changed, 17 insertions, 12 deletions
diff --git a/src/net/accountserver/account.cpp b/src/net/accountserver/account.cpp
index 9f3bfe5c..bb0214d3 100644
--- a/src/net/accountserver/account.cpp
+++ b/src/net/accountserver/account.cpp
@@ -23,6 +23,9 @@
#include "account.h"
+#include <string>
+#include "../../utils/encryption.h"
+
#include "internal.h"
#include "../connection.h"
@@ -74,34 +77,36 @@ void Net::AccountServer::Account::unregister(const std::string &username,
MessageOut msg(PAMSG_UNREGISTER);
msg.writeString(username);
- msg.writeString(password);
+ msg.writeString(Encryption::GetSHA2Hash(
+ std::string (username + password)));
Net::AccountServer::connection->send(msg);
}
-void Net::AccountServer::Account::changeEmail(const std::string &email)
+void Net::AccountServer::Account::changeEmail(const std::string &username,
+ const std::string &email)
{
MessageOut msg(PAMSG_EMAIL_CHANGE);
+ // Email is sent clearly so the server can validate the data.
+ // Encryption is assumed server-side.
msg.writeString(email);
Net::AccountServer::connection->send(msg);
}
-void Net::AccountServer::Account::getEmail()
-{
- MessageOut msg(PAMSG_EMAIL_GET);
-
- Net::AccountServer::connection->send(msg);
-}
-
void Net::AccountServer::Account::changePassword(
- const std::string &oldPassword, const std::string &newPassword)
+ const std::string &username,
+ const std::string &oldPassword,
+ const std::string &newPassword)
{
MessageOut msg(PAMSG_PASSWORD_CHANGE);
- msg.writeString(oldPassword);
- msg.writeString(newPassword);
+ // Change password using SHA2 encryption
+ msg.writeString(Encryption::GetSHA2Hash(
+ std::string (username + oldPassword)));
+ msg.writeString(Encryption::GetSHA2Hash(
+ std::string (username + newPassword)));
Net::AccountServer::connection->send(msg);
}