MD5Len
MD5Update(&Context, (MD5Buf)S, (MD5Len)strlen(S));
MD5Update(&Context, (MD5Buf)R, (MD5Len)LEN_AUTH);
MD5Update(&Context, (MD5Buf)S, (MD5Len)strlen(S));
MD5Update(&Context, (MD5Buf)C, (MD5Len)16);
MD5Update(&Context, (MD5Buf)S, (MD5Len)Slen);
MD5Update(&Context, (MD5Buf)R, (MD5Len)LEN_AUTH);
MD5Update(&Context, (MD5Buf)A, (MD5Len)SALT_LEN);
MD5Update(&Context, (MD5Buf)S, (MD5Len)Slen);
MD5Update(&Context, (MD5Buf)C, (MD5Len)16);
(MD5Len)strlen(srvp->secret));
MD5Update(&ctx, md5, (MD5Len)16);
(MD5Len)(POS_AUTH - POS_CODE));
(MD5Len)LEN_AUTH);
(MD5Len)(h->req_len - POS_ATTRS));
(MD5Len)strlen(srvp->secret));
(MD5Len)(POS_AUTH - POS_CODE));
(MD5Len)LEN_AUTH);
(MD5Len)(len - POS_ATTRS));
(MD5Len)strlen(srvp->secret));