Hey !

Bon alors, le galérien/noob que je suis à enfin finit la desérialisation du HelloConnectMessage (3) ! (Applaudissez moi svp).

Comme je ne suis qu'un bohémien, je voudrait d'abord, vous soumettre l'objet deser. pour que vous puissiez le valider ou non.

Et dans un second temps, savoir si ça vous intéresse que je partage mes readers/writter (très basiques) en Javascript.

Mon output (J'enregistre tout les messages parsés dans un .json)

"HelloConnectMessage": {
            "salt": "iw9nqxctSSpD7~K_&Co[yWenfr=-hud?",
            "key": [
                177,
                2,
                33,
                39,
                55,
                101,
                214,
                43,
                160,
                82,
                55,
                218,
                81,
                108,
                50,
                54,
                72,
                90,
                8,
                121,
                79,
                192,
                94,
                237,
                133,
                102,
                87,
                106,
                152,
                154,
                106,
                147,
                180,
                13,
                213,
                197,
                82,
                8,
                86,
                243,
                255,
                92,
                218,
                234,
                73,
                162,
                180,
                165,
                255,
                183,
                178,
                24,
                170,
                182,
                181,
                147,
                57,
                161,
                62,
                191,
                69,
                50,
                125,
                53,
                158,
                181,
                0,
                59,
                137,
                252,
                194,
                174,
                252,
                223,
                174,
                157,
                125,
                82,
                121,
                70,
                63,
                209,
                48,
                187,
                166,
                230,
                61,
                184,
                152,
                19,
                190,
                190,
                5,
                22,
                21,
                28,
                191,
                49,
                68,
                132,
                63,
                109,
                241,
                11,
                189,
                134,
                23,
                74,
                74,
                235,
                125,
                183,
                19,
                5,
                130,
                115,
                96,
                234,
                246,
                147,
                175,
                207,
                221,
                72,
                207,
                238,
                144,
                128,
                39,
                244,
                245,
                80,
                118,
                34,
                165,
                39,
                42,
                32,
                29,
                115,
                119,
                79,
                131,
                90,
                69,
                141,
                234,
                32,
                3,
                205,
                138,
                157,
                193,
                253,
                0,
                103,
                76,
                74,
                89,
                73,
                190,
                113,
                156,
                21,
                3,
                248,
                142,
                126,
                206,
                202,
                155,
                102,
                83,
                77,
                27,
                86,
                117,
                202,
                33,
                33,
                204,
                132,
                52,
                24,
                201,
                93,
                24,
                32,
                167,
                236,
                64,
                67,
                123,
                101,
                101,
                50,
                180,
                143,
                91,
                245,
                75,
                56,
                7,
                14,
                95,
                152,
                173,
                53,
                200,
                218,
                46,
                129,
                234,
                47,
                130,
                172,
                86,
                98,
                209,
                120,
                195,
                45,
                230,
                82,
                206,
                148,
                84,
                114,
                130,
                138,
                172,
                114,
                181,
                199,
                68,
                63,
                245,
                236,
                194,
                156,
                138,
                213,
                204,
                127,
                142,
                84,
                50,
                100,
                125,
                7,
                131,
                156,
                143,
                194,
                11,
                160,
                28,
                177,
                42,
                250,
                20,
                39,
                235,
                159,
                101,
                178,
                76,
                61,
                24,
                82,
                199,
                76,
                94,
                79,
                220,
                157,
                191,
                95,
                155,
                110,
                141,
                5,
                31,
                37,
                139,
                52,
                0,
                165,
                164,
                130,
                59,
                176,
                180,
                76,
                74,
                161,
                239,
                89,
                4,
                131,
                112,
                101,
                191,
                111
            ]
        }

Pour moi, ça me parait bon, j'ai un salt de 32 bytes et 304 keys ! :)

Sinon j'ai dus faire un petit système de readers/writters en Js, en utilisant l'API buffer de Node, ça intéresserais quelqu'un que je les partage ?

Merci de vos réponses ! :p

Salut, je me suis moi aussi intéressé à la 2.0 en JavaScript (nodeJS).

Je me suis basé sur: https://github.com/Snapizz/d2protocol

Cette librairie est vraiment bien, sauf la méthode "writeBytes" (voir github issue). C'est là que je bloque.

Du coup tes reader/writer m'intéressent. Voici mes quelques tests:

Main

Cliquez pour révéler Cliquez pour masquer

var Protocol = require('d2protocol');
var ByteArray = require('bytearray2');
var net = require('net');
var RSA = require('./RSA');

var client = new net.Socket();

client.connect(5555, '213.248.126.39', function() {
    console.log('Connected');
});

client.on('data', function(data) {

    var wrapper = new Protocol.CustomDataWrapper(data);
    var msg = Protocol.MessageReceiver.parse(wrapper);

    console.log('Received:');
    console.log('\tmsgID=' + msg.getMessageId());
    console.log('\tContent: ' + JSON.stringify(msg));

    switch (msg.getMessageId()) {
        case 1:
            break;
        case 3:
            var encryptedKey = new Buffer(msg.key);
            var decyptedKey = RSA.decryptDofusSignature(encryptedKey);
            var stringDecryptedKey = decyptedKey.toString('base64');

            // Translate key into PEM format
            var tmp = '-----BEGIN PUBLIC KEY-----\n';
            for(var i=0; i<stringDecryptedKey.length; ++i) {
                tmp += stringDecryptedKey;
                if( (i+1)%76==0 )
                    tmp += '\n';
            }
            tmp += '\n-----END PUBLIC KEY-----';
            stringDecryptedKey = tmp;

            break;
        default:
            console.log("Unknown packet");
            break;
    }
});

client.on('close', function() {
    console.log('Connection closed');
});

RSA

Cliquez pour révéler Cliquez pour masquer

var NodeRSA = require('node-rsa');

var RSA = (function () {

    /* Private */
    var my = {};
    var dofusPublicKey =
        '-----BEGIN PUBLIC KEY-----\n\
        MIIBUzANBgkqhkiG9w0BAQEFAAOCAUAAMIIBOwKCATIAgucoka9J2PXcNdjcu6CuDmgteIMB+rih\n\
        2UZJIuSoNT/0J/lEKL/W4UYbDA4U/6TDS0dkMhOpDsSCIDpO1gPG6+6JfhADRfIJItyHZflyXNUj\n\
        WOBG4zuxc/L6wldgX24jKo+iCvlDTNUedE553lrfSU23Hwwzt3+doEfgkgAf0l4ZBez5Z/ldp9it\n\
        2NH6/2/7spHm0Hsvt/YPrJ+EK8ly5fdLk9cvB4QIQel9SQ3JE8UQrxOAx2wrivc6P0gXp5Q6bHQo\n\
        ad1aUp81Ox77l5e8KBJXHzYhdeXaM91wnHTZNhuWmFS3snUHRCBpjDBCkZZ+CxPnKMtm2qJIi57R\n\
        slALQVTykEZoAETKWpLBlSm92X/eXY2DdGf+a7vju9EigYbX0aXxQy2Ln2ZBWmUJyZE8B58CAwEA\n\
        AQ==\n\
        -----END PUBLIC KEY-----';

    /* Public */
    my.decryptDofusSignature = function(encryptedKey) {
        var key = new NodeRSA();
        key.importKey(dofusPublicKey, 'pkcs8-public-pem');
        return key.decryptPublic(encryptedKey);
    };

    my.encryptCredentials = function(providedKey, credentials) {
        var key = new NodeRSA();
        key.importKey(providedKey, 'pkcs8-public-pem');
        return key.encrypt(credentials);
    };

    return my;
}());

Hey salut !

J'ai aussi vus ce module, mais je tiens à le faire moi même ^^

Merci quand même du partage ça en aideras peut être d'autres !

Sinon je vais créer un poste pour mes readers/writers ;)

En regardant les sources, c'est crade, il utilise plein de méthodes deprecated :|

Tu peux les partager, ça servira toujours, sinon tes données reçues ont l'air correctes.

Ok merci !

J'ai plus qu'a finir les méthodes spécifique à Anka et je partage

9 mois plus tard
18 jours plus tard

Comme ton socket, mais vu l'activite ici ..