summaryrefslogtreecommitdiffstats
path: root/tinySIP/test/test_imsaka.h
blob: 0ceb53beaad71a1005c09bd892929acc168e3881 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
/*
* Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou(at)doubango[dot]org>
*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*
*/
#ifndef _TEST_IMS_AKA_H
#define _TEST_IMS_AKA_H

#include "tinysip/authentication/tsip_challenge.h" /* Not part of the API */

#define TEST_IMS_AKA_REQUEST "REGISTER sip:ims.inexbee.com SIP/2.0\r\n" \
"v: SIP/2.0/TCP 192.168.16.82:2851;branch=z9hG4bK1272986926192;rport\r\n" \
"f: <sip:bob@ims.inexbee.com>;tag=1272986909384\r\n" \
"t: <sip:bob@ims.inexbee.com>\r\n" \
"m: <sip:bob@192.168.16.82:2851;transport=tcp>;expires=30;+g.oma.sip-im;+g.3gpp.smsip;language=\"en,fr\"\r\n" \
"i: ef566354-2051-df74-b888-1d30e1753213\r\n" \
"CSeq: 30149 REGISTER\r\n" \
"l: 0\r\n" \
"Max-Forwards: 70\r\n" \
"Authorization: Digest username=\"bob@ims.inexbee.com\",realm=\"ims.inexbee.com\",nonce=\"\",uri=\"sip:ims.inexbee.com\",response=\"\"\r\n" \
"Privacy: header;id\r\n" \
"Allow: INVITE, ACK, CANCEL, BYE, MESSAGE, OPTIONS, NOTIFY, PRACK, UPDATE, REFER\r\n" \
"P-Access-Network-Info: ADSL;utran-cell-id-3gpp=00000000\r\n" \
"User-Agent: IM-client/OMA1.0 doubango/v1.0.0\r\n" \
"P-Preferred-Identity: <sip:bob@ims.inexbee.com>\r\n" \
"k: path\r\n" \
"Action-Header: Myheader-value\r\n" \
"\r\n"



void test_imsaka()
{
    tsip_challenge_t* challenge;
    tsip_stack_handle_t *stack;
    tsip_request_t *request = tsk_null;
    tsk_ragel_state_t state;
    tsip_header_Authorization_t* hdr_Auth;

    /*  create the SIP stack */
    stack = tsip_stack_create(tsk_null, "sip:ims.inexbee.com", "bob@ims.inexbee.com", "sip:bob@ims.inexbee.com",
                              TSIP_STACK_SET_PASSWORD("bob"),
                              TSIP_STACK_SET_NULL());

    /* create the chalenge */
    challenge = tsip_challenge_create(stack,
                                      tsk_false,
                                      "Digest", /* scheme */
                                      "ims.inexbee.com", /* realm */
                                      "RqhHfrN+ciXaM4mt8k/0Lyx7bgshVgAA5TcTpiTtqsY=", /* nonce */
                                      tsk_null, /* opaque */
                                      "AKAv1-MD5", /* algorithm */
                                      "auth" /* qop */
                                     );

    /* Parse SIP request */
    tsk_ragel_state_init(&state, TEST_IMS_AKA_REQUEST, tsk_strlen(TEST_IMS_AKA_REQUEST));
    if(!tsip_message_parse(&state, &request, tsk_true)) {
        goto bail;
    }

    /* Gets auth header */
    if((hdr_Auth = (tsip_header_Authorization_t*)tsip_challenge_create_header_authorization(challenge, request))) {
        TSK_DEBUG_INFO("Response=[%s]", hdr_Auth->response);
    }


bail:
    TSK_OBJECT_SAFE_FREE(request);
    TSK_OBJECT_SAFE_FREE(challenge);
    TSK_OBJECT_SAFE_FREE(stack);

    getchar();
}

#endif /* _TEST_IMS_AKA_H */

OpenPOWER on IntegriCloud