Data Exchange Issue
by Robert Fritzen · in Technical Issues · 08/14/2011 (9:37 am) · 1 replies
Hello, I'm having a quite annoying problem with one of my functions for my little RPG project.
I'm encrypting values such as EXP, level, ect. using AES to transfer to my server for storage, but when I try to output the string to be sent, it is being corrupted somehow.
C++
and then the code that reads it in TS:
Output: (TEST DEBUG is C++, TS is TorqueScript)
As you can see here, the C++ stored string is indeed correct, but for some unknown reason it is being corrupted in the TS part. Any ideas?
I'm encrypting values such as EXP, level, ect. using AES to transfer to my server for storage, but when I try to output the string to be sent, it is being corrupted somehow.
C++
ConsoleFunction(containerAccess, const char *, 4, 4, "[package/load] [#] [ect], access store cont.") {
argc;
.
.
.
if(command.compare("package") == 0) {
out = nsrpgcont->packageContainer(portion);
Con::printf("TEST DEBUG: %i = %s", portion, out.c_str());
}
.
.
.
return out.c_str();
}and then the code that reads it in TS:
for(%i = 0; %i < 8; %i++) {
%data[%i] = containerAccess("package", %i, "");
echo("TS: "@%i@": "@%data[%i]@"");
}
%dispo = %dispo @ makeDisposition( %seperator, data0, %data[0]);
%dispo = %dispo @ makeDisposition( %seperator, data1, %data[1]);
%dispo = %dispo @ makeDisposition( %seperator, data2, %data[2]);
%dispo = %dispo @ makeDisposition( %seperator, data3, %data[3]);
%dispo = %dispo @ makeDisposition( %seperator, data4, %data[4]);
%dispo = %dispo @ makeDisposition( %seperator, data5, %data[5]);
%dispo = %dispo @ makeDisposition( %seperator, data6, %data[6]);
%dispo = %dispo @ makeDisposition( %seperator, data7, %data[7], 1);Output: (TEST DEBUG is C++, TS is TorqueScript)
TEST DEBUG: 0 = 56301ce7adc55f24b079eca80986d446b74f4ed06389a8567190d24c66d1212648793ec1c7f24b177dcfe04d37a4a623:cbd7ae8aba753f3f65f398e42d6df90b70590fbe19c4b22ae2249cb78cd821d23a3f94f147efb7bea0cf71112cafdf5e:5469ec5d3f4c667046ea7ddabdc260436d4719eca5949f8f2c3cecc316b99daf2c5cf4704b06cfd7e910c4a64f7504e7 TS: 0: Ã301ce7adc55f24b079eca80986d446b74f4ed06389a8567190d24c66d1212648793ec1c7f24b177dcfe04d37a4a623:cbd7ae8aba753f3f65f398e42d6df90b70590fbe19c4b22ae2249cb78cd821d23a3f94f147efb7bea0cf71112cafdf5e:5469ec5d3f4c667046ea7ddabdc260436d4719eca5949f8f2c3cecc316b99daf2c5cf4704b06cfd7e910c4a64f7504e7 TEST DEBUG: 1 = 3c435305cc91312d09218dde4817417575a5175c46328d83530986a924c78d8ed1ad9137e2ed168a747659389cb5ddc1:69e06f706de6d957c3ff103d2b812e8ed2bf81da5644930a59eefcd3b348dd730e31b62569e843088ef6f974ac9e837d:f49f696598b376baac3ff26edb090f879689cbed62c4335dbabe6b4e59c1143029436c2ff3925b2162aabff8cb4eccb9 TS: 1: ç435305cc91312d09218dde4817417575a5175c46328d83530986a924c78d8ed1ad9137e2ed168a747659389cb5ddc1:69e06f706de6d957c3ff103d2b812e8ed2bf81da5644930a59eefcd3b348dd730e31b62569e843088ef6f974ac9e837d:f49f696598b376baac3ff26edb090f879689cbed62c4335dbabe6b4e59c1143029436c2ff3925b2162aabff8cb4eccb9 TEST DEBUG: 2 = 09262b2551855ddb4c4bbf03c1b56cfbf56520b8ab58903a318f21ac8272bd79ea0f7182caa275e0c63912e8bd8fc4b9:85fdd2ee835460209e55b7826dcc547f036cd088af445ef0d49e1b4c9a671eb78db0b64e173a3cf9cb4df320e06f43b9:91393057cfa59e38899d638febf94ed63d48968530f594e772a5ff0b878814ea15d65d277d172d10c9c94b2058451a60 TS: 2: 262b2551855ddb4c4bbf03c1b56cfbf56520b8ab58903a318f21ac8272bd79ea0f7182caa275e0c63912e8bd8fc4b9:85fdd2ee835460209e55b7826dcc547f036cd088af445ef0d49e1b4c9a671eb78db0b64e173a3cf9cb4df320e06f43b9:91393057cfa59e38899d638febf94ed63d48968530f594e772a5ff0b878814ea15d65d277d172d10c9c94b2058451a60 TEST DEBUG: 3 = b324342f83daa81916ed2f9ecd0cad961154f3df88cd3320409aa9a7206f12ea278f629eb22e1cf97883efb42a2de8bc:338c78aaf8133ca02a7c7fd811985efa9476efec022780fe5e94df6410a7f0e9eeddb3a6cc671d7f37df87f897cc1fc6:22135246323729373b6856f1b4c6f96475df023c35ab5d68fa1ad164571b578b08f187da2afbb280595da6c90cff2d5d TS: 3: 524342f83daa81916ed2f9ecd0cad961154f3df88cd3320409aa9a7206f12ea278f629eb22e1cf97883efb42a2de8bc:338c78aaf8133ca02a7c7fd811985efa9476efec022780fe5e94df6410a7f0e9eeddb3a6cc671d7f37df87f897cc1fc6:22135246323729373b6856f1b4c6f96475df023c35ab5d68fa1ad164571b578b08f187da2afbb280595da6c90cff2d5d TEST DEBUG: 4 = f94092920a0bd218ba9567465d3fbdbbf10f50589e7c564b49e1371c4b07693500711dbca373703b2f6de98fefec1456:0e8428ba4e4e36df236ed142d6f537beb75170b80c9b0d09db14cfe1bbe6152c035765b74288fae56b1409f16913114b:c5ae2f615a4a2dd71d4d46f3ebe6cb9a66f25b23b71646c6b0f3975c136d99fae4da640529dbe36ff26e224eb3afb378 TS: 4: \4092920a0bd218ba9567465d3fbdbbf10f50589e7c564b49e1371c4b07693500711dbca373703b2f6de98fefec1456:0e8428ba4e4e36df236ed142d6f537beb75170b80c9b0d09db14cfe1bbe6152c035765b74288fae56b1409f16913114b:c5ae2f615a4a2dd71d4d46f3ebe6cb9a66f25b23b71646c6b0f3975c136d99fae4da640529dbe36ff26e224eb3afb378 TEST DEBUG: 5 = 64b4c91655830102f56a14d7a2ac17da7b6ad3f02774d896cfc08eba61042de524f0b16cd73eb21f0276d1de793d8eb4:a86040fd914af618db82f525f98db6a812f9a71fa4cc2644af444812702bbaae1be7436b9f0602417b554743b9fa9fb7:78c383591cf228ba5210490fb061041fe33e1d62b45277b2525e3400f5c149b6880de61a235dc10df3dcdcd8511c47bf TS: 5: Æb4c91655830102f56a14d7a2ac17da7b6ad3f02774d896cfc08eba61042de524f0b16cd73eb21f0276d1de793d8eb4:a86040fd914af618db82f525f98db6a812f9a71fa4cc2644af444812702bbaae1be7436b9f0602417b554743b9fa9fb7:78c383591cf228ba5210490fb061041fe33e1d62b45277b2525e3400f5c149b6880de61a235dc10df3dcdcd8511c47bf TEST DEBUG: 6 = 852b09c0d4860e0c2b86828b8565b71a994fa907389a7161384c27024594324f85eda7c970ffbb6f42c6a1bd754c1ee4:f5eb433bf447a5b318e7fa3a2717059418ea251e2269fe342d7b910b2222742e9d5782536ba2304346d10ff142c973e8:4be89c7babaef0f373f6dfd2b26b377361c4e9beee8e02967eb08a96823e7489ef37f4c80de1312078e96144472cc842 TS: 6: ª2b09c0d4860e0c2b86828b8565b71a994fa907389a7161384c27024594324f85eda7c970ffbb6f42c6a1bd754c1ee4:f5eb433bf447a5b318e7fa3a2717059418ea251e2269fe342d7b910b2222742e9d5782536ba2304346d10ff142c973e8:4be89c7babaef0f373f6dfd2b26b377361c4e9beee8e02967eb08a96823e7489ef37f4c80de1312078e96144472cc842 TEST DEBUG: 7 = e339f6cb6b3fa733868cf76d5138ea86415cfd2c9c3be86a64f87c2272396541617b6315e369ccfbab9edc69de8d528d:0e9d2e8686321a7d15d56a33f7eaf5a409867d8601ae64d48839ee3efed418ea0855e66223015e209ed1a1405ca4fa07 TS: 7: à î
As you can see here, the C++ stored string is indeed correct, but for some unknown reason it is being corrupted in the TS part. Any ideas?
About the author
Illinois Grad. Retired T3D Developer / Pack Dev.
Torque Owner Robert Fritzen
Phantom Games Development
I just set some G.var equal to the final result and it worked.... Odd.