| window.runtime 属性 | window.runtime.flash.security.XMLSignatureValidator |
| 继承 | XMLSignatureValidator EventDispatcher Object |
XMLSignatureValidator 针对 XML 签名语法和处理实现 W3C 建议的子集,不应将其视为符合该建议的实现。该建议支持的子集包括:
必须提供 IURIDereferencer 实现才能验证 XML 签名。此实现类负责解析签名文件的 SignedInfo 元素中指定的 URI 并返回实现 IDataInput 接口的对象(如 ByteArray)中引用的数据。
为了验证签名证书是否链接到受信任的证书,XML 签名必须包含构建 X509Certificate 元素之间的链接所需的证书,或必须使用 addCertificate() 方法提供构建该链接所需的证书。
验证 XMLSignature:
uriDereferencer 属性设置为 IURIDereferencer 实现类的实例。addCertificate() 方法提供 DER 编码的证书以便构建证书信任链。verify 方法,传入要验证的签名。validityStatus 属性。关于签名状态:
XML 签名的有效性可以为 valid、invalid 或 unknown。整体状态取决于签名文件各个组件的验证状态:
referencesStatus -- 签名文件的 SignedInfo 元素中引用摘要的有效性。可以是 valid、invalid 或 unknown。digestStatus -- 通过 SignedInfo 元素计算的加密签名的有效性。可以是 valid、invalid 或 unknown。identityStatus -- 签名证书的有效性。如果签名已过期或已吊销,则该状态为 invalid。如果无法将证书链接到受信任的根证书,则该状态为 unknown。由 validityStatus 属性报告的签名有效性可以为:
valid — 如果 referencesStatus、digestStatus 和 identityStatus 全部为 valid。invalid — 如果其中任一状态为 invalid。unknown — 如果 referencesStatus、digestStatus 或 identityStatus 为 unknown。另请参见
| 属性 | 定义方 | ||
|---|---|---|---|
![]() | constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | |
| digestStatus : String [只读 (read-only)]
通过 SignedInfo 元素计算的加密签名的有效性状态。 | XMLSignatureValidator | ||
| identityStatus : String [只读 (read-only)]
签名证书的有效性状态。 | XMLSignatureValidator | ||
![]() | prototype : 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 | ||
添加 x509 证书以构建链。 | XMLSignatureValidator | ||
![]() | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | EventDispatcher | |
![]() | dispatchEvent(event:Event):Boolean
将事件调度到事件流中。 | EventDispatcher | |
![]() | hasEventListener(type:String):Boolean
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | |
![]() | hasOwnProperty(name:String):Boolean
指示对象是否已经定义了指定的属性。 | Object | |
![]() | isPrototypeOf(theClass:Object):Boolean
指示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | |
![]() | propertyIsEnumerable(name:String):Boolean
指示指定的属性是否存在、是否可枚举。 | Object | |
![]() | removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | |
![]() | setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
设置循环操作动态属性的可用性。 | Object | |
![]() | toString():String
返回指定对象的字符串表示形式。 | Object | |
![]() | valueOf():Object
返回指定对象的原始值。 | Object | |
验证指定的签名。 | XMLSignatureValidator | ||
![]() | willTrigger(type:String):Boolean
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。 | EventDispatcher | |
| 事件 | 摘要 | 定义方 | ||
|---|---|---|---|---|
![]() | Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时调度。 | EventDispatcher | ||
| 在完成验证时调度。 | XMLSignatureValidator | |||
![]() | Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时调度。 | EventDispatcher | ||
| 由于错误而无法完成验证时调度。 | XMLSignatureValidator | |||
| digestStatus | 属性 |
digestStatus:String [只读 (read-only)]
通过 SignedInfo 元素计算的加密签名的有效性状态。
此状态是:
valid — 如果签名是加密有效的。invalid — 如果摘要已在签名后更改。unknown — 如果尚未调用 verify() 方法。IllegalOperationError — 如果在正在验证签名时访问。
|
| identityStatus | 属性 |
identityStatus:String [只读 (read-only)] 签名证书的有效性状态。
该状态可以是:
valid — 证书尚未过期,吊销检查和指向受信任的根证书的链接没有失败。unknown — 证书尚未过期,吊销检查没有失败,但没有链接到受信任的根证书。尚未验证状态时也会报告 unknown,不管是因为尚未调用 verify() 方法还是因为 SignedInfo 元素 (digestStatus) 的加密签名无效。invalid — 证书已过期或吊销检查失败。无论证书是否被视为有效,使用 addCertificate() 方法添加的证书以及 revocationCheckSetting 和 useSystemTrustStore 属性的设置都可以进行更改。
IllegalOperationError — 如果在正在验证签名时访问。
|
另请参见
| referencesStatus | 属性 |
referencesStatus:String [只读 (read-only)]
SignedInfo 元素中所有引用摘要的有效性状态。
此状态是:
valid — 如果所有引用都有效。invalid — 如果存在无效的引用。unknown — 如果未验证,不管是因为尚未调用 verify() 方法还是因为 SignedInfo 元素的加密签名 (digestStatus) 或签名证书 (identityStatus) 无效。IllegalOperationError — 如果在正在验证签名时访问。
|
| revocationCheckSetting | 属性 |
revocationCheckSetting:String [读写] 指定如何检查证书吊销。
使用 RevocationSettings 类中定义的常量来设置此属性。这些设置包括:
RevocationCheckSettings.NEVER — 不检查证书吊销。RevocationCheckSettings.BEST_EFFORT — 如果吊销信息可用且可以获取吊销状态,则检查证书吊销。如果无法明确确定吊销状态,则不拒绝该证书。RevocationCheckSettings.REQUIRED_IF_AVAILABLE — 如果证书包括吊销信息,则必须明确确定吊销状态以验证该证书。RevocationCheckSettings.ALWAYS_REQUIRED — 始终检查证书吊销。拒绝没有吊销信息的证书。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 类中定义。
unknown 或 invalid 证书的 signerTrustSettings 数组为空数组。
修改该数组不会更改证书信任设置。
IllegalOperationError — 如果在正在验证签名时访问。
|
另请参见
| uriDereferencer | 属性 |
uriDereferencer:IURIDereferencer [读写] IURIDereferencer 实现。
尝试验证签名之前必须提供 IURIDereferencer 实现。
IllegalOperationError — 如果在正在验证签名时设置。
|
另请参见
| useSystemTrustStore | 属性 |
useSystemTrustStore:Boolean [读写] 指定使用系统信任存储中的证书来构建链。
如果为 true,则使用系统信任存储中的信任锚记作为受信任的根。默认情况下不使用系统信任存储。
IllegalOperationError — 如果在正在验证签名时设置。
|
| validityStatus | 属性 |
validityStatus:String [只读 (read-only)] 经过验证的 XML 签名的有效性状态。
通过验证 SignedInfo 元素中的引用摘要、SignedInfo 元素本身的加密签名和签名证书来验证 XML 签名。这些元素中每个元素的有效性分别由 referencesStatus、 digestStatus 和 identityStatus() 属性进行报告。
XML 签名的有效性可以为 valid、invalid 或 unknown。整体状态取决于签名文件各个组件的验证状态:
referencesStatus — 签名 SignedInfo 元素中引用摘要的有效性。digestStatus — 通过 SignedInfo 元素计算的加密签名的有效性。identityStatus — 签名证书的有效性。由 validityStatus 属性报告的签名有效性可以为:
valid — 如果 referencesStatus、digestStatus 和 identityStatus 全部为 valid。invalid — 如果其中任一状态为 invalid。unknown — 如果 referencesStatus、digestStatus 或 identityStatus 为 unknown。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: — 在成功完成验证时调度。 | |
error: — 验证引用遇到错误时调度。 |
IllegalOperationError — 如果在正在验证签名时调用。
| |
Error — 遇到其它错误时,如格式不正确的 XML 或签名文件中不支持的元素。
|
| complete | 事件 |
flash.events.Eventflash.events.Event.COMPLETE在完成验证时调度。
complete 事件并不意味着签名有效。检查 validityStatus 以确定签名验证的结果。
Event.COMPLETE 常量定义 complete 事件对象的 type 属性值。
此事件具有以下属性:
| 属性 | 值 |
|---|---|
bubbles | false |
cancelable | false;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 已完成加载的网络对象。 |
另请参见
| error | 事件 |
flash.events.ErrorEventflash.events.ErrorEvent.ERROR由于错误而无法完成验证时调度。
定义error 事件对象的 type 属性值。
此事件具有以下属性:
| 属性 | 值 |
|---|---|
bubbles | false |
cancelable | false;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 发生网络操作失败的对象。 |
text | 要显示为错误消息的文本。 |