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是产生XMLStructures。如果从不同的供应商或不同的机构类型XMLStructures一起使用的行为是未定义的。
另外,被本厂创建XMLStructures可能包含特定的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包含指定列表的
References。
|
abstract Manifest |
newManifest(List references, String id)
创建一个
Manifest包含指定列表的
References和可选的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包含指定列表的
SignaturePropertys和可选的ID。
|
abstract SignatureProperty |
newSignatureProperty(List content, String target, String id)
创建一个
SignatureProperty包含指定列表的
XMLStructures,目标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实施机制。它通过注册安全Providers列表,从最喜欢的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实施。它通过注册安全Providers列表,从最喜欢的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 -目录
XMLObjects(可能是空的或
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 -目录
Transforms。这份名单是在复制防止后续的修改。可能是
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 -
Transforms列表。列表是防守复制防止后续的修改。可能是
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 -目录,已被广泛应用
Transforms。这份名单是在复制防止后续的修改。列表必须至少包含一个条目。
result -加工
appliedTransforms序列结果
transforms -目录
Transforms是应用在生成签名。这份名单是在复制防止后续的修改。可能是
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 -一个或多个
References。这份名单是在复制防止后续的修改。
SignedInfo
ClassCastException -如果任何引用都不
Reference型
IllegalArgumentException -如果
references是空的
NullPointerException -如果任何参数
null
public abstract SignedInfo newSignedInfo(CanonicalizationMethod cm, SignatureMethod sm, List references, String id)
SignedInfo。
cm的规范化方法
sm -签名方法
references -一个或多个
References。名单是防守复制防止后续的修改。
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 -目录
XMLStructures。这份名单是在复制防止后续的修改。可能是
null或空。
id的ID(可能是
null)
mimeType的MIME类型(可能是
null)
encoding -编码(可能
null)
XMLObject
ClassCastException -如果
content包含任何条目不
XMLStructure型
public abstract Manifest newManifest(List references)
Manifest包含指定列表的
References。
references -一个或多个
References。名单是防守复制防止后续的修改。
Manifest
null
references
NullPointerException
IllegalArgumentException -如果
references是空的
ClassCastException -如果
references包含任何条目不
Reference型
public abstract Manifest newManifest(List references, String id)
Manifest包含指定列表的
References和可选的ID。
references -一个或多个
References。名单是防守复制防止后续的修改。
id的ID(可能是
null)
Manifest
null
references
NullPointerException
IllegalArgumentException -如果
references是空的
ClassCastException -如果
references包含任何条目不
Reference型
public abstract SignatureProperty newSignatureProperty(List content, String target, String id)
SignatureProperty包含指定列表的
XMLStructures,目标URI和可选的ID。
content -一个或多个
XMLStructures。名单是防守复制防止后续的修改。
target -签名,该属性应用到目标URI
id的ID(可能是
null)
SignatureProperty
NullPointerException -如果
content或
target是
null
IllegalArgumentException -如果
content是空的
ClassCastException -如果
content包含任何条目不
XMLStructure型
public abstract SignatureProperties newSignatureProperties(List properties, String id)
SignatureProperties包含指定列表的
SignaturePropertys和可选的ID。
properties -一个或多个
SignaturePropertys。名单是防守复制防止后续的修改。
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.