* 仕様書

[REFS[
- [3] '''[CITE@en[RFC 7616 - HTTP Digest Access Authentication]] ([TIME[2015-11-10 07:05:08 +09:00]] 版) <https://tools.ietf.org/html/rfc7616#section-3.4>'''
- [14] [CITE@en[RFC 7616 - HTTP Digest Access Authentication]] ([TIME[2015-11-10 07:05:08 +09:00]] 版) <https://tools.ietf.org/html/rfc7616#section-3.5>
- [18] [CITE@en[RFC 7616 - HTTP Digest Access Authentication]] ([TIME[2015-11-10 07:05:08 +09:00]] 版) <https://tools.ietf.org/html/rfc7616#section-3.8>
]REFS]

* 意味

[6] 「nonce count」の意味です [SRC[>>3]]。

[4] [[credentials]] では、すべての実装が使わなければなりません [SRC[>>3]]。

;; [5] 「使う」とは具体的に何なのかは謎です。

[9] これは [[replay attack]] を検出するものです [SRC[>>3]]。

[15] [CODE(HTTP)@en[[[Authentication-Info:]]]] [[ヘッダー]]や [CODE(HTTP)@en[[[Proxy-Authentication-Info:]]]] [[ヘッダー]] [SRC[>>18]] では、
[[クライアント]]が[[要求]]で指定した値です [SRC[>>14]]。

* 構文

[7] [[credentials]] では、
値は、本[[要求]]の [CODE[[[nonce]]]] 値を使って[[クライアント]]が送信した[[要求]]
(本[[要求]]を含みます。) の数を[[十六進数]]で表したものです。 [SRC[>>3]]

[11] [[引用文字列]]でなく[[字句]]を[[生成]]しなければ[['''なりません''']] [SRC[>>3, >>14]]。

[EG[
[8] 最初の[[要求]]では [CODE[nc=00000001]] を送信できます [SRC[>>3]]。
]EG]

[16] [CODE(HTTP)@en[[[Authentication-Info:]]]]
[[ヘッダー]] [SRC[>>14]]
や [CODE(HTTP)@en[[[Proxy-Authentication-Info:]]]] [[ヘッダー]] [SRC[>>18]] 
では、
[[十六進数]]8文字でなければ[['''なりません''']]。

;; [17] [[credentials]] における桁数はなぜか規定されていませんが、
[[サーバー]]が >>16 の要件を満たすためには、[[クライアント]]も >>16
の要件に従う値にしておく必要があります。

;; [19] [[RFC 2617]] 時代には8桁の [CODE[LHEX]]
と規定されていました [SRC[>>1]] が、 [[RFC 7616]]
ではなぜか削除されています。 (たぶん何も考えていないでうっかり削除した、
ただのミスでしょう。 [[IETF]] ではよくあることです。)
[[RFC 2617]] の [CODE[LHEX]] は[[十六進数]]ですが、
[[小文字]]を使って定義しているものの、 [[ABNF]] の [CODE["..."]]
を使っていて、[[大文字・小文字不区別]]と解釈されます。
[CODE[LHEX]] の [CODE[L]] は[[小文字]]を意図しているようにも思えますが、
謎です。 [[RFC 7616]] は何も言っていません。

* 文脈

[10] [[ダイジェスト認証]]の [[credentials]] の [CODE(ABNF)@en[[[auth-param]]]]
で指定できます [SRC[>>3]]。

[13] [[ダイジェスト認証]]が成功したら、
[[サーバー]]は [CODE(HTTP)@en[[[Authentication-Info:]]]]
[[ヘッダー]] [SRC[>>11]]
や [CODE(HTTP)@en[[[Proxy-Authentication-Info:]]]] [[ヘッダー]] [SRC[>>18]] 
に指定できます。
[CODE[[[qop]]=[[auth]]]] や [CODE[[[qop]]=[[auth-int]]]] が指定された場合には、
[['''必須''']]です [SRC[>>14]]。

* 処理

[12] [[credentials]] の値は、[CODE[[[response]]]] [[引数]]の値の計算に使われます。

* 歴史

[2] この[[引数]]は [[RFC 2069]] になく、 [[RFC 2617]] で追加されました。

[REFS[
- [1] [CITE@en[RFC 2617 - HTTP Authentication: Basic and Digest Access Authentication]] ([TIME[2012-01-09 21:04:30 +09:00]] 版) <http://tools.ietf.org/html/rfc2617#page-12>
]REFS]