AMETAS.place
Class AMETASIdentityDataBase

java.lang.Object
  extended byAMETAS.place.AMETASIdentityDataBase

public class AMETASIdentityDataBase
extends java.lang.Object

Datenbank für die Speicherung von den Identitäten, die der Stelle bekannt sind. Die Daten werden verschlüsselt gespeichert. Die Klasse legt mehrere Dateien an, um die Informationen zu speichern. Die Identitäts-Objekte werden in dem Unterverzeichnis "identities" mit der ID als Namen gespeichert. Weiterhin werden eine Tabelle mit Login-Namen, Namen und öffentlichen Schlüsseln angelegt.


Field Summary
static java.lang.String IDENT
          Dateinamenerweiterung für unverschlüsselte Identitäten.
static java.lang.String IDENTC
          Dateinamenerweiterung für verschlüsselte Identitäten.
static java.lang.String IDENTT
          Dateinamenerweiterung für temporäre Identitäten.
 
Method Summary
 void addIdentity(AMETASIdentity identity, boolean bSave)
          Fügt eine neue Identität zur Datenbank hinzu.
 void addSigner(AMETASSigner signer, java.lang.String sKeyType, java.lang.String sPassphrase, boolean bSave)
          Fügt eine Identität hinzu.
 AMETASIdentityID[] getAllIdentityIDs()
          Liefert ein Feld mit allen der Stelle bekannten Identitäts-IDs.
 java.lang.String[] getAllKnownPlaces()
          Liefert alle bekannten Stellenidentitäten.
 AMETASIdentity getIdentity(AMETASIdentityID iid)
          Liefert das Identitäts-Objekt, welches die spezifizierte ID hat.
 AMETASIdentity getIdentityByUID(AMETASUniqueID uidKey)
          Liefert das Identitäts-Objekt, welches die spezifizierte UID hat.
 java.lang.String getIdentityFileName(AMETASIdentityID iid)
          Findet den Dateinamen zu einer gegebenen Identität.
 java.lang.String getPassphrase()
          Liefert das Stellenmantra.
 AMETASPlaceIdentity getPlaceIdentity()
          Liefert die Identität der Stelle oder null, wenn sie nicht existiert.
 AMETASPlaceIdentity getPlaceIdentity(java.lang.String sPlace)
          Liefert das Identity-Objekt zu einer Stellenidentität.
 void importIdentity(AMETASIdentity idy)
          Importiert eine neue Identität.
 void importIdentity(java.io.InputStream isIdentity)
          Importiert eine neue Identität.
 void importIdentity(java.lang.String sFileName)
          Importiert eine neue Identität.
 boolean knowsIdentity(AMETASIdentity idy)
          Gibt zurück, ob die Identität bekannt ist.
 void refresh()
          Bewirkt das Neuladen der Datei-Identitäts-Tabelle.
 boolean removeIdentity(AMETASIdentityID iid)
          Entfernen einer Identität aus der Datenbank.
 void setPassphrase(java.lang.String sPassphrase)
          Setzt das Mantra.
 void setVerbosity(boolean bOn)
          Schaltet die Debugmeldungen ein oder aus.
 void updateIdentity(AMETASIdentity identity)
          Aktualisiert eine Identität in der Datenbank.
 void updateSigner(AMETASSigner signer, java.lang.String sKeyType, java.lang.String sPassphrase)
          Aktualisiert eine signierende Identität.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

IDENT

public static final java.lang.String IDENT
Dateinamenerweiterung für unverschlüsselte Identitäten. Die Endung ist ".idy".

See Also:
Constant Field Values

IDENTC

public static final java.lang.String IDENTC
Dateinamenerweiterung für verschlüsselte Identitäten. Die Endung ist ".idc".

See Also:
Constant Field Values

IDENTT

public static final java.lang.String IDENTT
Dateinamenerweiterung für temporäre Identitäten. Die Endung ist ".idt".

See Also:
Constant Field Values
Method Detail

importIdentity

public void importIdentity(java.lang.String sFileName)
                    throws java.io.StreamCorruptedException,
                           java.io.IOException,
                           IdentityException
Importiert eine neue Identität. Diese wird als Dateiname übergeben. Identitäten müssen importiert werden, um in der Datenbank verwendet zu werden. Dabei wird die Identität im Klartext eingelesen und verschlüsselt gespeichert. Zur Durchführung dieses Befehls sind Administratorrechte notwendig.

Parameters:
sFileName - Dateiname zum Laden der unchiffrierten Identität.
Throws:
java.io.StreamCorruptedException - wenn die Datei keine korrekte Identitätsdatei ist.
java.io.IOException - wenn ein E/A-Fehler beim Laden der Datei oder beim verschlüsselten Speichern passiert ist.
IdentityException - wenn die Identität schon bekannt ist.
java.lang.SecurityException - wenn keine Administratorberechtigung vorhanden ist.

importIdentity

public void importIdentity(java.io.InputStream isIdentity)
                    throws java.io.StreamCorruptedException,
                           java.io.IOException,
                           IdentityException
Importiert eine neue Identität. Diese wird als Eingabestrom übergeben.

Parameters:
isIdentity - Eingabestrom, aus dem die Identität geladen wird.
Throws:
java.io.StreamCorruptedException - wenn aus dem Strom keine Identität geladen werden kann.
java.io.IOException - wenn ein E/A-Fehler beim Laden aus dem Strom oder beim verschlüsselten Speichern passier ist.
IdentityException - wenn die Identität schon bekannt ist.
java.lang.SecurityException - wenn keine Administratorrechte vorhanden sind.

importIdentity

public void importIdentity(AMETASIdentity idy)
                    throws java.io.StreamCorruptedException,
                           java.io.IOException,
                           IdentityException
Importiert eine neue Identität. Diese wird als Identitätsobjekt übergeben.

Parameters:
idy - Bestehende Identitätsinstanz.
Throws:
java.io.StreamCorruptedException - wenn die Identität nicht gesichert werden konnte.
java.io.IOException - wenn ein E/A-Fehler beim Schreiben der Identität passierte.
IdentityException - wenn die Identität schon bekannt ist oder die Zertifikate nicht anerkannt sind.
java.lang.SecurityException - wenn keine Administratorrechte vorhanden sind.

refresh

public void refresh()
             throws java.io.FileNotFoundException
Bewirkt das Neuladen der Datei-Identitäts-Tabelle.

Throws:
java.lang.SecurityException - wenn keine Administratorrechte gegeben sind.
java.io.FileNotFoundException - wenn die Stellenidentität nicht gefunden wurde.

addIdentity

public void addIdentity(AMETASIdentity identity,
                        boolean bSave)
                 throws IdentityException,
                        java.io.IOException
Fügt eine neue Identität zur Datenbank hinzu.

Parameters:
identity - Neue Identität
bSave - wenn true, wird die Identität in einer Datei verschlüsselt gespeichert.
Throws:
IdentityException - wenn die Identität schon existiert, wenn der öffentliche Schlüssel fehlt oder die Identität null ist.
java.io.IOException - wenn ein Fehler beim Speichern auftrat.
java.lang.SecurityException - wenn keine Administratorrechte gegeben sind.

updateIdentity

public void updateIdentity(AMETASIdentity identity)
                    throws IdentityException,
                           java.io.IOException
Aktualisiert eine Identität in der Datenbank.

Parameters:
identity - Modifizierte Identität.
Throws:
IdentityException - wenn die Identität noch nicht existiert, wenn der öffentliche Schlüssel fehlt oder die Identität null ist.
java.io.IOException - wenn ein Fehler beim Speichern auftrat.
java.lang.SecurityException - wenn keine Administratorrechte gegeben sind.

knowsIdentity

public boolean knowsIdentity(AMETASIdentity idy)
Gibt zurück, ob die Identität bekannt ist.

Parameters:
idy - Zu prüfende Identität.
Returns:
true, wenn die Identität in der Datenbank vorhanden ist.

getIdentity

public AMETASIdentity getIdentity(AMETASIdentityID iid)
Liefert das Identitäts-Objekt, welches die spezifizierte ID hat.

Returns:
Identität oder null, wenn kein Objekt mit der ID bekannt ist.

getIdentityByUID

public AMETASIdentity getIdentityByUID(AMETASUniqueID uidKey)
Liefert das Identitäts-Objekt, welches die spezifizierte UID hat.

Parameters:
uidKey - UID der Identität.
Returns:
Identität oder null, wenn kein Objekt mit der ID bekannt ist.

getPlaceIdentity

public AMETASPlaceIdentity getPlaceIdentity()
Liefert die Identität der Stelle oder null, wenn sie nicht existiert.

Returns:
Stellenidentität.

getPlaceIdentity

public AMETASPlaceIdentity getPlaceIdentity(java.lang.String sPlace)
Liefert das Identity-Objekt zu einer Stellenidentität.

Parameters:
sPlace - Stellenname.
Returns:
Stellenidentität oder null, wenn die Stelle unbekannt ist.

removeIdentity

public boolean removeIdentity(AMETASIdentityID iid)
Entfernen einer Identität aus der Datenbank.

Parameters:
iid - Identitäts-ID der zu löschenden Identität.
Returns:
true, wenn die Identität gelöscht werden konnte, false sonst.
Throws:
java.lang.SecurityException - wenn keine Administratorrechte gegeben sind.

addSigner

public void addSigner(AMETASSigner signer,
                      java.lang.String sKeyType,
                      java.lang.String sPassphrase,
                      boolean bSave)
               throws java.security.KeyException,
                      java.security.NoSuchAlgorithmException,
                      java.io.IOException
Fügt eine Identität hinzu. Ein Schlüsselpaar wird für die Identität generiert.

Parameters:
signer - Identität.
sKeyType - Bezeichnung des zu generierenden Schlüssels.
sPassphrase - Mantra für die Chiffrierung des privaten Schlüssels.
bSave - wenn true, wird die Identität gespeichert.
Throws:
java.security.KeyException - wenn eine andere Identität mit gleichen Einträgen wie öffentlicher Schlüssel bereits bekannt ist.
java.io.IOException - bei Abspeicherproblemen.
java.security.NoSuchAlgorithmException - wenn kein Algorithmus bekannt ist, um das Schlüsselpaar zu erzeugen.
java.lang.SecurityException - wenn keine Administratorrechte gegeben sind.
See Also:
AMETASKeyGenerator

getIdentityFileName

public java.lang.String getIdentityFileName(AMETASIdentityID iid)
Findet den Dateinamen zu einer gegebenen Identität.

Parameters:
iid - ID der gesuchten Identität.
Returns:
Dateiname der gesuchten Identität.
Throws:
java.lang.SecurityException - wenn keine Administratorreche gegeben sind.

getAllIdentityIDs

public AMETASIdentityID[] getAllIdentityIDs()
Liefert ein Feld mit allen der Stelle bekannten Identitäts-IDs.

Returns:
Liste aller Identitäts-IDs als Feld.
Throws:
java.lang.SecurityException - wenn keine Administratorrechte gegeben sind.

getAllKnownPlaces

public java.lang.String[] getAllKnownPlaces()
Liefert alle bekannten Stellenidentitäten.

Returns:
Liste aller in der Datenbank vorkommenden Stellennamen als Feld.
Throws:
java.lang.SecurityException - wenn keine Administratorrechte gegeben sind.

updateSigner

public void updateSigner(AMETASSigner signer,
                         java.lang.String sKeyType,
                         java.lang.String sPassphrase)
                  throws java.security.NoSuchAlgorithmException,
                         java.security.KeyException,
                         IdentityException,
                         java.io.IOException
Aktualisiert eine signierende Identität. Dazu müssen die neuen öffentlichen und alten privaten Daten zusammengeführt werden.

Parameters:
signer - Objekt mit den aktuellen öffentlichen Daten.
sKeyType - Zu verwendender Algorithmus für den Schlüssel oder null, wenn kein neuer Schlüssel generiert werden soll.
sPassphrase - Mantra, das für die Generierung eines privaten Schlüssels notwendig ist.
Throws:
java.security.NoSuchAlgorithmException - wenn der angegebene Algorithmus unbekannt ist.
java.security.KeyException - bei Schlüsselproblemen.
IdentityException - bei doppelten Schlüsseln.
java.io.IOException - bei Problemen beim Speichern.
java.lang.SecurityException - wenn keine Administratorrechte gegeben sind.

setVerbosity

public void setVerbosity(boolean bOn)
Schaltet die Debugmeldungen ein oder aus.

Parameters:
bOn - wenn true, werden Detailmeldungen produziert.
Throws:
java.lang.SecurityException - wenn keine Admin-Berechtigung vorhanden ist.

getPassphrase

public java.lang.String getPassphrase()
Liefert das Stellenmantra. Diese Methode erfordert Admin-Berechtigung.

Returns:
Mantra.
Throws:
java.lang.SecurityException - wenn keine Admin-Berechtigung vorhanden ist.

setPassphrase

public void setPassphrase(java.lang.String sPassphrase)
Setzt das Mantra. Diese Methode erfordert Admin-Berechtigung.

Parameters:
sPassphrase - Mantra der Stelle.
Throws:
java.lang.SecurityException - wenn keine Admin-Berechtigung vorhanden ist.