A06 Einbindung und Nutzung von Bouncy Castle

Wenn Ihr im Netz nach Beispielen für Kryptographie sucht werdet Ihr häufiger den Namen „Bouncy Castle“ oder die Kurzform „BC“ finden.

Was ist Bouncy Castle und wofür wird es gebraucht ? Bouncy Castle ist ein Kryptographie Provider und enthält sehr viele Funktionen, die in „normalen“ Java-Versionen nicht vorhanden sind. So gibt es viele (exotische) Kryptographie-Funktionen, die nur dort zu finden sind und deren Nachbau sehr viel Zeit verschlingt. Es dürfte vielfach deutlich einfacher sein, diese (externe) Java-Bibliothek in das Java-Programm einzubinden und dann zu nutzen.

Woher bekomme ich Bouncy Castle ? Die offizielle Webseite von Bouncy Castle ist http://www.bouncycastle.org und die Bibliotheken könnt Ihr auf der Seite http://www.bouncycastle.org/latest_releases.html herunterladen.

Welche Version lade ich herunter ? Auf der Webseite sind sehr viele unterschiedliche Versionen zu finden; für die auf dieser Webseite genutzten Funktionen nutzt Ihr bitte unter „Provider“ diese Version (Stand 29.10.2018): bcprov-jdk15on-160.jar.

Wohin kopiere ich die jar-Bibliothek ? Bitte kopiert die Datei an einen Ort, auf den Ihr mit Eurer Entwicklungsumgebung (z.B. Eclipse) Zugriff habt, z.B. einem Verzeichnis in Eurem Java-Workspace.

Wie binde ich die Bibliothek in Java ein ? Da ich mit Eclipse meine Java-Programme entwickle kann ich Euch nur dafür die Beschreibung liefern, hier die Schritt für Schritt Anleitung.

Schritt 1: Ihr klickt mit der rechten Maustaste im Paket-Explorer auf Euer Java-Paket (hier „JavaCrypto“) und wählt ganz unten „Eigenschaften“.

Schritt 2: Links im Fenster wählt Ihr „Java Erstellungspfad“ und im rechten Fenster den Reiter „Bibliotheken“ und dann klickt Ihr „Externe JARs hinzufügen“.

Schritt 3: Mittels des Datei Explorers wählt Ihr die heruntergeladene Bouncy Castle Jar- Datei aus und klickt auf öffnen:

 

Schritt 4: Im Fenster ganz unten „Anwenden und Schließen“ anklicken – fertig.

Nun schaut Euch das nachfolgende Beispiel an und Ihr könnt die zusätzlichen Funktionen von Bouncy Castle nutzen.

Kann ich Bouncy Castle nach den obigen Schritten nutzen ? Hier gebe ich Euch ein lächelndes „Jein“, denn die obigen Schritte sorgen für eine dynamische (also nicht eine feste) Einbindung. Auf der Bouncy Castle Seite ist die feste Einrichtung beschrieben, ich nutze lieber die fallweise Einbindung, die ich Euch nun beschreibe. Damit Euer Java Programm Bouncy Castle nutzen kann ist eine zusätzliche Zeile Programmcode notwendig, welche Ihr möglichst ganz zu Anfang Eures Programms platziert, also am besten direkt nach dem Start der „main“-Routine. Die zusätzliche Programmzeile lautet:

Security.addProvider(new BouncyCastleProvider());

und bei der Nutzung von Eclipse wird automatisch im „Import-Bereich“ die Zeile

import org.bouncycastle.jce.provider.BouncyCastleProvider;

hinzugefügt.

Im folgenden Beispiel A06 Kryptographie Provider inklusive BC findet Ihr beide Programmzeilen in den Zeilen 24 und 33:

Die Konsolenausgabe zeigt in der letzten Zeile den (nun vorhandenen) Bouncy Castle Provider:

Den Quellcode zum Programm findet Ihr zum Download in meinem Github-Repository, welches Ihr über diesen Link erreicht: https://github.com/java-crypto/A-Allgemeine-Programme. Dort findet Ihr auch die Versionen für Java 11.

Die Lizenz zum obigen Beispiel findet Ihr auf der eigenen Lizenz-Seite.

Letzte Aktualisierung: 26.01.2019