メインコンテンツまでスキップ

5. サンプル実装 (Sample Implementation)

以下のコードは、H(A1)、H(A2)、request-digest、およびresponse-digestの計算と、セクション3.5の例で使用される値を計算するテストプログラムを実装しています。これはRFC 1321のMD5実装を使用しています。

注意: このセクションには、ダイジェスト認証 (Digest Authentication) のコア計算を実装する方法を示すC言語のサンプルコードが含まれています。コード例には以下が含まれます:

  • digcalc.h - ダイジェスト認証の計算に必要なデータ構造と関数宣言を定義するヘッダーファイル
  • digcalc.c - H(A1)とレスポンス計算の具体的な実装を含む実装ファイル
  • digtest.c - 実装の正確性を検証するテストプログラム

これらのコード例は以下を示しています:

  1. H(A1)値(ユーザー名、realm、パスワードのハッシュ)の計算方法
  2. request-digestとresponse-digestの計算方法
  3. ダイジェスト認証におけるMD5アルゴリズムの適用
  4. 異なるqop(保護品質)オプションの処理方法

実装の要点:

  • MD5アルゴリズムを使用したハッシュ計算
  • 16進数変換の適切な処理
  • 「MD5」と「MD5-sess」の両方のアルゴリズムをサポート
  • 「auth」と「auth-int」の両方のqop値をサポート

完全なCコード実装については、RFC 2617原文のセクション5を参照してください。