包 javax.xml.crypto.dsig
包javax.xml.crypto.dsig
用于生成和验证 XML 数字签名的类。此包包含表示 W3C XML 数字签名规范中定义的核心元素的类:
XMLSignature 、SignedInfo 、CanonicalizationMethod 、SignatureMethod 、Reference 、DigestMethod 、XMLObject 、Manifest 、SignatureProperties 和 SignatureProperty 。 KeyInfo 类型在 javax.xml.crypto.dsig.keyinfo 子包中定义。 XMLSignatureFactory 是一个抽象工厂,它从头开始或从预先存在的 XML 表示(例如 DOM 节点)创建 XMLSignature 对象。 TransformService 是一个服务提供商接口,用于创建和插入转换和规范化算法的实现。
此包中最重要的是 XMLSignature 类,它允许您签署和验证 XML 数字签名。
服务提供商
服务提供者是抽象XMLSignatureFactory 和 KeyInfoFactory 类的具体实现,负责创建解析、生成和验证 XML 签名和 KeyInfo 结构的对象和算法。 XMLSignatureFactory 的具体实现必须支持 W3C 对 XML 签名的建议所指定的每个必需算法。它可以支持 W3C 推荐或其他规范定义的其他算法。
API 利用 JCA 提供程序模型(请参阅 the Provider class )来注册和加载 XMLSignatureFactory 和 KeyInfoFactory 实现。
每个具体的 XMLSignatureFactory 或 KeyInfoFactory 实现都支持一种特定的 XML 机制类型,该类型标识一个实现在内部用于解析和生成 XML 签名和 KeyInfo 结构的 XML 处理机制。
服务提供者实现应该使用底层 JCA 引擎类,例如 Signature 和 MessageDigest 来执行加密操作。
除了 XMLSignatureFactory 和 KeyInfoFactory 类之外,API 还支持用于转换和规范化算法的服务提供者接口。 TransformService 类允许您为特定 XML 机制类型开发和插入特定转换或规范化算法的实现。 TransformService 类使用标准 JCA 提供程序模型来注册和加载实现。每个服务提供者实现应该使用 TransformService 类来查找支持在它正在生成或验证的 XML 签名中转换和规范化算法的提供者。
DOM机制需求
在实现基于 DOM 的XMLSignatureFactory 、 KeyInfoFactory 或 TransformService 时必须遵守以下要求,以尽量减少互操作性问题:
XMLSignatureFactory的unmarshalXMLSignature方法必须支持DOMValidateContext类型。如果类型是DOMValidateContext,它应该包含一个Element类型的签名。此外,unmarshalXMLSignature方法可以填充传入的DOMValidateContext的 Id/Element 映射。XMLSignatureFactory生成的XMLSignature的sign方法必须支持DOMSignContext类型,validate方法必须支持DOMValidateContext类型。此要求也适用于SignatureValue的validate方法和Reference的validate方法。- 实现必须支持
DOMStructures 作为应用程序指定可扩展内容(任何元素或混合内容)的机制。 - 如果用户指定的
URIDereferencer的dereference方法返回NodeSetData对象,则iterator方法必须返回对org.w3c.dom.Node类型对象的迭代。 - 传递给用户指定的
URIDereferencer的dereference方法的URIReference对象必须是DOMURIReference类型,XMLCryptoContext对象必须实现DOMCryptoContext。 - 前 2 个要求也适用于
XMLSignatureFactory和KeyInfoFactory的getURIDereferencer方法返回的URIDereferencer。 KeyInfoFactory的unmarshalKeyInfo方法必须支持DOMStructure类型。如果类型是DOMStructure,它应该包含一个Element类型的KeyInfo。Transform的transform方法必须支持DOMCryptoContext上下文参数类型。XMLSignatureFactory的newtransform和newCanonicalizationMethod方法必须支持DOMStructure参数类型。TransformService的init和marshalParams方法必须支持DOMStructure和DOMCryptoContext类型。XMLSignatureFactory的unmarshalXMLSignature方法必须支持DOMStructure类型。如果类型是DOMStructure,它应该包含一个Signature类型的Element。KeyInfo的marshal方法必须支持DOMStructure和DOMCryptoContext参数类型。
请注意,只要不影响互操作性,DOM 实现可以在内部使用除 DOM 之外的其他 XML 解析 API。例如,XMLSignatureFactory 的 DOM 实现可能在内部使用 SAX 解析器来规范化数据。
包装规格
- 自从:
- 1.6
-
类描述W3C 对 XML 签名语法和处理的推荐 中定义的 XML
CanonicalizationMethod元素的表示。W3C 对 XML 签名语法和处理的推荐 中定义的 XMLDigestMethod元素的表示。W3C 对 XML 签名语法和处理的推荐 中定义的 XMLManifest元素的表示。W3C 对 XML 签名语法和处理的推荐 中定义的Reference元素的表示。W3C 对 XML 签名语法和处理的推荐 中定义的 XMLSignatureMethod元素的表示。W3C 对 XML 签名语法和处理的推荐 中定义的 XMLSignatureProperties元素的表示。W3C 对 XML 签名语法和处理的推荐 中定义的 XMLSignatureProperty元素的表示。W3C 对 XML 签名语法和处理的推荐 中定义的 XMLSignedInfo元素的表示。W3C 对 XML 签名语法和处理的推荐 中定义的 XMLTransform元素的表示。指示执行转换算法时发生的异常情况。用于转换和规范化算法的服务提供者接口。W3C 对 XML 签名语法和处理的推荐 中定义的 XMLObject元素的表示。W3C 对 XML 签名语法和处理的推荐 中定义的 XMLSignature元素的表示。W3C 对 XML 签名语法和处理的推荐 中定义的 XMLSignatureValue元素的表示。指示在 XML 签名生成或验证过程中发生的异常情况。用于从头开始创建XMLSignature对象或从相应的 XML 表示中解组XMLSignature对象的工厂。包含用于生成 XML 签名的上下文信息。包含用于验证 XML 签名的上下文信息。