HelloConnectMessage et identificationMessage

A

Anonymous

Invité
#1
bonjour, en avacant petit a petit dans mon bot, je fait face a un difficultée. je n'arrive pas a comprendre les classe HelloConnectMessage et identification message, je peux bien parser le contenu de HelloConnectMesssage, mais je ne sais pas a quoi sert les differentes variable et comment les utiliser pour génerer IdentificationMessage.

j'ai cherché pas mal dans les sources(AuthentificationManager.as) mais le décompilateur fourni du code illisible.
 

BlueDream

Administrateur
Membre du personnel
Inscrit
8 Decembre 2012
Messages
2 010
Reactions
149
#2
Bonsoir,

Dans le HelloConnectMessage;
Le 'salt' est un string généré aléatoirement par le serveur
Le liste 'key' est une clé publique

ces deux informations te permettent de crypter en RSA tes identifiants.
Tu retournes le résultat via le IdentificationMessage, variable credentials.

Si tu cherches un peu tu trouveras une classe RSA qui fonctionne.
 
Inscrit
27 Juin 2012
Messages
238
Reactions
0
#3
La logique est partout sur plein de topic (dont certains sont les miens :twisted: ), et aussi dans le AuthenticationFrame :

Code:
case (msg is HelloConnectMessage):
hcmsg = HelloConnectMessage(msg);
AuthentificationManager.getInstance().setPublicKey(hcmsg.key);
AuthentificationManager.getInstance().setSalt(hcmsg.salt);
iMsg = AuthentificationManager.getInstance().getIdentificationMessage();
_log.info(((((((((("Current version : " + iMsg.version.major) + ".") + iMsg.version.minor) + ".") + iMsg.version.release) + ".") + iMsg.version.revision) + ".") + iMsg.version.patch));
ConnectionsHandler.getConnection().send(iMsg);
KernelEventsManager.getInstance().processCallback(HookList.ConnectionTimerStart);
TimeManager.getInstance().reset();
return (true);
Si tu as du code illisible, va voir Emudo fus/do fus c'est les sources en 2.26 tu y trouveras les sources lisible.
 
Haut Bas