|
@@ -62,21 +62,14 @@ int KSGStart Framework::Start( Startparam p )
|
|
if( !iDat->zWert( "ServerIP" ) )
|
|
if( !iDat->zWert( "ServerIP" ) )
|
|
iDat->addWert( "ServerIP", "127.0.0.1" );
|
|
iDat->addWert( "ServerIP", "127.0.0.1" );
|
|
if( !iDat->zWert( "ServerPort" ) )
|
|
if( !iDat->zWert( "ServerPort" ) )
|
|
- iDat->addWert( "ServerPort", "4253" );
|
|
|
|
|
|
+ iDat->addWert( "ServerPort", "4225" );
|
|
iDat->speichern();
|
|
iDat->speichern();
|
|
Text *ipT = iDat->getWert( "ServerIP" );
|
|
Text *ipT = iDat->getWert( "ServerIP" );
|
|
unsigned short port = (unsigned short)TextZuInt( iDat->zWert( "ServerPort" )->getText(), 10 );
|
|
unsigned short port = (unsigned short)TextZuInt( iDat->zWert( "ServerPort" )->getText(), 10 );
|
|
iDat->release();
|
|
iDat->release();
|
|
- Klient *klient = new Klient();
|
|
|
|
|
|
+ SSLKlient *klientSSL = new SSLKlient();
|
|
int l = 0;
|
|
int l = 0;
|
|
- char *key;
|
|
|
|
- Keys::getServerKey( &key, l, Keys::MAIN, Keys::SENDEN );
|
|
|
|
- klient->setSendeKey( key, l );
|
|
|
|
- delete[] key;
|
|
|
|
- Keys::getServerKey( &key, l, Keys::MAIN, Keys::EMPFANGEN );
|
|
|
|
- klient->setEmpfangKey( key, l );
|
|
|
|
- delete[] key;
|
|
|
|
- if( !klient->verbinde( port, ipT->getText() ) )
|
|
|
|
|
|
+ if( !klientSSL->verbinde( port, ipT->getText() ) )
|
|
{
|
|
{
|
|
Text *message = new Text( "Der Server wurde nicht gefunden.\nServer Ip:" );
|
|
Text *message = new Text( "Der Server wurde nicht gefunden.\nServer Ip:" );
|
|
message->append( ipT->getText() );
|
|
message->append( ipT->getText() );
|
|
@@ -84,45 +77,44 @@ int KSGStart Framework::Start( Startparam p )
|
|
message->append( (int)port );
|
|
message->append( (int)port );
|
|
WMessageBox( 0, new Text( "Fehler" ), message, MB_ICONERROR );
|
|
WMessageBox( 0, new Text( "Fehler" ), message, MB_ICONERROR );
|
|
ipT->release();
|
|
ipT->release();
|
|
- klient->release();
|
|
|
|
|
|
+ klientSSL->release();
|
|
Network::Exit();
|
|
Network::Exit();
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
- klient->sende( "\0", 1 ); // Verschlüsselung aktivieren
|
|
|
|
- klient->sendeEncrypted( "\1\0\0\0\0", 5 );
|
|
|
|
|
|
+ klientSSL->sende( "\1", 5 );
|
|
char byte = 0;
|
|
char byte = 0;
|
|
- klient->getNachrichtEncrypted( &byte, 1 );
|
|
|
|
|
|
+ klientSSL->getNachricht( &byte, 1 );
|
|
if( byte == 3 )
|
|
if( byte == 3 )
|
|
{
|
|
{
|
|
- klient->getNachrichtEncrypted( &byte, 1 );
|
|
|
|
|
|
+ klientSSL->getNachricht( &byte, 1 );
|
|
char *message = new char[ byte + 1 ];
|
|
char *message = new char[ byte + 1 ];
|
|
message[ byte ] = 0;
|
|
message[ byte ] = 0;
|
|
- klient->getNachrichtEncrypted( message, byte );
|
|
|
|
|
|
+ klientSSL->getNachricht( message, byte );
|
|
Text *nachricht = new Text( "Fehler während der Identifikation beim Server.\nServer Rückgabe:\n " );
|
|
Text *nachricht = new Text( "Fehler während der Identifikation beim Server.\nServer Rückgabe:\n " );
|
|
nachricht->append( message );
|
|
nachricht->append( message );
|
|
WMessageBox( 0, new Text( "Server Fehler" ), nachricht, MB_ICONERROR );
|
|
WMessageBox( 0, new Text( "Server Fehler" ), nachricht, MB_ICONERROR );
|
|
delete[]message;
|
|
delete[]message;
|
|
ipT->release();
|
|
ipT->release();
|
|
- klient->sendeEncrypted( "\3", 1 );
|
|
|
|
- klient->getNachrichtEncrypted( &serverReturn, 1 );
|
|
|
|
- klient->trenne();
|
|
|
|
- klient->release();
|
|
|
|
|
|
+ klientSSL->sende( "\3", 1 );
|
|
|
|
+ klientSSL->getNachricht( &serverReturn, 1 );
|
|
|
|
+ klientSSL->trenne();
|
|
|
|
+ klientSSL->release();
|
|
Network::Exit();
|
|
Network::Exit();
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
int klientNummer = 0;
|
|
int klientNummer = 0;
|
|
char *netwSchlüssel = 0;
|
|
char *netwSchlüssel = 0;
|
|
char netwSchlüsselLän = 0;
|
|
char netwSchlüsselLän = 0;
|
|
|
|
+ int normPort = 0;
|
|
if( byte == 1 )
|
|
if( byte == 1 )
|
|
{
|
|
{
|
|
- klient->getNachrichtEncrypted( (char*)&klientNummer, 4 );
|
|
|
|
- klient->getNachrichtEncrypted( &netwSchlüsselLän, 1 );
|
|
|
|
|
|
+ klientSSL->getNachricht( (char*)&normPort, 4 );
|
|
|
|
+ klientSSL->getNachricht( (char*)&klientNummer, 4 );
|
|
|
|
+ klientSSL->getNachricht( &netwSchlüsselLän, 1 );
|
|
if( netwSchlüsselLän )
|
|
if( netwSchlüsselLän )
|
|
{
|
|
{
|
|
netwSchlüssel = new char[ netwSchlüsselLän ];
|
|
netwSchlüssel = new char[ netwSchlüsselLän ];
|
|
- klient->getNachrichtEncrypted( netwSchlüssel, netwSchlüsselLän );
|
|
|
|
- klient->setSendeKey( netwSchlüssel, netwSchlüsselLän );
|
|
|
|
- klient->setEmpfangKey( netwSchlüssel, netwSchlüsselLän );
|
|
|
|
|
|
+ klientSSL->getNachricht( netwSchlüssel, netwSchlüsselLän );
|
|
Datei *dat = new Datei();
|
|
Datei *dat = new Datei();
|
|
dat->setDatei( "data/tmp/schlüssel.netw" );
|
|
dat->setDatei( "data/tmp/schlüssel.netw" );
|
|
dat->erstellen();
|
|
dat->erstellen();
|
|
@@ -137,10 +129,10 @@ int KSGStart Framework::Start( Startparam p )
|
|
{
|
|
{
|
|
WMessageBox( 0, new Text( "Server Fehler" ), new Text( "Unbekannte Rückgabe vom Server.\nEventuell ist deine Version des Spiels veraltet." ), MB_ICONERROR );
|
|
WMessageBox( 0, new Text( "Server Fehler" ), new Text( "Unbekannte Rückgabe vom Server.\nEventuell ist deine Version des Spiels veraltet." ), MB_ICONERROR );
|
|
ipT->release();
|
|
ipT->release();
|
|
- klient->sendeEncrypted( "\3", 1 );
|
|
|
|
- klient->getNachrichtEncrypted( &serverReturn, 1 );
|
|
|
|
- klient->trenne();
|
|
|
|
- klient->release();
|
|
|
|
|
|
+ klientSSL->sende( "\3", 1 );
|
|
|
|
+ klientSSL->getNachricht( &serverReturn, 1 );
|
|
|
|
+ klientSSL->trenne();
|
|
|
|
+ klientSSL->release();
|
|
Network::Exit();
|
|
Network::Exit();
|
|
delete[] netwSchlüssel;
|
|
delete[] netwSchlüssel;
|
|
return 0;
|
|
return 0;
|
|
@@ -151,14 +143,19 @@ int KSGStart Framework::Start( Startparam p )
|
|
dat->open( Datei::Style::schreiben );
|
|
dat->open( Datei::Style::schreiben );
|
|
dat->schreibe( (char*)&klientNummer, 4 );
|
|
dat->schreibe( (char*)&klientNummer, 4 );
|
|
dat->close();
|
|
dat->close();
|
|
|
|
+ dat->setDatei( "data/tmp/m.port" );
|
|
|
|
+ dat->erstellen();
|
|
|
|
+ dat->open( Datei::Style::schreiben );
|
|
|
|
+ dat->schreibe( (char*)&normPort, 4 );
|
|
|
|
+ dat->close();
|
|
dat->release();
|
|
dat->release();
|
|
- klient->sendeEncrypted( "\3", 1 );
|
|
|
|
- klient->getNachrichtEncrypted( &serverReturn, 1 );
|
|
|
|
- klient->trenne();
|
|
|
|
- klient->release();
|
|
|
|
|
|
+ klientSSL->sende( "\3", 1 );
|
|
|
|
+ klientSSL->getNachricht( &serverReturn, 1 );
|
|
|
|
+ klientSSL->trenne();
|
|
|
|
+ klientSSL->release();
|
|
|
|
|
|
ErhaltungKlient *erhaltung = new ErhaltungKlient( klientNummer );
|
|
ErhaltungKlient *erhaltung = new ErhaltungKlient( klientNummer );
|
|
- erhaltung->verbinden( port, ipT, netwSchlüssel, netwSchlüsselLän );
|
|
|
|
|
|
+ erhaltung->verbinden( normPort, ipT, netwSchlüssel, netwSchlüsselLän );
|
|
|
|
|
|
if( pe )
|
|
if( pe )
|
|
{
|
|
{
|
|
@@ -194,7 +191,7 @@ int KSGStart Framework::Start( Startparam p )
|
|
erhaltung->trennen();
|
|
erhaltung->trennen();
|
|
erhaltung->warteAufThread( 5000 );
|
|
erhaltung->warteAufThread( 5000 );
|
|
erhaltung->release();
|
|
erhaltung->release();
|
|
- klient = new Klient();
|
|
|
|
|
|
+ Klient *klient = new Klient();
|
|
int l = 0;
|
|
int l = 0;
|
|
char *key;
|
|
char *key;
|
|
Keys::getServerKey( &key, l, Keys::MAIN, Keys::SENDEN );
|
|
Keys::getServerKey( &key, l, Keys::MAIN, Keys::SENDEN );
|
|
@@ -203,7 +200,7 @@ int KSGStart Framework::Start( Startparam p )
|
|
Keys::getServerKey( &key, l, Keys::MAIN, Keys::EMPFANGEN );
|
|
Keys::getServerKey( &key, l, Keys::MAIN, Keys::EMPFANGEN );
|
|
klient->setEmpfangKey( key, l );
|
|
klient->setEmpfangKey( key, l );
|
|
delete[] key;
|
|
delete[] key;
|
|
- if( !klient->verbinde( port, ipT->getText() ) )
|
|
|
|
|
|
+ if( !klient->verbinde( normPort, ipT->getText() ) )
|
|
{
|
|
{
|
|
WMessageBox( 0, new Text( "Fehler" ), new Text( "Die Verbindung zum Server ist abgebrochen." ), MB_ICONERROR );
|
|
WMessageBox( 0, new Text( "Fehler" ), new Text( "Die Verbindung zum Server ist abgebrochen." ), MB_ICONERROR );
|
|
ipT->release();
|
|
ipT->release();
|
|
@@ -291,14 +288,15 @@ int KSGStart Framework::Start( Startparam p )
|
|
erhaltung->warteAufThread( 5000 );
|
|
erhaltung->warteAufThread( 5000 );
|
|
erhaltung->release();
|
|
erhaltung->release();
|
|
|
|
|
|
- klient = new Klient();
|
|
|
|
|
|
+ Klient *klient = new Klient();
|
|
|
|
+ char *key;
|
|
Keys::getServerKey( &key, l, Keys::MAIN, Keys::SENDEN );
|
|
Keys::getServerKey( &key, l, Keys::MAIN, Keys::SENDEN );
|
|
klient->setSendeKey( key, l );
|
|
klient->setSendeKey( key, l );
|
|
delete[] key;
|
|
delete[] key;
|
|
Keys::getServerKey( &key, l, Keys::MAIN, Keys::EMPFANGEN );
|
|
Keys::getServerKey( &key, l, Keys::MAIN, Keys::EMPFANGEN );
|
|
klient->setEmpfangKey( key, l );
|
|
klient->setEmpfangKey( key, l );
|
|
delete[] key;
|
|
delete[] key;
|
|
- if( !klient->verbinde( port, ipT->getText() ) )
|
|
|
|
|
|
+ if( !klient->verbinde( normPort, ipT->getText() ) )
|
|
{
|
|
{
|
|
WMessageBox( 0, new Text( "Fehler" ), new Text( "Die Verbindung zum Server ist abgebrochen." ), MB_ICONERROR );
|
|
WMessageBox( 0, new Text( "Fehler" ), new Text( "Die Verbindung zum Server ist abgebrochen." ), MB_ICONERROR );
|
|
ipT->release();
|
|
ipT->release();
|