de.osci.osci12.messageparts
Class Attachment

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

public class Attachment
extends MessagePart

Attachment

Die Attachment-Klasse repräsentiert einen Anhang einer OSCI-Nachricht. Attachments werden in Content-Objekten referenziert. Sie haben neben der RefID, die dem referenzierenden Content-Eintrag entspricht, noch einen Namen (z.B. der Dateiname), mit dem der MIME-Boundary-Abschnitt selbst bezeichnet wird. Dieser muß innerhalb der Nachricht eindeutig sein. Ein Attachment kann mit einem eigenem symmetrischen Schlüssel versehen werden.

Copyright: Copyright (c) 2003

Organisation: bremen online services GmbH & Co. KG

See Also:
Content, ContentContainer

Field Summary
 byte[] digestValue
          Hashwert
 long length
          die Länge des Attachments in Bytes
static int STATE_OF_ATTACHMENT_CLIENT
           
static int STATE_OF_ATTACHMENT_ENCRYPTED
           
static int STATE_OF_ATTACHMENT_PARSING
           
 
Constructor Summary
Attachment(java.io.InputStream ins, java.lang.String refId)
          Erzeugt ein neues Attachment-Objekt aus dem InputStream.
Attachment(java.io.InputStream ins, java.lang.String refId, javax.crypto.SecretKey secretKey)
          Erzeugt ein neues Attachment-Objekt aus dem InputStream.
Attachment(java.io.InputStream ins, java.lang.String refId, java.lang.String symmetricCipherAlgorithm)
          Erzeugt ein neues Attachment-Objekt aus dem InputStream.
 
Method Summary
 java.lang.String getContentType()
          Diese Methode liefert den Content der Binärdaten im Mime Format
 byte[] getDigestValue()
          Liefert den Hashwert des Attachments.
 byte[] getEncryptedDigestValue()
          Liefert den Hashwert nach der Verschlüsselung für die Nachrichtensignatur
 long getLength()
          Diese Methode liefert die Länge des Attachments in Byte
 java.io.InputStream getStream()
          Liefert den InputStream der Daten zurück, wenn das Attachment einer empfangenen Nachricht entnommen wurde.
 boolean isEncrypted()
          Liefert true, wenn es sich um ein verschlüsseltes Attachment handelt.
 void setContentType(java.lang.String contentType)
          Diese Methode setzt den Content-Type (Http-Content-Type) der Binärdaten
 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

STATE_OF_ATTACHMENT_CLIENT

public static final int STATE_OF_ATTACHMENT_CLIENT
See Also:
Constant Field Values

STATE_OF_ATTACHMENT_PARSING

public static final int STATE_OF_ATTACHMENT_PARSING
See Also:
Constant Field Values

STATE_OF_ATTACHMENT_ENCRYPTED

public static final int STATE_OF_ATTACHMENT_ENCRYPTED
See Also:
Constant Field Values

length

public long length
die Länge des Attachments in Bytes


digestValue

public byte[] digestValue
Hashwert

Constructor Detail

Attachment

public Attachment(java.io.InputStream ins,
                  java.lang.String refId,
                  java.lang.String symmetricCipherAlgorithm)
           throws java.lang.IllegalArgumentException,
                  OSCISignatureException,
                  java.io.IOException
Erzeugt ein neues Attachment-Objekt aus dem InputStream. Zur Zeit wird nur TDES für die symmetrische Verschlüsselung unterstützt.

Parameters:
ins - der InputStream, aus dem die Daten gelesen und an die Nachricht angehängt werden.
symmetricCipherAlgorithm - symmetrischer Verschlüsselungsalgorithmus. Die (später) möglichen Werte sind Constants.SYMMETRIC_CIPHER_ALGORITHM_TDES_CBC und Constants.SYMMETRIC_CIPHER_ALGORITHM_AES128, -129, -256.
See Also:
Constants

Attachment

public Attachment(java.io.InputStream ins,
                  java.lang.String refId,
                  javax.crypto.SecretKey secretKey)
           throws java.lang.IllegalArgumentException,
                  OSCISignatureException,
                  java.io.IOException
Erzeugt ein neues Attachment-Objekt aus dem InputStream. Der geheime Schlüssel wird für die Verschlüsselung des Attachments benutzt.

Parameters:
ins - der InputStream, aus dem die Daten gelesen und an die Nachricht angehängt werden.
secretKey - der Secret-Key mit dem verschlüsselt werden soll. Zur Zeit wird nur TDES für die symmetrische Verschlüsselung unterstützt. Der übergebene Schlüssel muß daher für diesem Algorithmus anwendbar sein. Wird dieser Parameter mit 'null' übergeben, wird ein neuer TripleDES-Schlüssel erzeugt.

Attachment

public Attachment(java.io.InputStream ins,
                  java.lang.String refId)
           throws java.lang.IllegalArgumentException,
                  OSCISignatureException,
                  java.io.IOException
Erzeugt ein neues Attachment-Objekt aus dem InputStream. Das Attachment wird unverschlüsselt übertragen.

Parameters:
ins - der InputStream, aus dem die Daten gelesen und an die Nachricht angehängt werden.
refId - Name des Anhangs, z.B. Dateiname. Dieser Name muß innerhalb der Nachricht, an die das Attachment gehängt wird, eindeutig sein.
Method Detail

getLength

public long getLength()
Diese Methode liefert die Länge des Attachments in Byte

Returns:
Länge des Attachments

getStream

public java.io.InputStream getStream()
                              throws de.osci.osci12.encryption.OSCICipherException,
                                     java.io.IOException
Liefert den InputStream der Daten zurück, wenn das Attachment einer empfangenen Nachricht entnommen wurde.

Returns:
den InputStream der Anhangsdaten, oder null, wenn die Nachricht nicht empfangen (d.h. mit Hilfe eine Konstruktors erzeugt wurde).
de.osci.osci12.encryption.OSCICipherException
java.io.IOException

getContentType

public java.lang.String getContentType()
Diese Methode liefert den Content der Binärdaten im Mime Format

Returns:
Content-Type der Binärdaten #setContentType(String)

setContentType

public void setContentType(java.lang.String contentType)
Diese Methode setzt den Content-Type (Http-Content-Type) der Binärdaten

Parameters:
contentType - Content-Type der Binärdaten, sollte ein gültiges Mime-Format sein (z.B. 'text/html' oder 'image/gif') #getContentType()

getDigestValue

public byte[] getDigestValue()
                      throws java.io.IOException
Liefert den Hashwert des Attachments.

Overrides:
getDigestValue in class MessagePart
Returns:
Hashwert des Attachments
java.io.IOException

writeXML

public void writeXML(java.io.OutputStream out)
              throws java.io.IOException
Interne Methode, wird von Anwendungen normalerweise nicht aufgerufen. Sie serialisiert das MIME-Boundary des Attachment.

Specified by:
writeXML in class MessagePart
Parameters:
out - Outputstream, in den das Attachment serialisiert wird
Throws:
java.io.IOException

isEncrypted

public boolean isEncrypted()
Liefert true, wenn es sich um ein verschlüsseltes Attachment handelt.

Returns:
verschlüsselt -> true, unverschlüsselt -> false

getEncryptedDigestValue

public byte[] getEncryptedDigestValue()
Liefert den Hashwert nach der Verschlüsselung für die Nachrichtensignatur

Returns:
Hashwert