#include <iostream>
#include "mnenc.hpp"
#include "password.hpp"
-
-std::string remove_char(std::string str, char c) {
- std::string::size_type k = 0;
- while((k=str.find(c,k))!=str.npos) {
- str.erase(k, 1);
- }
- return str;
-}
-
-std::string remove_chars(std::string str) {
- std::string chars = " \t\n\b\a-?+\\{[]}'*'";
- for(int i = 0; i < (signed) chars.size(); i++) {
- str = remove_char(str, chars[i]);
- }
-
- return str;
-}
-
-std::string make_filename(std::string user, std::string app) {
- return remove_chars(app + user);
-}
-std::string get_password(std::string masterpasswd, std::string user, std::string app) {
- mnenc menc = mnenc();
- menc.genkey(masterpasswd);
- std::string key = menc.get_key();
- password pw = password("", "", key);
- pw.from_file(make_filename(user, app));
- return menc.decrypt(key, pw.get_enc());
-}
-
-void put_password(std::string masterpasswd, std::string passwd, std::string user, std::string app) {
- mnenc menc = mnenc();
- menc.genkey(masterpasswd);
- std::string key = menc.get_key();
- password pw = password(menc.encrypt(key, passwd ), "", key);
- pw.to_file(make_filename(user, app));
-}
-
-std::string do_something(std::string str) {
- //Nothing here yet
- return "Blahonga";
-}
-
-std::string m_read() {
- std::string str;
- std::ifstream is("fife");
- getline(is, str);
- is.close();
- return str;
-}
-
-void m_send(std::string message) {
- std::ofstream os("fife");
- os << message;
- os.close();
-}
-
+#include "mnencd.hpp"
int main(int argc, char** argv) {
/* Our process ID and Session ID */
/* The Big Loop */
while (1) {
- m_send(do_something(m_read()));
+ std::string request = m_read();
+ std::string reply = do_something(request);
+ m_send(reply);
sleep(1); /* wait 1 second*/
}
unlink("fife");
--- /dev/null
+// mnencd.hpp
+//
+// Copyright 2010 Micke Nordin <mickewiki@gmail.com>
+//
+// 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 3 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, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+// MA 02110-1301, USA.
+#ifndef _mnencd_h_included_
+#define _mnencd_h_included_
+#include <string>
+#include <iostream>
+#include <fstream>
+
+std::string remove_char(std::string str, char c) {
+ std::string::size_type k = 0;
+ while((k=str.find(c,k))!=str.npos) {
+ str.erase(k, 1);
+ }
+ return str;
+}
+
+std::string remove_chars(std::string str) {
+ std::string chars = " \t\n\b\a-?+\\{[]}'*'";
+ for(int i = 0; i < (signed) chars.size(); i++) {
+ str = remove_char(str, chars[i]);
+ }
+
+ return str;
+}
+
+std::string make_filename(std::string user, std::string app) {
+ return remove_chars(app + user);
+}
+std::string get_password(std::string masterpasswd, std::string user, std::string app) {
+ mnenc menc = mnenc();
+ menc.genkey(masterpasswd);
+ std::string key = menc.get_key();
+ password pw = password("", "", key);
+ pw.from_file(make_filename(user, app));
+ return menc.decrypt(key, pw.get_enc());
+}
+
+void put_password(std::string masterpasswd, std::string passwd, std::string user, std::string app) {
+ mnenc menc = mnenc();
+ menc.genkey(masterpasswd);
+ std::string key = menc.get_key();
+ password pw = password(menc.encrypt(key, passwd ), "", key);
+ pw.to_file(make_filename(user, app));
+}
+
+std::string do_something(std::string str) {
+ if(str[0] == '0') {
+ return "201_Created\n";
+ } else {
+ return "400_Bad_Request " + str + '\n';
+ }
+}
+
+std::string m_read() {
+ std::string str;
+ std::ifstream is("fife");
+ getline(is, str);
+ is.close();
+ return str;
+}
+
+void m_send(std::string message) {
+ std::ofstream os("fife");
+ os << message;
+ os.close();
+}
+#endif