diff --git a/html/mail.html b/html/mail.html index 857dc1b..0de77a9 100644 --- a/html/mail.html +++ b/html/mail.html @@ -314,7 +314,7 @@ let html = false function reg() { console.log(document.getElementById('email').value) - sendenc('/reg', { 'address': document.getElementById('email').value, 'host': document.getElementById('host').value, 'port': document.getElementById('port').value, 'creds': document.getElementById('auth').value }).then(() => { + sendenc('/reg', { 'user': 'root', 'address': document.getElementById('email').value, 'host': document.getElementById('host').value, 'port': document.getElementById('port').value, 'creds': document.getElementById('auth').value }).then(() => { update() }) } diff --git a/index.ts b/index.ts index eafbf96..7fb6e39 100644 --- a/index.ts +++ b/index.ts @@ -51,6 +51,7 @@ const sequelize = new Sequelize({ }); let User=sequelize.define('user',{ "html":DataTypes.BOOLEAN, + "test":DataTypes.TEXT, "name":DataTypes.TEXT, "hash":DataTypes.TEXT, "sudo":DataTypes.BOOLEAN, @@ -59,13 +60,12 @@ const sequelize = new Sequelize({ "login_key":DataTypes.TEXT, "mail":DataTypes.TEXT }) - -//User.sync({ force: true }) -User.sync({ alter: true }).then(()=>{ - //User.create( - //{"html":false,"name":"root","hash":"OTVYg/fHYeVbtyrusPl8fV+zQcp1ImjzbP+3Cy+3lk14fl2icYhzlULKtbTpOx4E","sudo":true,"last_login":"","alias":"root","login_key":"Pqx5y5fKHNu7APUOt1t1n+zUGwWos+iLpxH2Z/LzFKw57l/GPy3GSN/WK1iXDKcm" - //"mail":"hash here"} - //) +sequelize.authenticate() +User.sync({force:true}).then(()=>{ + User.create( + {"html":false,"name":"root","hash":"OTVYg/fHYeVbtyrusPl8fV+zQcp1ImjzbP+3Cy+3lk14fl2icYhzlULKtbTpOx4E","sudo":true,"last_login":"","alias":"root","login_key":"" + ,"mail":""} + ) }) const IV = "5183666c72eec9e4"; //!increase size eventually var encrypt = ((val:any,ENC_KEY:any) => { @@ -80,6 +80,7 @@ var decrypt = ((encrypted:any,ENC_KEY:any) => { let decrypted = decipher.update(encrypted, 'base64', 'utf8'); return (decrypted + decipher.final('utf8')); } catch(err){ + console.log(err) return false; } }); @@ -143,7 +144,15 @@ app.post('/mail/get/update',async(req:any,res:any)=>{ //console.log(user,dec) if(user.name==dec.data.user){ logkey = (decrypt(user.login_key,dec.data.login_key)) - mail =JSON.parse(decrypt(user.mail,logkey)).emails[parseInt(dec.data.requested)] + console.log(logkey) + let m = decrypt(user.mail,logkey) + if(m==false){ + mail='' + } else { + mail =JSON.parse(decrypt(user.mail,logkey)).emails[parseInt(dec.data.requested)] + } + break + } } if(mail==''){ @@ -246,9 +255,11 @@ app.post('/mail/reg',async(req:any,res:any)=>{ const users:any = await User.findAll(); let logkey:any,mail:any for(let user of users){ - if(user.name==dec.data.user){ - logkey = await (decrypt(user.login_key,dec.data.login_key)) + console.log(dec.login_key) + logkey = await (decrypt(user.login_key,dec.login_key)) + console.log(user.login_key) + console.log(logkey) mail=users.indexOf(user) user.setDataValue('mail',encrypt(JSON.stringify({'emails':[{ 'address':dec.data.address, @@ -258,7 +269,8 @@ app.post('/mail/reg',async(req:any,res:any)=>{ 'salt':crypt.randomBytes(64).toString('hex') }]}),logkey)) user.save() - User.sync({ alter: true }) + User.sync() + break } } }) @@ -277,7 +289,13 @@ app.post('/mail/get/storage',async(req:any,res:any)=>{ for(let user of users){ if(user.name==dec.data.user){ logkey = (decrypt(user.login_key,dec.data.login_key)) - mail =JSON.parse(decrypt(user.mail,logkey)) + let m = JSON.parse(decrypt(user.mail,logkey)).emails + if(m==undefined){ + mail='' + } else { + mail =JSON.parse(decrypt(user.mail,logkey)) + } + } } if(mail==''){ @@ -353,7 +371,7 @@ app.post('/login/submit', async (req:{body:{json:boolean,enc:boolean,data:string user.setDataValue('login_key',encrypt(hash,logkey)) user.save() - User.sync({ alter: true }) + User.sync({ alter:true }) break } } diff --git a/readme.md b/readme.md index ef3b88a..4eab77c 100644 --- a/readme.md +++ b/readme.md @@ -63,6 +63,7 @@ visit the [main git](https://git.disroot.org/grantsquires/kanna-site) or the [gi - [ ] write md emails, send as html - [ ] sexify - [ ] make mail prettier + - [ ] dont accept old login keys - [ ] add functionality - [x] loading screen - [x] storage for quicker (initial)loading @@ -77,8 +78,10 @@ visit the [main git](https://git.disroot.org/grantsquires/kanna-site) or the [gi - [ ] extra pages - [x] 404 page - [ ] sub domains + - [ ] ughh hate sub domains - [ ] make my own libs - [ ] encryption (md5 hashing, and rsa) - [ ] add aliases that are used in cookies and randomly gen. + - [ ] also server side hash to check/verify the alias FeMail (iron mail)