~ubuntu-branches/ubuntu/oneiric/libotr/oneiric-security

« back to all changes in this revision

Viewing changes to toolkit/otr_parse.c

  • Committer: Bazaar Package Importer
  • Author(s): Thibaut VARENE
  • Date: 2006-01-02 19:52:18 UTC
  • mfrom: (2.1.1 dapper)
  • Revision ID: james.westby@ubuntu.com-20060102195218-wb8803196y9mycx6
Tags: 3.0.0-2
Fix typo: "malformed messahes" (Closes: #345400)

Show diffs side-by-side

added added

removed removed

Lines of Context:
30
30
 
31
31
static void parse(const char *msg)
32
32
{
33
 
    OTRMessageType mtype = otrl_proto_message_type(msg);
 
33
    OtrlMessageType mtype = otrl_proto_message_type(msg);
 
34
    CommitMsg cmsg;
 
35
    KeyMsg kmsg;
 
36
    RevealSigMsg rmsg;
 
37
    SignatureMsg smsg;
34
38
    KeyExchMsg keyexch;
35
39
    DataMsg datamsg;
36
40
 
37
41
    switch(mtype) {
38
 
        case OTR_QUERY:
 
42
        case OTRL_MSGTYPE_QUERY:
39
43
            printf("OTR Query:\n\t%s\n\n", msg);
40
44
            break;
41
 
        case OTR_KEYEXCH:
 
45
        case OTRL_MSGTYPE_DH_COMMIT:
 
46
            cmsg = parse_commit(msg);
 
47
            if (!cmsg) {
 
48
                printf("Invalid D-H Commit Message\n\n");
 
49
                break;
 
50
            }
 
51
            printf("D-H Commit Message:\n");
 
52
            dump_data(stdout, "\tEncrypted Key", cmsg->enckey,
 
53
                    cmsg->enckeylen);
 
54
            dump_data(stdout, "\tHashed Key", cmsg->hashkey,
 
55
                    cmsg->hashkeylen);
 
56
            printf("\n");
 
57
            free_commit(cmsg);
 
58
            break;
 
59
        case OTRL_MSGTYPE_DH_KEY:
 
60
            kmsg = parse_key(msg);
 
61
            if (!kmsg) {
 
62
                printf("Invalid D-H Key Message\n\n");
 
63
                break;
 
64
            }
 
65
            printf("D-H Key Message:\n");
 
66
            dump_mpi(stdout, "\tD-H Key", kmsg->y);
 
67
            printf("\n");
 
68
            free_key(kmsg);
 
69
            break;
 
70
        case OTRL_MSGTYPE_REVEALSIG:
 
71
            rmsg = parse_revealsig(msg);
 
72
            if (!rmsg) {
 
73
                printf("Invalid Reveal Signature Message\n\n");
 
74
                break;
 
75
            }
 
76
            printf("Reveal Signature Message:\n");
 
77
            dump_data(stdout, "\tKey", rmsg->key, rmsg->keylen);
 
78
            dump_data(stdout, "\tEncrypted Signature",
 
79
                    rmsg->encsig, rmsg->encsiglen);
 
80
            dump_data(stdout, "\tMAC", rmsg->mac, 20);
 
81
            printf("\n");
 
82
            free_revealsig(rmsg);
 
83
            break;
 
84
        case OTRL_MSGTYPE_SIGNATURE:
 
85
            smsg = parse_signature(msg);
 
86
            if (!smsg) {
 
87
                printf("Invalid Signature Message\n\n");
 
88
                break;
 
89
            }
 
90
            printf("Signature Message:\n");
 
91
            dump_data(stdout, "\tEncrypted Signature",
 
92
                    smsg->encsig, smsg->encsiglen);
 
93
            dump_data(stdout, "\tMAC", smsg->mac, 20);
 
94
            printf("\n");
 
95
            free_signature(smsg);
 
96
            break;
 
97
        case OTRL_MSGTYPE_V1_KEYEXCH:
42
98
            keyexch = parse_keyexch(msg);
43
99
            if (!keyexch) {
44
100
                printf("Invalid Key Exchange Message\n\n");
57
113
            printf("\n");
58
114
            free_keyexch(keyexch);
59
115
            break;
60
 
        case OTR_DATA:
 
116
        case OTRL_MSGTYPE_DATA:
61
117
            datamsg = parse_datamsg(msg);
62
118
            if (!datamsg) {
63
119
                printf("Invalid Data Message\n\n");
64
120
                break;
65
121
            }
66
122
            printf("Data Message:\n");
 
123
            if (datamsg->flags >= 0) {
 
124
                dump_int(stdout, "\tFlags", datamsg->flags);
 
125
            }
67
126
            dump_int(stdout, "\tSender keyid", datamsg->sender_keyid);
68
127
            dump_int(stdout, "\tRcpt keyid", datamsg->rcpt_keyid);
69
128
            dump_mpi(stdout, "\tDH y", datamsg->y);
77
136
                unsigned int i = 0;
78
137
                printf("\tRevealed MAC keys:\n");
79
138
 
80
 
                while(len > 0) {
 
139
                while(len > 19) {
81
140
                    char title[20];
82
141
                    sprintf(title, "\t\tKey %u", ++i);
83
142
                    dump_data(stdout, title, mks, 20);
88
147
            printf("\n");
89
148
            free_datamsg(datamsg);
90
149
            break;
91
 
        case OTR_ERROR:
 
150
        case OTRL_MSGTYPE_ERROR:
92
151
            printf("OTR Error:\n\t%s\n\n", msg);
93
152
            break;
94
 
        case OTR_TAGGEDPLAINTEXT:
 
153
        case OTRL_MSGTYPE_TAGGEDPLAINTEXT:
95
154
            printf("Tagged plaintext message:\n\t%s\n\n", msg);
96
155
            break;
97
 
        case OTR_NOTOTR:
 
156
        case OTRL_MSGTYPE_NOTOTR:
98
157
            printf("Not an OTR message:\n\t%s\n\n", msg);
99
158
            break;
100
 
        case OTR_UNKNOWN:
 
159
        case OTRL_MSGTYPE_UNKNOWN:
101
160
            printf("Unrecognized OTR message:\n\t%s\n\n", msg);
102
161
            break;
103
162
    }