Restricted ID für OpenPACE: Difference between revisions
Paul Wilhelm (talk | contribs) |
Paul Wilhelm (talk | contribs) |
||
Line 26: | Line 26: | ||
*OpenPACE/trunk/openssl/crypto/eac/ri_lib.h. |
*OpenPACE/trunk/openssl/crypto/eac/ri_lib.h. |
||
Zuerst habe ich in eac.h ein RI Context Objekt <code>ri_ctx</code> definiert, welches von dem allgemeineren <code>eac_ctx</code> Objekt abgeleitet ist. Es enthält unter anderem Daten für den zu verwendenen Algorithmus, den öffentlichen und dem geheimen Schlüssel. |
Zuerst habe ich in eac.h ein RI Context Objekt <code>ri_ctx</code> definiert, welches von dem allgemeineren <code>eac_ctx</code> Objekt abgeleitet ist. Es enthält unter anderem Daten für den zu verwendenen Algorithmus, den öffentlichen und dem geheimen Schlüssel. Außerdem enthält das Objekt für das Key-Agreement einen Pointer auf die Funktion <code>generate_key</code> für die Erzeugung des öffentlichen Schlüssel und <code>compute_key</code> für die Erzeugung des gemeinsamen Geheimnisses. |
||
In eac_lib.c habe ich die Methode <code>EAC_CTX_init_ri</code> angelegt, die <code>RI_CTX_set_protocol</code> in ri_lib.c und <code>RI_init</code> in |
In eac_lib.c habe ich die Methode <code>EAC_CTX_init_ri</code> angelegt, die <code>RI_CTX_set_protocol</code> in ri_lib.c und <code>RI_init</code> in ri.c aufruft. |
||
In ri.c setzt <code>RI_CTX_set_protocol</code> in <code>ri_ctx</code> entsprechend der Protokoll OID die Funktionen <code>generate_key</code> und <code>compute_key</code> und die Hash-Funktion. |
|||
... |
... |
Revision as of 19:18, 3 October 2011
Aufgabenstellung war es Restricted Identification (RI) für OpenPace zu implementieren.
Einleitung
OpenPace ist eine kryptographische Bibliothek für OpenSSL die Extended Access Control (EAC) Version 2.0 unterstützt. Dieses und weitere Protokolle wie RI sind in der Technischen Richtlinie TR-03110 des Bundesministerium für Sicherheit in der Informationstechnik (BSI) spezifiziert.
OpenPace kann unter http://sourceforge.net/projects/openpace/ oder https://svn.informatik.hu-berlin.de/SAR/OpenPACE/ heruntergeladen werden.
Benutzung von OpenPace
Mit
make all
wird OpenSSL 1.0.0d lokal installiert und die Patches für OpenPace eingespielt.
OpenPace kann nun zum Beispiel mit dem pace-tool benutzt werden, oder als Programmbibliothek eingebunden werden (siehe Dokumentation). Mit
make test
kann man ein ausführliches Testszenario ausprobieren.
Erweiterungen für OpenPace
Mit Hilfe von Frank Morgner und Dominik Oepen wurden von mir die folgenden Dateien bearbeitet:
- OpenPACE/trunk/openssl/crypto/eac/eac.h
- OpenPACE/trunk/openssl/crypto/eac/eac_lib.c
- OpenPACE/trunk/openssl/crypto/eac/eactest.c
- OpenPACE/trunk/openssl/crypto/eac/ri.c
- OpenPACE/trunk/openssl/crypto/eac/ri.h
- OpenPACE/trunk/openssl/crypto/eac/ri_lib.c.
- OpenPACE/trunk/openssl/crypto/eac/ri_lib.h.
Zuerst habe ich in eac.h ein RI Context Objekt ri_ctx
definiert, welches von dem allgemeineren eac_ctx
Objekt abgeleitet ist. Es enthält unter anderem Daten für den zu verwendenen Algorithmus, den öffentlichen und dem geheimen Schlüssel. Außerdem enthält das Objekt für das Key-Agreement einen Pointer auf die Funktion generate_key
für die Erzeugung des öffentlichen Schlüssel und compute_key
für die Erzeugung des gemeinsamen Geheimnisses.
In eac_lib.c habe ich die Methode EAC_CTX_init_ri
angelegt, die RI_CTX_set_protocol
in ri_lib.c und RI_init
in ri.c aufruft.
In ri.c setzt RI_CTX_set_protocol
in ri_ctx
entsprechend der Protokoll OID die Funktionen generate_key
und compute_key
und die Hash-Funktion.
...