Browse Source

Tests: test_tofu - add message logging RX/TX - before/after enc/dec

LIB-11
heck 4 years ago
parent
commit
49ea80158e
  1. 57
      test/test_tofu.cc

57
test/test_tofu.cc

@ -7,12 +7,9 @@
#include "framework/utils.hh"
#include <pEp/pEpEngine.h>
#include <pEp/message_api.h>
#include <pEp/keymanagement.h>
#include <pEp/identity_list.h>
#include <pEp/Adapter.hh>
#include <pEp/status_to_string.hh>
#include <pEp/mime.h>
using namespace pEp;
using namespace pEp::Adapter;
@ -25,26 +22,46 @@ bool did_rx_encrypted = false;
// The most minimal received msg contains of:
// * from addres
// * content
using MinMsgRx =std::tuple<std::string, std::string>;
using MinMsgRx = std::tuple<std::string, std::string>;
void send(PityUnit<PityPerspective> &pity, PityPerspective *ctx)
{
// Create Message
pity.log("Initiating TOFU...");
pEpMessage msg = createMessage(ctx->own_ident, ctx->cpt_name, "INIT TOFU");
EncryptResult msg_enc = encryptAndEncode(msg);
std::string mime_text = std::get<1>(msg_enc);
did_tx_encrypted = std::get<2>(msg_enc);
pity.log("BEFORE encrypt: \n" + Utils::to_string(msg.get()));
//Encrypt
EncryptResult msg_encrypted = encryptMessage(msg);
did_tx_encrypted = std::get<2>(msg_encrypted);
pity.log("TX COULD ENCRYPT: " + std::to_string(did_tx_encrypted));
pity.log("AFTER encrypt: \n" + Utils::to_string(std::get<0>(msg_encrypted).get()));
// Encode
std::string mime_text = mimeEncode(std::get<0>(msg_encrypted));
// Send
pity.transport()->sendMsg(ctx->cpt_name, mime_text);
}
MinMsgRx receive(PityUnit<PityPerspective> &pity, PityPerspective *ctx)
{
MinMsgRx ret;
// Receive
std::string mime_data_rx = pity.transport()->receiveMsg();
DecryptResult msg_rx = decryptAndDecode(mime_data_rx);
pEpMessage msg_rx_dec = std::get<0>(msg_rx);
did_rx_encrypted = std::get<4>(msg_rx);
pity.log("rx msg is encrypted: " + std::to_string(did_rx_encrypted));
// Decode
pEpMessage mime_decoded = mimeDecode(mime_data_rx);
pity.log("RX message - BEFORE decrypt: \n" + Utils::to_string(mime_decoded.get()));
// Decrypt
DecryptResult msg_decrypted = decryptMessage(mime_decoded);
pEpMessage msg_rx_dec = std::get<0>(msg_decrypted);
did_rx_encrypted = std::get<4>(msg_decrypted);
pity.log("RX WAS ENCRYPTED: " + std::to_string(did_rx_encrypted));
pity.log("RX message - AFTER decrypt: \n" + Utils::to_string(msg_rx_dec.get()));
// Return result
std::get<0>(ret) = std::string(msg_rx_dec->from->address);
std::get<1>(ret) = std::string(msg_rx_dec->longmsg);
return ret;
@ -52,6 +69,7 @@ MinMsgRx receive(PityUnit<PityPerspective> &pity, PityPerspective *ctx)
void reply(PityUnit<PityPerspective> &pity, PityPerspective *ctx, MinMsgRx msg_orig)
{
// Create Message
std::string addr_orig = std::get<0>(msg_orig);
std::string longmsg_orig = std::get<1>(msg_orig);
@ -59,10 +77,19 @@ void reply(PityUnit<PityPerspective> &pity, PityPerspective *ctx, MinMsgRx msg_o
ctx->own_ident,
addr_orig,
"REPLY[ " + std::string(addr_orig) + " ] " + longmsg_orig);
EncryptResult eres = encryptAndEncode(msg);
std::string mime_data_tx = std::get<1>(eres);
// Encrypt
pity.log("TX message - BEFORE encrypt: \n" + Utils::to_string(msg.get()));
EncryptResult eres = encryptMessage(msg);
pEpMessage msg_encrypted = std::get<0>(eres);
did_tx_encrypted = std::get<2>(eres);
pity.log("tx msg is encrypted: " + std::to_string(did_tx_encrypted));
pity.log("TX COULD ENCRYPT: " + std::to_string(did_tx_encrypted));
pity.log("TX message - AFTER encrypt: \n" + Utils::to_string(msg_encrypted.get()));
// Encode
std::string mime_data_tx = mimeEncode(msg_encrypted);
// Send
pity.transport()->sendMsg(addr_orig, mime_data_tx);
}
@ -77,7 +104,7 @@ void tofu(PityUnit<PityPerspective> &pity, PityPerspective *ctx, bool init)
// Create new identity
pity.log("updating or creating identity for me");
ctx->own_ident = createIdentity(ctx->own_name, true);
ctx->own_ident = createOwnIdent(ctx->own_name);
::PEP_STATUS status = ::myself(Adapter::session(), ctx->own_ident.get());
pEp::throw_status(status);
if (init) {

Loading…
Cancel
Save