Lines Matching refs:attr

243 digest_hash_a1(const digest_attrs_t *attr, CONST_UCHAR *hash_pass,  in digest_hash_a1()  argument
251 MD5Update(&ctx, (CONST_UCHAR *) attr->nonce, attr->nlen); in digest_hash_a1()
253 MD5Update(&ctx, (CONST_UCHAR *) attr->cnonce, attr->clen); in digest_hash_a1()
266 digest_calc_resp(const digest_attrs_t *attr, in digest_calc_resp() argument
284 if (attr->urilen != 0) { in digest_calc_resp()
285 MD5Update(&ctx, (CONST_UCHAR *) attr->uri, attr->urilen); in digest_calc_resp()
287 if (attr->qlen != 4 || strncasecmp(attr->qop, "auth", 4) != 0) { in digest_calc_resp()
304 MD5Update(&ctx, (CONST_UCHAR *) attr->nonce, attr->nlen); in digest_calc_resp()
305 if (attr->ncount != NULL) { in digest_calc_resp()
307 MD5Update(&ctx, (CONST_UCHAR *) attr->ncount, attr->nclen); in digest_calc_resp()
312 MD5Update(&ctx, (CONST_UCHAR *) attr->cnonce, attr->clen); in digest_calc_resp()
314 MD5Update(&ctx, (CONST_UCHAR *) attr->qop, attr->qlen); in digest_calc_resp()
342 digest_attrs_t *attr, /* in/out attributes */ in digest_client_resp() argument
358 if (attr->nonce == NULL || attr->nlen == 0 || in digest_client_resp()
359 attr->realm == NULL || attr->rlen == 0 || in digest_client_resp()
360 attr->qop == NULL || attr->qlen == 0 || in digest_client_resp()
361 (attr->nclen != 0 && attr->nclen != 8)) { in digest_client_resp()
368 if (attr->ncount == NULL) { in digest_client_resp()
369 strcpy(attr->ncbuf, "00000001"); in digest_client_resp()
370 attr->ncount = attr->ncbuf; in digest_client_resp()
371 attr->nclen = 8; in digest_client_resp()
372 } else if (attr->ncount == attr->ncbuf) { in digest_client_resp()
374 scan = attr->ncbuf + 7; in digest_client_resp()
375 while (scan >= attr->ncbuf) { in digest_client_resp()
389 len = prefixsize + attr->ulen + attr->rlen + attr->nlen + attr->nclen; in digest_client_resp()
390 if (attr->charsetlen > 0) { in digest_client_resp()
392 len += sizeof (chstr) + attr->charsetlen; in digest_client_resp()
400 if (attr->charsetlen > 0 && attr->charset != NULL) { in digest_client_resp()
403 memcpy(scan, attr->charset, attr->charsetlen); in digest_client_resp()
404 scan += attr->charsetlen; in digest_client_resp()
409 sprintf(scan, prefix, attr->ulen, attr->user, in digest_client_resp()
410 attr->rlen, attr->realm, attr->nlen, attr->nonce, in digest_client_resp()
411 attr->nclen, attr->ncount); in digest_client_resp()
418 attr->cnonce = scan; in digest_client_resp()
419 attr->clen = len; in digest_client_resp()
428 hash_a1 = digest_hash_a1(attr, hash_pass, hashbuf); in digest_client_resp()
430 digest_calc_resp(attr, hash_a1, method, mlen, NULL, hexbuf); in digest_client_resp()
436 attr->resp = scan; in digest_client_resp()
437 attr->resplen = DIGEST_SIZE * 2; in digest_client_resp()
466 const char *scan, *attr, *val, *end; in digest_parse() local
476 attr = scan; in digest_parse()
478 alen = scan - attr; in digest_parse()
511 switch (*attr) { in digest_parse()
514 if (lstreqcase(cstr, attr, alen)) { in digest_parse()
518 if (lstreqcase(charsetstr, attr, alen)) { in digest_parse()
525 if (lstreqcase(dstr, attr, alen)) { in digest_parse()
529 if (lstreqcase(uristr, attr, alen)) { in digest_parse()
536 if (lstreqcase(mstr, attr, alen)) { in digest_parse()
543 if (lstreqcase(nstr, attr, alen)) { in digest_parse()
547 if (lstreqcase(ncstr, attr, alen)) { in digest_parse()
554 if (lstreqcase(qstr, attr, alen)) { in digest_parse()
561 if (lstreqcase(rstr, attr, alen)) { in digest_parse()
565 if (lstreqcase(respstr, attr, alen)) { in digest_parse()
572 if (lstreqcase(sstr, attr, alen)) { in digest_parse()
579 if (lstreqcase(ustr, attr, alen)) { in digest_parse()