- 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 thisReference
after a validation operation.Data
getDereferencedData()
Returns the dereferenced data, if reference caching is enabled.InputStream
getDigestInputStream()
Returns the pre-digested input stream, if reference caching is enabled.DigestMethod
getDigestMethod()
Returns the digest method of thisReference
.byte[]
getDigestValue()
Returns the digest value of thisReference
.String
getId()
Returns the optionalId
attribute of thisReference
, which permits this reference to be referenced from elsewhere.List<Transform>
getTransforms()
boolean
validate(XMLValidateContext validateContext)
Validates this reference.
-
Method Details
-
getTransforms
- Returns:
- an unmodifiable list of
Transform
s (may be empty but nevernull
)
-
getDigestMethod
DigestMethod getDigestMethod()Returns the digest method of thisReference
.- Returns:
- the digest method
-
getId
String getId()Returns the optionalId
attribute of thisReference
, which permits this reference to be referenced from elsewhere.- Returns:
- the
Id
attribute (may benull
if not specified)
-
getDigestValue
byte[] getDigestValue()Returns the digest value of thisReference
.- Returns:
- the raw digest value, or
null
if 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 thisReference
after a validation operation. This method is useful for debugging if the reference fails to validate.- Returns:
- the calculated digest value, or
null
if 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:
true
if this reference was validated successfully;false
otherwise- Throws:
NullPointerException
- ifvalidateContext
isnull
XMLSignatureException
- 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
null
if 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
null
if reference caching is not enabled or this reference has not been generated or validated
-