Restricted ID für OpenPACE: Difference between revisions

From
Jump to navigation Jump to search
Line 27: Line 27:


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.

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.


...
...

Revision as of 16:50, 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.

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.

...