Пример #1
0
//----------------------------------------------------------------------------------
void TNetControlTCP::Send(unsigned int ip, unsigned short port, TBreakPacket& bp)
{
  // добавить заголовки в начало  - 2 байт под заголовок + 4 байта - размер данных
  THeaderTCP header;
  header.size = bp.GetSize();
  bp.PushFront((char*)&header, sizeof(header));
  bp.Collect();

  char* data = (char*)bp.GetCollectPtr();
  int size   = bp.GetSize();

	RequestSend(data,size);
}
Пример #2
0
bool TCryptMITM::Calc(void* rsa, int size_rsa, 
											void* pLogin, int sizeLogin,
                      void* pPassword, int sizePassword, 
											TContainer& c_result)
{
  TContainer cAES_RSA;
  // зашифровать публичный ключ RSA с помощью AES, используя в качестве ключа пароль
  TContainer cMD5_Password;
  TMD5 md5Password;
  md5Password.FastCalc(pPassword, sizePassword, cMD5_Password);
  TCryptoAES_Impl crypt_aes;
  crypt_aes.SetPublicKey(cMD5_Password.GetPtr(), cMD5_Password.GetSize());
  if(crypt_aes.Encrypt(rsa, size_rsa, cAES_RSA)==false)
    return false;

  TBreakPacket bp;
  // зашифрованный RSA
  bp.PushFront(cAES_RSA.GetPtr(), cAES_RSA.GetSize());
  // Login
  bp.PushFront((char*)pLogin, sizeLogin);
  // длина логина
  char lenLogin = sizeLogin;
  bp.PushFront(&lenLogin, sizeof(lenLogin));
  // собрать
  bp.Collect();
  // отдать собранный пакет
  c_result.Entrust((char*)bp.GetCollectPtr(), bp.GetSize());
  // отцепиться
  bp.UnlinkCollect();
	return true;
}
Пример #3
0
//----------------------------------------------------------------------------------
void TNetControlTCP::Send( unsigned int ip, unsigned short port, TBreakPacket& bp )
{
  THistoryPacketTCP::PackForSend( bp );
  bp.Collect();

  char* data = (char*) bp.GetCollectPtr();
  int size = bp.GetSize();

  RequestSend( data, size );
}
Пример #4
0
//----------------------------------------------------------------------------------
void TNetControlUDP::Send( unsigned int ip, unsigned short port, TBreakPacket& bp )
{
  // формируем заголовок
  TIP_Port ip_port( ip, port );
  unsigned short count_out = IncreaseCntOut( ip_port );
  bp.PushFront( (char*) &count_out, sizeof( count_out ) );
  bp.Collect();

  char* data = (char*) bp.GetCollectPtr();
  int size = bp.GetSize();
  RequestSendTo( data, size, ip_port );
}
Пример #5
0
//----------------------------------------------------------------------------------
TContainer TBasePacket_PCS::Pack()
{
  TBreakPacket bp;
  bp.PushBack( (char*)&mType, sizeof(mType));
  TContainer fromInherit = PackInherit();
  bp.PushBack( fromInherit.GetPtr(), fromInherit.GetSize() );
  bp.Collect();
  TContainer result;
  result.Entrust( (char*)bp.GetCollectPtr(), bp.GetSize() );
  bp.UnlinkCollect();
  return result;
}