javax.xml.crypto.dsig

接口
异常
所有超级接口:
URIReference, XMLStructure

public interface Reference
     
extends URIReference, XMLStructure

W3C Recommendation for XML-Signature Syntax and Processing 中定义的 XML Reference 元素的表示形式。XML Schema 的定义如下:


<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>
 

调用 XMLSignatureFactory 类的一个 newReference 方法可以创建 Reference 实例,例如:

XMLSignatureFactory factory = XMLSignatureFactory.getInstance("DOM");
Reference ref = factory.newReference
("http://www.ietf.org/rfc/rfc3275.txt", 
        factory.newDigestMethod(DigestMethod.SHA1, null));
 

从以下版本开始:
1.6
另请参见:
XMLSignatureFactory.newReference(String, DigestMethod), XMLSignatureFactory.newReference(String, DigestMethod, List, String, String)

方法摘要
 byte[] getCalculatedDigestValue()
          返回执行验证操作后计算的此 Reference 的摘要值。
 Data getDereferencedData()
          如果已启用引用缓存,则返回被取消引用的数据。
 InputStream getDigestInputStream()
          如果已启用引用缓存,则返回预整理的输入流。
 DigestMethod getDigestMethod()
          返回此 Reference 的摘要方法。
 byte[] getDigestValue()
          返回此 Reference 的摘要值。
 String getId()
          返回此 Reference 的可选 Id 属性,该属性允许从其他地方引用此 Reference。
 List getTransforms()
          返回一个 不可修改的列表,由包含在此 Reference 中的 Transform 组成。
 boolean validate(XMLValidateContext validateContext)
          验证此引用。
 
从接口 javax.xml.crypto.URIReference 继承的方法
getType, getURI
 
从接口 javax.xml.crypto.XMLStructure 继承的方法
isFeatureSupported
 

方法详细信息

getTransforms

List getTransforms()
返回一个 不可修改的列表,由包含在此 Reference 中的 Transform 组成。

返回:
一个不可修改的 Transform 列表(可以为空,但不能为 null

getDigestMethod

DigestMethod getDigestMethod()
返回此 Reference 的摘要方法。

返回:
摘要方法

getId

String getId()
返回此 Reference 的可选 Id 属性,该属性允许从其他地方引用此 Reference。

返回:
Id 属性(如果未指定,则返回 null

getDigestValue

byte[] getDigestValue()
返回此 Reference 的摘要值。

返回:
原始摘要值,如果此引用没有摘要,则返回 null。每次调用此方法都将返回一个新的副本,以防止随后被修改。

getCalculatedDigestValue

byte[] getCalculatedDigestValue()
返回执行验证操作后计算的此 Reference 的摘要值。如果验证引用失败,则此方法对于调试很有用。

返回:
计算的摘要值;如果尚未验证此引用,则返回 null。每次调用此方法都将返回一个新的副本,以防止随后被修改。

validate

boolean validate(XMLValidateContext validateContext)
                 throws XMLSignatureException
验证此引用。此方法将验证此引用的摘要。

此方法只在首次调用时验证引用。在进行后续调用时,它将返回一个缓存的结果。

参数:
validateContext - 验证的上下文
返回:
如果成功验证此引用,则返回 true;否则返回 false
抛出:
NullPointerException - 如果 validateContextnull
XMLSignatureException - 如果在验证引用时发生不可预料的异常

getDereferencedData

Data getDereferencedData()
如果已启用 引用缓存,则返回被取消引用的数据。在执行验证或生成操作期间取消引用此引用的 URI 时,会产生上述结果。

返回:
被取消引用的数据;如果未启用引用缓存或者没有生成或验证此引用,则返回 null

getDigestInputStream

InputStream getDigestInputStream()
如果已启用 引用缓存,则返回预整理的输入流。这是执行验证或签名操作期间摘要操作的输入。

返回:
包含预整理输入的输入流;如果没有启用引用缓存,或者没有生成或验证此引用,则返回 null