How do I decrypt messages on my Repetier firmware?
I need to send a complex password to my machine. The machine needs to decrypt it and run it. I have not found enough resources for such an operation.
More detailed description:
I am developing a new feature for my 3D printer which runs on Repetier. (It may be on a different firmware that I can do this job). I want to change my 3D printer so it can understand special encrypted G-codes alongside normal g-codes. Lets describe it with an example:
Normally, 3D printers can read and apply standard g-code files like:
G28
G0 X10 Y20 E30
.
.
.
etc.
But I am developing a g-code encryption method which encrypts any g-code and turns it into a text like:
M999 !4#^
M999 ^s+.&&/..* ….
.
.
etc.
I want to change the firmware for my printer so it understands if the related g-code is encrypted by checking every line if it stars with M999 (or starts with some other pattern character which I will decide later).
To do is, I need to understand how Repetier works, especially how command debug works and how I can parse my encrypted code from my encrypted g-code file.
I could not understand how repetier.h / command.cpp works and how it parses the line and redirects to functional cases.
Comments
Please also consider
a) It is useless since you need to publish your sources according to license.
b) Hosts will not send it correctly.
c) The tiny processor is not able to handle real encryption so it is more obfuscation you do here and not encryption
not sure what you want to say here, but is definitely not clear what you try. Host would send to firmware. So you need a new connector in host that does the encryption and a firmware port with new protocol for encryption where you enable it for example with a code.
The repetier protocol sends data in binary format, but firmware also accepts data send as ascii if you like that more. See GCode.cpp on how it gets parsed. It is just a bitfield indicating which values (Letters) are included and then they follow in binary format and at the end 2 byte checksum (fletchers checksum).
Thats all I can tell to this.