5. Beispielimplementierung (Sample Implementation)
Der folgende Code implementiert die Berechnungen von H(A1), H(A2), request-digest und response-digest sowie ein Testprogramm, das die in den Beispielen in Abschnitt 3.5 verwendeten Werte berechnet. Er verwendet die MD5-Implementierung aus RFC 1321.
Hinweis: Dieser Abschnitt enthält C-Sprachbeispielcode, der zeigt, wie die Kernberechnungen für die Digest-Authentifizierung (Digest Authentication) implementiert werden. Die Codebeispiele umfassen:
digcalc.h- Header-Datei, die Datenstrukturen und Funktionsdeklarationen definiert, die für Digest-Authentifizierungsberechnungen erforderlich sinddigcalc.c- Implementierungsdatei mit den konkreten Implementierungen der H(A1)- und Response-Berechnungendigtest.c- Testprogramm zur Überprüfung der Korrektheit der Implementierung
Diese Codebeispiele demonstrieren:
- Wie der H(A1)-Wert (Hash von Benutzername, Realm und Passwort) berechnet wird
- Wie request-digest und response-digest berechnet werden
- Die Anwendung des MD5-Algorithmus in der Digest-Authentifizierung
- Wie verschiedene qop-Optionen (Schutzqualität) behandelt werden
Implementierungs-Schlüsselpunkte:
- Verwendet den MD5-Algorithmus für Hash-Berechnungen
- Behandelt die Hexadezimalkonvertierung korrekt
- Unterstützt sowohl „MD5"- als auch „MD5-sess"-Algorithmen
- Unterstützt sowohl „auth"- als auch „auth-int"-qop-Werte
Für die vollständige C-Code-Implementierung siehe bitte Abschnitt 5 des RFC 2617-Originaltextes.