test/message_api_test.cc
author Edouard Tisserant
Wed, 08 Jun 2016 01:32:10 +0200
branchimport_own_key
changeset 728 80b966277620
parent 678 f8181e59ae2f
child 746 753b1ec63285
permissions -rw-r--r--
Preparing for import of gpg private key on android : decrypt flags (import own key from own trusted message) + pgp_gpg giving a list private keys when importing.
Edouard@345
     1
#include <stdlib.h>
Edouard@345
     2
#include <string.h>
vb@165
     3
#include "platform.h"
vb@39
     4
#include <iostream>
vb@165
     5
#include <fstream>
vb@39
     6
#include <assert.h>
vb@221
     7
#include "mime.h"
vb@39
     8
#include "message_api.h"
vb@39
     9
vb@39
    10
using namespace std;
vb@39
    11
vb@39
    12
int main() {
vb@53
    13
    cout << "\n*** message_api_test ***\n\n";
vb@51
    14
vb@39
    15
    PEP_SESSION session;
vb@39
    16
    
vb@39
    17
    cout << "calling init()\n";
vb@39
    18
    PEP_STATUS status1 = init(&session);   
vb@39
    19
    assert(status1 == PEP_STATUS_OK);
vb@39
    20
    assert(session);
vb@39
    21
    cout << "init() completed.\n";
vb@39
    22
vb@53
    23
    // message_api test code
vb@53
    24
vb@40
    25
    cout << "creating message…\n";
vb@678
    26
    pEp_identity * me2 = new_identity("outlooktest@dingens.org", NULL, PEP_OWN_USERID, "Outlook Test");
vb@112
    27
    me2->me = true;
vb@112
    28
    identity_list *to2 = new_identity_list(new_identity("vb@dingens.org", NULL, "42", "Volker Birk"));
vb@306
    29
    message *msg2 = new_message(PEP_dir_outgoing);
vb@112
    30
    assert(msg2);
vb@306
    31
    msg2->from = me2;
vb@306
    32
    msg2->to = to2;
vb@306
    33
    msg2->shortmsg = strdup("hello, world");
vb@40
    34
    cout << "message created.\n";
vb@39
    35
vb@112
    36
    char *text2;
vb@113
    37
    PEP_STATUS status2 = mime_encode_message(msg2, false, &text2);
vb@112
    38
    assert(status2 == PEP_STATUS_OK);
vb@112
    39
    assert(text2);
vb@112
    40
vb@112
    41
    cout << "decrypted:\n\n";
vb@112
    42
    cout << text2 << "\n";
vb@112
    43
vb@112
    44
    free(text2);
vb@112
    45
vb@48
    46
    cout << "encrypting message as MIME multipart…\n";
vb@112
    47
    message *enc_msg2;
vb@40
    48
    cout << "calling encrypt_message()\n";
vb@113
    49
    status2 = encrypt_message(session, msg2, NULL, &enc_msg2, PEP_enc_PGP_MIME);
vb@112
    50
    assert(status2 == PEP_STATUS_OK);
vb@112
    51
    assert(enc_msg2);
vb@40
    52
    cout << "message encrypted.\n";
vb@48
    53
    
vb@113
    54
    status2 = mime_encode_message(enc_msg2, false, &text2);
vb@112
    55
    assert(status2 == PEP_STATUS_OK);
vb@112
    56
    assert(text2);
vb@112
    57
vb@112
    58
    cout << "encrypted:\n\n";
vb@112
    59
    cout << text2 << "\n";
vb@112
    60
vb@116
    61
    message *msg3;
vb@281
    62
    PEP_STATUS status3 = mime_decode_message(text2, strlen(text2), &msg3);
vb@116
    63
    assert(status3 == PEP_STATUS_OK);
vb@165
    64
    string string3 = text2;
vb@165
    65
    free(text2);
vb@165
    66
vb@165
    67
    unlink("msg4.asc");
vb@165
    68
    ofstream outFile3("msg4.asc");
vb@165
    69
    outFile3.write(string3.c_str(), string3.size());
vb@165
    70
    outFile3.close();
vb@71
    71
vb@166
    72
    message *msg4;
vb@241
    73
    stringlist_t *keylist4;
vb@251
    74
    PEP_color color;
Edouard@728
    75
    PEP_decrypt_flags_t flags;
Edouard@728
    76
    
Edouard@728
    77
    PEP_STATUS status4 = decrypt_message(session, enc_msg2, &msg4, &keylist4, &color, &flags);
vb@267
    78
    assert(status4 == PEP_STATUS_OK);
vb@166
    79
    assert(msg4);
vb@241
    80
    assert(keylist4);
vb@267
    81
    assert(color);
vb@241
    82
vb@241
    83
    cout << "keys used:";
vb@241
    84
    stringlist_t *kl4;
vb@241
    85
    for (kl4 = keylist4; kl4 && kl4->value; kl4 = kl4->next)
vb@241
    86
        cout << " " << kl4->value;
vb@241
    87
    cout << "\n\n";
vb@241
    88
vb@241
    89
    free_stringlist(keylist4);
vb@166
    90
vb@40
    91
    cout << "freeing messages…\n";
vb@166
    92
    free_message(msg4);
vb@116
    93
    free_message(msg3);
vb@112
    94
    free_message(msg2);
vb@112
    95
    free_message(enc_msg2);
vb@40
    96
    cout << "done.\n";
vb@39
    97
vb@39
    98
    cout << "calling release()\n";
vb@39
    99
    release(session);
vb@39
   100
    return 0;
vb@39
   101
}
vb@39
   102