public abstract class XMLSignatureFactory extends Object
XMLSignature
对象或组,从相应的XML表示的一个
XMLSignature
对象工厂。
每个实例的XMLSignatureFactory
支持一个特定的XML机制类型。创建一个XMLSignatureFactory
,调用一个静态getInstance
方法,通过在XML机制类型所需的,例如:
XMLSignatureFactory factory = XMLSignatureFactory.getInstance("DOM");
本厂生产的对象,将基于DOM和遵守DOM互操作性要求在API概述 DOM Mechanism Requirements部分定义。看到一个标准的机构类型的API概述 Service Providers节。
XMLSignatureFactory
实现注册和使用Provider
机构加载。例如,一个支持DOM机制将被指定在Provider
类服务提供商:
把(“xmlsignaturefactory。DOM”、“组织的例子。DOMXMLSignatureFactory);
实现必须至少支持默认机制类型:DOM。
注意,调用者必须使用相同的XMLSignatureFactory
实例创建一个特定的XMLSignature
是产生XMLStructure
s。如果从不同的供应商或不同的机构类型XMLStructure
s一起使用的行为是未定义的。
另外,被本厂创建XMLStructure
s可能包含特定的XMLSignature
状态而不是为了得到重用。
一旦XMLSignatureFactory
已创建的对象可以通过调用适当的方法实例化。例如,一个Reference
实例可以通过调用一个方法创建的newReference
。
另外,一个XMLSignature
可以通过调用unmarshalXMLSignature
方法传递一个机制的具体XMLValidateContext
实例包含XML内容从现有的XML表示形式创造:
domvalidatecontext上下文=新domvalidatecontext(关键,signatureelement);xmlsignature签名=工厂。unmarshalxmlsignature(背景);每个
XMLSignatureFactory
必须支持所需的
XMLValidateContext
类型为工厂类型,但也可以支持别人。DOM
XMLSignatureFactory
必须支持
DOMValidateContext
对象。
XMLSignature
由工厂创建也可以调动到XML表示和签署,通过调用对象的方法的
XMLSignature
sign
传递机制具体
XMLSignContext
对象包含签名密钥和编组参数(见
DOMSignContext
)。例如:
domsigncontext上下文=新domsigncontext(私钥,文档);签名(上下文);并发访问
这个类的静态方法保证是线程安全的。多线程可以同时调用在这个类中定义的静态方法,没有任何不良影响。
然而,对于这个类定义的非静态方法,这是不正确的。除非另有书面由一个特定的供应商,线程需要访问一个单一的XMLSignatureFactory
实例同时应同步自己提供必要的锁。多个线程中的每个操作不同的XMLSignatureFactory
实例不需要同步。
Modifier | Constructor and Description |
---|---|
protected |
XMLSignatureFactory()
默认构造函数,通过子类调用。
|
Modifier and Type | Method and Description |
---|---|
static XMLSignatureFactory |
getInstance()
返回一个
XMLSignatureFactory 支持默认的XML处理机制和表现型(DOM)。
|
static XMLSignatureFactory |
getInstance(String mechanismType)
返回一个
XMLSignatureFactory 支持指定的XML处理机制和表现型(如:“DOM”)。
|
static XMLSignatureFactory |
getInstance(String mechanismType, Provider provider)
返回一个
XMLSignatureFactory 支持请求的XML处理机制和表现型(如:“DOM”),由指定的供应商提供。
|
static XMLSignatureFactory |
getInstance(String mechanismType, String provider)
返回一个
XMLSignatureFactory 支持请求的XML处理机制和表现型(如:“DOM”),由指定的供应商提供。
|
KeyInfoFactory |
getKeyInfoFactory()
返回一个
KeyInfoFactory 创造
KeyInfo 对象。
|
String |
getMechanismType()
返回类型的XML处理机制,这
XMLSignatureFactory 表示支持(例如:“DOM”)。
|
Provider |
getProvider()
返回该
XMLSignatureFactory 提供者。
|
abstract URIDereferencer |
getURIDereferencer()
返回引用的
URIDereferencer ,默认使用URI在
Reference 对象引用。
|
abstract boolean |
isFeatureSupported(String feature)
指示是否支持指定的功能。
|
abstract CanonicalizationMethod |
newCanonicalizationMethod(String algorithm, C14NMethodParameterSpec params)
创建一个指定的算法和参数
CanonicalizationMethod URI。
|
abstract CanonicalizationMethod |
newCanonicalizationMethod(String algorithm, XMLStructure params)
创建一个指定的算法和参数
CanonicalizationMethod URI。
|
abstract DigestMethod |
newDigestMethod(String algorithm, DigestMethodParameterSpec params)
创建一个指定的算法和参数
DigestMethod URI。
|
abstract Manifest |
newManifest(List references)
创建一个
Manifest 包含指定列表的
Reference s。
|
abstract Manifest |
newManifest(List references, String id)
创建一个
Manifest 包含指定列表的
Reference s和可选的ID。
|
abstract Reference |
newReference(String uri, DigestMethod dm)
创建一个具有指定uri
Reference 消化法。
|
abstract Reference |
newReference(String uri, DigestMethod dm, List appliedTransforms, Data result, List transforms, String type, String id)
创建带有指定参数
Reference 。
|
abstract Reference |
newReference(String uri, DigestMethod dm, List transforms, String type, String id)
创建带有指定参数
Reference 。
|
abstract Reference |
newReference(String uri, DigestMethod dm, List transforms, String type, String id, byte[] digestValue)
创建带有指定参数和预先计算的摘要值
Reference 。
|
abstract SignatureMethod |
newSignatureMethod(String algorithm, SignatureMethodParameterSpec params)
创建一个指定的算法和参数
SignatureMethod URI。
|
abstract SignatureProperties |
newSignatureProperties(List properties, String id)
创建一个
SignatureProperties 包含指定列表的
SignatureProperty s和可选的ID。
|
abstract SignatureProperty |
newSignatureProperty(List content, String target, String id)
创建一个
SignatureProperty 包含指定列表的
XMLStructure s,目标URI和可选的ID。
|
abstract SignedInfo |
newSignedInfo(CanonicalizationMethod cm, SignatureMethod sm, List references)
创建一个具有指定的规范化和
SignedInfo 签名方法,列出一个或多个参考。
|
abstract SignedInfo |
newSignedInfo(CanonicalizationMethod cm, SignatureMethod sm, List references, String id)
创建带有指定参数
SignedInfo 。
|
abstract Transform |
newTransform(String algorithm, TransformParameterSpec params)
创建一个指定的算法和参数
Transform URI。
|
abstract Transform |
newTransform(String algorithm, XMLStructure params)
创建一个指定的算法和参数
Transform URI。
|
abstract XMLObject |
newXMLObject(List content, String id, String mimeType, String encoding)
创建从指定的参数
XMLObject 。
|
abstract XMLSignature |
newXMLSignature(SignedInfo si, KeyInfo ki)
创建一个
XMLSignature 并初始化它的
SignedInfo 和
KeyInfo 指定对象的内容。
|
abstract XMLSignature |
newXMLSignature(SignedInfo si, KeyInfo ki, List objects, String id, String signatureValueId)
创建一个
XMLSignature 和初始化它与指定的参数。
|
abstract XMLSignature |
unmarshalXMLSignature(XMLStructure xmlStructure)
一个新的
XMLSignature 解封实例从一个机制的具体
XMLStructure 实例。
|
abstract XMLSignature |
unmarshalXMLSignature(XMLValidateContext context)
一个新的
XMLSignature 解封实例从一个机制的具体
XMLValidateContext 实例。
|
public static XMLSignatureFactory getInstance(String mechanismType)
XMLSignatureFactory
支持指定的XML处理机制和表现型(如:“DOM”)。
该方法采用标准的JCA提供者查找机制来定位和实例化所需类型的XMLSignatureFactory
实施机制。它通过注册安全Provider
s列表,从最喜欢的Provider
,支持指定机构的第一Provider
新XMLSignatureFactory
对象返回。
注意,注册商的列表可以通过Security.getProviders()
检索方法。
mechanismType
- XML处理机制和表征的类型。看到一个标准的机构类型的API概述
Service Providers节。
XMLSignatureFactory
null
mechanismType
NullPointerException
NoSuchMechanismException
-如果没有
Provider
支持指定
XMLSignatureFactory
实施机制
Provider
public static XMLSignatureFactory getInstance(String mechanismType, Provider provider)
XMLSignatureFactory
支持请求的XML处理机制和表现型(如:“DOM”),由指定的供应商提供。注意,指定的
Provider
对象不必在供应商列表注册。
mechanismType
- XML处理机制和表征的类型。看到一个标准的机构类型的API概述
Service Providers节。
provider
-
Provider
对象
XMLSignatureFactory
NullPointerException
-如果
provider
或
mechanismType
是
null
NoSuchMechanismException
-如果指定机构的
XMLSignatureFactory
执行不可从指定的
Provider
对象
Provider
public static XMLSignatureFactory getInstance(String mechanismType, String provider) throws NoSuchProviderException
XMLSignatureFactory
支持请求的XML处理机制和表现型(如:“DOM”),由指定的供应商提供。指定的提供程序必须在安全提供程序列表中注册。
注意,注册商的列表可以通过Security.getProviders()
检索方法。
mechanismType
- XML处理机制和表征的类型。看到一个标准的机构类型的API概述
Service Providers节。
provider
-供应商的字符串名称
XMLSignatureFactory
NoSuchProviderException
-如果指定的供应商不在安全提供商注册名单
NullPointerException
-如果
provider
或
mechanismType
是
null
NoSuchMechanismException
-如果指定机构的
XMLSignatureFactory
执行不可从指定的供应商
Provider
public static XMLSignatureFactory getInstance()
XMLSignatureFactory
支持默认的XML处理机制和表现型(DOM)。
该方法采用标准的JCA提供者查找机制来定位和实例化的默认机制类型的XMLSignatureFactory
实施。它通过注册安全Provider
s列表,从最喜欢的Provider
。从支持DOM机制的第一Provider
新XMLSignatureFactory
对象返回。
注意,注册商的列表可以通过Security.getProviders()
检索方法。
XMLSignatureFactory
NoSuchMechanismException
-如果没有
Provider
支持DOM
XMLSignatureFactory
实施机制
Provider
public final String getMechanismType()
XMLSignatureFactory
表示支持(例如:“DOM”)。
XMLSignatureFactory
所支持的XML处理机制
public final Provider getProvider()
XMLSignatureFactory
提供者。
XMLSignatureFactory
提供者
public abstract XMLSignature newXMLSignature(SignedInfo si, KeyInfo ki)
XMLSignature
并初始化它的
SignedInfo
和
KeyInfo
指定对象的内容。
si
-签名信息
ki
-关键信息(可能是
null
)
XMLSignature
null
si
NullPointerException
public abstract XMLSignature newXMLSignature(SignedInfo si, KeyInfo ki, List objects, String id, String signatureValueId)
XMLSignature
和初始化它与指定的参数。
si
-签名信息
ki
-关键信息(可能是
null
)
objects
-目录
XMLObject
s(可能是空的或
null
)
id
的ID(可能是
null
)
signatureValueId
- SignatureValue Id(可能是
null
)
XMLSignature
null
si
NullPointerException
ClassCastException
-如果有任何的
objects
不是
XMLObject
型
public abstract Reference newReference(String uri, DigestMethod dm)
Reference
消化法。
uri
-参考URI(可能
null
)
dm
的消化方法
Reference
IllegalArgumentException
-如果
uri
不是RFC 2396兼容
null
dm
NullPointerException
public abstract Reference newReference(String uri, DigestMethod dm, List transforms, String type, String id)
Reference
。
uri
-参考URI(可能
null
)
dm
的消化方法
transforms
-目录
Transform
s。这份名单是在复制防止后续的修改。可能是
null
或空。
type
-引用类型,作为一个URI(可能
null
)
id
-参考ID(可能是
null
)
Reference
ClassCastException
-如果有任何的
transforms
不是
Transform
型
IllegalArgumentException
-如果
uri
不是RFC 2396兼容
null
dm
NullPointerException
public abstract Reference newReference(String uri, DigestMethod dm, List transforms, String type, String id, byte[] digestValue)
Reference
。
这种方法是非常有用的当一个Reference
摘要值已经计算。例如,在 OASIS-DSS (Digital Signature Services)规范。
uri
-参考URI(可能
null
)
dm
的消化方法
transforms
-
Transform
s列表。列表是防守复制防止后续的修改。可能是
null
或空。
type
-引用类型,作为一个URI(可能
null
)
id
-参考ID(可能是
null
)
digestValue
的摘要值。该阵列被克隆,以防止随后的修改。
Reference
ClassCastException
-如果有任何的
transforms
不是
Transform
型
IllegalArgumentException
-如果
uri
不是RFC 2396兼容
NullPointerException
-如果
dm
或
digestValue
是
null
public abstract Reference newReference(String uri, DigestMethod dm, List appliedTransforms, Data result, List transforms, String type, String id)
Reference
。
这种方法是有用的时候转换列表已经被应用于Reference
。例如,在 OASIS-DSS (Digital Signature Services)规范。
当一个XMLSignature
包含该参考生成指定的transforms
(如果非空)应用到指定的result
。结果Reference
元Transforms
元素设置的appliedTransforms
和transforms
级联。
uri
-参考URI(可能
null
)
dm
的消化方法
appliedTransforms
-目录,已被广泛应用
Transform
s。这份名单是在复制防止后续的修改。列表必须至少包含一个条目。
result
-加工
appliedTransforms
序列结果
transforms
-目录
Transform
s是应用在生成签名。这份名单是在复制防止后续的修改。可能是
null
或空。
type
-引用类型,作为一个URI(可能
null
)
id
-参考ID(可能是
null
)
Reference
ClassCastException
-如果有任何的变换(或清单)不
Transform
型
IllegalArgumentException
-如果
uri
不是RFC 2396兼容或
appliedTransforms
是空的
NullPointerException
-如果
dm
,
appliedTransforms
或
result
是
null
public abstract SignedInfo newSignedInfo(CanonicalizationMethod cm, SignatureMethod sm, List references)
SignedInfo
签名方法,列出一个或多个参考。
cm
的规范化方法
sm
-签名方法
references
-一个或多个
Reference
s。这份名单是在复制防止后续的修改。
SignedInfo
ClassCastException
-如果任何引用都不
Reference
型
IllegalArgumentException
-如果
references
是空的
NullPointerException
-如果任何参数
null
public abstract SignedInfo newSignedInfo(CanonicalizationMethod cm, SignatureMethod sm, List references, String id)
SignedInfo
。
cm
的规范化方法
sm
-签名方法
references
-一个或多个
Reference
s。名单是防守复制防止后续的修改。
id
的ID(可能是
null
)
SignedInfo
ClassCastException
-如果任何引用都不
Reference
型
IllegalArgumentException
-如果
references
是空的
NullPointerException
-如果
cm
,
sm
,或
references
是
null
public abstract XMLObject newXMLObject(List content, String id, String mimeType, String encoding)
XMLObject
。
content
-目录
XMLStructure
s。这份名单是在复制防止后续的修改。可能是
null
或空。
id
的ID(可能是
null
)
mimeType
的MIME类型(可能是
null
)
encoding
-编码(可能
null
)
XMLObject
ClassCastException
-如果
content
包含任何条目不
XMLStructure
型
public abstract Manifest newManifest(List references)
Manifest
包含指定列表的
Reference
s。
references
-一个或多个
Reference
s。名单是防守复制防止后续的修改。
Manifest
null
references
NullPointerException
IllegalArgumentException
-如果
references
是空的
ClassCastException
-如果
references
包含任何条目不
Reference
型
public abstract Manifest newManifest(List references, String id)
Manifest
包含指定列表的
Reference
s和可选的ID。
references
-一个或多个
Reference
s。名单是防守复制防止后续的修改。
id
的ID(可能是
null
)
Manifest
null
references
NullPointerException
IllegalArgumentException
-如果
references
是空的
ClassCastException
-如果
references
包含任何条目不
Reference
型
public abstract SignatureProperty newSignatureProperty(List content, String target, String id)
SignatureProperty
包含指定列表的
XMLStructure
s,目标URI和可选的ID。
content
-一个或多个
XMLStructure
s。名单是防守复制防止后续的修改。
target
-签名,该属性应用到目标URI
id
的ID(可能是
null
)
SignatureProperty
NullPointerException
-如果
content
或
target
是
null
IllegalArgumentException
-如果
content
是空的
ClassCastException
-如果
content
包含任何条目不
XMLStructure
型
public abstract SignatureProperties newSignatureProperties(List properties, String id)
SignatureProperties
包含指定列表的
SignatureProperty
s和可选的ID。
properties
-一个或多个
SignatureProperty
s。名单是防守复制防止后续的修改。
id
的ID(可能是
null
)
SignatureProperties
null
properties
NullPointerException
IllegalArgumentException
-如果
properties
是空的
ClassCastException
-如果
properties
包含任何条目不
SignatureProperty
型
public abstract DigestMethod newDigestMethod(String algorithm, DigestMethodParameterSpec params) throws NoSuchAlgorithmException, InvalidAlgorithmParameterException
DigestMethod
URI。
algorithm
的URI的摘要算法的识别
params
算法具体消化参数(可能是
null
)
DigestMethod
InvalidAlgorithmParameterException
-如果指定的参数要求的算法是不合适的
NoSuchAlgorithmException
-如果不能指定算法实现被发现
null
algorithm
NullPointerException
public abstract SignatureMethod newSignatureMethod(String algorithm, SignatureMethodParameterSpec params) throws NoSuchAlgorithmException, InvalidAlgorithmParameterException
SignatureMethod
URI。
algorithm
的URI的签名算法标识
params
算法的具体特征参数(可能是
null
)
SignatureMethod
InvalidAlgorithmParameterException
-如果指定的参数要求的算法是不合适的
NoSuchAlgorithmException
-如果不能指定算法实现被发现
null
algorithm
NullPointerException
public abstract Transform newTransform(String algorithm, TransformParameterSpec params) throws NoSuchAlgorithmException, InvalidAlgorithmParameterException
Transform
URI。
algorithm
的URI标识的变换算法
params
算法具体的变换参数(可能是
null
)
Transform
InvalidAlgorithmParameterException
-如果指定的参数要求的算法是不合适的
NoSuchAlgorithmException
-如果不能指定算法实现被发现
null
algorithm
NullPointerException
public abstract Transform newTransform(String algorithm, XMLStructure params) throws NoSuchAlgorithmException, InvalidAlgorithmParameterException
Transform
URI。参数指定一个特定的
XMLStructure
机制(例如:
DOMStructure
)。当参数在XML窗体中或没有指定参数的标准类时,此方法是有用的。
algorithm
的URI标识的变换算法
params
-是一种机制,特定的XML结构的数据参数(可能是
null
如果不是必需的或可选的)
Transform
ClassCastException
-如果
params
类型是不适合这种
XMLSignatureFactory
InvalidAlgorithmParameterException
-如果指定的参数要求的算法是不合适的
NoSuchAlgorithmException
-如果不能指定算法实现被发现
null
algorithm
NullPointerException
public abstract CanonicalizationMethod newCanonicalizationMethod(String algorithm, C14NMethodParameterSpec params) throws NoSuchAlgorithmException, InvalidAlgorithmParameterException
CanonicalizationMethod
URI。
algorithm
的URI的规范化算法识别
params
算法的具体规范化参数(可能是
null
)
CanonicalizationMethod
InvalidAlgorithmParameterException
-如果指定的参数要求的算法是不合适的
NoSuchAlgorithmException
-如果不能指定算法实现被发现
null
algorithm
NullPointerException
public abstract CanonicalizationMethod newCanonicalizationMethod(String algorithm, XMLStructure params) throws NoSuchAlgorithmException, InvalidAlgorithmParameterException
CanonicalizationMethod
URI。参数指定一个特定的
XMLStructure
机制(例如:
DOMStructure
)。当参数在XML窗体中或没有指定参数的标准类时,此方法是有用的。
algorithm
的URI的规范化算法识别
params
-是一种机制,特定的XML结构的数据参数(可能是
null
如果不是必需的或可选的)
CanonicalizationMethod
ClassCastException
-如果
params
类型是不适合这种
XMLSignatureFactory
InvalidAlgorithmParameterException
-如果指定的参数要求的算法是不合适的
NoSuchAlgorithmException
-如果不能指定算法实现被发现
null
algorithm
NullPointerException
public final KeyInfoFactory getKeyInfoFactory()
KeyInfoFactory
创造
KeyInfo
对象。返回的
KeyInfoFactory
具有相同的机制类型和供应商这
XMLSignatureFactory
。
KeyInfoFactory
NoSuchMechanismException
如果具有相同的机制的类型和供应商
KeyFactory
实施不可用
public abstract XMLSignature unmarshalXMLSignature(XMLValidateContext context) throws MarshalException
XMLSignature
解封实例从一个机制的具体
XMLValidateContext
实例。
context
-从一个机制的具体语境来分解的签名
XMLSignature
null
context
NullPointerException
ClassCastException
-如果
context
类型是不适合本厂
MarshalException
-如果在发生不可恢复的异常反
public abstract XMLSignature unmarshalXMLSignature(XMLStructure xmlStructure) throws MarshalException
XMLSignature
解封实例从一个机制的具体
XMLStructure
实例。如果你只想解包这个方法是有用的(而不是一个
XMLSignature
验证)。
xmlStructure
-是一种机制,特定的XML结构的数据的签名
XMLSignature
null
xmlStructure
NullPointerException
ClassCastException
-如果
xmlStructure
类型是不适合本厂
MarshalException
-如果在发生不可恢复的异常反
public abstract boolean isFeatureSupported(String feature)
feature
-功能名称(如绝对URI)
true
如果指定的功能是支持,
false
否则
null
feature
NullPointerException
public abstract URIDereferencer getURIDereferencer()
URIDereferencer
,默认使用URI在
Reference
对象引用。
URIDereferencer
(不
null
)
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.