return (char)packetId;
}
+
+
void makeHeader(unsigned int queryType) {
int n;
memcpy(&gs105e_queryData[24], "\x4e\x53\x44\x50", 4); //Magic!! :-O
if (settings.password != NULL && queryType == QR_EXEC) {
-
- addActData(GS_PASSWORD, strlen(settings.password), settings.password);
+ char tmpPassword[strlen(settings.password)];
+ for (n = 0; n < strlen(settings.password); n++)
+ tmpPassword[n] = passwordSecret[n % 19] ^ settings.password[n];
+ addActData(GS_PASSWORD, strlen(settings.password), tmpPassword);
}
}
int gs105e_setPassword(char * data) {
- makeHeader(QR_EXEC);
-
+ int n;
+ makeHeader(QR_EXEC);
- addActData(GS_NEWPASSWORD, strlen(data), data);
+ char tmpPasswd[strlen(data)];
+ for (n = 0; n < strlen(data); n++)
+ tmpPasswd[n] = data[n] ^ passwordSecret[n % 19];
+ addActData(GS_NEWPASSWORD, strlen(data), tmpPasswd);
return gs105e_act();
}