+ // Check HMAC.
+ uint16_t netlen = htons(len - 21);
+
+ char buffer[len + 23];
+
+ memcpy(buffer, &netlen, 2);
+ memcpy(buffer + 2, data, len);
+
+ if(!digest_verify(&s->indigest, buffer, len - 14, buffer + len - 14))
+ return error(s, EIO, "Invalid HMAC");
+