     for(int i = 0; i < keyLen; i++)
         fullMessage[i + dataLen] = theKey[i];
 
-    // Print the whole, unhashsed message
-    for(int i = 0; i < (keyLen + dataLen); i++)
-    {
-        if (fullMessage[i] < 0x10)
-            Serial.print('0');
-        Serial.print(fullMessage[i], HEX);
-        Serial.print(' ');
-    }
-    Serial.println();
+    lenVar = keyLen + dataLen;
 }
 
 

#include <MD5.h>

char *correct_key = "sharedkey";

void setup()
{
    Serial.begin(115200);
}

void loop()
{
    if (Serial.available() >= 3)
    {
        // Get user message
        uint32_t id = (uint32_t)Serial.parseInt();

        for(int i = 0; i < dlc; i++)
            msg[i] = (uint8_t)Serial.parseInt();
        char *key = (char *)(Serial.readString().c_str());
        uint8_t msgLen, keyLen, fullMsgLen;
        uint8_t *fullMessage = GetFullMessage(correct_key, keyLen, msg, msgLen, fullMsgLen);
        Serial.flush();

        CAN.sendMsgBuf(id, 0, dlc, msg);
    }
}


uint8_t *GetFullMessage(char *key, uint8_t &keyLen, uint8_t *data, uint8_t &dataLen, uint8_t &lenVar)
{
    // Convert to uint8_t
    uint8_t *theKey = CStringToUInt8(key, keyLen);
