- All Superinterfaces:
URIReference,XMLStructure
public interface Reference extends URIReference, XMLStructure
A representation of the
Reference element as defined in the
W3C Recommendation for XML-Signature Syntax and Processing.
The XML schema is defined as:
<element name="Reference" type="ds:ReferenceType"/>
<complexType name="ReferenceType">
<sequence>
<element ref="ds:Transforms" minOccurs="0"/>
<element ref="ds:DigestMethod"/>
<element ref="ds:DigestValue"/>
</sequence>
<attribute name="Id" type="ID" use="optional"/>
<attribute name="URI" type="anyURI" use="optional"/>
<attribute name="Type" type="anyURI" use="optional"/>
</complexType>
<element name="DigestValue" type="ds:DigestValueType"/>
<simpleType name="DigestValueType">
<restriction base="base64Binary"/>
</simpleType>
A Reference instance may be created by invoking one of the
newReference methods of the
XMLSignatureFactory class; for example:
XMLSignatureFactory factory = XMLSignatureFactory.getInstance("DOM");
Reference ref = factory.newReference
("http://www.ietf.org/rfc/rfc3275.txt",
factory.newDigestMethod(DigestMethod.SHA1, null));
-
Method Summary
Modifier and Type Method Description byte[]getCalculatedDigestValue()Returns the calculated digest value of thisReferenceafter a validation operation.DatagetDereferencedData()Returns the dereferenced data, if reference caching is enabled.InputStreamgetDigestInputStream()Returns the pre-digested input stream, if reference caching is enabled.DigestMethodgetDigestMethod()Returns the digest method of thisReference.byte[]getDigestValue()Returns the digest value of thisReference.StringgetId()Returns the optionalIdattribute of thisReference, which permits this reference to be referenced from elsewhere.List<Transform>getTransforms()booleanvalidate(XMLValidateContext validateContext)Validates this reference.
-
Method Details
-
getTransforms
- Returns:
- an unmodifiable list of
Transforms (may be empty but nevernull)
-
getDigestMethod
DigestMethod getDigestMethod()Returns the digest method of thisReference.- Returns:
- the digest method
-
getId
String getId()Returns the optionalIdattribute of thisReference, which permits this reference to be referenced from elsewhere.- Returns:
- the
Idattribute (may benullif not specified)
-
getDigestValue
byte[] getDigestValue()Returns the digest value of thisReference.- Returns:
- the raw digest value, or
nullif this reference has not been digested yet. Each invocation of this method returns a new clone to protect against subsequent modification.
-
getCalculatedDigestValue
byte[] getCalculatedDigestValue()Returns the calculated digest value of thisReferenceafter a validation operation. This method is useful for debugging if the reference fails to validate.- Returns:
- the calculated digest value, or
nullif this reference has not been validated yet. Each invocation of this method returns a new clone to protect against subsequent modification.
-
validate
Validates this reference. This method verifies the digest of this reference.This method only validates the reference the first time it is invoked. On subsequent invocations, it returns a cached result.
- Parameters:
validateContext- the validating context- Returns:
trueif this reference was validated successfully;falseotherwise- Throws:
NullPointerException- ifvalidateContextisnullXMLSignatureException- if an unexpected exception occurs while validating the reference
-
getDereferencedData
Data getDereferencedData()Returns the dereferenced data, if reference caching is enabled. This is the result of dereferencing the URI of this reference during a validation or generation operation.- Returns:
- the dereferenced data, or
nullif reference caching is not enabled or this reference has not been generated or validated
-
getDigestInputStream
InputStream getDigestInputStream()Returns the pre-digested input stream, if reference caching is enabled. This is the input to the digest operation during a validation or signing operation.- Returns:
- an input stream containing the pre-digested input, or
nullif reference caching is not enabled or this reference has not been generated or validated
-