123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- /*
- * 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 */
|