Checksum for GLES messages from host to guest

Add checksum for GLES messages from host to guest. This patch contains
generated code (gl_enc.cpp, gl2_enc.cpp, renderControl_enc.cpp) and
shared code with the host (ChecksumCalculator.cpp,
ChecksumCalculator.h).

Change-Id: I577a34cae5208d3f11a165f861a69fa0971cf864
diff --git a/shared/OpenglCodecCommon/ChecksumCalculator.cpp b/shared/OpenglCodecCommon/ChecksumCalculator.cpp
index 6dc0316..60940b8 100644
--- a/shared/OpenglCodecCommon/ChecksumCalculator.cpp
+++ b/shared/OpenglCodecCommon/ChecksumCalculator.cpp
@@ -100,14 +100,13 @@
     char *checksumPtr = (char *)outputChecksum;
     switch (m_version) {
         case 1: { // protocol v1 is to reverse the packetLen and write it at the end
-            uint32_t val = computeV1Checksum(NULL, m_v1BufferTotalLength);
+            uint32_t val = computeV1Checksum();
             memcpy(checksumPtr, &val, sizeof(val));
             memcpy(checksumPtr+sizeof(val), &m_numWrite, sizeof(m_numWrite));
             break;
         }
     }
     resetChecksum();
-    m_isEncodingChecksum = false;
     m_numWrite++;
     return true;
 }
@@ -121,14 +120,18 @@
     m_isEncodingChecksum = false;
 }
 
-bool ChecksumCalculator::validate(const void* buf, size_t bufLen, const void* expectedChecksum) {
+bool ChecksumCalculator::validate(const void* expectedChecksum, size_t expectedChecksumLen) {
+    size_t checksumSize = checksumByteSize();
+    if (expectedChecksumLen != checksumSize) {
+        m_numRead++;
+        resetChecksum();
+        return false;
+    }
     // buffers for computing the checksum
     unsigned char sChecksumBuffer[kMaxChecksumSize];
-
-    size_t checksumSize = checksumByteSize();
     switch (m_version) {
         case 1: {
-            uint32_t val = computeV1Checksum(buf, bufLen);
+            uint32_t val = computeV1Checksum();
             memcpy(sChecksumBuffer, &val, sizeof(val));
             memcpy(sChecksumBuffer+sizeof(val), &m_numRead, sizeof(m_numRead));
             break;
@@ -136,11 +139,12 @@
     }
     bool isValid = !memcmp(sChecksumBuffer, expectedChecksum, checksumSize);
     m_numRead++;
+    resetChecksum();
     return isValid;
 }
 
-uint32_t ChecksumCalculator::computeV1Checksum(const void* buf, size_t bufLen) {
-    uint32_t revLen = bufLen;
+uint32_t ChecksumCalculator::computeV1Checksum() {
+    uint32_t revLen = m_v1BufferTotalLength;
     revLen = (revLen & 0xffff0000) >> 16 | (revLen & 0x0000ffff) << 16;
     revLen = (revLen & 0xff00ff00) >> 8 | (revLen & 0x00ff00ff) << 8;
     revLen = (revLen & 0xf0f0f0f0) >> 4 | (revLen & 0x0f0f0f0f) << 4;