Package de.willuhn.jameica.security
Class Wallet
- java.lang.Object
-
- de.willuhn.jameica.security.Wallet
-
public final class Wallet extends java.lang.ObjectLiefert eine Art Brieftasche, ueber die andere Klassen Daten verschluesselt abspeichern koennen.HINWEIS: Das Wallet verwendet zum Verschluesseln per Default den asymmetrischen RSA-Algorithmus (es sei denn, es wurde explizit eine andere Engine angegeben). Es ist im Default-Fall also nicht fuer groessere Daten (Dateien, Streams, etc.) geeignet sondern typischerweise fuer Passwoerter.
Will zum Beispiel ein Plugin irgendwelche Passwort-Informationen sicher speichern, dann kann es mittels folgenden Codes ein Wallet erzeugen:
// erzeugt eine neue Wallet-Datei in ~/.jameica/cfg mit dem // Dateinamen "beliebige.Klasse.wallet2" Wallet wallet = new Wallet(beliebige.Klasse.class); // Speichern des Passwortes "geheim" unter dem Alias "passwort". wallet.set("passwort","geheim"); // Auslesen des Passwortes "geheim". String password = wallet.getString("passwort");
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.io.Serializabledelete(java.lang.String alias)Loescht den genanten Alias.voiddeleteAll(java.lang.String aliasPrefix)Loescht alle Nutzdaten, deren Alias-Name mit dem angegebenen beginnt.java.io.Serializableget(java.lang.String alias)Liefert den Wert des genannten Alias-Namen entschluesselt.java.lang.String[]getAll(java.lang.String aliasPrefix)Liefert alle Keys, deren Name mit dem Prefix beginnt.java.util.Enumeration<java.lang.String>getKeys()Liefert eine Liste aller Aliases in diesem Wallet.voidset(java.lang.String alias, java.io.Serializable data)Speichert einen Datensatz verschluesselt in dem Wallet.voidsetEngine(Engine engine)Legt fest, mit welcher Crypto-Engine die Speicherung erfolgen soll.
-
-
-
Constructor Detail
-
Wallet
public Wallet(java.lang.Class clazz) throws java.lang.Exceptionct.- Parameters:
clazz- Klasse, fuer die das Wallet gilt.- Throws:
java.lang.Exception
-
Wallet
public Wallet(java.lang.Class clazz, Engine engine) throws java.lang.Exceptionct.- Parameters:
clazz- Klasse, fuer die das Wallet gilt.engine- die zu verwendende Crypto-Engine.- Throws:
java.lang.Exception
-
-
Method Detail
-
setEngine
public void setEngine(Engine engine)
Legt fest, mit welcher Crypto-Engine die Speicherung erfolgen soll.- Parameters:
engine- die zu verwendende Engine.
-
set
public void set(java.lang.String alias, java.io.Serializable data) throws java.lang.ExceptionSpeichert einen Datensatz verschluesselt in dem Wallet.- Parameters:
alias- Alias-Name.data- Nutzdaten, die verschluesselt gespeichert werden sollen odernullwenn der Wert geloescht werden soll.- Throws:
java.lang.Exception
-
delete
public java.io.Serializable delete(java.lang.String alias) throws java.lang.ExceptionLoescht den genanten Alias.- Parameters:
alias- Name des zu loeschenden Alias.- Returns:
- der geloeschte Wert hinter dem Alias.
- Throws:
java.lang.Exception
-
deleteAll
public void deleteAll(java.lang.String aliasPrefix) throws java.lang.ExceptionLoescht alle Nutzdaten, deren Alias-Name mit dem angegebenen beginnt. Wird als Prefixnulloder ein Leerstring angegeben, wird das komplette Wallet geleert.- Parameters:
aliasPrefix- Alias-Prefix.- Throws:
java.lang.Exception
-
getAll
public java.lang.String[] getAll(java.lang.String aliasPrefix) throws java.lang.ExceptionLiefert alle Keys, deren Name mit dem Prefix beginnt. Wirdnulluebergeben, werden alle Keys zurueckgeliefert.- Parameters:
aliasPrefix- Alias-Prefix.- Returns:
- Liste der gefundenen Keys.
Die Funktion liefert nie
nullsondern hoechstens ein leeres Array. - Throws:
java.lang.Exception
-
getKeys
public java.util.Enumeration<java.lang.String> getKeys()
Liefert eine Liste aller Aliases in diesem Wallet.- Returns:
- Liste der Aliases.
-
get
public java.io.Serializable get(java.lang.String alias)
Liefert den Wert des genannten Alias-Namen entschluesselt.- Parameters:
alias- Alias-Name.- Returns:
- Nutzdaten.
-
-