包 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
方法。- 实现必须支持
DOMStructure
s 作为应用程序指定可扩展内容(任何元素或混合内容)的机制。 - 如果用户指定的
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 签名的上下文信息。