rem: DBG("calc_nonce(): _expires=%d, _secret=%.*s -> " "nonce=[%s]\n", _expires, _secret->len, _secret->s, _nonce);
context: inline void calc_nonce(char* _nonce, int _expires, str* _secret){	MD5_CTX ctx;	char bin[16];	MD5Init(&ctx);		integer2hex(_nonce, _expires);	MD5Update(&ctx, _nonce, 8);	MD5Update(&ctx, _secret->s, _secret->len);	MD5Final(bin, &ctx);	string2hex(bin, 16, _nonce + 8);	_nonce[8 + 32] = '\0';	DBG("calc_nonce(): _expires=%d, _secret=%.*s -> "	    "nonce=[%s]\n",	    _expires, _secret->len, _secret->s, _nonce);}