Salut,
Je viens vous voir car je suis actuellement coincé sur une fonction que je n'arrive pas a traduire, c'est le cipherRSA (com/ankamagames/dofus/logic/connection/managers/AuthentificationManager).
C'est la seul fonction qu'il me manque pour pouvoir finir mon packet d'id 4 (IdentificationMessage).
Voilà les codes que les décompilateurs me sortes
Si quelqu'un pourrais m'aider ou m'orienter pour que je puisse finir de traduire cette méthode ça serai sympa.
Merci
Je viens vous voir car je suis actuellement coincé sur une fonction que je n'arrive pas a traduire, c'est le cipherRSA (com/ankamagames/dofus/logic/connection/managers/AuthentificationManager).
C'est la seul fonction qu'il me manque pour pouvoir finir mon packet d'id 4 (IdentificationMessage).
Voilà les codes que les décompilateurs me sortes
Code:
private function cipherRsa(login:String, pwd:String, certificate:TrustCertificate) : Vector.<int>
{
if(_loc6_)
{
if(!_loc6_)
{
break loop2;
}
continue loop13;
}
continue loop14;
}
Code:
private function cipherRsa(login:String, pwd:String, certificate:TrustCertificate):Vector.<int>{
var baOut:ByteArray;
var debugOutput:ByteArray;
goto _label_1;
while ((var baIn:ByteArray = new ByteArray()), true) {
baIn.writeUTFBytes(this._salt);
goto _label_2;
//unresolved jump
var _local_0 = this;
};
var _local_7 = _local_7;
_label_1:
var n:int;
//unresolved jump
var _local_4 = _local_4;
_label_2:
baIn.writeBytes(this._AESKey);
if (certificate){
baIn.writeUnsignedInt(certificate.id);
baIn.writeUTFBytes(certificate.hash);
goto _label_4;
_label_3:
baIn.writeUTFBytes(login);
goto _label_5;
};
_label_4:
baIn.writeByte(login.length);
goto _label_3;
_local_0 = this;
_label_5:
baIn.writeUTFBytes(pwd);
try {
if (((File.applicationDirectory.resolvePath("debug-login.txt")) || (File.applicationDirectory.resolvePath("debuglogin.txt")))){
_log.debug("login with certificate");
debugOutput = new ByteArray();
baIn.position = 0;
while ((debugOutput.position = 0), true) {
debugOutput = RSA.publicEncrypt((new PUBLIC_KEY_V2() as ByteArray).readUTFBytes((new PUBLIC_KEY_V2() as ByteArray).length), baIn);
_log.debug(((("Login info (RSA Encrypted, " + debugOutput.length) + " bytes) : ") + Base64.encodeByteArray(debugOutput)));
//unresolved jump
};
var _local_5 = _local_5;
};
} catch(e:Error) {
_log.error(("Erreur lors du log des informations de login " + e.getStackTrace()));
};
baOut = RSA.publicEncrypt(_local_0._publicKey, baIn);
while ((var ret:Vector.<int> = new Vector.<int>()), true) {
baOut.position = 0;
goto _label_6;
};
_label_6:
var i:int;
_loop_1:
while (baOut.bytesAvailable != 0) {
while ((n = baOut.readByte()), true) {
ret[i] = n;
i = (i + 1);
continue _loop_1;
};
};
return (ret);
}
Si quelqu'un pourrais m'aider ou m'orienter pour que je puisse finir de traduire cette méthode ça serai sympa.
Merci