de.osci.osci12.messageparts
Class EncryptedDataOSCI

java.lang.Object
  |
  +--de.osci.osci12.messageparts.MessagePart
        |
        +--de.osci.osci12.messageparts.EncryptedDataOSCI

public class EncryptedDataOSCI
extends MessagePart

Die EncryptedDataOSCI-Klasse stellt einen Datencontainer für verschlüsselte Daten in einer OSCI-Nachricht dar. Ein EncryptedDataOSCI-Objekt wird in eine OSCI-Nachricht eingestellt oder in einen Content-Container(bei Merhrfachverschlüsselung). Anwendungen können in ein EncryptedDataOSCI-Objekt nur Content-Container (zum Verschlüsseln) einstellen.

Copyright: Copyright (c) 2003

Organisation: bremen online services GmbH & Co. KG

See Also:
ContentContainer, Attachment

Field Summary
static int TYPE_OF_DATA_ATTACHMENT
          Das EncryptedData Objekt hält Attachment Daten
static int TYPE_OF_DATA_CONTENTCONTAINER
          Das EncryptedData Objekt hält Content-Container Daten
static int TYPE_OF_DATA_ENC_DATA
          Das EncryptedData Objekt beinhaltet ein EncryptedData Objekt (wird vom Parser benutzt oder bei Mehrfachverschlüsselung)
static int TYPE_OF_DATA_OSCI_MSG
          Das EncryptedData Objekt hält eine OSCI MSG (Transportverschlüsselung)
 
Constructor Summary
EncryptedDataOSCI(javax.crypto.SecretKey secretKey, java.lang.String encryptionMethodAlgorithm, ContentContainer coco)
          Legt eine EncryptedData-Objekt an, welches als zu verschlüsselnden Inhalt das übergebene MessagePart-Objekt enthält.
 
Method Summary
 ContentContainer decrypt(Role reader)
          Diese Methode entschlüsselt den Inhalt des EncryptedDataOSCI-Objekt mit dem übergebenem Role Objekt.
 void encrypt(byte[] encryptedSymKey, Role reader)
          Diese Methode erstellt die EncryptedData Strukturen ohne den symetrischen Schlüssel noch einmal zu verschlüsseln.
 void encrypt(Role reader)
          Verschlüsselt den geheimen Schlüssel und fügt ihn als EncryptedKey-Element dem EncyptedData-Element hinzu.
 Attachment[] getAttachments()
          Liefert die eingestellten Attachment-Objekte des ContentContainer.
 Role[] getReaders()
          Liefert die eingestellten Role-Objekte des EncryptedData-Objektes, mit dem die Daten verschlüsselt wurden.
 Role[] getRoles()
          Liefert die eingestellten Role-Objekte des EncryptedData-Objektes, welche für die Signatur und/oder Verschlüsselung verwendet wurden.
 java.lang.String getSymEncryptionMethod()
          Liefert den Identifier des symmetrischen Verschlüsselungsalgorithmus
 void writeXML(java.io.OutputStream out)
          Interne Methode, wird von Anwendungen normalerweise nicht aufgerufen.
 
Methods inherited from class de.osci.osci12.messageparts.MessagePart
getRefID, setRefID
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

TYPE_OF_DATA_ATTACHMENT

public static int TYPE_OF_DATA_ATTACHMENT
Das EncryptedData Objekt hält Attachment Daten


TYPE_OF_DATA_CONTENTCONTAINER

public static int TYPE_OF_DATA_CONTENTCONTAINER
Das EncryptedData Objekt hält Content-Container Daten


TYPE_OF_DATA_OSCI_MSG

public static int TYPE_OF_DATA_OSCI_MSG
Das EncryptedData Objekt hält eine OSCI MSG (Transportverschlüsselung)


TYPE_OF_DATA_ENC_DATA

public static int TYPE_OF_DATA_ENC_DATA
Das EncryptedData Objekt beinhaltet ein EncryptedData Objekt (wird vom Parser benutzt oder bei Mehrfachverschlüsselung)

Constructor Detail

EncryptedDataOSCI

public EncryptedDataOSCI(javax.crypto.SecretKey secretKey,
                         java.lang.String encryptionMethodAlgorithm,
                         ContentContainer coco)
                  throws java.security.NoSuchAlgorithmException,
                         java.lang.IllegalArgumentException,
                         de.osci.osci12.encryption.OSCICipherException
Legt eine EncryptedData-Objekt an, welches als zu verschlüsselnden Inhalt das übergebene MessagePart-Objekt enthält.

Parameters:
secretKey - geheimer Schlüssel zum Verschlüsseln der Daten, der wiederum in verschlüsselter Form in die EncryptedKey-Elemente eingetragen wird. Wird als dritter Parameter ein Attachment-Objekt übergeben, so wird dieser erste Parameter ignoriert und der geheime Schlüssel aus dem Attachment-Objekt übernommen.
encryptionMethodAlgorithm - Verschlüsselungsalgorithmus, muß z.Zt. "http://www.w3.org/2001/04/xmlenc#tripledes-cbc" (TDES) sein.
Throws:
java.security.NoSuchAlgorithmException - wenn ein nicht unterstützter Algorothmus übergeben wurde.
java.lang.IllegalArgumentException - wenn das übergebene MessagePart-Objekt nicht von einem der drei erlaubten Typen ist.
de.osci.osci12.encryption.OSCICipherException
Method Detail

decrypt

public ContentContainer decrypt(Role reader)
                         throws de.osci.osci12.encryption.OSCICipherException,
                                OSCIRoleException,
                                java.lang.IllegalArgumentException,
                                java.io.IOException,
                                OSCICancelledException

Diese Methode entschlüsselt den Inhalt des EncryptedDataOSCI-Objekt mit dem übergebenem Role Objekt.

Die Verschlüsselung wird aufgehoben, die entschlüsselten Informationen geparst und ein ContentContainer Objekt aufgebaut und zurückgegeben.

¶m reader enthält die Entschlüsselungsinformationen. Das Role-Objekt muss auf jeden Fall ein Decrypter-Objekt zur Aufhebung der Verschlüsselung enthalten. &return den entschlüsselten ConentContainer

de.osci.osci12.encryption.OSCICipherException
OSCIRoleException
java.lang.IllegalArgumentException
java.io.IOException
OSCICancelledException

encrypt

public void encrypt(byte[] encryptedSymKey,
                    Role reader)
             throws OSCIRoleException,
                    java.io.IOException,
                    de.osci.osci12.encryption.OSCICipherException
Diese Methode erstellt die EncryptedData Strukturen ohne den symetrischen Schlüssel noch einmal zu verschlüsseln. Dies kann bei vielen Verschlüsselungen zu einer schnelleren Verarbeitung mit weniger PIN eingaben führen.

Parameters:
encryptedSymKey - verschlüsselter symmetrischer Schlüssel
reader - Role-Objekt, welches den Leser repräsentiert
OSCIRoleException
java.io.IOException
de.osci.osci12.encryption.OSCICipherException

encrypt

public void encrypt(Role reader)
             throws de.osci.osci12.encryption.OSCICipherException,
                    OSCIRoleException,
                    java.io.IOException
Verschlüsselt den geheimen Schlüssel und fügt ihn als EncryptedKey-Element dem EncyptedData-Element hinzu. Außerdem wird das Rollen-Objekt der Parent- Nachricht (des MessagePart-Objektes) hinzugefügt, so daß das Verschlüsselungszertifikat in der Nachricht enthalten ist.

Parameters:
reader - Rollen-Objekt, für welches verschlüsselt werden soll.
Throws:
OSCIRoleException - wenn dem Rollen-Objekt das erforderliche Verschlüsselungszertifikat fehlt.
de.osci.osci12.encryption.OSCICipherException
java.io.IOException

writeXML

public void writeXML(java.io.OutputStream out)
              throws java.io.IOException
Interne Methode, wird von Anwendungen normalerweise nicht aufgerufen.

Specified by:
writeXML in class MessagePart
Parameters:
out -
Throws:
java.io.IOException

getSymEncryptionMethod

public java.lang.String getSymEncryptionMethod()
Liefert den Identifier des symmetrischen Verschlüsselungsalgorithmus

Returns:
Algorithmus

getAttachments

public Attachment[] getAttachments()
Liefert die eingestellten Attachment-Objekte des ContentContainer.

Returns:
Array der zugehörigen Attachments

getRoles

public Role[] getRoles()
Liefert die eingestellten Role-Objekte des EncryptedData-Objektes, welche für die Signatur und/oder Verschlüsselung verwendet wurden.

Returns:
Array der verwendeten Role-Objekte

getReaders

public Role[] getReaders()
Liefert die eingestellten Role-Objekte des EncryptedData-Objektes, mit dem die Daten verschlüsselt wurden.

Returns:
Array der Verschlüsselungs-Role-Objekte