Package de.consist.bmu.rule.xmlsec
Class XmlSecFassade
java.lang.Object
de.consist.bmu.rule.xmlsec.XmlSecFassade
Fassade um xmlsec.jar
Eigentlich wollten wir Java 6 einsetzen, weil dort gemäß JSR-105 das XML
Signature API Bestandteil der RT ist. Nun müssen wir die Library xmlsec.jar
selbst einbinden.
Die Methode pruefeSignaturen() liefert ein boolean zurück, dass Auskunft über
den Status der Signaturprüfung gibt.
Done: Alternative für HexDumpEncoder einsetzen (z.B. Hex aus Apache Commons
Codec).
TODO Womöglich validieren eines frisch geparsten Dokuments erforderlich
(Validierung und Defaultwerte); das hat sich wohl erledigt?
TODO Hinweis: Sicherheitsprobleme durch präparierte XML-Signaturen
http://www.heise.de/newsticker/meldung/93924/
TODO SHA1 ist eigentlich nicht mehr zulässig, aber es hängt vom Zertifikat
ab, ob andere Algorithmen unterstützt werden
FIXME MD5 müsste eigentlich abgelehnt werden.
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionstatic XmlSecFassade
boolean
init()
Allgemeine Initialisierung von XMLSEC.static boolean
static boolean
static boolean
Lädt den Security-Provider BouncyCastle.boolean
pruefeSignaturen
(Document doc, boolean signatureMustExist, String sigID) Deprecated.Deutsche Funktionsnamen sind nicht professionellprotected boolean
pruefeSignaturen0
(Document doc, boolean signatureMustExist, String sigID) Deprecated.Deutsche Funktionsnamen sind nicht professionellstatic void
setUseJSR105
(boolean useJSR105) unmarshalECDSAKeyValue
(Element kvtElem) boolean
validateX509Certificate
(Element sigElem) boolean
verifySignature
(Document doc, String sigId) boolean
verifySignatureApache
(Element signElement) Check Signatures using apache xmlsec implementation.verifySignatures
(Document doc)
-
Field Details
-
XPATH_INTERSECT
XPath-Intersect-Filter.- See Also:
-
XPATH_SUBTRACT_INCLUDE_PREVIOUS_SIG
XPath-Subtract-Filter (schliesst vorhandene Signatur ein).- See Also:
-
XPATH_SUBTRACT_EXCLUDE_PREVIOUS_SIG
XPath-Subtract-Filter (schliesst vorhandene Signatur nicht ein).- See Also:
-
-
Method Details
-
getInstance
- Returns:
- XmlSecFassade
-
isUseJSR105
public static boolean isUseJSR105()- Returns:
- Gibt an, ob die JSR 105 (Java XML Digital Signature) API bei der Validierung der Signaturen verwendet wird
-
isBcFirst
public static boolean isBcFirst() -
setUseJSR105
public static void setUseJSR105(boolean useJSR105) - Parameters:
useJSR105
- Gibt an, ob die JSR 105 (Java XML Digital Signature) API bei der Validierung der Signaturen verwendet werden soll
-
init
public boolean init()Allgemeine Initialisierung von XMLSEC.- Returns:
- boolean
-
loadBouncyCastle
public static boolean loadBouncyCastle()Lädt den Security-Provider BouncyCastle.- Returns:
- boolean
-
pruefeSignaturen
@Deprecated public boolean pruefeSignaturen(Document doc, boolean signatureMustExist, String sigID) throws XmlSecException Deprecated.Deutsche Funktionsnamen sind nicht professionell- Parameters:
doc
- das Document, dass die zu prüfenden Signaturen enthältsignatureMustExist
- legt fest, ob Signaturen vorhanden sein müssensigID
- String- Returns:
- true, wenn Signaturen gültig, false wenn Signaturen ungültig
- Throws:
XmlSecException
- XmlSecException
-
verifySignatures
- Parameters:
doc
- Document- Returns:
- List
- Throws:
XmlSecException
- XmlSecException
-
verifySignature
- Parameters:
doc
- DocumentsigId
- String- Returns:
- boolean
- Throws:
XmlSecException
- XmlSecException
-
verifySignatureApache
Check Signatures using apache xmlsec implementation.- Parameters:
signElement
- Element- Returns:
- true, wenn Signaturen gültig, false wenn Signaturen ungültig
- Throws:
XmlSecException
- XmlSecException
-
unmarshalECDSAKeyValue
- Throws:
MarshalException
-
validateX509Certificate
- Parameters:
sigElem
- Signatur-Element- Returns:
- true, wenn das X509Certificate zum KeyValue passt, sonst false
-
pruefeSignaturen0
@Deprecated protected boolean pruefeSignaturen0(Document doc, boolean signatureMustExist, String sigID) throws MarshalException, XMLSignatureException, XmlSecException Deprecated.Deutsche Funktionsnamen sind nicht professionell- Parameters:
doc
-signatureMustExist
-sigID
-- Returns:
- true, wenn Signaturen gültig, false wenn Signaturen ungültig
- Throws:
MarshalException
XMLSignatureException
XmlSecException
-