POS_AUTH
(void)memcpy(buf, h->request + POS_AUTH, (size_t)LEN_AUTH);
(void)memcpy(md5, &h->request[POS_AUTH], (size_t)LEN_AUTH);
(MD5Len)(POS_AUTH - POS_CODE));
MD5Update(&ctx, memset(&h->request[POS_AUTH], 0, (size_t)LEN_AUTH),
MD5Final(&h->request[POS_AUTH], &ctx);
HMAC_Update(ctx, &h->request[POS_CODE], (size_t)(POS_AUTH - POS_CODE));
HMAC_Update(ctx, &h->request[POS_AUTH], (size_t)LEN_AUTH);
(MD5Len)(POS_AUTH - POS_CODE));
MD5Update(&ctx, &h->request[POS_AUTH],
if (memcmp(&h->response[POS_AUTH], md5, sizeof md5) != 0)
(size_t)(POS_AUTH - POS_CODE));
HMAC_Update(hctx, &h->request[POS_AUTH],
h->request[POS_AUTH+i] = (u_char)r;
h->request[POS_AUTH+i+1] = (u_char)(r >> 8);