00001
00002
00003
00004 #include "../include/mc_platform.h"
00005 #include "../include/message.h"
00006 #include "asm.h"
00007 #include "asm_message_composer.h"
00008 #include "config.h"
00009 #include "mc_dh.h"
00010
00011 #ifdef MC_SECURITY
00012
00013 AP_QUEUE_STD_DEFN_TEMPLATE
00014 (
00015 asm_queue,
00016 asm_node
00017 )
00018
00019 AP_QUEUE_SEARCH_TEMPLATE
00020 (
00021 asm_queue,
00022 SearchAddr,
00023 asm_node,
00024 struct sockaddr_in*,
00025 (
00026 (key->sin_addr.s_addr == node->remote_addr->sin_addr.s_addr) &&
00027 (key->sin_port == node->remote_addr->sin_port)
00028 )
00029 )
00030
00031 AP_QUEUE_REMOVE_TEMPLATE
00032 (
00033 asm_queue,
00034 RemoveAddr,
00035 asm_node,
00036 struct sockaddr_in*,
00037 (
00038 (key->sin_addr.s_addr == node->remote_addr->sin_addr.s_addr) &&
00039 (key->sin_port == node- html#b36a177f329aea77a2496b5b9c21b8fe">to_address, exit(0); );
00089
00090 strcpy(message->to_address, addr);
00091
00092 message->message_type = REQUEST_ENCRYPTION_INITIALIZE;
00093
00094 message->xml_root = message_xml_compose__RequestEncryptionInit(mc_platform);
00095
00096 message->message_body = mxmlSaveAllocString
00097 (
00098 message->xml_root,
00099 MXML_NO_CALLBACK
00100 );
00101
00102 message_queue_Add(mc_platform->message_queue, message);
00103 }
00104
00105 int
00106 asm_SendEncryptionData(
00107 mc_asm_p security_manager,
00108 const char* address
00109 )
00110 {
00111 message_p message = message_Initialize();
00112
00113 message->to_address = (char*)malloc
00114 (
00115 sizeof(char) * (strlen(address)+1)
00116 );
00117 CHECK_NULL(message->to_address, exit(0););
00118 strcpy(message->to_address, address);
00119
00120
00121
00122
00123
00124
00125 message->message_type = ENCRYPTION_INITIALIZE;
00126
00127 message->xml_root =
00128 message_xml_compose__EncryptionInitialize
00129 (
00130 security_manager
00131 );
00132
00133 message->mAGYBV}Yo8ywH HE=ߟnՃ>dO KJW2&#qCz0% t U("Vlb)eyӡ?+ty*S:\dwqNZz":ʓV̥QnK:67,xuc^>Uj^UhU )njiQ(GWai]=d6_ᐲ'aP(R|^Rnn'^f\Tm54?&@Ru'i}aTFCȣXW ʷWkpOLt|,(W;T`<0st9gTkk=*/r,:f9|A7T:CXky8KѹrG&Ѥ\$&7d:2 "ʑS}RVÁbKyC&T2bBmFh3%YO}P2*5jBfUhl̝s&cLe^i MoG6gUS+D̹in*'ΰ\yJ4qv86.NY?Oy]xcFpػ"hjM:fi'ΉGhfU;Jᘻ\hx/JwĹnM~F$f-X{qlM=N!hFJ緉S8J$4lndE}91]bW\sfJΗ]&ۺsXO3+SXVbu1
4L2GJCw\8nȗ_,yYƦ?q
~N-WNeKh˷%vX3e^IH
E/qn͞3(ύ>bs)YrZbZǭݖ2İYoDd< &ޯhg7~5X$YN֖Z8>ĥ[!\KA"s=k*N#H[S˧eWv,-8U' t xꢇ'֝hWTHpY%¶_(w3cf /D 端EZP&{-}N~|%4f%Wjp>([ۗO&^fj̴霐YxpC/пzXX&Tνaa\]Z
e`Me%cظ0ݑ{>ap#ٟHM=k;fi[*e/FUխ'.:-x2%"j2nAGbiSO,fwNÙfX,(%@W%\-4Ƥ;7hH$dE:d`U]a\?$Ob8]o{ ݭL/#>#U!ӊZf4X;{ )Z+fY1J{MjsZ(RԂ0Xm]H-XgF:'}D2KdMw/|m--8&?]ro薗:E?ݐ3^NO5]M+_lÏ}DR\jT$MS%/K^^ĐDuWZMpX5ޙ0n5D洖$creZQ}j]ֈ%Ru̱3rRYD!'zi$mdW$*fR9Ӵ7sjZcW퍨jH-'Nf3k.KtyFs̬]57I/:eHl=r~&5rezo`i8Ge$Ag_JN^#'tr3lDC4=ۡ"d}y#J]I-B-_4Ժlyw.UA٨H*xhw
V* eQYaJ`8wߏD5&F(V_Mq}WN>"7+~dZ<#jFȋ֥_jTfkК-\3'Z?$;f^9e[ymL)_0p2EbOaCBS!))\e[D?0StOP8*#@}ѻHz̒Ė͈cJrR`L@_P砳sc<lYNݮ7E'̕=yKQst@"fϮfUɰ;B̆R*ԫ*8~@Jp,WloE8!7 LlߛC4YTX7 u*gtvkBP?uC/m˗l_ӌ`K '+d8kMZ[w-<͌UeK)~gC5]cK7589yzJ:<,m;VDKYn1ն{ҪcLvP6:&Sfe]TXQ>$ә75
pZꝻd>ZeBi3(<em& ̓~AFR2ǠT)-6XŲO缈dbcl<-39L.-ǿ։q)]Ր&9gDBYk-w#\1ݍ!vрsџ!i@|4 ս|*iTc8?F^ :HPϤ( \Z; JEvA\g|/)}QRPkư? :\\R8Q 01+!R}Sru5yK
Vf7k+s2@tŋiŖG10fOM^y P('lMFQLWN2zVHp[s}ڬ{ؽcR3Ty@y2RgLؽ,пf\0oAV_eHJ-AfwȜ#zJZ
XlڛCEN3=oL\ #kl~&49XltK0%MАL|mAՍ&]]ݭv<@ܫ/LM{u~h"-$GcK"oBB^eAWi (zŒuC*'m0n|];gn{> -,?Orxkt%_.+v瞴7MSqRŶe߆Z|l IC1QՂ;XIf"t;G0"WK/1EbUư[pK厣R%XA
8"b~UY/ef$?FV^L_kTҏE3:&x& VW>(퓖?ǣQ*3ٲ~U{zGڿg0!,nX:=<|ibIsơ&