de.osci.osci12.messageparts
Class ContentContainer

java.lang.Object
  extended byde.osci.osci12.messageparts.MessagePart
      extended byde.osci.osci12.messageparts.ContentContainer
All Implemented Interfaces:
java.io.Serializable

public class ContentContainer
extends MessagePart
implements java.io.Serializable

Die ContentContainer-Klasse stellt einen OSCI-Inhaltsdatenscontainer dar. Ein ContentContainer kann einen oder mehrere Content- oder EncryptedData-Objekte enthalten. Attachments werden als Contents eingestellt, die eine Referenz auf das Attachment enthalten.

Ein Content-Container wird als eine Einheit signiert und / oder verschlüsselt.

Copyright © 2008 Freie Hansestadt Bremen

Erstellt von bremen online services Entwicklungs- und Betriebsgesellschaft GmbH & Co. KG

Diese Bibliothek kann von jedermann nach Maßgabe der Bremer Lizenz für freie Softwarebibliotheken genutzt werden.

Die Lizenzbestimmungen können unter der URL www.osci.de abgerufen oder bei der OSCI-Leitstelle, Senator für Finanzen, Freie Hansestadt Bremen, Postfach 10 15 40, 28015 Bremen schriftlich angefordert werden.

Version:
1.3.1
See Also:
Serialized Form

Field Summary
 
Fields inherited from class de.osci.osci12.messageparts.MessagePart
ns
 
Constructor Summary
ContentContainer()
          Legt ein ContentContainer-Objekt an.
 
Method Summary
 void addContent(Content content)
          Fügt dem ContentContainer ein Content-Objekt hinzu.
 void addEncryptedData(EncryptedDataOSCI encryptedDataElement)
          Fügt dem ContentContainer ein EncryptedData-Objekt hinzu.
 boolean checkAllSignatures()
          Überprüft alle Signaturen in dem ContentContainer.
 boolean checkSignature(Role signatureRole)
          Überprüft die Signatur zu dem übergebenen Role Objekt.
 Attachment[] getAttachments()
          Liefert die eingestellten Attachment-Objekte des ContentContainer.
 Content[] getContents()
          Liefert die im ContentContainer enthaltenen Content-Objekte.
 EncryptedDataOSCI[] getEncryptedData()
          Liefert die im ContentContainer enthaltenen verschlüsselten Daten als EncryptedData-Objekte.
 Role[] getRoles()
          Liefert die eingestellten Rollen-Objekte des ContentContainer, welche für die Signatur sowie untergeordnete Verschlüsselungen und Signaturen verwendet wurden.
 OSCISignature[] getSignatures()
          Liefert ein Array mit den Signatur-Objekten.
 Role[] getSigners()
          Liefert die Rollenobjekte, von denen die Signaturen angebracht wurden.
 boolean hasWeakSignature(Role signer, java.util.Date date)
          Durchsucht Inhaltsdatensignaturen nach den verwendeten Algorithmen.
 void removeContent(Content content)
          Entfernt ein Content-Objekt aus dem ContentContainer.
 void removeEncryptedData(EncryptedDataOSCI encryptedDataElement, boolean removeAttachment)
          Entfernt ein EncryptedData-Objekt aus dem ContentContainer.
 void sign(Role signer)
          Signiert den Container mit dem im DialogHandler festgelegten Standardhashalgorithmus (zur Berechnung der Hashwerte der Nachrichtenbestandteile, die in das SignedInfo-Element eingetragen werden).
 void sign(Role signer, java.lang.String digestAlgorithm)
          Diese Methode signiert mit dem angegebenen Rollen-Objekt den kompletten ContentContainer.
 java.lang.String toString()
          undocumented
 
Methods inherited from class de.osci.osci12.messageparts.MessagePart
getLength, getRefID, setNSPrefixes, setNSPrefixes, setRefID
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ContentContainer

public ContentContainer()
Legt ein ContentContainer-Objekt an.

Method Detail

checkSignature

public boolean checkSignature(Role signatureRole)
                       throws de.osci.osci12.signature.OSCISignatureException,
                              OSCIRoleException
Überprüft die Signatur zu dem übergebenen Role Objekt. Zur Installation von ggf. erforderlichen Transformern s. checkAllSignatures(). Bevor eine Signaturprüfung an dem ContentContainer-Objekt durchgeführt werden kann, müssen denjenigen Content-Objekten, die unter Anwendung von Transformationen signiert wurden, die transformierten Daten übergeben werden. Welche Transformationen erforderlich sind, kann (bei Content-Objekten mit Inhaltsdaten) mit Hilfe der Methode getTransformerForSignature() abgefragt werden.

Parameters:
signatureRole - Rollen-Objekt mit dem Zertifikat zur Signatur
Returns:
true, wenn die Prüfung positiv ausgefallen ist
Throws:
de.osci.osci12.signature.OSCISignatureException
OSCIRoleException
See Also:
checkAllSignatures(), Content.setTransformedData(InputStream transformedData), Content.getTransformerForSignature()

getSignatures

public OSCISignature[] getSignatures()
Liefert ein Array mit den Signatur-Objekten. Diesen Objekten können die verwendeten Hash- und Signaturalgorithmen entnommen werden.

Returns:
Signatur-Objekte
See Also:
OSCISignature.signatureAlgorithm, OSCISignature.getDigestMethods()

hasWeakSignature

public boolean hasWeakSignature(Role signer,
                                java.util.Date date)
                         throws OSCIRoleException
Durchsucht Inhaltsdatensignaturen nach den verwendeten Algorithmen. Es wird true zurückgegeben, wenn Referenzen der XML-Signatur oder die Signatur selbst mit Algorithmen erzeugt wurden, die zu dem übergebenen Prüfzeitpunkt als unsicher eingestuft wurden. Wird als Prüfzeitpunkt null übergeben, wird (unabhängig von Fristen) auf die Verwendung von Algorithmen geprüft, die zum Zeitpunkt der Veröffentlichung dieser Implementierung als unsicher eingestuft wurden.

Parameters:
date - Prüfzeitpunkt
Returns:
true, wenn unsichere Algorithmen zur Signatur verwendet wurden, andernfalls false
Throws:
java.lang.IllegalStateException - falls der ContentContainer nicht von dem übergebenen Rollenobjekt signiert ist
OSCIRoleException - wenn beim Zugriff auf das Signatur-Rollenobjekt (z.B. Zertifikat) ein Problem auftritt

checkAllSignatures

public boolean checkAllSignatures()
                           throws OSCIRoleException,
                                  de.osci.osci12.signature.OSCISignatureException
Überprüft alle Signaturen in dem ContentContainer. Die Hinweise zu transformierten Daten (s. checkSignature(Role)) sind zu beachten.

Returns:
true, wenn alle Prüfungen positiv ausgefallen sind
Throws:
OSCIRoleException - wenn z.B. erforderliche Zertifikate fehlen
de.osci.osci12.signature.OSCISignatureException - wenn bei der Prüfung der Signatur ein Fehler auftritt oder der Inhaltsdatencontainer überhaupt nicht signiert wurde.
See Also:
checkSignature(Role)

getAttachments

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

Returns:
Array der referenzierten Attachments

getRoles

public Role[] getRoles()
Liefert die eingestellten Rollen-Objekte des ContentContainer, welche für die Signatur sowie untergeordnete Verschlüsselungen und Signaturen verwendet wurden.

Returns:
Array der Rollenobjekte

sign

public void sign(Role signer)
          throws OSCIException,
                 java.security.NoSuchAlgorithmException,
                 java.security.SignatureException,
                 java.io.IOException
Signiert den Container mit dem im DialogHandler festgelegten Standardhashalgorithmus (zur Berechnung der Hashwerte der Nachrichtenbestandteile, die in das SignedInfo-Element eingetragen werden). Der Signaturalgorithmus wird von der verwendeten Signer-Implementierung festgelegt.

Parameters:
signer - Role-Objekt mit dem Signer-Objekt
Throws:
java.io.IOException - bei Schreib-/Lesefehlern
java.security.NoSuchAlgorithmException - wenn für ein enthaltenes Content-, EncryptedData- oder Attachment-Objekt ein nicht unterstützter Hashalgorithmus gesetzt wurde oder wenn für das übergebene Role-Objekt ein nicht unterstützter Signieralgorithmus gesetzt wurde
OSCIRoleException - wenn für das übergebene Rollenobjekt kein Signer-Objekt gesetzt wurde oder diesem das erforderliche Signaturzertifikat fehlt
java.security.SignatureException - wenn beim Signaturvorgang ein Fehler aufgetreten ist
OSCIException
See Also:
sign(Role, String), DialogHandler.setDigestAlgorithm(String), Signer.getAlgorithm()

sign

public void sign(Role signer,
                 java.lang.String digestAlgorithm)
          throws OSCIException,
                 java.security.NoSuchAlgorithmException,
                 java.security.SignatureException,
                 java.io.IOException
Diese Methode signiert mit dem angegebenen Rollen-Objekt den kompletten ContentContainer. Der Signaturalgorithmus wird von der verwendeten Signer-Implementierung festgelegt. Hinweis: Wenn der ContentContainer einen verschlüsselten ContentContainer (EncryptedDataOSCI) enthält, so werden die (ebenfalls verschlüsselten) Attachments, die ggf. in diesem Container referenziert sind, nicht mit signiert. Der Grund ist, dass bei einer Signaturprüfung Refenzen auf Attachments im verschlüsselten ContentContainer nicht überprüft werden können.

Parameters:
signer - Role-Objekt mit dem Signer-Objekt
digestAlgorithm - Hashalgorithmus, der für die Berechnung der Hashwerte im SignedInfo-Element verwendet werden soll.
Throws:
java.io.IOException - bei Schreib-/Lesefehlern
java.security.NoSuchAlgorithmException - wenn für ein enthaltenes Content-, EncryptedData- oder Attachment-Objekt ein nicht unterstützter Hashalgorithmus gesetzt wurde oder wenn für das übergebene Role-Objekt ein nicht unterstützter Signieralgorithmus gesetzt wurde
OSCIRoleException - wenn für das übergebene Rollenobjekt kein Signer-Objekt gesetzt wurde oder diesem das erforderliche Signaturzertifikat fehlt
java.security.SignatureException - wenn beim Signaturvorgang ein Fehler aufgetreten ist
OSCIException
See Also:
Signer.getAlgorithm()

getSigners

public Role[] getSigners()
Liefert die Rollenobjekte, von denen die Signaturen angebracht wurden.

Returns:
Array der Rollenobjekte

addContent

public void addContent(Content content)
Fügt dem ContentContainer ein Content-Objekt hinzu.

Parameters:
content - das hinzuzufügende Content-Objekt
See Also:
Content

getContents

public Content[] getContents()
Liefert die im ContentContainer enthaltenen Content-Objekte.

Returns:
content Array der enthaltenen Content-Objekt
See Also:
Content

removeContent

public void removeContent(Content content)
                   throws java.lang.IllegalArgumentException
Entfernt ein Content-Objekt aus dem ContentContainer.

Parameters:
content - das zu entfernende Content-Objekt
Throws:
java.lang.IllegalStateException - wenn der ContentContainer signiert ist
java.lang.IllegalArgumentException
See Also:
Content

addEncryptedData

public void addEncryptedData(EncryptedDataOSCI encryptedDataElement)
Fügt dem ContentContainer ein EncryptedData-Objekt hinzu.

Parameters:
encryptedDataElement - das hinzuzufügende EncryptedData-Objekt
See Also:
EncryptedDataOSCI

removeEncryptedData

public void removeEncryptedData(EncryptedDataOSCI encryptedDataElement,
                                boolean removeAttachment)
                         throws java.lang.IllegalStateException
Entfernt ein EncryptedData-Objekt aus dem ContentContainer. Der zweite Parameter gibt an, ob bei EncryptedData-Objekten, die ein verschlüsseltes Attachment referenzieren, dieses aus dem ContentContainer entfernt wird. Dies ist von Bedeutung, wenn ein Attachment in mehreren EncryptedData-Objekten referenziert wird.

Parameters:
encryptedDataElement - das zu entfernende EncryptedDataOSCI-Objekt
removeAttachment - true -> Attachments, welche im EncryptedData-Objekt referenziert sind, werden ebenfalls aus dem ContentContainer entfernt
Throws:
java.lang.IllegalStateException - wenn der ContentContainer signiert ist
See Also:
EncryptedDataOSCI

getEncryptedData

public EncryptedDataOSCI[] getEncryptedData()
Liefert die im ContentContainer enthaltenen verschlüsselten Daten als EncryptedData-Objekte.

Returns:
Array der enthaltenen EncryptedData-Objekte
See Also:
EncryptedDataOSCI

toString

public java.lang.String toString()
undocumented

Returns:
undocumented


Copyright © 2008. All Rights Reserved.