|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.ObjectAMETAS.cipher.Cipher
Abstrakte Basisklasse für Verschlüsselungsalgorithmen. In ihr sind alle notwendigen Methoden implementiert, die für die Ver/Entschlüsselung gebraucht werden.
| Field Summary | |
static int |
CBC
Cipher Back Chaining Modus. |
static int |
ECB
Eletronic Codebook Modus. |
protected byte[] |
m_abCBCBuffer
Initialisierungsvektor für CBC-Modus. |
protected boolean |
m_bDebug
Zum Anzeigen/Verbergen von Debuginformationen. |
| Constructor Summary | |
Cipher(java.lang.String sAlgorithm)
Erzeugt ein neues Verschlüsselungsobjekt. |
|
| Method Summary | |
abstract int |
blocksize()
Blockgröße des Verschlüsselungsalgorithmus. |
abstract int |
blocksizeCipher()
Blockgröße des Verschlüsselungsalgorithmus. |
byte[] |
decrypt(byte[] abCipher)
Entschlüsselung eines Bytefelds. |
byte[] |
decrypt(byte[] abCipher,
boolean bUndoBlockAdaption)
Entschlüsselung des Arrays. |
void |
decrypt(byte[] abCipher,
int nBegin,
byte[] abPlain,
int nPlainOffset,
int nNumber,
boolean bUndoBlockAdaptation)
Entschlüsselt einen Bereich eines Bytefelds. |
byte[] |
decrypt(byte[] abCipher,
int nBegin,
int nNumber,
boolean bUndoBlockAdaptation)
Entschlüsselt einen Bereich eines Bytefelds. |
abstract void |
decryptBlock(byte[] abBlockCipher,
int nOffsetCipher,
byte[] abBlockPlain,
int nOffsetPlain)
Entschlüsselt einen Bereich eines Bytefelds. |
byte[] |
doBlockAdaptation(byte[] abBytes)
Gleicht ein zu verschlüsselndes Bytearray an ein Vielfaches der Blockgröße an. |
byte[] |
encrypt(byte[] abPlain)
Verschlüsselung des Arrays. |
byte[] |
encrypt(byte[] abPlain,
boolean bDoBlockAdaption)
Verschlüsselung des Arrays. |
byte[] |
encrypt(byte[] abPlain,
int nBegin,
int nNumber,
boolean bDoBlockAdaptation)
Verschlüsselt einen Bereich eines Feldes. |
void |
encrypt(byte[] abPlain,
int nBegin,
int nNumber,
byte[] abCipher,
int nCipherOffset,
boolean bDoBlockAdaptation)
Verschlüsselt einen Bereich eines Feldes. |
abstract void |
encryptBlock(byte[] abBlockPlain,
int nOffsetPlain,
byte[] abBlockCipher,
int nOffsetCipher)
Verschlüsselt einen Bereich eines Bytefelds. |
java.lang.String |
getAlgorithm()
Liefert den Namen des Algorithmus. |
static Cipher |
getCipherInstance(java.lang.String sAlgorithm)
Liefert eine Instanz eines Verschlüsselungsalgorithmus. |
static Cipher |
getCipherInstance(java.lang.String sAlgorithm,
java.lang.String sProvider)
Liefert eine Instanz eines Verschlüsselungsalgorithmus. |
int |
getMode()
Der Ver/Entschlüsselungs-Modus. |
int |
getNumberOfBytes(byte[] abBytes)
Liefert die Anzahl der aufgefüllten Bytes. |
void |
setDebug(boolean bDebug)
Zum Setzen/Löschen des Debug-Flags. |
abstract void |
setKey(java.security.Key key)
Setzt den Schlüssel. |
boolean |
setMode(int nMode,
byte[] abInit)
Legt den Modus fest. |
byte[] |
undoAdaptation(byte[] abBytes)
Entfernt Auffüllung. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
protected boolean m_bDebug
protected byte[] m_abCBCBuffer
public static final int ECB
public static final int CBC
| Constructor Detail |
public Cipher(java.lang.String sAlgorithm)
sAlgorithm - Name des Algorithmus.| Method Detail |
public boolean setMode(int nMode,
byte[] abInit)
nMode - ECB oder CBC.abInit - Initialisierungsfeld. Muss nur ungleich null sein,
falls der CBC-Modus verwendet wird. Dann muss das Array der Blockgröße des Algorithmus entsprechen.
Ansonsten wird ein Nullvektor genommen.
public void setDebug(boolean bDebug)
bDebug - wenn true, werden Debug-Meldungen ausgegeben.public int getMode()
public java.lang.String getAlgorithm()
public static Cipher getCipherInstance(java.lang.String sAlgorithm)
throws java.security.NoSuchAlgorithmException
sAlgorithm - Name des Algorithmus. Spezifikation siehe Java Cryptography Architecture API Specification and Reference.
java.security.NoSuchAlgorithmException - wenn der Algorithmus nicht gefunden oder
instantiiert werden konnte.
public static Cipher getCipherInstance(java.lang.String sAlgorithm,
java.lang.String sProvider)
throws java.security.NoSuchAlgorithmException,
java.security.NoSuchProviderException
sAlgorithm - Name des Algorithmus. Spezifikation siehe Java Cryptography Architecture API Specification and Reference.sProvider - Provider, in unserem Fall gibt es nur AMETAS und SUN.
java.security.NoSuchAlgorithmException - wenn der Algorithmus nicht gefunden oder
instantiiert werden konnte.
java.security.NoSuchProviderException - wenn der Provider nicht gefunden wurde.public abstract int blocksize()
public abstract int blocksizeCipher()
public abstract void setKey(java.security.Key key)
throws java.security.InvalidKeyException
key - Schlüssel.
java.security.InvalidKeyException - falls der Schlüssel fehlerhaft ist.
public abstract void encryptBlock(byte[] abBlockPlain,
int nOffsetPlain,
byte[] abBlockCipher,
int nOffsetCipher)
throws CipherException
abBlockPlain - Zu verschlüsselndes Bytearray.nOffsetPlain - Position, ab der die Verschlüsselung beginnen soll.abBlockCipher - Feld, in das der verschlüsselte Block kopiert werden soll.nOffsetCipher - Die Position im Array, wohin der verschlüsselte Block kopiert werden soll.
CipherException - wenn ein Verschlüsselungsproblem auftrat. Dies
kann beim z.B. beim Fehlen eines Schlüssels oder bei einem falschen Datenformat
geschehen.
public abstract void decryptBlock(byte[] abBlockCipher,
int nOffsetCipher,
byte[] abBlockPlain,
int nOffsetPlain)
throws CipherException
abBlockCipher - Das zu entschlüsselnde Bytearray.nOffsetCipher - Position ab der die Entschlüsselung beginnen soll.abBlockPlain - Das Array, in das der entschlüsselte Block kopiert werden soll.nOffsetPlain - Die Position im Array, wo der entschlüsselte Block kopiert werden soll.
CipherException - wenn ein Verschlüsselungsproblem auftrat. Dies
kann beim z.B. beim Fehlen eines Schlüssels oder bei einem falschen Datenformat
geschehen.public byte[] doBlockAdaptation(byte[] abBytes)
abBytes - Anzupassendes Bytearray.
public byte[] undoAdaptation(byte[] abBytes)
abBytes - Zu bearbeitendes Bytearray.
public int getNumberOfBytes(byte[] abBytes)
throws CipherException
abBytes - Auf Blockgröße angepasstes Bytearray.
CipherException - falls die Anzahl negativ ist.
public byte[] encrypt(byte[] abPlain)
throws CipherException
abPlain - Bytearray, das verschlüsselt werden soll.
CipherException - wenn ein Verschlüsselungsproblem auftrat. Dies
kann beim z.B. beim Fehlen eines Schlüssels oder bei einem falschen Datenformat
geschehen.
public byte[] encrypt(byte[] abPlain,
boolean bDoBlockAdaption)
throws CipherException
abPlain - Bytearray, das verschlüsselt werden soll.bDoBlockAdaption - wenn true, wird eine normale Verschlüsselung
inkusive Blockadaption durchgeführt. Wenn false, wird das zu verschlüsselnde
Array auf die Blocklänge aufgefüllt, das verschlüsselte Array enthält
aber keine Information über die Anzahl der aufgefüllten Bytes.
CipherException - wenn ein Verschlüsselungsproblem auftrat. Dies
kann beim z.B. beim Fehlen eines Schlüssels oder bei einem falschen Datenformat
geschehen.
public byte[] encrypt(byte[] abPlain,
int nBegin,
int nNumber,
boolean bDoBlockAdaptation)
throws CipherException
abPlain - Bytearray, das verschlüsselt werden soll.nBegin - Anfang des Blocks im Originalfeld.nNumber - Anzahl der zu verschlüsselnden Bytes. Ist nNumber + nBegin
größer als die Länge des Array, so wird nNumber auf die Länge des
Arrays angepasst. Muss ein Vielfaches der Blocklänge sein.
CipherException - wenn ein Verschlüsselungsproblem auftrat. Dies
kann beim z.B. beim Fehlen eines Schlüssels oder bei einem falschen Datenformat
geschehen oder wenn der Parameter nNumber kein Vielfaches der Blocklänge ist.
public void encrypt(byte[] abPlain,
int nBegin,
int nNumber,
byte[] abCipher,
int nCipherOffset,
boolean bDoBlockAdaptation)
throws CipherException
abPlain - Zu verschlüsselndes Bytefeld.nBegin - Anfang des Blocks im Originalfeld.nNumber - Anzahl der zu verschlüsselnden Bytes. Ist nNumber + nBegin
größer als die Länge des Array, so wird nNumber auf die Länge des
Arrays angepasst. Muss ein Vielfaches der Blocklänge sein.abCipher - Die verschlüsselten Bytes werden in diesem Array gespeichert. Achtung:
Wird nur ein Teil des Arrays verschlüsselt, so enthält das Array
nur diesen verschlüsselten Teil des original Bytearrays.nCipherOffset - Die verschlüsselten Bytes werden im Array abCipher
beginnend bei dieser Position gespeichert.
CipherException - wenn ein Verschlüsselungsproblem auftrat. Dies
kann beim z.B. beim Fehlen eines Schlüssels oder bei einem falschen Datenformat
geschehen oder wenn der Parameter nNumber kein Vielfaches der Blocklänge ist.
public byte[] decrypt(byte[] abCipher)
throws CipherException
abCipher - Verschlüsseltes Bytefeld.
CipherException - wenn ein Entschlüsselungsproblem auftrat. Dies
kann beim z.B. beim Fehlen eines Schlüssels oder bei einem falschen Datenformat
geschehen.
public byte[] decrypt(byte[] abCipher,
boolean bUndoBlockAdaption)
throws CipherException
abCipher - Verschlüsseltes Bytefeld.bUndoBlockAdaption - wenn true, werden die entschlüsselten
Daten auf die ursprüngliche Länge angepasst. Wenn false,
so findet diese Anpassung nicht statt (nur sinnvoll, wenn vorher ohne
Blockadaption verschlüsselt worden ist).
CipherException - wenn ein Entschlüsselungsproblem auftrat. Dies
kann beim z.B. beim Fehlen eines Schlüssels oder bei einem falschen Datenformat
geschehen.
public byte[] decrypt(byte[] abCipher,
int nBegin,
int nNumber,
boolean bUndoBlockAdaptation)
throws CipherException
abCipher - Zu entschlüsselndes Bytearray.nBegin - Position, ab der die Entschlüsselung beginnen soll.nNumber - Anzahl zu entschlüsselnder Bytes. Ist nNumber + nBegin
größer als die Länge des Array, so wird nNumber auf die Länge des
Arrays angepasst. Muss ein Vielfaches der Blocklänge sein.
CipherException - wenn ein Entschlüsselungsproblem auftrat. Dies
kann beim z.B. beim Fehlen eines Schlüssels oder bei einem falschen Datenformat
geschehen oder wenn der Parameter nNumber kein Vielfaches der Blocklänge ist.
public void decrypt(byte[] abCipher,
int nBegin,
byte[] abPlain,
int nPlainOffset,
int nNumber,
boolean bUndoBlockAdaptation)
throws CipherException
abCipher - Zu entschlüsselndes Bytearray.nBegin - Position, ab der die Entschlüsselung beginnen soll.abPlain - Entschlüsselte Bytes in Form eines Arrays. Wird nur ein Teil des Arrays
entschlüsselt, so enthält der Rückgabeparameter nur diesen entschlüsselten Teil
des Original-Bytearrays.nPlainOffset - Anfangsindex im Zielfeld.nNumber - Anzahl zu entschlüsselnder Bytes. Ist nNumber + nBegin
größer als die Länge des Array, so wird nNumber auf die Länge des
Arrays angepasst. Muss ein Vielfaches der Blocklänge sein.
CipherException - wenn ein Entschlüsselungsproblem auftrat. Dies
kann beim z.B. beim Fehlen eines Schlüssels oder bei einem falschen Datenformat
geschehen oder wenn der Parameter nNumber kein Vielfaches der Blocklänge ist.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||