* 仕様書

[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>
- [11] [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>
- [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.8>
]REFS]

* 意味

[6] [[credentials]] では、
[[クライアント]]が選び、[[クライアント]]と[[サーバー]]が用いる[[不透明]]な値です。
[[chosen plaintext attack]] を防ぎ、
[[mutual authentication]] を実現し、
ある種の[[メッセージ一貫性保護]]を行うためのものです。 [SRC[>>3]]

[4] すべての実装が使わなければ[['''なりません''']] [SRC[>>3]]。

;; [5] 「使う」とは具体的に何なのか謎です。

[13] [CODE(HTTP)@en[[[Authentication-Info:]]]] [[ヘッダー]] [SRC[>>11]] 
や [CODE(HTTP)@en[[[Proxy-Authentication-Info:]]]] [[ヘッダー]] [SRC[>>14]] では、
[[クライアント]]が[[要求]]で指定した値です。

* 構文

[7] [[credentials]] では、値は、 [[ASCII]] のみの[[文字列]]です。 [SRC[>>3]]

[8] [[字句]]ではなく[[引用文字列]]を[[生成]]しなければ[['''なりません''']] [SRC[>>3, >>11]]。

* 文脈

[9] [[ダイジェスト認証]]の
[[credentials]] の [CODE(ABNF)@en[[[auth-param]]]] として指定できます
[SRC[>>3]]。

[12] [[ダイジェスト認証]]が成功したら、
[[サーバー]]は [CODE(HTTP)@en[[[Authentication-Info:]]]] [SRC[>>11]]
や [CODE(HTTP)@en[[[Proxy-Authentication-Info:]]]] [[ヘッダー]] [SRC[>>14]] 
に指定できます。
[CODE[[[qop]]=[[auth]]]] や [CODE[[[qop]]=[[auth-int]]]] が指定された場合には、
[['''必須''']]です [SRC[>>11]]。

* 処理

[10] [[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]