Class DOMReference
- java.lang.Object
-
- org.apache.jcp.xml.dsig.internal.dom.DOMStructure
-
- org.apache.jcp.xml.dsig.internal.dom.DOMReference
-
- All Implemented Interfaces:
javax.xml.crypto.dom.DOMURIReference,javax.xml.crypto.dsig.Reference,javax.xml.crypto.URIReference,javax.xml.crypto.XMLStructure
public final class DOMReference extends DOMStructure implements javax.xml.crypto.dsig.Reference, javax.xml.crypto.dom.DOMURIReference
DOM-based implementation of Reference.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<javax.xml.crypto.dsig.Transform>allTransformsprivate javax.xml.crypto.DataappliedTransformDataprivate byte[]calcDigestValueprivate javax.xml.crypto.DataderefDataprivate booleandigestedprivate javax.xml.crypto.dsig.DigestMethoddigestMethodprivate byte[]digestValueprivate java.io.InputStreamdisprivate org.w3c.dom.Attrhereprivate java.lang.Stringidprivate static org.slf4j.LoggerLOGstatic intMAXIMUM_TRANSFORM_COUNTThe maximum number of transforms per reference, if secure validation is enabled.private java.security.MessageDigestmdprivate java.security.Providerproviderprivate org.w3c.dom.ElementrefElemprivate java.util.List<javax.xml.crypto.dsig.Transform>transformsprivate java.lang.Stringtypeprivate java.lang.Stringuriprivate static booleanuseC14N11Look up useC14N11 system property.private booleanvalidatedprivate booleanvalidationStatus
-
Constructor Summary
Constructors Constructor Description DOMReference(java.lang.String uri, java.lang.String type, javax.xml.crypto.dsig.DigestMethod dm, java.util.List<? extends javax.xml.crypto.dsig.Transform> transforms, java.lang.String id, java.security.Provider provider)Creates aReferencefrom the specified parameters.DOMReference(java.lang.String uri, java.lang.String type, javax.xml.crypto.dsig.DigestMethod dm, java.util.List<? extends javax.xml.crypto.dsig.Transform> appliedTransforms, javax.xml.crypto.Data result, java.util.List<? extends javax.xml.crypto.dsig.Transform> transforms, java.lang.String id, byte[] digestValue, java.security.Provider provider)DOMReference(java.lang.String uri, java.lang.String type, javax.xml.crypto.dsig.DigestMethod dm, java.util.List<? extends javax.xml.crypto.dsig.Transform> appliedTransforms, javax.xml.crypto.Data result, java.util.List<? extends javax.xml.crypto.dsig.Transform> transforms, java.lang.String id, java.security.Provider provider)DOMReference(org.w3c.dom.Element refElem, javax.xml.crypto.XMLCryptoContext context, java.security.Provider provider)Creates aDOMReferencefrom an element.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static javax.xml.crypto.DatacopyDerefData(javax.xml.crypto.Data dereferencedData)private javax.xml.crypto.Datadereference(javax.xml.crypto.XMLCryptoContext context)voiddigest(javax.xml.crypto.dsig.XMLSignContext signContext)booleanequals(java.lang.Object o)byte[]getCalculatedDigestValue()javax.xml.crypto.DatagetDereferencedData()java.io.InputStreamgetDigestInputStream()javax.xml.crypto.dsig.DigestMethodgetDigestMethod()byte[]getDigestValue()org.w3c.dom.NodegetHere()java.lang.StringgetId()java.util.List<javax.xml.crypto.dsig.Transform>getTransforms()java.lang.StringgetType()java.lang.StringgetURI()inthashCode()(package private) booleanisDigested()voidmarshal(org.w3c.dom.Node parent, java.lang.String dsPrefix, javax.xml.crypto.dom.DOMCryptoContext context)private byte[]transform(javax.xml.crypto.Data dereferencedData, javax.xml.crypto.XMLCryptoContext context)booleanvalidate(javax.xml.crypto.dsig.XMLValidateContext validateContext)-
Methods inherited from class org.apache.jcp.xml.dsig.internal.dom.DOMStructure
isFeatureSupported
-
-
-
-
Field Detail
-
MAXIMUM_TRANSFORM_COUNT
public static final int MAXIMUM_TRANSFORM_COUNT
The maximum number of transforms per reference, if secure validation is enabled.- See Also:
- Constant Field Values
-
useC14N11
private static boolean useC14N11
Look up useC14N11 system property. If true, an explicit C14N11 transform will be added if necessary when generating the signature. See section 3.1.1 of http://www.w3.org/2007/xmlsec/Drafts/xmldsig-core/ for more info. If true, overrides the same property if set in the XMLSignContext.
-
LOG
private static final org.slf4j.Logger LOG
-
digestMethod
private final javax.xml.crypto.dsig.DigestMethod digestMethod
-
id
private final java.lang.String id
-
transforms
private final java.util.List<javax.xml.crypto.dsig.Transform> transforms
-
allTransforms
private java.util.List<javax.xml.crypto.dsig.Transform> allTransforms
-
appliedTransformData
private final javax.xml.crypto.Data appliedTransformData
-
here
private org.w3c.dom.Attr here
-
uri
private final java.lang.String uri
-
type
private final java.lang.String type
-
digestValue
private byte[] digestValue
-
calcDigestValue
private byte[] calcDigestValue
-
refElem
private org.w3c.dom.Element refElem
-
digested
private boolean digested
-
validated
private boolean validated
-
validationStatus
private boolean validationStatus
-
derefData
private javax.xml.crypto.Data derefData
-
dis
private java.io.InputStream dis
-
md
private java.security.MessageDigest md
-
provider
private java.security.Provider provider
-
-
Constructor Detail
-
DOMReference
public DOMReference(java.lang.String uri, java.lang.String type, javax.xml.crypto.dsig.DigestMethod dm, java.util.List<? extends javax.xml.crypto.dsig.Transform> transforms, java.lang.String id, java.security.Provider provider)Creates aReferencefrom the specified parameters.- Parameters:
uri- the URI (may be null)type- the type (may be null)dm- the digest methodtransforms- a list ofTransforms. The list is defensively copied to protect against subsequent modification. May benullor empty.id- the reference ID (may benull)- Throws:
java.lang.NullPointerException- ifdmisnulljava.lang.ClassCastException- if any of thetransformsare not of typeTransform
-
DOMReference
public DOMReference(java.lang.String uri, java.lang.String type, javax.xml.crypto.dsig.DigestMethod dm, java.util.List<? extends javax.xml.crypto.dsig.Transform> appliedTransforms, javax.xml.crypto.Data result, java.util.List<? extends javax.xml.crypto.dsig.Transform> transforms, java.lang.String id, java.security.Provider provider)
-
DOMReference
public DOMReference(java.lang.String uri, java.lang.String type, javax.xml.crypto.dsig.DigestMethod dm, java.util.List<? extends javax.xml.crypto.dsig.Transform> appliedTransforms, javax.xml.crypto.Data result, java.util.List<? extends javax.xml.crypto.dsig.Transform> transforms, java.lang.String id, byte[] digestValue, java.security.Provider provider)
-
DOMReference
public DOMReference(org.w3c.dom.Element refElem, javax.xml.crypto.XMLCryptoContext context, java.security.Provider provider) throws javax.xml.crypto.MarshalExceptionCreates aDOMReferencefrom an element.- Parameters:
refElem- a Reference element- Throws:
javax.xml.crypto.MarshalException
-
-
Method Detail
-
getDigestMethod
public javax.xml.crypto.dsig.DigestMethod getDigestMethod()
- Specified by:
getDigestMethodin interfacejavax.xml.crypto.dsig.Reference
-
getId
public java.lang.String getId()
- Specified by:
getIdin interfacejavax.xml.crypto.dsig.Reference
-
getURI
public java.lang.String getURI()
- Specified by:
getURIin interfacejavax.xml.crypto.URIReference
-
getType
public java.lang.String getType()
- Specified by:
getTypein interfacejavax.xml.crypto.URIReference
-
getTransforms
public java.util.List<javax.xml.crypto.dsig.Transform> getTransforms()
- Specified by:
getTransformsin interfacejavax.xml.crypto.dsig.Reference
-
getDigestValue
public byte[] getDigestValue()
- Specified by:
getDigestValuein interfacejavax.xml.crypto.dsig.Reference
-
getCalculatedDigestValue
public byte[] getCalculatedDigestValue()
- Specified by:
getCalculatedDigestValuein interfacejavax.xml.crypto.dsig.Reference
-
marshal
public void marshal(org.w3c.dom.Node parent, java.lang.String dsPrefix, javax.xml.crypto.dom.DOMCryptoContext context) throws javax.xml.crypto.MarshalException- Specified by:
marshalin classDOMStructure- Throws:
javax.xml.crypto.MarshalException
-
digest
public void digest(javax.xml.crypto.dsig.XMLSignContext signContext) throws javax.xml.crypto.dsig.XMLSignatureException- Throws:
javax.xml.crypto.dsig.XMLSignatureException
-
validate
public boolean validate(javax.xml.crypto.dsig.XMLValidateContext validateContext) throws javax.xml.crypto.dsig.XMLSignatureException- Specified by:
validatein interfacejavax.xml.crypto.dsig.Reference- Throws:
javax.xml.crypto.dsig.XMLSignatureException
-
getDereferencedData
public javax.xml.crypto.Data getDereferencedData()
- Specified by:
getDereferencedDatain interfacejavax.xml.crypto.dsig.Reference
-
getDigestInputStream
public java.io.InputStream getDigestInputStream()
- Specified by:
getDigestInputStreamin interfacejavax.xml.crypto.dsig.Reference
-
dereference
private javax.xml.crypto.Data dereference(javax.xml.crypto.XMLCryptoContext context) throws javax.xml.crypto.dsig.XMLSignatureException- Throws:
javax.xml.crypto.dsig.XMLSignatureException
-
transform
private byte[] transform(javax.xml.crypto.Data dereferencedData, javax.xml.crypto.XMLCryptoContext context) throws javax.xml.crypto.dsig.XMLSignatureException- Throws:
javax.xml.crypto.dsig.XMLSignatureException
-
getHere
public org.w3c.dom.Node getHere()
- Specified by:
getHerein interfacejavax.xml.crypto.dom.DOMURIReference
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
isDigested
boolean isDigested()
-
copyDerefData
private static javax.xml.crypto.Data copyDerefData(javax.xml.crypto.Data dereferencedData)
-
-