diff --git a/src/chatmodel.cpp b/src/chatmodel.cpp index bc45d8b..f29be0f 100644 --- a/src/chatmodel.cpp +++ b/src/chatmodel.cpp @@ -260,6 +260,8 @@ void ChatModel::addHeader(QString tx, QString headerbytes) this->headerMap[tx] = headerbytes; } + + void ChatModel::addrequestZaddr(QString tx, QString requestZaddr) { this->requestZaddrMap[tx] = requestZaddr; @@ -285,6 +287,9 @@ QString ChatModel::getCidByTx(QString tx) return QString("0xdeadbeef"); } + + + QString ChatModel::getHeaderByTx(QString tx) { for(auto& pair : this->headerMap) @@ -415,7 +420,7 @@ Tx MainWindow::createTxFromChatPage() { - QString pubkey = "test"; + QString pubkey = this->getPubkeyByAddress(addr); QString passphrase = this->getPassword(); QString hashEncryptionKey = passphrase; int length = hashEncryptionKey.length(); @@ -474,8 +479,9 @@ Tx MainWindow::createTxFromChatPage() { ////Create the HM for this message QString headerbytes = QByteArray(reinterpret_cast(header), crypto_secretstream_xchacha20poly1305_HEADERBYTES).toHex(); + QString publickeyAlice = QByteArray(reinterpret_cast(pk), crypto_kx_PUBLICKEYBYTES).toHex(); - QString hmemo= createHeaderMemo(type,cid,myAddr,"",headerbytes); + QString hmemo= createHeaderMemo(type,cid,myAddr,publickeyAlice,headerbytes); /////Ciphertext Memo QString memo = QByteArray(reinterpret_cast(ciphertext), CIPHERTEXT_LEN).toHex(); @@ -751,6 +757,8 @@ Tx MainWindow::createTxForSafeContactRequest() QString publicKey = QByteArray(reinterpret_cast(pk), crypto_kx_PUBLICKEYBYTES).toHex(); + qDebug()<<"Publickey created Request: "<> sendrequestMap; std::map headerMap; std::map AddressbyLabelMap; + public: ChatModel() {}; diff --git a/src/controller.cpp b/src/controller.cpp index 50bcdd6..0f5b4f3 100644 --- a/src/controller.cpp +++ b/src/controller.cpp @@ -910,7 +910,7 @@ void Controller::refreshTransactions() { QString memo; QString cid; QString headerbytes; - QString pubkey; + QString publickey; if (!o["memo"].is_null()) { memo = QString::fromStdString(o["memo"].get()); @@ -953,7 +953,15 @@ void Controller::refreshTransactions() { headerbytes = ""; } - qDebug()<<"Headerbytes :"<getPubkeyByAddress(address) != QString("0xdeadbeef")){ + + publickey = main->getPubkeyByAddress(address); + + }else{ + publickey = ""; + } + + qDebug()<<"Pubkey :"<addCid(txid, cid); chatModel->addrequestZaddr(txid, requestZaddr); chatModel->addHeader(txid, headerbytes); + main->addPubkey(requestZaddr, publickey); - } + } if (chatModel->getCidByTx(txid) != QString("0xdeadbeef")){ @@ -1207,6 +1216,14 @@ void Controller::refreshTransactions() { headerbytes = ""; } + if (main->getPubkeyByAddress(requestZaddr) != QString("0xdeadbeef")){ + + publickey = main->getPubkeyByAddress(requestZaddr); + + }else{ + publickey = ""; + } + //position = it["position"].get(); bool isNotarized; @@ -1226,7 +1243,7 @@ void Controller::refreshTransactions() { cidchar = new char[lengthcid+1]; strncpy(cidchar, cid.toLocal8Bit(), lengthcid +1); - if ((memo.startsWith("{") == false) && (headerbytes > 0)) + if ((memo.startsWith("{") == false) && (headerbytes > 0)) { #define MESSAGEAS ((const unsigned char *) cidchar) @@ -1298,7 +1315,7 @@ void Controller::refreshTransactions() { DataStore::getChatDataStore()->setData(ChatIDGenerator::getInstance()->generateID(item), item); - + }else{ @@ -1320,6 +1337,7 @@ void Controller::refreshTransactions() { } } + } } } } diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 27c567e..bd12d90 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1062,6 +1062,26 @@ void MainWindow::exportSeed() { }); } +void MainWindow::addPubkey(QString requestZaddr, QString pubkey) +{ + this->pubkeyMap[requestZaddr] = pubkey; +} + +QString MainWindow::getPubkeyByAddress(QString requestZaddr) +{ + for(auto& pair : this->pubkeyMap) + { + + } + + if(this->pubkeyMap.count(requestZaddr) > 0) + { + return this->pubkeyMap[requestZaddr]; + } + + return QString("0xdeadbeef"); +} + void MainWindow::exportAllKeys() { exportKeys(""); } diff --git a/src/mainwindow.h b/src/mainwindow.h index 815fd84..8c63540 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -12,6 +12,7 @@ class Controller; class Settings; class WSServer; class WormholeClient; +class ChatModel; using json = nlohmann::json; @@ -52,7 +53,11 @@ public: QString doSendRequestTxValidations(Tx tx); QString getCid(); QString getPassword(); + std::map pubkeyMap; + QString getPubkeyByAddress(QString requestZaddr); void setPassword(QString Password); + void addPubkey(QString requestZaddr, QString pubkey); + void replaceWormholeClient(WormholeClient* newClient); bool isWebsocketListening();