﻿<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- saved from url=(0014)about:internet -->
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta name="book" content="ActionScript&nbsp;3.0&nbsp;Language&nbsp;and&nbsp;Components&nbsp;Reference"><link rel="stylesheet" href="../../style.css" type="text/css" media="screen"><link rel="stylesheet" href="../../print.css" type="text/css" media="print"><link rel="stylesheet" href="../../override.css" type="text/css"><meta name="keywords" content="XMLSignatureValidator,flash.security.XMLSignatureValidator,ALWAYS_REQUIRED,BEST_EFFORT,CODE_SIGNING,INVALID,NEVER,NEVER,PLAYLIST_SIGNING,REQUIRED_IF_AVAILABLE,SIGNING,UNKNOWN,VALID,VALID_IDENTITY,VALID_OR_UNKNOWN_IDENTITY,digestStatus,identityStatus,referencesStatus,referencesValidationSetting,revocationCheckSetting,signerCN,signerDN,signerExtendedKeyUsages,signerTrustSettings,uriDereferencer,useSystemTrustStore,validityStatus,addCertificate,dereference,verify"><title>flash.security.XMLSignatureValidator (ActionScript 3.0)</title><script src="../../AC_OETags.js" type="text/javascript"></script></head><body><script language="javascript" type="text/javascript" src="../../asdoc.js"></script><script language="javascript" type="text/javascript" src="../../help.js"></script><script language="javascript" type="text/javascript" src="../../cookies.js"></script><script language="javascript" type="text/javascript">  
            <!--  
			    
				asdocTitle = 'XMLSignatureValidator - ActionScript 3.0 Language and Components Reference';

				var baseRef = '../../';

				window.onload = configPage;
			      
			    -->  
            </script>
<script language="javascript" type="text/javascript"><!--
function submitValue(){
var searchStr=document.getElementById('search-livedocs').value;
window.location="../../search.html"+"###"+searchStr;
}
--></script><script type="text/javascript">
		scrollToNameAnchor();
	</script><table class="titleTable" cellpadding="0" cellspacing="0" id="titleTable" style="display:none"><tr><td class="titleTableTitle" align="left">ActionScript 3.0 Language and Components Reference</td><td class="titleTableSearch" align="center"><form class="searchForm" method="get" action="../../search.html" onsubmit="submitValue();"><input class="hidden" name="loc" value="" type="hidden"><input class="hidden" name="termPrefix" value="" type="hidden"><input class="hidden" name="term" value="" type="hidden"><input class="hidden" name="area" value="" type="hidden"><input id="search-livedocs" name="search_text" value="" title="" type="text"> <input type="button" name="action" value="Search" onclick="submitValue()"></form></td><td class="titleTableTopNav" align="right"><a href="../../../../Flash/10.0_Welcome/index.html">Home</a>&nbsp;|&nbsp;<a href="../../package-summary.html" onclick="loadClassListFrame('../../all-classes.html')">All Packages</a>&nbsp;|&nbsp;<a href="../../class-summary.html" onclick="loadClassListFrame('../../all-classes.html')">All Classes</a>&nbsp;|&nbsp;<a href="../../language-elements.html">Language Elements</a>&nbsp;| <a href="../../all-index-Symbols.html" onclick="loadClassListFrame('../../index-list.html')">Index</a>&nbsp;|&nbsp;<a href="../../appendixes.html">Appendixes</a>&nbsp;|&nbsp;<a href="../../conventions.html">Conventions</a>&nbsp;|&nbsp;<a id="framesLink1" href="../../index.html?flash/security/XMLSignatureValidator.html&amp;flash/security/class-list.html">Frames</a><a id="noFramesLink1" style="display:none" href="" onclick="parent.location=document.location"> No Frames </a></td><td class="titleTableLogo" align="right" rowspan="3"><img src="../../images/logo.jpg" class="logoImage" alt=" Adobe Logo " title=" Adobe Logo "></td></tr><tr class="titleTableRow2"><td class="titleTableSubTitle" id="subTitle" align="left">XMLSignatureValidator</td><td class="titleTableSubNav" id="subNav" align="right" colspan="2"><a href="#propertySummary">Properties</a>&nbsp;| <a href="#methodSummary">Methods</a>&nbsp;| <a href="#eventSummary">Events</a>&nbsp;| <a href="#styleSummary">Styles</a>&nbsp;| <a href="#effectSummary">Effects</a>&nbsp;| <a href="#constantSummary">Constants</a>&nbsp;| <a href="#includeExamplesSummary">Examples</a></td></tr><tr class="titleTableRow3"><td colspan="3">&nbsp;</td></tr></table><script language="javascript" type="text/javascript" xml:space="preserve">
                
                    
                

				<!--

				
				    
				

					if (!isEclipse() || window.name != ECLIPSE_FRAME_NAME) {titleBar_setSubTitle("XMLSignatureValidator"); titleBar_setSubNav(false,true,false	,false,true,false,true,true,false	,false,false,false,false,false);}

				    
				        
				    
				-->
                
                    
                
			</script><div class="MainContent"><div class="annotation">(AIR only)</div><table class="classHeaderTable" cellpadding="0" cellspacing="0"><tr><td class="classHeaderTableLabel">Package</td><td><a href="package-detail.html" onclick="javascript:loadClassListFrame('class-list.html')">flash.security</a></td></tr><tr><td class="classHeaderTableLabel">Class</td><td class="classSignature">public  class  XMLSignatureValidator</td></tr><tr><td class="classHeaderTableLabel">Inheritance</td><td class="inheritanceList">XMLSignatureValidator  <img src="../../images/inherit-arrow.gif" title="Inheritance" alt="Inheritance" class="inheritArrow"> <a href="../../flash/events/EventDispatcher.html">EventDispatcher</a> <img src="../../images/inherit-arrow.gif" title="Inheritance" alt="Inheritance" class="inheritArrow"> <a href="../../Object.html">Object</a></td></tr></table><p></p><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b>Language Version:&nbsp;</b></td><td>ActionScript 3.0</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b>Runtime Versions:&nbsp;</b></td><td>AIR 1.0</td></tr></table><p></p><p></p><p></p>
        The XMLSignatureValidator class validates whether an XML 
  signature file is well formed, unmodified, and, optionally, whether 
  it is signed using a key linked to a trusted digital certificate.
        <p>XMLSignatureValidator implements a subset of the 
  W3C Recommendation for XML-Signature Syntax and Processing and
  should not be considered a conforming implementation.
   The supported subset of the recommendation includes:</p>
        
               <ul>
                  <li>All of the core signature syntax except KeyInfo element.</li>
                  <li>The KeyInfo element only supports the X509Data element.</li>
                  <li>The X509Data element only supports the X509Certificate element.</li>
                  <li>The SHA256 digest method algorithm.</li>
                  <li>The PKCS1 signing algorithm.</li>
                  <li>The "Canonical XML without comments" Canonicalization Method and Transform algorithm.</li>
                  <li>The Manifest element in additional signature syntax.</li>
               </ul>
        
               <p>You must provide an IURIDereferencer implementation in order to verify an XML signature. This
  implementation class is responsible for resolving the URIs specified in the SignedInfo 
  elements of the signature file and returning the referenced data in an object, such 
  as a ByteArray, that implements the IDataInput interface.</p>
        
               <p>
          In order to verify that the signing certificate chains to a trusted certificate, either 
  the XML signature must contain the certificates required to build the chain in X509Certificate 
  elements, or you must supply the certificates required to build the chain using the
          <code>addCertificate()</code>
          method.
        </p>
        
               <p>
                  <b>To verify an XMLSignature:</b>
               </p>
        
               <ol>
                  <li>Create an instance of the XMLSignatureValidator class.</li>
                  <li>
            Set the
            <code>uriDereferencer</code>
            property of the instance to an instance of your
  IURIDereferencer implementation class.
          </li>
                  <li>
            Supply DER-encoded certificates for building the certificate trust chain, if desired, 
  using the
            <code>addCertificate()</code>
            method.
          </li>
                  <li>
            Call the XMLSignatureValidator
            <code>verify</code>
            method, passing in the signature to
  be verified.
          </li>
                  <li>
            Check the
            <code>validityStatus</code>
            property after the XMLSignatureValidator object 
  dispatches a complete event.
          </li>
               </ol>
        
               <p>
                  <b>About signature status:</b>
               </p>
        
               <p>The validity of an XML signature can be valid, invalid, or unknown. The overall
  status depends on the verification status of the individual components of the signature file:</p>
        
               <ul>
                  <li>
                     <code>digestStatus</code>
            &mdash; The validity of the cryptographic of the signature computed over
  the SignedInfo element. Can be
            <code>valid</code>
            ,
            <code>invalid</code>
            , or
            <code>unknown</code>
            .
          </li>
                  <li>
                     <code>identityStatus</code>
            &mdash; The validity of the signing certificate. If the certificate has 
  expired, has been revoked, or altered, the status is
            <code>invalid</code>
            . If the certificate cannot be chained 
  to a trusted root certificate, the status is
            <code>unknown</code>
            . The certificate is not checked if the  
  digest is invalid. If not checked, the status will be reported as
            <code>unknown</code>
            .
          </li>
                  <li>
                     <code>referencesStatus</code>
            &mdash; The validity of the data addressed by the references in the
  SignedInfo element of the signature file. Can be
            <code>valid</code>
            ,
            <code>invalid</code>
            , or
            <code>unknown</code>
            . The references are not checked if the digest or certificate is invalid.
  Reference checking can also be skipped based on the setting of the
            <code>referencesValidationSetting</code>
            property. 
  If not checked, the status will be reported as
            <code>unknown</code>
            .
          </li>
               </ul>
        
               <p>
          The signature validity reported by the
          <code>validityStatus</code>
          property can be:
        </p>
        
               <ul>
                  <li>
                     <code>valid</code>
            &mdash; If
            <code>referencesStatus</code>
            ,
            <code>digestStatus</code>
            , and
            <code>identityStatus</code>
            are all
            <code>valid</code>
            .
          </li>
                  <li>
                     <code>invalid</code>
            &mdash; If any individual status is
            <code>invalid</code>
            .
          </li>
                  <li>
                     <code>unknown</code>
            &mdash; If
            <code>referencesStatus</code>
            ,
            <code>digestStatus</code>
            , or
            <code>identityStatus</code>
            is
            <code>unknown</code>
            .
          </li>
               </ul>
        
            <p></p><p><a href="#includeExamplesSummary">View the examples</a></p><p><span class="classHeaderTableLabel">See also</span></p><div class="seeAlso"><a href="IURIDereferencer.html" target="">IURIDereferencer</a><br/><a href="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/" target="mm_external">XML-Signature Syntax and Processing</a><br/><a href="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" target="mm_external">Canonical XML</a><br/><a href="http://www.ietf.org/rfc/rfc2437.txt" target="mm_external">PKCS #1</a></div><br/><hr></div><a name="propertySummary"></a><div class="summarySection"><div class="summaryTableTitle">Public Properties</div><div class="showHideLinks"><div id="hideInheritedProperty" class="hideInheritedProperty"><a class="showHideLink" href="#propertySummary" onclick="javascript:setInheritedVisible(false,'Property');"><img class="showHideLinkImage" src="../../images/expanded.gif"> Hide Inherited Public Properties</a></div><div id="showInheritedProperty" class="showInheritedProperty"><a class="showHideLink" href="#propertySummary" onclick="javascript:setInheritedVisible(true,'Property');"><img class="showHideLinkImage" src="../../images/collapsed.gif"> Show Inherited Public Properties</a></div></div><table cellspacing="0" cellpadding="3" class="summaryTable " id="summaryTableProperty"><tr><th>&nbsp;</th><th colspan="2">Property</th><th>Defined By</th></tr><tr class="hideInheritedProperty"><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img src="../../images/inheritedSummary.gif" alt="Inherited" title="Inherited" class="inheritedSummaryImage"></td><td class="summaryTableSignatureCol"><a href="../../Object.html#constructor" class="signatureLink">constructor</a> : <a href="../../Object.html">Object</a><div class="summaryTableDescription">A reference to the class object or constructor function for a given object instance.</div></td><td class="summaryTableOwnerCol"><a href="../../Object.html">Object</a></td></tr><tr class=""><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><img src="../../images/AirIcon12x12.gif" width="12" height="12" hspace="0" vspace="0" alt="AIR-only" title="Only available in the AIR runtime">&nbsp;<a href="#digestStatus" class="signatureLink">digestStatus</a> : <a href="../../String.html">String</a><div class="summaryTableDescription">[read-only] The validity status of the cryptographic signature computed over the 
     SignedInfo element.</div></td><td class="summaryTableOwnerCol">XMLSignatureValidator</td></tr><tr class=""><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><img src="../../images/AirIcon12x12.gif" width="12" height="12" hspace="0" vspace="0" alt="AIR-only" title="Only available in the AIR runtime">&nbsp;<a href="#identityStatus" class="signatureLink">identityStatus</a> : <a href="../../String.html">String</a><div class="summaryTableDescription">[read-only] The validity status of the signing certificate.</div></td><td class="summaryTableOwnerCol">XMLSignatureValidator</td></tr><tr class="hideInheritedProperty"><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img src="../../images/inheritedSummary.gif" alt="Inherited" title="Inherited" class="inheritedSummaryImage"></td><td class="summaryTableSignatureCol"><a href="../../Object.html#prototype" class="signatureLink">prototype</a> : <a href="../../Object.html">Object</a><div class="summaryTableDescription">[static] A reference to the prototype object of a class or function object.</div></td><td class="summaryTableOwnerCol"><a href="../../Object.html">Object</a></td></tr><tr class=""><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><img src="../../images/AirIcon12x12.gif" width="12" height="12" hspace="0" vspace="0" alt="AIR-only" title="Only available in the AIR runtime">&nbsp;<a href="#referencesStatus" class="signatureLink">referencesStatus</a> : <a href="../../String.html">String</a><div class="summaryTableDescription">[read-only] The validity status of the data in the references in the SignedInfo 
     element.</div></td><td class="summaryTableOwnerCol">XMLSignatureValidator</td></tr><tr class=""><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><img src="../../images/AirIcon12x12.gif" width="12" height="12" hspace="0" vspace="0" alt="AIR-only" title="Only available in the AIR runtime">&nbsp;<a href="#referencesValidationSetting" class="signatureLink">referencesValidationSetting</a> : <a href="../../String.html">String</a><div class="summaryTableDescription">Specifies the conditions under which references are checked.</div></td><td class="summaryTableOwnerCol">XMLSignatureValidator</td></tr><tr class=""><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><img src="../../images/AirIcon12x12.gif" width="12" height="12" hspace="0" vspace="0" alt="AIR-only" title="Only available in the AIR runtime">&nbsp;<a href="#revocationCheckSetting" class="signatureLink">revocationCheckSetting</a> : <a href="../../String.html">String</a><div class="summaryTableDescription">Specifies how certificate revocation is checked.</div></td><td class="summaryTableOwnerCol">XMLSignatureValidator</td></tr><tr class=""><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><img src="../../images/AirIcon12x12.gif" width="12" height="12" hspace="0" vspace="0" alt="AIR-only" title="Only available in the AIR runtime">&nbsp;<a href="#signerCN" class="signatureLink">signerCN</a> : <a href="../../String.html">String</a><div class="summaryTableDescription">[read-only] The Common Name field of the signing certificate.</div></td><td class="summaryTableOwnerCol">XMLSignatureValidator</td></tr><tr class=""><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><img src="../../images/AirIcon12x12.gif" width="12" height="12" hspace="0" vspace="0" alt="AIR-only" title="Only available in the AIR runtime">&nbsp;<a href="#signerDN" class="signatureLink">signerDN</a> : <a href="../../String.html">String</a><div class="summaryTableDescription">[read-only] The Distinguished Name field of the signing certificate.</div></td><td class="summaryTableOwnerCol">XMLSignatureValidator</td></tr><tr class=""><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><img src="../../images/AirIcon12x12.gif" width="12" height="12" hspace="0" vspace="0" alt="AIR-only" title="Only available in the AIR runtime">&nbsp;<a href="#signerExtendedKeyUsages" class="signatureLink">signerExtendedKeyUsages</a> : <a href="../../Array.html">Array</a><div class="summaryTableDescription">[read-only] An array containing the Extended Key Usages OIDs listed in the signing certificate.</div></td><td class="summaryTableOwnerCol">XMLSignatureValidator</td></tr><tr class=""><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><img src="../../images/AirIcon12x12.gif" width="12" height="12" hspace="0" vspace="0" alt="AIR-only" title="Only available in the AIR runtime">&nbsp;<a href="#signerTrustSettings" class="signatureLink">signerTrustSettings</a> : <a href="../../Array.html">Array</a><div class="summaryTableDescription">[read-only] An array containing the trust settings of the signing certificate.</div></td><td class="summaryTableOwnerCol">XMLSignatureValidator</td></tr><tr class=""><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><img src="../../images/AirIcon12x12.gif" width="12" height="12" hspace="0" vspace="0" alt="AIR-only" title="Only available in the AIR runtime">&nbsp;<a href="#uriDereferencer" class="signatureLink">uriDereferencer</a> : <a href="../../flash/security/IURIDereferencer.html">IURIDereferencer</a><div class="summaryTableDescription">The IURIDereferencer implementation.</div></td><td class="summaryTableOwnerCol">XMLSignatureValidator</td></tr><tr class=""><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><img src="../../images/AirIcon12x12.gif" width="12" height="12" hspace="0" vspace="0" alt="AIR-only" title="Only available in the AIR runtime">&nbsp;<a href="#useSystemTrustStore" class="signatureLink">useSystemTrustStore</a> : <a href="../../Boolean.html">Boolean</a><div class="summaryTableDescription">Specifies that certificates in the system trust store are used for chain building.</div></td><td class="summaryTableOwnerCol">XMLSignatureValidator</td></tr><tr class=""><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><img src="../../images/AirIcon12x12.gif" width="12" height="12" hspace="0" vspace="0" alt="AIR-only" title="Only available in the AIR runtime">&nbsp;<a href="#validityStatus" class="signatureLink">validityStatus</a> : <a href="../../String.html">String</a><div class="summaryTableDescription">[read-only] The validity status of a verified XML signature.</div></td><td class="summaryTableOwnerCol">XMLSignatureValidator</td></tr></table></div><a name="methodSummary"></a><div class="summarySection"><div class="summaryTableTitle">Public Methods </div><div class="showHideLinks"><div id="hideInheritedMethod" class="hideInheritedMethod"><a class="showHideLink" href="#methodSummary" onclick="javascript:setInheritedVisible(false,'Method');"><img class="showHideLinkImage" src="../../images/expanded.gif"> Hide Inherited Public Methods</a></div><div id="showInheritedMethod" class="showInheritedMethod"><a class="showHideLink" href="#methodSummary" onclick="javascript:setInheritedVisible(true,'Method');"><img class="showHideLinkImage" src="../../images/collapsed.gif"> Show Inherited Public Methods</a></div></div><table cellspacing="0" cellpadding="3" class="summaryTable " id="summaryTableMethod"><tr><th>&nbsp;</th><th colspan="2">Method</th><th>Defined By</th></tr><tr class=""><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><div class="summarySignature"><img src="../../images/AirIcon12x12.gif" width="12" height="12" hspace="0" vspace="0" alt="AIR-only" title="Only available in the AIR runtime">&nbsp;<a href="#XMLSignatureValidator()" class="signatureLink">XMLSignatureValidator</a>()</div><div class="summaryTableDescription">Creates an XMLSignatureValidator object.</div></td><td class="summaryTableOwnerCol">XMLSignatureValidator</td></tr><tr class=""><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><div class="summarySignature"><img src="../../images/AirIcon12x12.gif" width="12" height="12" hspace="0" vspace="0" alt="AIR-only" title="Only available in the AIR runtime">&nbsp;<a href="#addCertificate()" class="signatureLink">addCertificate</a>(cert:<a href="../../flash/utils/ByteArray.html">ByteArray</a>, trusted:<a href="../../Boolean.html">Boolean</a>):<a href="../../specialTypes.html#*">*</a></div><div class="summaryTableDescription">Adds an x509 certificate for chain building.</div></td><td class="summaryTableOwnerCol">XMLSignatureValidator</td></tr><tr class="hideInheritedMethod"><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img src="../../images/inheritedSummary.gif" alt="Inherited" title="Inherited" class="inheritedSummaryImage"></td><td class="summaryTableSignatureCol"><div class="summarySignature"><a href="../../flash/events/EventDispatcher.html#addEventListener()" class="signatureLink">addEventListener</a>(type:<a href="../../String.html">String</a>, listener:<a href="../../Function.html">Function</a>, useCapture:<a href="../../Boolean.html">Boolean</a> = false, priority:<a href="../../int.html">int</a> = 0, useWeakReference:<a href="../../Boolean.html">Boolean</a> = false):<a href="../../specialTypes.html#void">void</a></div><div class="summaryTableDescription">Registers an event listener object with an EventDispatcher object so that the listener 
 receives notification of an event.</div></td><td class="summaryTableOwnerCol"><a href="../../flash/events/EventDispatcher.html">EventDispatcher</a></td></tr><tr class="hideInheritedMethod"><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img src="../../images/inheritedSummary.gif" alt="Inherited" title="Inherited" class="inheritedSummaryImage"></td><td class="summaryTableSignatureCol"><div class="summarySignature"><a href="../../flash/events/EventDispatcher.html#dispatchEvent()" class="signatureLink">dispatchEvent</a>(event:<a href="../../flash/events/Event.html">Event</a>):<a href="../../Boolean.html">Boolean</a></div><div class="summaryTableDescription">Dispatches an event into the event flow.</div></td><td class="summaryTableOwnerCol"><a href="../../flash/events/EventDispatcher.html">EventDispatcher</a></td></tr><tr class="hideInheritedMethod"><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img src="../../images/inheritedSummary.gif" alt="Inherited" title="Inherited" class="inheritedSummaryImage"></td><td class="summaryTableSignatureCol"><div class="summarySignature"><a href="../../flash/events/EventDispatcher.html#hasEventListener()" class="signatureLink">hasEventListener</a>(type:<a href="../../String.html">String</a>):<a href="../../Boolean.html">Boolean</a></div><div class="summaryTableDescription">Checks whether the EventDispatcher object has any listeners registered for a specific type 
 of event.</div></td><td class="summaryTableOwnerCol"><a href="../../flash/events/EventDispatcher.html">EventDispatcher</a></td></tr><tr class="hideInheritedMethod"><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img src="../../images/inheritedSummary.gif" alt="Inherited" title="Inherited" class="inheritedSummaryImage"></td><td class="summaryTableSignatureCol"><div class="summarySignature"><a href="../../Object.html#hasOwnProperty()" class="signatureLink">hasOwnProperty</a>(name:<a href="../../String.html">String</a>):<a href="../../Boolean.html">Boolean</a></div><div class="summaryTableDescription">Indicates whether an object has a specified property defined.</div></td><td class="summaryTableOwnerCol"><a href="../../Object.html">Object</a></td></tr><tr class="hideInheritedMethod"><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img src="../../images/inheritedSummary.gif" alt="Inherited" title="Inherited" class="inheritedSummaryImage"></td><td class="summaryTableSignatureCol"><div class="summarySignature"><a href="../../Object.html#isPrototypeOf()" class="signatureLink">isPrototypeOf</a>(theClass:<a href="../../Object.html">Object</a>):<a href="../../Boolean.html">Boolean</a></div><div class="summaryTableDescription">Indicates whether an instance of the Object class is in the prototype chain of the object specified 
  as the parameter.</div></td><td class="summaryTableOwnerCol"><a href="../../Object.html">Object</a></td></tr><tr class="hideInheritedMethod"><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img src="../../images/inheritedSummary.gif" alt="Inherited" title="Inherited" class="inheritedSummaryImage"></td><td class="summaryTableSignatureCol"><div class="summarySignature"><a href="../../Object.html#propertyIsEnumerable()" class="signatureLink">propertyIsEnumerable</a>(name:<a href="../../String.html">String</a>):<a href="../../Boolean.html">Boolean</a></div><div class="summaryTableDescription">Indicates whether the specified property exists and is enumerable.</div></td><td class="summaryTableOwnerCol"><a href="../../Object.html">Object</a></td></tr><tr class="hideInheritedMethod"><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img src="../../images/inheritedSummary.gif" alt="Inherited" title="Inherited" class="inheritedSummaryImage"></td><td class="summaryTableSignatureCol"><div class="summarySignature"><a href="../../flash/events/EventDispatcher.html#removeEventListener()" class="signatureLink">removeEventListener</a>(type:<a href="../../String.html">String</a>, listener:<a href="../../Function.html">Function</a>, useCapture:<a href="../../Boolean.html">Boolean</a> = false):<a href="../../specialTypes.html#void">void</a></div><div class="summaryTableDescription">Removes a listener from the EventDispatcher object.</div></td><td class="summaryTableOwnerCol"><a href="../../flash/events/EventDispatcher.html">EventDispatcher</a></td></tr><tr class="hideInheritedMethod"><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img src="../../images/inheritedSummary.gif" alt="Inherited" title="Inherited" class="inheritedSummaryImage"></td><td class="summaryTableSignatureCol"><div class="summarySignature"><a href="../../Object.html#setPropertyIsEnumerable()" class="signatureLink">setPropertyIsEnumerable</a>(name:<a href="../../String.html">String</a>, isEnum:<a href="../../Boolean.html">Boolean</a> = true):<a href="../../specialTypes.html#void">void</a></div><div class="summaryTableDescription">Sets the availability of a dynamic property for loop operations.</div></td><td class="summaryTableOwnerCol"><a href="../../Object.html">Object</a></td></tr><tr class="hideInheritedMethod"><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img src="../../images/inheritedSummary.gif" alt="Inherited" title="Inherited" class="inheritedSummaryImage"></td><td class="summaryTableSignatureCol"><div class="summarySignature"><a href="../../Object.html#toString()" class="signatureLink">toString</a>():<a href="../../String.html">String</a></div><div class="summaryTableDescription">Returns the string representation of the specified object.</div></td><td class="summaryTableOwnerCol"><a href="../../Object.html">Object</a></td></tr><tr class="hideInheritedMethod"><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img src="../../images/inheritedSummary.gif" alt="Inherited" title="Inherited" class="inheritedSummaryImage"></td><td class="summaryTableSignatureCol"><div class="summarySignature"><a href="../../Object.html#valueOf()" class="signatureLink">valueOf</a>():<a href="../../Object.html">Object</a></div><div class="summaryTableDescription">Returns the primitive value of the specified object.</div></td><td class="summaryTableOwnerCol"><a href="../../Object.html">Object</a></td></tr><tr class=""><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><div class="summarySignature"><img src="../../images/AirIcon12x12.gif" width="12" height="12" hspace="0" vspace="0" alt="AIR-only" title="Only available in the AIR runtime">&nbsp;<a href="#verify()" class="signatureLink">verify</a>(signature:<a href="../../XML.html">XML</a>):<a href="../../specialTypes.html#void">void</a></div><div class="summaryTableDescription">Verifies the specified signature.</div></td><td class="summaryTableOwnerCol">XMLSignatureValidator</td></tr><tr class="hideInheritedMethod"><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img src="../../images/inheritedSummary.gif" alt="Inherited" title="Inherited" class="inheritedSummaryImage"></td><td class="summaryTableSignatureCol"><div class="summarySignature"><a href="../../flash/events/EventDispatcher.html#willTrigger()" class="signatureLink">willTrigger</a>(type:<a href="../../String.html">String</a>):<a href="../../Boolean.html">Boolean</a></div><div class="summaryTableDescription">Checks whether an event listener is registered with this EventDispatcher object or any of 
 its ancestors for the specified event type.</div></td><td class="summaryTableOwnerCol"><a href="../../flash/events/EventDispatcher.html">EventDispatcher</a></td></tr></table></div><a name="eventSummary"></a><div class="summarySection"><div class="summaryTableTitle">Events</div><div class="showHideLinks"><div id="hideInheritedEvent" class="hideInheritedEvent"><a class="showHideLink" href="#eventSummary" onclick="javascript:setInheritedVisible(false,'Event');"><img class="showHideLinkImage" src="../../images/expanded.gif"> Hide Inherited Events</a></div><div id="showInheritedEvent" class="showInheritedEvent"><a class="showHideLink" href="#eventSummary" onclick="javascript:setInheritedVisible(true,'Event');"><img class="showHideLinkImage" src="../../images/collapsed.gif"> Show Inherited Events</a></div></div><table cellspacing="0" cellpadding="3" class="summaryTable " id="summaryTableEvent"><tr><th>&nbsp;</th><th colspan="2">Event</th><th> Summary </th><th>Defined By</th></tr><tr class="hideInheritedEvent"><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img src="../../images/inheritedSummary.gif" alt="Inherited" title="Inherited" class="inheritedSummaryImage"></td><td class="summaryTableSignatureCol"><div class="summarySignature"><a href="../../flash/events/EventDispatcher.html#event:activate" class="signatureLink">activate</a></div></td><td class="summaryTableDescription summaryTableCol">[broadcast event] Dispatched when the Flash Player or AIR application gains operating system focus and becomes active.</td><td class="summaryTableOwnerCol"><a href="../../flash/events/EventDispatcher.html">EventDispatcher</a></td></tr><tr class=""><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><div class="summarySignature"><img src="../../images/AirIcon12x12.gif" width="12" height="12" hspace="0" vspace="0" alt="AIR-only" title="Only available in the AIR runtime">&nbsp;<a href="#event:complete" class="signatureLink">complete</a></div></td><td class="summaryTableDescription summaryTableCol">Dispatched when verification is complete.</td><td class="summaryTableOwnerCol">XMLSignatureValidator</td></tr><tr class="hideInheritedEvent"><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img src="../../images/inheritedSummary.gif" alt="Inherited" title="Inherited" class="inheritedSummaryImage"></td><td class="summaryTableSignatureCol"><div class="summarySignature"><a href="../../flash/events/EventDispatcher.html#event:deactivate" class="signatureLink">deactivate</a></div></td><td class="summaryTableDescription summaryTableCol">[broadcast event] Dispatched when the Flash Player or AIR application operating loses system focus and is becoming inactive.</td><td class="summaryTableOwnerCol"><a href="../../flash/events/EventDispatcher.html">EventDispatcher</a></td></tr><tr class=""><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><div class="summarySignature"><img src="../../images/AirIcon12x12.gif" width="12" height="12" hspace="0" vspace="0" alt="AIR-only" title="Only available in the AIR runtime">&nbsp;<a href="#event:error" class="signatureLink">error</a></div></td><td class="summaryTableDescription summaryTableCol">Dispatched if verification cannot complete because of errors.</td><td class="summaryTableOwnerCol">XMLSignatureValidator</td></tr></table></div><script language="javascript" type="text/javascript"><!--
                      showHideInherited();
                      --></script><div class="MainContent"><div class="detailSectionHeader">Property Detail</div><a name="propertyDetail"></a><a name="digestStatus"></a><table class="detailHeader" cellpadding="0" cellspacing="0"><tr><td class="detailHeaderName"><img src="../../images/AirIcon12x12.gif" width="12" height="12" hspace="0" vspace="0" alt="AIR-only" title="Only available in the AIR runtime">&nbsp;digestStatus</td><td class="detailHeaderType">property</td></tr></table><div class="detailBody"><code>digestStatus:<a href="../../String.html">String</a></code>&nbsp;&nbsp;[read-only] <p></p><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b>Runtime Versions:&nbsp;</b></td><td>AIR 1.0</td></tr></table><p></p><p></p><p>
          The validity status of the cryptographic signature computed over the
          <code>SignedInfo</code>
          element.
          <p>The status is:</p>
          
          <ul><li>
              <code>valid</code>
              &mdash; If signature is cryptographically valid.
            </li><li>
              <code>invalid</code>
              &mdash; If the digest has been altered after signing.
            </li><li>
              <code>unknown</code>
              &mdash; If the
              <code>verify()</code>
              method has not
     been called.
            </li></ul>
          
          <p>
            <b>Note:</b>
            If the
            <code>digestStatus</code>
            is invalid, the
            <code>identityStatus</code>
            and
            <code>referencesStatus</code>
            are not checked and will be reported as
            <code>unknown</code>
            .
          </p>
          
        </p><br/><br/><span class="label"> Implementation </span><br/><code>&nbsp;&nbsp;&nbsp;&nbsp;public function get digestStatus():<a href="../../String.html">String</a></code><br/><br/><span class="label"> Throws </span><br/><table cellpadding="0" cellspacing="0" border="0"><tr><td width="20"></td><td><code><a href="../../flash/errors/IllegalOperationError.html">IllegalOperationError</a> </code> &mdash; If accessed while a signature is being validated.</td></tr></table></div><a name="propertyDetail"></a><a name="identityStatus"></a><table class="detailHeader" cellpadding="0" cellspacing="0"><tr><td class="detailHeaderName"><img src="../../images/AirIcon12x12.gif" width="12" height="12" hspace="0" vspace="0" alt="AIR-only" title="Only available in the AIR runtime">&nbsp;identityStatus</td><td class="detailHeaderType">property</td><td class="detailHeaderRule">&nbsp;</td></tr></table><div class="detailBody"><code>identityStatus:<a href="../../String.html">String</a></code>&nbsp;&nbsp;[read-only] <p></p><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b>Runtime Versions:&nbsp;</b></td><td>AIR 1.0</td></tr></table><p></p><p></p><p>
          The validity status of the signing certificate.
          <p>The status can be:</p>
          
          <ul><li>
              <code>valid</code>
              &mdash; The certificate has not expired, has not failed a revocation check and chains
     to a trusted root certificate.
            </li><li>
              <code>unknown</code>
              &mdash; The certificate has not expired and has not failed a revocation check, 
     but does not chain to a trusted root certificate. A status of
              <code>unknown</code>
              will also
     be reported when the status has not been verified, either because the
              <code>verify()</code>
              method has not
     been called or because the cryptographic signature of the SignedInfo element (
              <code>digestStatus</code>
              )
     is invalid.
            </li><li>
              <code>invalid</code>
              &mdash; The certificate has expired or fails a revocation check.
            </li></ul>
          
          <p>
            The certificates added using the
            <code>addCertificate()</code>
            method 
     and the settings of the
            <code>revocationCheckSetting</code>
            and the
            <code>useSystemTrustStore</code>
            properties can change whether a certificate is considered valid.
          </p>
          
          <p>
            <b>Note:</b>
            If the
            <code>identityStatus</code>
            is invalid, the
            <code>referencesStatus</code>
            is not checked 
   and will be reported as
            <code>unknown</code>
            . In addition, references are not checked when the
            <code>identityStatus</code>
            is unknown unless the
            <code>referencesValidationSetting</code>
            is
            <code>validOrUnknownIdentity</code>
          </p>
          
        </p><br/><br/><span class="label"> Implementation </span><br/><code>&nbsp;&nbsp;&nbsp;&nbsp;public function get identityStatus():<a href="../../String.html">String</a></code><br/><br/><span class="label"> Throws </span><br/><table cellpadding="0" cellspacing="0" border="0"><tr><td width="20"></td><td><code><a href="../../flash/errors/IllegalOperationError.html">IllegalOperationError</a> </code> &mdash; If accessed while a signature is being validated.</td></tr></table><p><span class="label">See also</span></p><div class="seeAlso"><a href="XMLSignatureValidator.html#addCertificate()" target="">addCertificate()</a><br/><a href="XMLSignatureValidator.html#revocationCheckSetting" target="">revocationCheckSetting</a><br/><a href="XMLSignatureValidator.html#useSystemTrustStore" target="">useSystemTrustStore</a><br/><a href="XMLSignatureValidator.html#referencesValidationSetting" target="">referencesValidationSetting</a></div><br/><span class="label"> Example </span><br/><div class="detailBody">
          The following example gets the result of validating the signing certificate 
 (after a signature has been validated):
          <div class="listing"><pre>import flash.security.XMLSignatureValidator;
 
 
 var verifier:XMLSignatureValidator = new XMLSignatureValidator();
 //validate a signature...
  
 var identityResult:String = verifier.identityStatus;</pre></div>
        </div></div><a name="propertyDetail"></a><a name="referencesStatus"></a><table class="detailHeader" cellpadding="0" cellspacing="0"><tr><td class="detailHeaderName"><img src="../../images/AirIcon12x12.gif" width="12" height="12" hspace="0" vspace="0" alt="AIR-only" title="Only available in the AIR runtime">&nbsp;referencesStatus</td><td class="detailHeaderType">property</td><td class="detailHeaderRule">&nbsp;</td></tr></table><div class="detailBody"><code>referencesStatus:<a href="../../String.html">String</a></code>&nbsp;&nbsp;[read-only] <p></p><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b>Runtime Versions:&nbsp;</b></td><td>AIR 1.0</td></tr></table><p></p><p></p><p>
          The validity status of the data in the references in the
          <code>SignedInfo</code>
          element.
          <p>The status can be:</p>
          
          <ul><li>
              <code>valid</code>
              &mdash; If all references are valid.
            </li><li>
              <code>invalid</code>
              &mdash; If any reference is invalid.
            </li><li>
              <code>unknown</code>
              &mdash; If not verified. 
     References can remain unverified in the following circumstances:
              <ul><li>
                  the
                  <code>verify()</code>
                  method has not been called
                </li><li>
                  the cryptographic signature of the SignedInfo element (
                  <code>digestStatus</code>
                  ) is invalid.
                </li><li>
                  the signing certificate (
                  <code>identityStatus</code>
                  ) is invalid
                </li><li>
                  <code>referencesValidationSetting</code>
                  is
                  <code>validIdentity</code>
                  (which is the default setting) and 
      the
                  <code>identityStatus</code>
                  of the signing certificate is unknown.
                </li><li>
                  the
                  <code>referencesValidationSetting</code>
                  is
                  <code>never</code>
                  .
                </li></ul>
              
            </li></ul>
          
          <p>
            <b>Important:</b>
            External resources are not validated unless they are referenced directly 
   in a SignedInfo element within the signature document. External resources referred to by a secondary
   reference are not validated. For example, if an XML signature signs a manifest element, only 
   the integrity of the manifest element itself is verified. The files listed in the manifest are not
   checked.
          </p>
          
        </p><br/><br/><span class="label"> Implementation </span><br/><code>&nbsp;&nbsp;&nbsp;&nbsp;public function get referencesStatus():<a href="../../String.html">String</a></code><br/><br/><span class="label"> Throws </span><br/><table cellpadding="0" cellspacing="0" border="0"><tr><td width="20"></td><td><code><a href="../../flash/errors/IllegalOperationError.html">IllegalOperationError</a> </code> &mdash; If accessed while a signature is being validated.</td></tr></table><p><span class="label">See also</span></p><div class="seeAlso"><a href="XMLSignatureValidator.html#referencesValidationSetting" target="">referencesValidationSetting</a></div><br/><span class="label"> Example </span><br/><div class="detailBody">
          The following example gets the result of validating the references in the signature 
 (after a signature has been validated):
          <div class="listing"><pre>import flash.security.XMLSignatureValidator;
 
 var verifier:XMLSignatureValidator = new XMLSignatureValidator();
 //validate a signature...
  
 var dataResult:String = verifier.referencesStatus;</pre></div>
        </div></div><a name="propertyDetail"></a><a name="referencesValidationSetting"></a><table class="detailHeader" cellpadding="0" cellspacing="0"><tr><td class="detailHeaderName"><img src="../../images/AirIcon12x12.gif" width="12" height="12" hspace="0" vspace="0" alt="AIR-only" title="Only available in the AIR runtime">&nbsp;referencesValidationSetting</td><td class="detailHeaderType">property</td><td class="detailHeaderRule">&nbsp;</td></tr></table><div class="detailBody"><code>referencesValidationSetting:<a href="../../String.html">String</a></code>&nbsp;&nbsp;[read-write] <p></p><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b>Runtime Versions:&nbsp;</b></td><td>AIR 1.5</td></tr></table><p></p><p></p><p>
          Specifies the conditions under which references are checked.
          <p>Use constants defined in the ReferencesValidationSetting class to set this property. The
   settings include:</p>
          
          <ul><li>
              <code>ReferencesValidationSetting.VALID_IDENTITY</code>
              &mdash; Check references only
   if the signing certificate is valid and chains to a trusted root. This is the default setting.
            </li><li>
              <code>ReferencesValidationSetting.VALID_OR_UNKNOWN_IDENTITY</code>
              &mdash; Check references
   if the signing certificate is valid, even if it does not chain to a trusted root.
            </li><li>
              <code>ReferencesValidationSetting.NEVER</code>
              &mdash; Never check references.
            </li></ul>
          
          <p>
            Use the default,
            <code>validIdentity</code>
            , setting with signatures signed with a commercial certificate or when you
   supply your own certificate as a trust anchor with the
            <code>addCertificate()</code>
            method. This
   setting avoids the overhead of checking reference validity when the signed document will be rejected anyway.
          </p>
          
          <p>
            Use the
            <code>validOrUnknownIdentity</code>
            setting with signatures signed with self-signed certificates. This setting allows you to
   validate that the signed data has not been altered, but does not provide any assurances about the identity
   of the signer.
          </p>
          
          <p>
            Use the
            <code>never</code>
            setting to avoid the overhead of validating references when such validation is not important in the
   context of your application.
          </p>
          
        </p><br/><br/><span class="label"> Implementation </span><br/><code>&nbsp;&nbsp;&nbsp;&nbsp;public function get referencesValidationSetting():<a href="../../String.html">String</a></code><br/><code>&nbsp;&nbsp;&nbsp;&nbsp;public function set referencesValidationSetting(value:<a href="../../String.html">String</a>):<a href="../../specialTypes.html#void">void</a></code><br/><br/><span class="label"> Throws </span><br/><table cellpadding="0" cellspacing="0" border="0"><tr><td width="20"></td><td><code><a href="../../flash/errors/IllegalOperationError.html">IllegalOperationError</a> </code> &mdash; If set while a signature is being validated.</td></tr></table><p><span class="label">See also</span></p><div class="seeAlso"><a href="ReferencesValidationSetting.html" target="">ReferencesValidationSetting</a></div><br/><span class="label"> Example </span><br/><div class="detailBody">
          The following example sets the XMLSignatureValidator object to check references only
 if the signing certificate chains to a trust anchor:
          <div class="listing"><pre>import flash.security.ReferencesValidationSetting;
 
 var verifier:XMLSignatureValidator = new XMLSignatureValidator(); 
 verifier.referencesValidationSetting = ReferencesValidationSetting.VALID_OR_UNKNOWN_IDENTITY;</pre></div>
        </div></div><a name="propertyDetail"></a><a name="revocationCheckSetting"></a><table class="detailHeader" cellpadding="0" cellspacing="0"><tr><td class="detailHeaderName"><img src="../../images/AirIcon12x12.gif" width="12" height="12" hspace="0" vspace="0" alt="AIR-only" title="Only available in the AIR runtime">&nbsp;revocationCheckSetting</td><td class="detailHeaderType">property</td><td class="detailHeaderRule">&nbsp;</td></tr></table><div class="detailBody"><code>revocationCheckSetting:<a href="../../String.html">String</a></code>&nbsp;&nbsp;[read-write] <p></p><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b>Runtime Versions:&nbsp;</b></td><td>AIR 1.0</td></tr></table><p></p><p></p><p>
          Specifies how certificate revocation is checked.
          <p>Use constants defined in the RevocationSettings class to set this property. The
   settings include:</p>
          
          <ul><li>
              <code>RevocationCheckSettings.NEVER</code>
              &mdash; Do not check certificate revocation.
            </li><li>
              <code>RevocationCheckSettings.BEST_EFFORT</code>
              &mdash; Check certificate revocation, 
   if revocation information is available and the revocation status can be obtained. 
   If revocation status cannot be positively determined, the certificate is not rejected.
            </li><li>
              <code>RevocationCheckSettings.REQUIRED_IF_AVAILABLE</code>
              &mdash; If the certificate includes 
   revocation information, the revocation status must be positively determined to validate 
   the certificate.
            </li><li>
              <code>RevocationCheckSettings.ALWAYS_REQUIRED</code>
              &mdash; Always check certificate revocation. 
   Certificates without revocation information are rejected.
            </li></ul>
          
        </p><br/><br/><span class="label"> Implementation </span><br/><code>&nbsp;&nbsp;&nbsp;&nbsp;public function get revocationCheckSetting():<a href="../../String.html">String</a></code><br/><code>&nbsp;&nbsp;&nbsp;&nbsp;public function set revocationCheckSetting(value:<a href="../../String.html">String</a>):<a href="../../specialTypes.html#void">void</a></code><br/><br/><span class="label"> Throws </span><br/><table cellpadding="0" cellspacing="0" border="0"><tr><td width="20"></td><td><code><a href="../../flash/errors/IllegalOperationError.html">IllegalOperationError</a> </code> &mdash; If set while a signature is being validated.</td></tr></table><p><span class="label">See also</span></p><div class="seeAlso"><a href="RevocationCheckSettings.html" target="">RevocationCheckSettings</a></div></div><a name="propertyDetail"></a><a name="signerCN"></a><table class="detailHeader" cellpadding="0" cellspacing="0"><tr><td class="detailHeaderName"><img src="../../images/AirIcon12x12.gif" width="12" height="12" hspace="0" vspace="0" alt="AIR-only" title="Only available in the AIR runtime">&nbsp;signerCN</td><td class="detailHeaderType">property</td><td class="detailHeaderRule">&nbsp;</td></tr></table><div class="detailBody"><code>signerCN:<a href="../../String.html">String</a></code>&nbsp;&nbsp;[read-only] <p></p><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b>Runtime Versions:&nbsp;</b></td><td>AIR 1.0</td></tr></table><p></p><p></p><p>The Common Name field of the signing certificate.</p><br/><br/><span class="label"> Implementation </span><br/><code>&nbsp;&nbsp;&nbsp;&nbsp;public function get signerCN():<a href="../../String.html">String</a></code><br/><br/><span class="label"> Example </span><br/><div class="detailBody">
          The following example reads the common name of the signing certificate 
 (after a signature has been validated):
          <div class="listing"><pre>var verifier:XMLSignatureValidator = new XMLSignatureValidator();
 //validate a signature...
  
 var commonName:String = verifier.signerCN;</pre></div>
        </div></div><a name="propertyDetail"></a><a name="signerDN"></a><table class="detailHeader" cellpadding="0" cellspacing="0"><tr><td class="detailHeaderName"><img src="../../images/AirIcon12x12.gif" width="12" height="12" hspace="0" vspace="0" alt="AIR-only" title="Only available in the AIR runtime">&nbsp;signerDN</td><td class="detailHeaderType">property</td><td class="detailHeaderRule">&nbsp;</td></tr></table><div class="detailBody"><code>signerDN:<a href="../../String.html">String</a></code>&nbsp;&nbsp;[read-only] <p></p><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b>Runtime Versions:&nbsp;</b></td><td>AIR 1.0</td></tr></table><p></p><p></p><p>The Distinguished Name field of the signing certificate.</p><br/><br/><span class="label"> Implementation </span><br/><code>&nbsp;&nbsp;&nbsp;&nbsp;public function get signerDN():<a href="../../String.html">String</a></code><br/><br/><span class="label"> Example </span><br/><div class="detailBody">
          The following example reads the distinguished name of the signing certificate 
 (after a signature has been validated):
          <div class="listing"><pre>var verifier:XMLSignatureValidator = new XMLSignatureValidator();
 //validate a signature...
  
 var distinguishedName:String = verifier.signerDN;</pre></div>
        </div></div><a name="propertyDetail"></a><a name="signerExtendedKeyUsages"></a><table class="detailHeader" cellpadding="0" cellspacing="0"><tr><td class="detailHeaderName"><img src="../../images/AirIcon12x12.gif" width="12" height="12" hspace="0" vspace="0" alt="AIR-only" title="Only available in the AIR runtime">&nbsp;signerExtendedKeyUsages</td><td class="detailHeaderType">property</td><td class="detailHeaderRule">&nbsp;</td></tr></table><div class="detailBody"><code>signerExtendedKeyUsages:<a href="../../Array.html">Array</a></code>&nbsp;&nbsp;[read-only] <p></p><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b>Runtime Versions:&nbsp;</b></td><td>AIR 1.0</td></tr></table><p></p><p></p><p>
          An array containing the Extended Key Usages OIDs listed in the signing certificate.
          <p>Each extended key usage is reported in numeric OID form.</p>
          
        </p><br/><br/><span class="label"> Implementation </span><br/><code>&nbsp;&nbsp;&nbsp;&nbsp;public function get signerExtendedKeyUsages():<a href="../../Array.html">Array</a></code><br/><br/><span class="label"> Throws </span><br/><table cellpadding="0" cellspacing="0" border="0"><tr><td width="20"></td><td><code><a href="../../flash/errors/IllegalOperationError.html">IllegalOperationError</a> </code> &mdash; If accessed while a signature is being validated.</td></tr></table><br/><span class="label"> Example </span><br/><div class="detailBody">
          The following example reads the extended key OIDs of the signing certificate 
 (after a signature has been validated):
          <div class="listing"><pre>import flash.security.XMLSignatureValidator;
 
 var verifier:XMLSignatureValidator = new XMLSignatureValidator();
 //validate a signature...
  
 var extendedKeyOIDs:Array = verifier.signerExtendedKeyUsages;</pre></div>
        </div></div><a name="propertyDetail"></a><a name="signerTrustSettings"></a><table class="detailHeader" cellpadding="0" cellspacing="0"><tr><td class="detailHeaderName"><img src="../../images/AirIcon12x12.gif" width="12" height="12" hspace="0" vspace="0" alt="AIR-only" title="Only available in the AIR runtime">&nbsp;signerTrustSettings</td><td class="detailHeaderType">property</td><td class="detailHeaderRule">&nbsp;</td></tr></table><div class="detailBody"><code>signerTrustSettings:<a href="../../Array.html">Array</a></code>&nbsp;&nbsp;[read-only] <p></p><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b>Runtime Versions:&nbsp;</b></td><td>AIR 1.0</td></tr></table><p></p><p></p><p>
          An array containing the trust settings of the signing certificate.
          <p>Trust settings are derived from the system and the key usage OIDs embedded in 
  the certificate. Constants for the strings representing the recognized trust settings 
  are defined in the SignerTrustSettings class.</p>
          
          <p>
            The
            <code>signerTrustSettings</code>
            array of an
            <code>unknown</code>
            or
            <code>invalid</code>
            certificate is empty.
          </p>
          
          <p>Modifying the array does not change the certificate trust settings.</p>
          
        </p><br/><br/><span class="label"> Implementation </span><br/><code>&nbsp;&nbsp;&nbsp;&nbsp;public function get signerTrustSettings():<a href="../../Array.html">Array</a></code><br/><br/><span class="label"> Throws </span><br/><table cellpadding="0" cellspacing="0" border="0"><tr><td width="20"></td><td><code><a href="../../flash/errors/IllegalOperationError.html">IllegalOperationError</a> </code> &mdash; If accessed while a signature is being validated.</td></tr></table><p><span class="label">See also</span></p><div class="seeAlso"><a href="SignerTrustSettings.html" target="">SignerTrustSettings</a></div><br/><span class="label"> Example </span><br/><div class="detailBody">
          The following example reads the trust settings of the signing certificate 
 (after a signature has been validated):
          <div class="listing"><pre>import flash.security.XMLSignatureValidator;
 
 var verifier:XMLSignatureValidator = new XMLSignatureValidator();
 //validate a signature...
  
 var certificateTrustedFor:Array = verifier.signerTrustSettings;</pre></div>
        </div></div><a name="propertyDetail"></a><a name="uriDereferencer"></a><table class="detailHeader" cellpadding="0" cellspacing="0"><tr><td class="detailHeaderName"><img src="../../images/AirIcon12x12.gif" width="12" height="12" hspace="0" vspace="0" alt="AIR-only" title="Only available in the AIR runtime">&nbsp;uriDereferencer</td><td class="detailHeaderType">property</td><td class="detailHeaderRule">&nbsp;</td></tr></table><div class="detailBody"><code>uriDereferencer:<a href="../../flash/security/IURIDereferencer.html">IURIDereferencer</a></code>&nbsp;&nbsp;[read-write] <p></p><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b>Runtime Versions:&nbsp;</b></td><td>AIR 1.0</td></tr></table><p></p><p></p><p>
          The IURIDereferencer implementation.
          <p>An IURIDereferencer implementation must be provided before attempting to
   verify a signature.</p>
          
        </p><br/><br/><span class="label"> Implementation </span><br/><code>&nbsp;&nbsp;&nbsp;&nbsp;public function get uriDereferencer():<a href="../../flash/security/IURIDereferencer.html">IURIDereferencer</a></code><br/><code>&nbsp;&nbsp;&nbsp;&nbsp;public function set uriDereferencer(value:<a href="../../flash/security/IURIDereferencer.html">IURIDereferencer</a>):<a href="../../specialTypes.html#void">void</a></code><br/><br/><span class="label"> Throws </span><br/><table cellpadding="0" cellspacing="0" border="0"><tr><td width="20"></td><td><code><a href="../../flash/errors/IllegalOperationError.html">IllegalOperationError</a> </code> &mdash; If set while a signature is being validated.</td></tr></table><p><span class="label">See also</span></p><div class="seeAlso"><a href="IURIDereferencer.html" target="">IURIDereferencer</a></div><br/><span class="label"> Example </span><br/><div class="detailBody">
          The following example creates an instance of SignedMessageDereferencer, which implements
 the IURIDereferencer interface, and sets it as the dereferencer to use for signature validation:
          <div class="listing"><pre>import com.example.SignedMessageDereferencer; //A custom class implementing IURIDereferencer
 
 var verifier:XMLSignatureValidator = new XMLSignatureValidator(); 
 verifier.uriDereferencer = new SignedMessageDereferencer();</pre></div>
        </div></div><a name="propertyDetail"></a><a name="useSystemTrustStore"></a><table class="detailHeader" cellpadding="0" cellspacing="0"><tr><td class="detailHeaderName"><img src="../../images/AirIcon12x12.gif" width="12" height="12" hspace="0" vspace="0" alt="AIR-only" title="Only available in the AIR runtime">&nbsp;useSystemTrustStore</td><td class="detailHeaderType">property</td><td class="detailHeaderRule">&nbsp;</td></tr></table><div class="detailBody"><code>useSystemTrustStore:<a href="../../Boolean.html">Boolean</a></code>&nbsp;&nbsp;[read-write] <p></p><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b>Runtime Versions:&nbsp;</b></td><td>AIR 1.0</td></tr></table><p></p><p></p><p>
          Specifies that certificates in the system trust store are used for chain building.
          <p>
            If
            <code>true</code>
            , then the trust anchors in the system trust store 
     are used as trusted roots. The system trust store is not used by default.
          </p>
          
        </p><br/><br/><span class="label"> Implementation </span><br/><code>&nbsp;&nbsp;&nbsp;&nbsp;public function get useSystemTrustStore():<a href="../../Boolean.html">Boolean</a></code><br/><code>&nbsp;&nbsp;&nbsp;&nbsp;public function set useSystemTrustStore(value:<a href="../../Boolean.html">Boolean</a>):<a href="../../specialTypes.html#void">void</a></code><br/><br/><span class="label"> Throws </span><br/><table cellpadding="0" cellspacing="0" border="0"><tr><td width="20"></td><td><code><a href="../../flash/errors/IllegalOperationError.html">IllegalOperationError</a> </code> &mdash; If set while a signature is being validated.</td></tr></table><br/><span class="label"> Example </span><br/><div class="detailBody">
          The following example creates an XMLSignatureValidator instance and sets it to use the
 system repository of trusted certificates when validating an XML signature:
          <div class="listing"><pre>var verifier:XMLSignatureValidator = new XMLSignatureValidator(); 
 verifier.useSystemTrustStore = true;</pre></div>
        </div></div><a name="propertyDetail"></a><a name="validityStatus"></a><table class="detailHeader" cellpadding="0" cellspacing="0"><tr><td class="detailHeaderName"><img src="../../images/AirIcon12x12.gif" width="12" height="12" hspace="0" vspace="0" alt="AIR-only" title="Only available in the AIR runtime">&nbsp;validityStatus</td><td class="detailHeaderType">property</td><td class="detailHeaderRule">&nbsp;</td></tr></table><div class="detailBody"><code>validityStatus:<a href="../../String.html">String</a></code>&nbsp;&nbsp;[read-only] <p></p><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b>Runtime Versions:&nbsp;</b></td><td>AIR 1.0</td></tr></table><p></p><p></p><p>
          The validity status of a verified XML signature.
          <p>
            The XML signature is verified by validating the the cryptographic signature of the SignedInfo element, 
  the signing certificate, and the data addressed by the references in the SignedInfo element. 
  The validity of each of these elements is reported individually by the
            <code>digestStatus</code>
            ,
            <code>identityStatus()</code>
            , and
            <code>referencesStatus</code>
            properties, respectively.
          </p>
          
          <p>The validity of an XML signature can be valid, invalid, or unknown. The overall
     status depends on the verification status of the individual components of the signature file:</p>
          
          <ul><li>
              <code>digestStatus</code>
              &mdash; The validity of the cryptographic signature computed over
     the SignedInfo element.
            </li><li>
              <code>identityStatus</code>
              &mdash; The validity of the signing certificate.
            </li><li>
              <code>referencesStatus</code>
              &mdash; The validity of the digest of the references in the
     signature SignedInfo element.
            </li></ul>
          
          <p>
            The signature validity reported by the
            <code>validityStatus</code>
            property can be:
          </p>
          
          <ul><li>
              <code>valid</code>
              &mdash; If
              <code>referencesStatus</code>
              ,
              <code>digestStatus</code>
              , and
              <code>identityStatus</code>
              are all
              <code>valid</code>
              .
            </li><li>
              <code>invalid</code>
              &mdash; If any individual status is
              <code>invalid</code>
              .
            </li><li>
              <code>unknown</code>
              &mdash; If any individual status is
              <code>unknown</code>
              .
            </li></ul>
          
        </p><br/><br/><span class="label"> Implementation </span><br/><code>&nbsp;&nbsp;&nbsp;&nbsp;public function get validityStatus():<a href="../../String.html">String</a></code><br/><br/><span class="label"> Throws </span><br/><table cellpadding="0" cellspacing="0" border="0"><tr><td width="20"></td><td><code><a href="../../flash/errors/IllegalOperationError.html">IllegalOperationError</a> </code> &mdash; If accessed while a signature is being validated.</td></tr></table><p><span class="label">See also</span></p><div class="seeAlso"><a href="XMLSignatureValidator.html#digestStatus" target="">digestStatus</a><br/><a href="XMLSignatureValidator.html#identityStatus" target="">identityStatus</a><br/><a href="XMLSignatureValidator.html#referencesStatus" target="">referencesStatus</a><br/><a href="SignatureStatus.html" target="">SignatureStatus</a></div><br/><span class="label"> Example </span><br/><div class="detailBody">
          The following example gets the result of validating the XML signature
          <div class="listing"><pre>import flash.security.XMLSignatureValidator;
 
 var verifier:XMLSignatureValidator = new XMLSignatureValidator();
 //validate the signature...
  
 var validationResult:String = verifier.validityStatus;</pre></div>
        </div></div><a name="constructorDetail"></a><div class="detailSectionHeader">Constructor Detail</div><a name="XMLSignatureValidator()"></a><table class="detailHeader" cellpadding="0" cellspacing="0"><tr><td class="detailHeaderName"><img src="../../images/AirIcon12x12.gif" width="12" height="12" hspace="0" vspace="0" alt="AIR-only" title="Only available in the AIR runtime">&nbsp;XMLSignatureValidator</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">Constructor</td></tr></table><div class="detailBody"><code>public function XMLSignatureValidator()</code><p></p><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b>Runtime Versions:&nbsp;</b></td><td>AIR 1.0</td></tr></table><p></p><p>
          Creates an XMLSignatureValidator object.
          <p>
            You must set the
            <code>uriDereferencer</code>
            property before calling the
            <code>verify()</code>
            method of the new object.
          </p>
          
        </p><p><span class="label">See also</span></p><div class="seeAlso"><a href="XMLSignatureValidator.html#uriDereferencer" target="">uriDereferencer</a></div><br/><span class="label"> Example </span><br/><br/><div class="detailBody">
          The following example creates and sets up a new XMLSignatureValidator object:
          <div class="listing"><pre>import com.example.EnvelopedDereferencer; //Your custom IURIDereferencer implementation

//Create the object
var verifier:XMLSignatureValidator = new XMLSignatureValidator();

//Provide the IURIDerferencer
verifier.uriDereferencer = new EnvelopedDereferencer(xmlDoc);

//Set validation options
verifier.referencesValidationSetting = ReferencesValidationSetting.VALID_OR_UNKNOWN_IDENTITY;
verifier.revocationCheckSetting = RevocationCheckSettings.NEVER;
verifier.useSystemTrustStore = true;

//Add listeners to handle results
verifier.addEventListener(Event.COMPLETE, verificationComplete);
verifier.addEventListener(ErrorEvent.ERROR, verificationError);</pre></div>
        </div></div><a name="methodDetail"></a><div class="detailSectionHeader">Method Detail</div><a name="addCertificate()"></a><a name="addCertificate(flash.utils.ByteArray,Boolean)"></a><table class="detailHeader" cellpadding="0" cellspacing="0"><tr><td class="detailHeaderName"><img src="../../images/AirIcon12x12.gif" width="12" height="12" hspace="0" vspace="0" alt="AIR-only" title="Only available in the AIR runtime">&nbsp;addCertificate</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td></tr></table><div class="detailBody"><code> public function addCertificate(cert:<a href="../../flash/utils/ByteArray.html">ByteArray</a>, trusted:<a href="../../Boolean.html">Boolean</a>):<a href="../../specialTypes.html#*">*</a></code><p></p><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b>Runtime Versions:&nbsp;</b></td><td>AIR 1.0</td></tr></table><p></p><p></p><p>
          Adds an x509 certificate for chain building.
          <p>The certificate added must be a DER-encoded x509 certificate.</p>
          
          <p>
            If the
            <code>trusted</code>
            parameter is
            <code>true</code>
            , the 
    certificate is considered a trust anchor.
          </p>
          
          <p>
            <b>Note:</b>
            An XML signature may include certificates for building 
    the signer's certificate chain. The XMLSignatureValidator class uses 
    these certificates for chain building, but not as trusted roots (by default).
          </p>
          
        </p><p><span class="label"> Parameters </span><table cellpadding="0" cellspacing="0" border="0"><tr><td width="20px"></td><td><code><span class="label">cert</span>:<a href="../../flash/utils/ByteArray.html">ByteArray</a></code> &mdash; A ByteArray object containing a DER-encoded x509 digital certificate.</td></tr><tr><td class="paramSpacer">&nbsp;</td></tr><tr><td width="20px"></td><td><code><span class="label">trusted</span>:<a href="../../Boolean.html">Boolean</a></code> &mdash; 
              Set to
              <code>true</code>
              to designate this certificate as a trust anchor.
            </td></tr></table></p><p></p><span class="label">Returns</span><table cellpadding="0" cellspacing="0" border="0"><tr><td width="20"></td><td><code><a href="../../specialTypes.html#*">*</a></code></td></tr></table><br/><span class="label">Throws</span><table cellpadding="0" cellspacing="0" border="0"><tr><td width="20"></td><td><code><a href="../../flash/errors/IllegalOperationError.html">IllegalOperationError</a> </code> &mdash; If called while a signature is being validated.</td></tr></table><br/><span class="label"> Example </span><br/><br/><div class="detailBody">
          The following example loads a certificate from the file system
 and adds it as a trusted anchor.
          <div class="listing"><pre>import flash.utils.ByteArray;
 
 var verifier:XMLSignatureValidator = new XMLSignatureValidator();
 var certificate:ByteArray = new ByteArray();
 
 var certFile:File = new File("certificate.cer");
 var certFileStream:FileStream = new FileStream();
 certFileStream.open(certFile, FileMode.READ);
 certFileStream.readBytes(certificate, 0, certFileStream.bytesAvailable);

 verifier.addCertificate(certificate, true);</pre></div>
        </div></div><a name="verify()"></a><a name="verify(XML)"></a><table class="detailHeader" cellpadding="0" cellspacing="0"><tr><td class="detailHeaderName"><img src="../../images/AirIcon12x12.gif" width="12" height="12" hspace="0" vspace="0" alt="AIR-only" title="Only available in the AIR runtime">&nbsp;verify</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule">&nbsp;</td></tr></table><div class="detailBody"><code> public function verify(signature:<a href="../../XML.html">XML</a>):<a href="../../specialTypes.html#void">void</a></code><p></p><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b>Language Version:&nbsp;</b></td><td>ActionScript 3.0</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b>Runtime Versions:&nbsp;</b></td><td>AIR 1.0</td></tr></table><p></p><p></p><p>
          Verifies the specified signature.
          <p>
            Verification is asynchronous. The XMLSignatureValidator object dispatches 
  a
            <code>complete</code>
            event when verification completes successfully or 
  an
            <code>error</code>
            event if verification cannot complete because of errors.
          </p>
          
          <p>
            The verification process cannot be cancelled. While a verification process is under way, 
  subsequent calls to the
            <code>verify()</code>
            method fail. After the current verification 
  check is complete, you can call the
            <code>verify()</code>
            method again.
          </p>
          
          <p>
            <b>Note:</b>
            Because the XMLSignatureValidator only implements a subset of the 
   W3C recommendation for XML Signature Syntax and Processing, not all valid 
   XML signatures can be verified.
          </p>
          
        </p><p><span class="label"> Parameters </span><table cellpadding="0" cellspacing="0" border="0"><tr><td width="20px"></td><td><code><span class="label">signature</span>:<a href="../../XML.html">XML</a></code> &mdash; The XML signature to verify.</td></tr></table></p><br/><span class="label">Events</span><table cellpadding="0" cellspacing="0" border="0"><tr><td width="20px"></td><td><code><b>complete</b>:<a href="../../flash/events/Event.html"><code>Event</code></a></code> &mdash; Dispatched when verification completes successfully.</td></tr><tr><td class="paramSpacer">&nbsp;</td></tr><tr><td width="20px"></td><td><code><b>error</b>:<a href="../../flash/events/ErrorEvent.html"><code>ErrorEvent</code></a></code> &mdash; Dispatched if the verification of references encounters an error.</td></tr></table><br/><span class="label">Throws</span><table cellpadding="0" cellspacing="0" border="0"><tr><td width="20"></td><td><code><a href="../../flash/errors/IllegalOperationError.html">IllegalOperationError</a> </code> &mdash; If called while a signature is being validated.</td></tr><tr><td class="paramSpacer">&nbsp;</td></tr><tr><td width="20"></td><td><code><a href="../../Error.html">Error</a> </code> &mdash; If other errors are encountered, such as non-well-formed XML or
   unsupported elements in the signature file.</td></tr></table><br/><span class="label"> Example </span><br/><br/><div class="detailBody">
          The following example reads a file containing an XML signature and validates it by
 calling the
          <code>verify()</code>
          method.
 (The example assumes that the IURIDereferencer implementation is appropriate for the signature.)
          <div class="listing"><pre>import flash.filesystem.File;
import flash.filesystem.FileStream;
import com.example.SignedMessageDereferencer; //Your IURIDereferencer implementation
 
const xmlSignatureNS:Namespace = new Namespace( "http://www.w3.org/2000/09/xmldsig#" );

var verifier:XMLSignatureValidator = new XMLSignatureValidator();
verifier.uriDereferencer = new SignedMessageDereferencer();

var signatureFile:File = new File( "path/to/XMLSignatureDocument.xml" );
var sigFileStream:FileStream = new FileStream();
sigFileStream.open( signatureFile, FileMode.READ );

var xmlDoc:XML = XML( sigFileStream.readUTFBytes(sigFileStream.bytesAvailable) );
var xmlSig:XML = XML( xmlDoc..xmlSignatureNS::Signature );

verifier.verify( xmlSig );</pre></div>
        </div></div><div class="detailSectionHeader"> Event Detail </div><a name="event:complete"></a><table class="detailHeader" cellpadding="0" cellspacing="0"><tr><td class="detailHeaderName"><img src="../../images/AirIcon12x12.gif" width="12" height="12" hspace="0" vspace="0" alt="AIR-only" title="Only available in the AIR runtime">&nbsp;complete</td><td class="detailHeaderType"> Event </td></tr></table><div class="detailBody"><span class="label">Event Object Type: </span><a href="../../flash/events/Event.html"><code>flash.events.Event</code></a><br/><span class="label">property Event.type  =  </span><a href="../../flash/events/Event.html#COMPLETE"><code>flash.events.Event.COMPLETE</code></a><br/><p></p><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b>Language Version:&nbsp;</b></td><td>ActionScript 3.0</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b>Runtime Versions:&nbsp;</b></td><td>AIR 1.0</td></tr></table><p></p><p></p><p>
          Dispatched when verification is complete.
          <p>
            A
            <code>complete</code>
            event does not imply that the
  signature is valid. Check the
            <code>validityStatus</code>
            property of
  the XMLSignatureValidator object to 
  determine the outcome of the signature verification.
          </p>
          
        </p>
          The
          <code>Event.COMPLETE</code>
          constant defines the value of the
          <code>type</code>
          property of a
          <code>complete</code>
          event object.
          <p>This event has the following properties:</p>
          
          <table class="innertable" ><tr><th>Property</th><th>Value</th></tr><tr><td>
                    <code>bubbles</code>
                  </td><td>
                    <code>false</code>
                  </td></tr><tr><td>
                    <code>cancelable</code>
                  </td><td>
                    <code>false</code>
                    ; there is no default behavior to cancel.
                  </td></tr><tr><td>
                    <code>currentTarget</code>
                  </td><td>The object that is actively processing the Event 
 object with an event listener.</td></tr><tr><td>
                    <code>target</code>
                  </td><td>The network object that has completed loading.</td></tr></table>
          
        <br/><span class="label"> Example </span><br/><br/><div class="detailBody">
          The following example listens for the complete event dispatched by an XMLSignatureValidator
 object and traces the validation results:
          <div class="listing"><pre>private function verificationComplete(event:Event):void{
    var validator:XMLSignatureValidator = event.target as XMLSignatureValidator;
    trace("Digest status: " + validator.digestStatus);
    trace("Identity status: " + validator.identityStatus);
    trace("Reference status: " + validator.referencesStatus);
    trace("Signature status: " + validator.validityStatus);    
}</pre></div>
        </div><p><span class="label">See also</span></p><div class="seeAlso"><a href="XMLSignatureValidator.html#validityStatus" target="">validityStatus</a></div></div><a name="event:error"></a><table class="detailHeader" cellpadding="0" cellspacing="0"><tr><td class="detailHeaderName"><img src="../../images/AirIcon12x12.gif" width="12" height="12" hspace="0" vspace="0" alt="AIR-only" title="Only available in the AIR runtime">&nbsp;error</td><td class="detailHeaderType"> Event </td><td class="detailHeaderRule">&nbsp;</td></tr></table><div class="detailBody"><span class="label">Event Object Type: </span><a href="../../flash/events/ErrorEvent.html"><code>flash.events.ErrorEvent</code></a><br/><span class="label">property ErrorEvent.type  =  </span><a href="../../flash/events/ErrorEvent.html#ERROR"><code>flash.events.ErrorEvent.ERROR</code></a><br/><p></p><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b>Language Version:&nbsp;</b></td><td>ActionScript 3.0</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b>Runtime Versions:&nbsp;</b></td><td>AIR 1.0</td></tr></table><p></p><p></p><p>Dispatched if verification cannot complete because of errors.</p>
          Defines the value of the
          <code>type</code>
          property of an
          <code>error</code>
          event object.
          <p>This event has the following properties:</p>
          
          <table class="innertable" ><tr><th>Property</th><th>Value</th></tr><tr><td>
                    <code>bubbles</code>
                  </td><td>
                    <code>false</code>
                  </td></tr><tr><td>
                    <code>cancelable</code>
                  </td><td>
                    <code>false</code>
                    ; there is no default behavior to cancel.
                  </td></tr><tr><td>
                    <code>currentTarget</code>
                  </td><td>The object that is actively processing the Event 
 object with an event listener.</td></tr><tr><td>
                    <code>target</code>
                  </td><td>The object experiencing a network operation failure.</td></tr><tr><td>
                    <code>text</code>
                  </td><td>Text to be displayed as an error message.</td></tr></table>
          
        <br/><span class="label"> Example </span><br/><br/><div class="detailBody">
          The following example listens for the error event dispatched by an XMLSignatureValidator
 object and traces the error message:
          <div class="listing"><pre>private function verificationError(event:ErrorEvent):void{
    trace("Verification error: " + event.text);                
}</pre></div>
        </div></div><a name="includeExamplesSummary"></a><div class="detailSectionHeader">Examples<span class="usage"><a href="../../ExampleInstruct.html"> How to use examples </a></span></div><div class="exampleHeader">XMLSignatureValidatorExample.as</div><br/><div class="detailBody">
        The following example loads and verifies a file containing an XML signature. 
 
 To use this example, you must implement an IURIDereferencer appropriate for the signatures
 to be validated (replacing the SignedMessageDereferencer class used in the example).  
 Run the example by calling
        <code>SignatureValidatorExample.validateSignature( signatureFile )</code>
        ,
 passing in the file referencing the XML signature document to validate.
        <div class="listing"><pre>import flash.events.Event;
import flash.filesystem.File;
import flash.filesystem.FileStream;
import flash.security.ReferencesValidationSetting;
import flash.security.XMLSignatureValidator; 

import com.example.SignedMessageDereferencer; //A custom class implementing IURIDereferencer

public class SignatureValidatorExample{ 
    private var xmlSig:XML;
    private const signatureNS:Namespace = new Namespace( "http://www.w3.org/2000/09/xmldsig#" );
    
    public static function validateSignature( signatureFile:File ):void{
        try{
            //Set up the XMLSignatureValidator
            var verifier:XMLSignatureValidator = new XMLSignatureValidator();
            verifier.addEventListener( Event.COMPLETE, verificationComplete );
            verifier.uriDereferencer = new SignedMessageDereferencer();
            verifier.referencesValidationSetting = ReferencesValidationSetting.VALID_OR_UNKNOWN_IDENTITY;
    
            //Load the signed document
            var sigFileStream:FileStream = new FileStream();
            sigFileStream.open( signatureFile, FileMode.READ );
            var xmlDoc:XML = XML( sigFileStream.readUTFBytes(sigFileStream.bytesAvailable) );
            
            //Get the last Signature element in the document
            if( xmlDoc.name().localName != "Signature" ){
                var signatureList:XMLList = xmlDoc..signatureNS::Signature;
                xmlSig = XML( signatureList[ signatureList.length()-1 ] );
            } else{
                xmlSig = xmlDoc;
            }
    
            //Validate the signature
            verifier.verify( xmlSig );
            
        }catch (e:Error){
            statusDisplay.text = "Verification error.\n" + e;
        }
    }
    
    private static function verificationComplete(event:Event):void{
        trace( "Signature Validity: " + verifier.validityStatus );
        trace( "Digest validity: " + verifier.digestStatus );
        trace( "Certificate validity: " + verifier.identityStatus );
        trace( "Data validity: " + verifier.referencesStatus );
    }
}</pre></div>
      </div><br/><br/><hr><br/><p></p><center class="copyright"> &copy; 2004-2008 Adobe Systems Incorporated. All rights reserved. <br/>Thu Oct 30 2008, 07:08 PM -07:00  </center><div style="display:none">XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator XMLSignatureValidator </div><div style="display:none">flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator flash.security.XMLSignatureValidator </div></div></body></html><!-- &copy; 2004-2008 Adobe Systems Incorporated. All rights reserved. <br/>Thu Oct 30 2008, 07:08 PM -07:00  -->
