window.runtime 属性window.runtime.flash.security.XMLSignatureValidator
继承XMLSignatureValidator Inheritance EventDispatcher Inheritance Object

XMLSignatureValidator 类验证 XML 签名文件是否格式正确且未修改,以及它是否使用链接到受信任数字证书的密钥进行签名(可选)。

XMLSignatureValidator 针对 XML 签名语法和处理实现 W3C 建议的子集,不应将其视为符合该建议的实现。该建议支持的子集包括:

必须提供 IURIDereferencer 实现才能验证 XML 签名。此实现类负责解析签名文件的 SignedInfo 元素中指定的 URI 并返回实现 IDataInput 接口的对象(如 ByteArray)中引用的数据。

为了验证签名证书是否链接到受信任的证书,XML 签名必须包含构建 X509Certificate 元素之间的链接所需的证书,或必须使用 addCertificate() 方法提供构建该链接所需的证书。

验证 XMLSignature:

  1. 创建 XMLSignatureValidator 类的实例。
  2. 将该实例的 uriDereferencer 属性设置为 IURIDereferencer 实现类的实例。
  3. 如果需要,使用 addCertificate() 方法提供 DER 编码的证书以便构建证书信任链。
  4. 调用 XMLSignatureValidator verify 方法,传入要验证的签名。
  5. XMLSignatureValidator 对象调度 complete 事件后,检查 validityStatus 属性。

关于签名状态:

XML 签名的有效性可以为 valid、invalid 或 unknown。整体状态取决于签名文件各个组件的验证状态:

validityStatus 属性报告的签名有效性可以为:

另请参见



属性
 属性定义方
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  digestStatus : String
[只读 (read-only)] 通过 SignedInfo 元素计算的加密签名的有效性状态。
XMLSignatureValidator
  identityStatus : String
[只读 (read-only)] 签名证书的有效性状态。
XMLSignatureValidator
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
  referencesStatus : String
[只读 (read-only)] SignedInfo 元素中所有引用摘要的有效性状态。
XMLSignatureValidator
  revocationCheckSetting : String
指定如何检查证书吊销。
XMLSignatureValidator
  signerCN : String
[只读 (read-only)] 签名证书的“公共名称”字段。
XMLSignatureValidator
  signerDN : String
[只读 (read-only)] 签名证书的“识别名称”字段。
XMLSignatureValidator
  signerExtendedKeyUsages : Array
[只读 (read-only)] 包含签名证书中列出的扩展密钥用法 OID 的数组。
XMLSignatureValidator
  signerTrustSettings : Array
[只读 (read-only)] 包含签名证书的信任设置的数组。
XMLSignatureValidator
  uriDereferencer : IURIDereferencer
IURIDereferencer 实现。
XMLSignatureValidator
  useSystemTrustStore : Boolean
指定使用系统信任存储中的证书来构建链。
XMLSignatureValidator
  validityStatus : String
[只读 (read-only)] 经过验证的 XML 签名的有效性状态。
XMLSignatureValidator
公共方法
 方法定义方
  
创建 XMLSignatureValidator 对象。
XMLSignatureValidator
  
addCertificate(cert:ByteArray, trusted:Boolean):*
添加 x509 证书以构建链。
XMLSignatureValidator
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。
EventDispatcher
 Inherited
dispatchEvent(event:Event):Boolean
将事件调度到事件流中。
EventDispatcher
 Inherited
hasEventListener(type:String):Boolean
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
EventDispatcher
 Inherited
hasOwnProperty(name:String):Boolean
指示对象是否已经定义了指定的属性。
Object
 Inherited
isPrototypeOf(theClass:Object):Boolean
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
propertyIsEnumerable(name:String):Boolean
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
从 EventDispatcher 对象中删除侦听器。
EventDispatcher
 Inherited
setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
设置循环操作动态属性的可用性。
Object
 Inherited
toString():String
返回指定对象的字符串表示形式。
Object
 Inherited
valueOf():Object
返回指定对象的原始值。
Object
  
verify(signature:XML):void
验证指定的签名。
XMLSignatureValidator
 Inherited
willTrigger(type:String):Boolean
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。
EventDispatcher
事件
 事件 摘要 定义方
 InheritedFlash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时调度。EventDispatcher
  在完成验证时调度。XMLSignatureValidator
 InheritedFlash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时调度。EventDispatcher
  由于错误而无法完成验证时调度。XMLSignatureValidator
属性详细信息
digestStatus属性
digestStatus:String  [只读 (read-only)]

通过 SignedInfo 元素计算的加密签名的有效性状态。

此状态是:


引发
IllegalOperationError — 如果在正在验证签名时访问。
identityStatus属性 
identityStatus:String  [只读 (read-only)]

签名证书的有效性状态。

该状态可以是:

无论证书是否被视为有效,使用 addCertificate() 方法添加的证书以及 revocationCheckSettinguseSystemTrustStore 属性的设置都可以进行更改。


引发
IllegalOperationError — 如果在正在验证签名时访问。

另请参见

referencesStatus属性 
referencesStatus:String  [只读 (read-only)]

SignedInfo 元素中所有引用摘要的有效性状态。

此状态是:


引发
IllegalOperationError — 如果在正在验证签名时访问。
revocationCheckSetting属性 
revocationCheckSetting:String  [读写]

指定如何检查证书吊销。

使用 RevocationSettings 类中定义的常量来设置此属性。这些设置包括:


引发
IllegalOperationError — 如果在正在验证签名时设置。

另请参见

signerCN属性 
signerCN:String  [只读 (read-only)]

签名证书的“公共名称”字段。

signerDN属性 
signerDN:String  [只读 (read-only)]

签名证书的“识别名称”字段。

signerExtendedKeyUsages属性 
signerExtendedKeyUsages:Array  [只读 (read-only)]

包含签名证书中列出的扩展密钥用法 OID 的数组。

每种扩展密钥用法均以数字 OID 形式进行报告。


引发
IllegalOperationError — 如果在正在验证签名时访问。
signerTrustSettings属性 
signerTrustSettings:Array  [只读 (read-only)]

包含签名证书的信任设置的数组。

信任设置是从系统和证书中嵌入的密钥用法 OID 中派生的。用作表示已识别的信任设置的字符串的常量在 SignerTrustSettings 类中定义。

unknowninvalid 证书的 signerTrustSettings 数组为空数组。

修改该数组不会更改证书信任设置。


引发
IllegalOperationError — 如果在正在验证签名时访问。

另请参见

uriDereferencer属性 
uriDereferencer:IURIDereferencer  [读写]

IURIDereferencer 实现。

尝试验证签名之前必须提供 IURIDereferencer 实现。


引发
IllegalOperationError — 如果在正在验证签名时设置。

另请参见

useSystemTrustStore属性 
useSystemTrustStore:Boolean  [读写]

指定使用系统信任存储中的证书来构建链。

如果为 true,则使用系统信任存储中的信任锚记作为受信任的根。默认情况下不使用系统信任存储。


引发
IllegalOperationError — 如果在正在验证签名时设置。
validityStatus属性 
validityStatus:String  [只读 (read-only)]

经过验证的 XML 签名的有效性状态。

通过验证 SignedInfo 元素中的引用摘要、SignedInfo 元素本身的加密签名和签名证书来验证 XML 签名。这些元素中每个元素的有效性分别由 referencesStatusdigestStatusidentityStatus() 属性进行报告。

XML 签名的有效性可以为 valid、invalid 或 unknown。整体状态取决于签名文件各个组件的验证状态:

validityStatus 属性报告的签名有效性可以为:


引发
IllegalOperationError — 如果在正在验证签名时访问。

另请参见

构造函数详细信息
XMLSignatureValidator()构造函数
function XMLSignatureValidator()

创建 XMLSignatureValidator 对象。

在调用新对象的 verify() 方法之前必须设置 uriDereferencer 属性。

另请参见

方法详细信息
addCertificate()方法
function addCertificate(cert:ByteArray, trusted:Boolean):*

添加 x509 证书以构建链。

添加的证书必须是 DER 编码的 x509 证书。

如果 trusted 参数为 true,则将证书视为信任锚记。

注意:XML 签名可能包括用于构建签名者的证书链的证书。XMLSignatureValidator 类使用这些证书构建链,但不作为受信任的根(默认情况下)。

参数

cert:ByteArray — 包含 DER 编码的 x509 数字证书的 ByteArray 对象。
 
trusted:Boolean — 设置为 true 可将此证书指定为信任锚记。

返回
*

引发
IllegalOperationError — 如果在正在验证签名时调用。
verify()方法 
function verify(signature:XML):void

验证指定的签名。

验证是异步进行的。验证成功完成时,XMLSignatureValidator 对象将调度 complete 事件,或者由于错误无法完成验证时将调用 error 事件。

无法取消验证过程。当验证过程正在进行时,对 verify() 方法的后续调用将失败。在当前验证检查完成后,可以再次调用 verify() 方法。

注意:由于 XMLSignatureValidator 仅针对 XML 签名语法和处理实现 W3C 建议的子集,因此无法验证许多其他的有效 XML 签名。

参数

signature:XML — 要验证的 XML 签名。


事件
complete:Event — 在成功完成验证时调度。
 
error:ErrorEvent — 验证引用遇到错误时调度。

引发
IllegalOperationError — 如果在正在验证签名时调用。
 
Error — 遇到其它错误时,如格式不正确的 XML 或签名文件中不支持的元素。
事件详细信息
complete 事件
事件对象类型: flash.events.Event
属性 Event.type = flash.events.Event.COMPLETE

在完成验证时调度。

complete 事件并不意味着签名有效。检查 validityStatus 以确定签名验证的结果。

Event.COMPLETE 常量定义 complete 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubblesfalse
cancelablefalse;没有要取消的默认行为。
currentTarget当前正在使用某个事件侦听器处理 Event 对象的对象。
target已完成加载的网络对象。

另请参见

error 事件  
事件对象类型: flash.events.ErrorEvent
属性 ErrorEvent.type = flash.events.ErrorEvent.ERROR

由于错误而无法完成验证时调度。

定义 error 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubblesfalse
cancelablefalse;没有要取消的默认行为。
currentTarget当前正在使用某个事件侦听器处理 Event 对象的对象。
target发生网络操作失败的对象。
text要显示为错误消息的文本。