de.willuhn.jameica.security
Class SSLFactory

java.lang.Object
  extended by de.willuhn.jameica.security.SSLFactory

public class SSLFactory
extends java.lang.Object

Diese Klasse uebernimmt die Erstellung der SSL-Zertifikate fuer die sichere RMI-Kommunikation.


Constructor Summary
SSLFactory()
          ct.
 
Method Summary
 java.lang.String addTrustedCertificate(java.security.cert.X509Certificate cert)
          Fuegt dem Keystore ein Zertifikat hinzu und uebernimmt dabei auch alle noetigen Sicherheitsabfragen.
 void changePassword()
          Aendert das Passwort des Keystores.
 void decrypt(java.io.InputStream is, java.io.OutputStream os)
          Entschluesselt die Daten aus is und schreibt sie in os.
 void encrypt(java.io.InputStream is, java.io.OutputStream os)
          Verschluesselt die Daten aus is und schreibt sie in os.
 java.security.cert.CertificateFactory getCertificateFactory()
          Liefert die Certificate-Factory.
 java.security.KeyStore getKeyStore()
          Liefert den Keystore mit dem Zertifikat.
 java.io.File getKeyStoreFile()
          Liefert die Datei mit dem Keystore.
 java.security.PrivateKey getPrivateKey()
          Liefert den PrivateKey von Jameica.
 java.security.PublicKey getPublicKey()
          Liefert den PublicKey von Jameica.
 javax.net.ssl.SSLContext getSSLContext()
          Liefert einen fertig konfigurierten SSLContext mit den Jameica-Zertifikaten.
 java.security.cert.X509Certificate getSystemCertificate()
          Liefert das X.509-Zertifikat der Jameica-Installation.
 java.security.cert.X509Certificate getTrustedCertificate(java.lang.String alias)
          Liefert das Zertifikat mit dem genannten Alias.
 java.security.cert.X509Certificate[] getTrustedCertificates()
          Liefert eine Liste aller installierten Zertifikate ausser dem Jameica-eigenen System-Zertifikat.
 java.security.cert.X509Certificate[] getUnTrustedCertificates()
          Liefert eine Liste von Zertifikate, die noch zu bestaetigen sind.
 void init()
          Prueft die Zertifikate und erstellt sie bei Bedarf.
 java.security.cert.X509Certificate loadCertificate(java.io.InputStream is)
          Laedt ein Zertifikat vom angegebenen InputStream und liefert es zurueck.
 void removeTrustedCertificate(java.security.cert.X509Certificate cert)
          Entfernt das Zertifikat mit dem genannten Namen aus dem Keystore.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SSLFactory

public SSLFactory()
ct.

Method Detail

init

public void init()
          throws java.lang.Exception
Prueft die Zertifikate und erstellt sie bei Bedarf.

Throws:
java.lang.Exception

changePassword

public void changePassword()
                    throws java.lang.Exception
Aendert das Passwort des Keystores. Die Eingaben erfolgen ueber den ApplicationCallback.

Throws:
java.lang.Exception
See Also:
ApplicationCallback.changePassword()

getKeyStoreFile

public java.io.File getKeyStoreFile()
Liefert die Datei mit dem Keystore.

Returns:
Keystore.

getPublicKey

public java.security.PublicKey getPublicKey()
                                     throws java.lang.Exception
Liefert den PublicKey von Jameica.

Returns:
Private-Key.
Throws:
java.lang.Exception

getPrivateKey

public java.security.PrivateKey getPrivateKey()
                                       throws java.lang.Exception
Liefert den PrivateKey von Jameica.

Returns:
Private-Key.
Throws:
java.lang.Exception

getSystemCertificate

public java.security.cert.X509Certificate getSystemCertificate()
                                                        throws java.lang.Exception
Liefert das X.509-Zertifikat der Jameica-Installation.

Returns:
X.509-Zertifikat.
Throws:
java.lang.Exception

getTrustedCertificates

public java.security.cert.X509Certificate[] getTrustedCertificates()
                                                            throws java.lang.Exception
Liefert eine Liste aller installierten Zertifikate ausser dem Jameica-eigenen System-Zertifikat.

Returns:
Liste der installieren Zertifikate.
Throws:
java.lang.Exception

getTrustedCertificate

public java.security.cert.X509Certificate getTrustedCertificate(java.lang.String alias)
                                                         throws java.lang.Exception
Liefert das Zertifikat mit dem genannten Alias. Die Funktion liefert NIE das System-Zertifikat von Jameica. Hierfuer kann stattdessen getSystemCertificate() verwendet werden.

Parameters:
alias - Alias des Zertifikats.
Returns:
das Zertifikat oder NULL, wenn es nicht gefunden wurde.
Throws:
java.lang.Exception

getUnTrustedCertificates

public java.security.cert.X509Certificate[] getUnTrustedCertificates()
                                                              throws java.lang.Exception
Liefert eine Liste von Zertifikate, die noch zu bestaetigen sind. Das sind genau jene, welche vom Server im Nichtinteraktiven Modus entgegengenommen wurden und auf Freigabe warten.

Returns:
Liste der noch zu bestaetigenden Zertifikate.
Throws:
java.lang.Exception

getKeyStore

public java.security.KeyStore getKeyStore()
                                   throws java.lang.Exception
Liefert den Keystore mit dem Zertifikat.

Returns:
Keystore
Throws:
java.lang.Exception

removeTrustedCertificate

public void removeTrustedCertificate(java.security.cert.X509Certificate cert)
                              throws java.lang.Exception
Entfernt das Zertifikat mit dem genannten Namen aus dem Keystore.

Parameters:
cert - das zu entfernende Zertifikat.
Throws:
java.lang.Exception

loadCertificate

public java.security.cert.X509Certificate loadCertificate(java.io.InputStream is)
                                                   throws java.lang.Exception
Laedt ein Zertifikat vom angegebenen InputStream und liefert es zurueck. Es wird hierbei weder zum Keystore hinzugefuegt, noch geloescht sondern lediglich geladen und zurueckgeliefert.

Parameters:
is - der InputStream.
Returns:
das geladene Zertifikat.
Throws:
java.lang.Exception

getCertificateFactory

public java.security.cert.CertificateFactory getCertificateFactory()
                                                            throws java.lang.Exception
Liefert die Certificate-Factory.

Returns:
die Certificate-Factory.
Throws:
java.lang.Exception

addTrustedCertificate

public java.lang.String addTrustedCertificate(java.security.cert.X509Certificate cert)
                                       throws java.lang.Exception
Fuegt dem Keystore ein Zertifikat hinzu und uebernimmt dabei auch alle noetigen Sicherheitsabfragen.

Parameters:
cert - das Zertifikat.
Returns:
der Alias-Name, unter dem das Zertifikat im Keystore abgelegt wurde. Die Funktion liefert NIE NULL sondern wirft stattdessen eine OperationCanceledException.
Throws:
java.lang.Exception

getSSLContext

public javax.net.ssl.SSLContext getSSLContext()
                                       throws java.lang.Exception
Liefert einen fertig konfigurierten SSLContext mit den Jameica-Zertifikaten.

Returns:
SSLContect.
Throws:
java.lang.Exception

encrypt

public void encrypt(java.io.InputStream is,
                    java.io.OutputStream os)
             throws java.lang.Exception
Verschluesselt die Daten aus is und schreibt sie in os.

Parameters:
is - InputStream mit den unverschluesselten Daten.
os - OutputStream fuer die verschluesselten Daten.
Throws:
java.lang.Exception

decrypt

public void decrypt(java.io.InputStream is,
                    java.io.OutputStream os)
             throws java.lang.Exception
Entschluesselt die Daten aus is und schreibt sie in os.

Parameters:
is - InputStream mit verschluesselten Daten.
os - OutputStream mit unverschluesselten Daten.
Throws:
java.lang.Exception