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-Conatiner(bei Merhrfachverschlüsselung) und kann selbst entweder ein Content-Container enthalten (Normalfall), eine OSCI-Nachricht (für die Transportverschlüsselung) oder ein EncryptedData-Objekt (für den Parser).

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(de.osci.osci12.encryption.EncryptedData encryptedData, OSCIMessage osciMsg)
          Dieser Konstruktor wird beim parsen aufgerufen
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
 java.lang.Object decrypt(Role reader)
          Decryptet das EncryptedData OBject und liefer ein MessagePart oder einen Inputstream als Return-Wert wobei der MessagePart ein Attachment, Content oder ContentContainer Objekt sein kann.
 void encrypt(byte[] encryptedSymKey, Role reader)
          Diese Methode benutzt ein schon verschlüsselten symetrischen Schlüssel zum vervollkommen der Signature Elemente
 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.
 java.io.InputStream getEncryptedDataStream()
           
 Role[] getReaders()
           
 java.lang.String getReferenceId()
           
 Role[] getRoles()
          liefert die Eingestellten Role Objekte des ContentContainer, welche für die Signatur verwendet wurden.
 java.lang.String getSymEncryptionMethod()
          DOCUMENT ME!
 int getTypeOfData()
           
 void writeXML(java.io.OutputStream out)
          Interne Methode, wird von Anwendungen normalerweise nicht aufgerufen.
 
Methods inherited from class de.osci.osci12.messageparts.MessagePart
addTransformerForSignature, getDigestMethodAlgorithm, getDigestValue, getRefID, getTransformerForSignature, setDigestMethodAlgorithm, setRefID, toString
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, 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,
                         java.io.IOException,
                         java.lang.Exception
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.
java.io.IOException
java.lang.Exception

EncryptedDataOSCI

public EncryptedDataOSCI(de.osci.osci12.encryption.EncryptedData encryptedData,
                         OSCIMessage osciMsg)
                  throws java.io.IOException
Dieser Konstruktor wird beim parsen aufgerufen

Parameters:
encryptedData -
Throws:
java.io.IOException
Method Detail

getReferenceId

public java.lang.String getReferenceId()

decrypt

public java.lang.Object decrypt(Role reader)
                         throws OSCIRoleException,
                                org.xml.sax.SAXException,
                                java.io.IOException,
                                java.security.NoSuchAlgorithmException,
                                javax.crypto.NoSuchPaddingException,
                                java.security.InvalidKeyException,
                                javax.xml.parsers.ParserConfigurationException,
                                de.osci.osci12.encryption.OSCICipherException,
                                OSCICancelledException
Decryptet das EncryptedData OBject und liefer ein MessagePart oder einen Inputstream als Return-Wert wobei der MessagePart ein Attachment, Content oder ContentContainer Objekt sein kann. ¶m reader enthält die Entschlüsselungsinformationen. Das Role-Objekt muss auf jeden Fall ein Decrypter Objekt enthalten. &return liefert das decrypted MessagePart-Objekt (Attachment, Content oder ConentContainer)

OSCIRoleException
org.xml.sax.SAXException
java.io.IOException
java.security.NoSuchAlgorithmException
javax.crypto.NoSuchPaddingException
java.security.InvalidKeyException
javax.xml.parsers.ParserConfigurationException
de.osci.osci12.encryption.OSCICipherException
OSCICancelledException

encrypt

public void encrypt(byte[] encryptedSymKey,
                    Role reader)
             throws java.lang.Exception
Diese Methode benutzt ein schon verschlüsselten symetrischen Schlüssel zum vervollkommen der Signature Elemente

Parameters:
encryptedSymKey - verschlüsselter symetrischer Schlüssel
java.lang.Exception

encrypt

public void encrypt(Role reader)
             throws OSCIRoleException,
                    java.lang.Exception
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 enthalten ist.

Parameters:
reader - Rollen-Objekt, für welches verschlüsselt werden soll.
Throws:
OSCIRoleException - wenn dem Rollen-Objekt das erforderliche Verschlüsselungszertifikat fehlt.
java.lang.Exception

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()
DOCUMENT ME!

Returns:
DOCUMENT ME!

getEncryptedDataStream

public java.io.InputStream getEncryptedDataStream()
                                           throws java.io.IOException
java.io.IOException

getAttachments

public Attachment[] getAttachments()
liefert die Eingestellten Attachment Objekte des ContentContainer.


getRoles

public Role[] getRoles()
liefert die Eingestellten Role Objekte des ContentContainer, welche für die Signatur verwendet wurden.


getReaders

public Role[] getReaders()

getTypeOfData

public int getTypeOfData()