Beispiel #1
0
 public static function GenerateSecretKeyMessageEvent(User $user, PacketParser $packet, ClassContainer $util)
 {
     if ($util->Config->Get("crypto.enabled")) {
         $rsadata = $packet->readString();
         $user->DH->GenerateSharedKey(String::Replace($util->RSA->Verify($rsadata), chr(0), ""));
         $response = new PacketConstructor();
         $response->SetHeader($util->HeaderManager->Outgoing("SecretKeyMessageComposer"));
         $response->WriteString($util->RSA->Sign($user->DH->GetPublicKey()));
         $response->WriteBoolean(true);
         $user->Send($response->Finalize());
         $user->rc4client = new RC4();
         $user->rc4server = new RC4();
         $user->rc4client->Init($user->DH->GetSharedKey(true));
         $user->rc4server->Init($user->DH->GetSharedKey(true));
         $user->rc4initialized = true;
     } else {
         $response = new PacketConstructor();
         $response->SetHeader($util->HeaderManager->Outgoing("SecretKeyMessageComposer"));
         $response->WriteString("Crypto disabled");
         $response->WriteBoolean(false);
         $user->Send($response->Finalize());
     }
 }