aboutsummaryrefslogtreecommitdiff
path: root/src/server/authserver/Authentication/TOTP.h
diff options
context:
space:
mode:
authorraczman <raczman@gmail.com>2013-08-25 14:02:40 +0100
committerNay <dnpd.dd@gmail.com>2013-08-25 14:02:40 +0100
commitba22baebbd1394cc69366d7a19d879da43885430 (patch)
treeef30974328e765cde2b8fea6be2bc4fca53a5bf1 /src/server/authserver/Authentication/TOTP.h
parente96aa444b07eb6d9b96b37bcef7742ad96225fb4 (diff)
Core/Auth: Implement time-based token for user login as described in RFC 6238.
New column in account table is a base32 of token key bytes, coincidentally it is the same format Google's Authenticator Android app uses. If you want that to work, set system time on server correctly and use ntpd. Closes #10527 Signed-off-by: Nay <dnpd.dd@gmail.com>
Diffstat (limited to 'src/server/authserver/Authentication/TOTP.h')
-rw-r--r--src/server/authserver/Authentication/TOTP.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/server/authserver/Authentication/TOTP.h b/src/server/authserver/Authentication/TOTP.h
new file mode 100644
index 00000000000..3080e7c7787
--- /dev/null
+++ b/src/server/authserver/Authentication/TOTP.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _TOTP_H
+#define _TOPT_H
+
+#include "openssl/hmac.h"
+#include "openssl/evp.h"
+
+namespace TOTP
+{
+ unsigned int GenerateToken(const char* b32key);
+}
+
+#endif