Changeset 13 in chevmsgr
- Timestamp:
- 08/30/15 16:54:31 (9 years ago)
- Location:
- trunk
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/aria.h
r7 r13 16 16 byte dk[17][16 /* 128-bits */]; 17 17 } CHEV_ARIA_INFO; 18 19 #ifdef __cplusplus 20 extern "C" { 21 #endif 18 22 19 23 /* function */ … … 38 42 int * outSize); 39 43 44 #ifdef __cplusplus 45 } 46 #endif -
trunk/crypto.cpp
r7 r13 11 11 void crypto::setKey(cf::bin & key) 12 12 { 13 CHEV_ARIA_Initialize(&info, CHEV_ARIA_256, key.buffer(), key.size());13 ::CHEV_ARIA_Initialize(&info, CHEV_ARIA_256, key.buffer(), key.size()); 14 14 } 15 15 … … 20 20 out.resize(SHA256_DIGEST_VALUELEN); 21 21 22 SHA256_Encrpyt(input.buffer(), input.size(), out.buffer());22 ::SHA256_Encrpyt(input.buffer(), input.size(), out.buffer()); 23 23 24 24 return out; … … 35 35 out.resize(plain.size()); 36 36 37 CHEV_ARIA_Encrypt(&info, plain.buffer(), plain.size(), out.buffer(), &outSize);37 ::CHEV_ARIA_Encrypt(&info, plain.buffer(), plain.size(), out.buffer(), &outSize); 38 38 39 39 return out; … … 49 49 out.resize(input.size()); 50 50 51 CHEV_ARIA_Decrypt(&info, input.buffer(), input.size(), out.buffer(), &outSize);51 ::CHEV_ARIA_Decrypt(&info, input.buffer(), input.size(), out.buffer(), &outSize); 52 52 53 53 paddingSize = out[outSize - 1]; -
trunk/msgsrv.cpp
r7 r13 4 4 #include "cf/codec.h" 5 5 #include "cf/file.h" 6 #include "crypto.h" 6 7 7 8 #include "msg.hpp" … … 283 284 } 284 285 285 static bool command(const Protocol::Message & parser)286 {287 bool isContinued = true;288 std::string command = parser.get<std::string>("command");289 290 if (command == "logout")291 isContinued = false;292 /*293 else if (...)294 */295 296 return isContinued;297 }298 299 286 static std::string getRandomCode() 300 287 { … … 333 320 throw (cf::exception) 334 321 { 335 if (sms != parser.get<std::string>( "sms"))322 if (sms != parser.get<std::string>(ProtocolType::SMS)) 336 323 THROW_EXCEPTION("SMS is not same"); 337 324 338 std::string id = parser.get<std::string>( "id");339 std::string pw = parser.get<std::string>( "pw");325 std::string id = parser.get<std::string>(ProtocolType::ID); 326 std::string pw = parser.get<std::string>(ProtocolType::PW); 340 327 341 328 return dbmgr.join(id, pw, sms, address); … … 345 332 throw (cf::exception) 346 333 { 347 std::string id = parser.get<std::string>( "id");348 std::string pw = parser.get<std::string>( "pw");334 std::string id = parser.get<std::string>(ProtocolType::ID); 335 std::string pw = parser.get<std::string>(ProtocolType::PW); 349 336 350 337 return dbmgr.login(id, pw); … … 355 342 { 356 343 bool result = false; 357 std::string to = parser.get<std::string>( "to");344 std::string to = parser.get<std::string>(ProtocolType::TO); 358 345 359 346 if (isOnline(to)) … … 366 353 } 367 354 355 static std::string createSessionID(std::string & idList) 356 { 357 cf::bin sessid; 358 359 sessid = crypto().sha256(cf::bin(idList)); 360 361 return cf::codec::hex::getInstance()->encode(sessid); 362 } 363 364 static bool opensession(const Protocol::Message & parser) 365 { 366 bool result = false; 367 std::string sessid; 368 std::vector<std::string> idList = parser.getList<std::string>(ProtocolType::ID_LIST); 369 std::string concat = idList[0]; 370 371 for (size_t iter = 1; iter < concat.size(); iter++) 372 concat += idList[iter]; 373 374 sessid = createSessionID(concat); 375 376 for (size_t iter = 0; iter < idList.size(); iter++) 377 { 378 if (isOnline(idList[iter])) 379 gOnlineUsers[idList[iter]].sock->send(sessid); 380 381 result = true; 382 } 383 384 return result; 385 } 386 368 387 static std::string keyExchange(const std::string sms, const std::string address) 369 388 { 370 std::string sessionKey; 371 372 389 cf::bin sessKey; 390 391 sessKey = crypto().sha256(cf::bin(sms + address)); 392 393 return cf::codec::hex::getInstance()->encode(sessKey); 373 394 } 374 395 … … 391 412 { 392 413 if (join(parser, sms, sock.peer().address())) 393 THROW_EXCEPTION("user(" << parser.get<std::string>( "id") << ") cannot join");414 THROW_EXCEPTION("user(" << parser.get<std::string>(ProtocolType::ID) << ") cannot join"); 394 415 } 395 416 else if (parser.type() == "login") 396 417 { 397 418 if (login(parser)) 398 return parser.get<std::string>("id");399 } 419 parser.get<std::string>(ProtocolType::ID); 420 } 400 421 } 401 422 } … … 428 449 LOG(message); 429 450 430 if (parser.type() == "command") 431 result = command(parser); 432 else if (parser.type() == "chat") 451 if (parser.type() == "chat") 433 452 result = chat(parser, message); 453 else if (parser.type() == "opensession") 454 result = opensession(parser); 455 // else if (parser.type() == "getFriendList") 456 // result = 434 457 435 458 sock->send(response.result(parser.type(), result)); … … 481 504 } 482 505 483 int createSessionID(std::string & idList)484 {485 return 0;486 }487 488 506 int main(int argc, char ** argv) 489 507 { -
trunk/msvc14/chevmsgr.sln
r7 r13 6 6 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "server", "server\server.vcxproj", "{D29F58DC-2F95-41FA-8749-A9D91F5D269C}" 7 7 ProjectSection(ProjectDependencies) = postProject 8 {A5238B12-5F59-4AF2-BC5C-DD93352082FD} = {A5238B12-5F59-4AF2-BC5C-DD93352082FD} 8 9 {39F45AE4-072E-44C4-8E2B-94DAC2333A5D} = {39F45AE4-072E-44C4-8E2B-94DAC2333A5D} 9 10 EndProjectSection -
trunk/msvc14/crypto/crypto.vcxproj
r7 r13 139 139 <ClCompile Include="..\..\bit.c" /> 140 140 <ClCompile Include="..\..\crypto.cpp" /> 141 <ClCompile Include="..\..\KISA_SHA256.c" /> 141 142 </ItemGroup> 142 143 <ItemGroup> … … 144 145 <ClInclude Include="..\..\bit.h" /> 145 146 <ClInclude Include="..\..\crypto.h" /> 147 <ClInclude Include="..\..\KISA_SHA256.h" /> 146 148 </ItemGroup> 147 149 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> -
trunk/msvc14/crypto/crypto.vcxproj.filters
r7 r13 25 25 <Filter>소스 파일</Filter> 26 26 </ClCompile> 27 <ClCompile Include="..\..\KISA_SHA256.c"> 28 <Filter>소스 파일</Filter> 29 </ClCompile> 27 30 </ItemGroup> 28 31 <ItemGroup> … … 36 39 <Filter>소스 파일</Filter> 37 40 </ClInclude> 41 <ClInclude Include="..\..\KISA_SHA256.h"> 42 <Filter>소스 파일</Filter> 43 </ClInclude> 38 44 </ItemGroup> 39 45 </Project> -
trunk/msvc14/server/server.vcxproj
r4 r13 97 97 <SubSystem>Console</SubSystem> 98 98 <GenerateDebugInformation>true</GenerateDebugInformation> 99 <AdditionalDependencies>$(OutDir)\cf++.lib; %(AdditionalDependencies)</AdditionalDependencies>99 <AdditionalDependencies>$(OutDir)\cf++.lib;$(OutDir)\crypto.lib;%(AdditionalDependencies)</AdditionalDependencies> 100 100 </Link> 101 101 </ItemDefinitionGroup> … … 111 111 <SubSystem>Console</SubSystem> 112 112 <GenerateDebugInformation>true</GenerateDebugInformation> 113 <AdditionalDependencies>$(OutDir)\cf++.lib; %(AdditionalDependencies)</AdditionalDependencies>113 <AdditionalDependencies>$(OutDir)\cf++.lib;$(OutDir)\crypto.lib;%(AdditionalDependencies)</AdditionalDependencies> 114 114 </Link> 115 115 </ItemDefinitionGroup> … … 129 129 <EnableCOMDATFolding>true</EnableCOMDATFolding> 130 130 <OptimizeReferences>true</OptimizeReferences> 131 <AdditionalDependencies>$(OutDir)\cf++.lib; %(AdditionalDependencies)</AdditionalDependencies>131 <AdditionalDependencies>$(OutDir)\cf++.lib;$(OutDir)\crypto.lib;%(AdditionalDependencies)</AdditionalDependencies> 132 132 </Link> 133 133 </ItemDefinitionGroup> … … 147 147 <EnableCOMDATFolding>true</EnableCOMDATFolding> 148 148 <OptimizeReferences>true</OptimizeReferences> 149 <AdditionalDependencies>$(OutDir)\cf++.lib; %(AdditionalDependencies)</AdditionalDependencies>149 <AdditionalDependencies>$(OutDir)\cf++.lib;$(OutDir)\crypto.lib;%(AdditionalDependencies)</AdditionalDependencies> 150 150 </Link> 151 151 </ItemDefinitionGroup>
Note:
See TracChangeset
for help on using the changeset viewer.