(AIR만 해당)
패키지flash.security
클래스public class XMLSignatureValidator
상속XMLSignatureValidator Inheritance EventDispatcher Inheritance Object

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0

XMLSignatureValidator 클래스는 XML 서명 파일이 올바른 형식인지와 수정되지 않았는지를 검사하며 필요에 따라 해당 파일이 신뢰할 수 있는 디지털 인증서에 연결된 키를 사용하여 서명되었는지 검사합니다.

XMLSignatureValidator는 XML 서명 구문 및 처리를 위한 W3C 권장 사항의 하위 집합을 구현하며 준수 구현으로 간주되어서는 안 됩니다. 지원되는 권장 사항 하위 집합에는 다음이 포함됩니다.

XML 서명을 확인하려면 IURIDereferencer 구현을 제공해야 합니다. 이 구현 클래스는 서명 파일의 SignedInfo 요소에 지정된 URI를 확인하며 ByteArray와 같이 IDataInput 인터페이스를 구현하는 객체의 참조 데이터를 반환합니다.

서명 인증서가 신뢰할 수 있는 인증서에 체인으로 연결되었는지 확인하려면, X509Certificate 요소에 체인을 만드는 데 필요한 인증서가 XML 서명에 있거나 addCertificate() 메서드를 사용하여 체인을 만드는 데 필요한 인증서를 제공해야 합니다.

XMLSignature를 확인하려면:

  1. XMLSignatureValidator 클래스의 인스턴스를 만듭니다.
  2. 인스턴스의 uriDereferencer 속성을 사용자의 IURIDereferencer 구현 클래스에 대한 인스턴스로 설정합니다.
  3. 필요한 경우 addCertificate() 메서드를 사용하여 인증서 신뢰 체인을 만들기 위한 DER 인코딩 인증서를 제공합니다.
  4. XMLSignatureValidator의 verify 메서드를 호출하여 확인할 서명을 전달합니다.
  5. XMLSignatureValidator 객체가 complete 이벤트를 전달한 후 validityStatus 속성을 확인합니다.

서명 상태:

XML 서명의 유효성은 valid, invalid 또는 unknown 중 하나입니다. 전체 상태는 서명 파일의 각 구성 요소에 대한 확인 상태에 따라 달라집니다.

validityStatus 속성은 다음과 같이 서명 유효성을 보고할 수 있습니다.

정규화 제한:

XML 문서를 정규화할 때 AIR의 XML 엔진에서는 예상되는 XML 문자열을 생성하지 않을 수도 있습니다. 이러한 이유로 포함되었거나 분리된 서명 문서에 차이 요소 공백을 넣지 않고 서명 문서 내에 네임스페이스를 재정의하지 않는 것이 좋습니다. 두 경우 모두 AIR이 원래 문자 시퀀스와 동일한 시퀀스의 문서를 다시 만들 수 없으므로 확인에 실패합니다.

예제 보기

참고 사항

IURIDereferencer
XML 서명 구문 및 처리
정규 XML
PKCS #1


Public 속성
 속성다음에 의해 정의됨
 Inheritedconstructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다.
Object
  AIR-only digestStatus : String
[읽기 전용] SignedInfo 요소를 통해 계산된 암호화 서명의 유효성 상태입니다.
XMLSignatureValidator
  AIR-only identityStatus : String
[읽기 전용] 서명 인증서에 대한 유효성 상태입니다.
XMLSignatureValidator
 Inheritedprototype : Object
[정적] 클래스 또는 함수 객체의 프로토타입 객체에 대한 참조입니다.
Object
  AIR-only referencesStatus : String
[읽기 전용] SignedInfo 요소의 참조에 있는 데이터의 유효성 상태입니다.
XMLSignatureValidator
  AIR-only referencesValidationSetting : String
참조를 확인하는 조건을 지정합니다.
XMLSignatureValidator
  AIR-only revocationCheckSetting : String
인증서 해지 확인 방법을 지정합니다.
XMLSignatureValidator
  AIR-only signerCN : String
[읽기 전용] 서명 인증서의 공용 이름 필드입니다.
XMLSignatureValidator
  AIR-only signerDN : String
[읽기 전용] 서명 인증서의 고유 이름 필드입니다.
XMLSignatureValidator
  AIR-only signerExtendedKeyUsages : Array
[읽기 전용] 서명 인증서에 나열된 확장 키 사용 OID가 포함된 배열입니다.
XMLSignatureValidator
  AIR-only signerTrustSettings : Array
[읽기 전용] 서명 인증서의 신뢰 설정이 포함된 배열입니다.
XMLSignatureValidator
  AIR-only uriDereferencer : IURIDereferencer
IURIDereferencer 구현입니다.
XMLSignatureValidator
  AIR-only useSystemTrustStore : Boolean
체인을 만드는 데 시스템 신뢰 저장소의 인증서를 사용하도록 지정합니다.
XMLSignatureValidator
  AIR-only validityStatus : String
[읽기 전용] 확인된 XML 서명에 대한 유효성 상태입니다.
XMLSignatureValidator
Public 메서드
 메서드다음에 의해 정의됨
  
XMLSignatureValidator 객체를 만듭니다.
XMLSignatureValidator
  
체인을 만들기 위한 x509 인증서를 추가합니다.
XMLSignatureValidator
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
리스너에서 이벤트 알림을 받을 수 있도록 EventDispatcher 객체에 이벤트 리스너 객체를 등록합니다.
EventDispatcher
 Inherited
이벤트를 이벤트 흐름으로 전달합니다.
EventDispatcher
 Inherited
EventDispatcher 객체에 특정 유형의 이벤트에 대한 리스너가 등록되어 있는지 여부를 확인합니다.
EventDispatcher
 Inherited
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다.
Object
 Inherited
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다.
Object
 Inherited
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
EventDispatcher 객체에서 리스너를 제거합니다.
EventDispatcher
 Inherited
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다.
Object
 Inherited
지정된 객체의 문자열 표현을 반환합니다.
Object
 Inherited
지정된 객체의 프리미티브 값을 반환합니다.
Object
  
AIR-only verify(signature:XML):void
지정된 서명을 확인합니다.
XMLSignatureValidator
 Inherited
이 EventDispatcher 객체 또는 조상 객체에 지정한 이벤트 유형에 대한 이벤트 리스너가 등록되어 있는지 여부를 확인합니다.
EventDispatcher
이벤트
 이벤트 요약 다음에 의해 정의됨
 Inherited[브로드캐스트 이벤트] Flash Player 또는 AIR 응용 프로그램이 운영 체제 포커스를 얻어 활성화될 때 전달됩니다.EventDispatcher
  확인 완료 시 전달됩니다.XMLSignatureValidator
 Inherited[브로드캐스트 이벤트] Flash Player 또는 AIR 응용 프로그램이 운영 체제 포커스를 잃고 비활성화될 때 전달됩니다.EventDispatcher
  오류로 인해 확인을 완료할 수 없는 경우 전달됩니다.XMLSignatureValidator
속성 정보
AIR-only digestStatus속성
digestStatus:String  [읽기 전용]

런타임 버전: AIR 1.0

SignedInfo 요소를 통해 계산된 암호화 서명의 유효성 상태입니다.

상태는 다음과 같습니다.

참조: digestStatus가 잘못된 경우 identityStatusreferencesStatus는 확인하지 않고 unknown으로 보고됩니다.



구현
    public function get digestStatus():String

오류
IllegalOperationError — 서명의 유효성을 검사하는 동안 액세스한 경우입니다.
AIR-only identityStatus속성 
identityStatus:String  [읽기 전용]

런타임 버전: AIR 1.0

서명 인증서에 대한 유효성 상태입니다.

상태는 다음과 같습니다.

addCertificate() 메서드, revocationCheckSetting의 설정 및 useSystemTrustStore 속성을 사용하여 추가된 인증서는 인증서의 유효함 여부를 변경할 수 있습니다.

참고: identityStatus가 잘못된 경우 referencesStatus는 확인하지 않고 unknown으로 보고됩니다. 또한 referencesValidationSettingvalidOrUnknownIdentity가 아니면 identityStatus를 알 수 없는 경우 참조를 확인하지 않습니다.



구현
    public function get identityStatus():String

오류
IllegalOperationError — 서명의 유효성을 검사하는 동안 액세스한 경우입니다.

참고 사항


예제
다음 예제에서는 서명의 유효성을 검사한 후 서명 인증서의 유효성을 검사한 결과를 가져옵니다.
import flash.security.XMLSignatureValidator;
 
 
 var verifier:XMLSignatureValidator = new XMLSignatureValidator();
 //validate a signature...
  
 var identityResult:String = verifier.identityStatus;
AIR-only referencesStatus속성 
referencesStatus:String  [읽기 전용]

런타임 버전: AIR 1.0

SignedInfo 요소의 참조에 있는 데이터의 유효성 상태입니다.

상태는 다음과 같습니다.

중요: 외부 리소스는 서명 문서 내의 SignedInfo 요소에서 직접 참조되지 않는 한 유효성을 검사하지 않습니다. 보조 참조에서 참조하는 외부 리소스의 유효성은 검사하지 않습니다. 예를 들어 XML 서명이 Manifest 요소에 서명하는 경우 Manifest 요소 자체 무결성의 유효성만 검사합니다. Manifest에 나열된 파일은 확인하지 않습니다.



구현
    public function get referencesStatus():String

오류
IllegalOperationError — 서명의 유효성을 검사하는 동안 액세스한 경우입니다.

참고 사항


예제
다음 예제에서는 서명의 유효성을 검사한 후 서명에 있는 참조의 유효성을 검사한 결과를 가져옵니다.
import flash.security.XMLSignatureValidator;
 
 var verifier:XMLSignatureValidator = new XMLSignatureValidator();
 //validate a signature...
  
 var dataResult:String = verifier.referencesStatus;
AIR-only referencesValidationSetting속성 
referencesValidationSetting:String  [읽기/쓰기]

런타임 버전: AIR 1.5

참조를 확인하는 조건을 지정합니다.

ReferencesValidationSetting 클래스에 정의된 상수를 사용하여 이 속성을 설정합니다. 설정 항목은 다음과 같습니다.

addCertificate() 메서드를 사용하여 자체 인증서를 신뢰 앵커로 제공하거나 상업용 인증서로 서명된 서명과 함께 기본 설정인 validIdentity를 사용합니다. 이 설정은 서명된 문서가 거부될 경우 참조 유효성 검사에 대한 오버헤드를 방지합니다.

자체 서명된 인증서를 통해 서명한 서명과 함께 validOrUnknownIdentity 설정을 사용합니다. 이 설정을 통해 서명된 데이터가 변경되지 않았음을 확인할 수 있지만 서명자의 신원을 보장하지는 않습니다.

응용 프로그램 컨텍스트에서 이러한 유효성 검사가 중요하지 않은 경우 참조 유효성 검사의 오버헤드를 방지하려면 never 설정을 사용합니다.



구현
    public function get referencesValidationSetting():String
    public function set referencesValidationSetting(value:String):void

오류
IllegalOperationError — 서명의 유효성을 검사하는 동안 설정된 경우입니다.
 
ArgumentError — ReferencesValidationSetting 클래스에 정의되지 않은 값이 setting 매개 변수에 포함되어 있는 경우입니다.

참고 사항


예제
다음 예제에서는 서명 인증서가 신뢰 앵커에 체인으로 연결된 경우에만 참조를 확인하도록 XMLSignatureValidator 객체를 설정합니다.
import flash.security.ReferencesValidationSetting;
 
 var verifier:XMLSignatureValidator = new XMLSignatureValidator(); 
 verifier.referencesValidationSetting = ReferencesValidationSetting.VALID_OR_UNKNOWN_IDENTITY;
AIR-only revocationCheckSetting속성 
revocationCheckSetting:String  [읽기/쓰기]

런타임 버전: AIR 1.0

인증서 해지 확인 방법을 지정합니다.

RevocationSettings 클래스에 정의된 상수를 사용하여 이 속성을 설정합니다. 설정 항목은 다음과 같습니다.



구현
    public function get revocationCheckSetting():String
    public function set revocationCheckSetting(value:String):void

오류
IllegalOperationError — 서명의 유효성을 검사하는 동안 설정된 경우입니다.

참고 사항

AIR-only signerCN속성 
signerCN:String  [읽기 전용]

런타임 버전: AIR 1.0

서명 인증서의 공용 이름 필드입니다.



구현
    public function get signerCN():String

예제
다음 예제에서는 서명의 유효성을 검사한 후 서명 인증서의 공용 이름을 읽습니다.
var verifier:XMLSignatureValidator = new XMLSignatureValidator();
 //validate a signature...
  
 var commonName:String = verifier.signerCN;
AIR-only signerDN속성 
signerDN:String  [읽기 전용]

런타임 버전: AIR 1.0

서명 인증서의 고유 이름 필드입니다.



구현
    public function get signerDN():String

예제
다음 예제에서는 서명의 유효성을 검사한 후 서명 인증서의 고유 이름을 읽습니다.
var verifier:XMLSignatureValidator = new XMLSignatureValidator();
 //validate a signature...
  
 var distinguishedName:String = verifier.signerDN;
AIR-only signerExtendedKeyUsages속성 
signerExtendedKeyUsages:Array  [읽기 전용]

런타임 버전: AIR 1.0

서명 인증서에 나열된 확장 키 사용 OID가 포함된 배열입니다.

각 확장 키 사용은 숫자 OID 양식으로 보고됩니다.



구현
    public function get signerExtendedKeyUsages():Array

오류
IllegalOperationError — 서명의 유효성을 검사하는 동안 액세스한 경우입니다.

예제
다음 예제에서는 서명의 유효성을 검사한 후 서명 인증서의 확장 키 OID를 읽습니다.
import flash.security.XMLSignatureValidator;
 
 var verifier:XMLSignatureValidator = new XMLSignatureValidator();
 //validate a signature...
  
 var extendedKeyOIDs:Array = verifier.signerExtendedKeyUsages;
AIR-only signerTrustSettings속성 
signerTrustSettings:Array  [읽기 전용]

런타임 버전: AIR 1.0

서명 인증서의 신뢰 설정이 포함된 배열입니다.

신뢰 설정은 시스템 및 인증서에 포함된 키 사용 OID로부터 파생됩니다. 인식된 신뢰 설정을 나타내는 문자열의 상수는 SignerTrustSettings 클래스에 정의됩니다.

unknown 또는 invalid 인증서의 signerTrustSettings 배열은 비어 있습니다.

배열을 수정해도 인증서 신뢰 설정은 변경되지 않습니다.



구현
    public function get signerTrustSettings():Array

오류
IllegalOperationError — 서명의 유효성을 검사하는 동안 액세스한 경우입니다.

참고 사항


예제
다음 예제에서는 서명의 유효성을 검사한 후 서명 인증서의 신뢰 설정을 읽습니다.
import flash.security.XMLSignatureValidator;
 
 var verifier:XMLSignatureValidator = new XMLSignatureValidator();
 //validate a signature...
  
 var certificateTrustedFor:Array = verifier.signerTrustSettings;
AIR-only uriDereferencer속성 
uriDereferencer:IURIDereferencer  [읽기/쓰기]

런타임 버전: AIR 1.0

IURIDereferencer 구현입니다.

IURIDereferencer 구현은 서명을 확인하기 전에 제공되어야 합니다.



구현
    public function get uriDereferencer():IURIDereferencer
    public function set uriDereferencer(value:IURIDereferencer):void

오류
IllegalOperationError — 서명의 유효성을 검사하는 동안 설정된 경우입니다.

참고 사항


예제
다음 예제에서는 IURIDereferencer 인터페이스를 구현하고 해당 인터페이스를 서명 유효성 검사에 사용할 역참조자로 설정하는 SignedMessageDereferencer의 인스턴스를 만듭니다.
import com.example.SignedMessageDereferencer; //A custom class implementing IURIDereferencer
 
 var verifier:XMLSignatureValidator = new XMLSignatureValidator(); 
 verifier.uriDereferencer = new SignedMessageDereferencer();
AIR-only useSystemTrustStore속성 
useSystemTrustStore:Boolean  [읽기/쓰기]

런타임 버전: AIR 1.0

체인을 만드는 데 시스템 신뢰 저장소의 인증서를 사용하도록 지정합니다.

true로 설정하면 시스템 신뢰 저장소의 신뢰 앵커가 신뢰할 수 있는 루트로 사용됩니다. 기본적으로 시스템 신뢰 저장소는 사용되지 않습니다.



구현
    public function get useSystemTrustStore():Boolean
    public function set useSystemTrustStore(value:Boolean):void

오류
IllegalOperationError — 서명의 유효성을 검사하는 동안 설정된 경우입니다.

예제
다음 예제에서는 XMLSignatureValidator 인스턴스를 만들고 XML 서명의 유효성을 검사할 때 신뢰할 수 있는 인증서의 시스템 저장소를 사용하도록 설정합니다.
var verifier:XMLSignatureValidator = new XMLSignatureValidator(); 
 verifier.useSystemTrustStore = true;
AIR-only validityStatus속성 
validityStatus:String  [읽기 전용]

런타임 버전: AIR 1.0

확인된 XML 서명에 대한 유효성 상태입니다.

XML 서명은 SignedInfo 요소의 암호화 서명, 서명 인증서, SignedInfo 요소의 참조에서 처리하는 데이터의 유효성을 검사하여 확인됩니다. 이러한 각 요소에 대한 유효성은 각각 digestStatus , identityStatus()referencesStatus 속성에 의해 개별적으로 보고됩니다.

XML 서명의 유효성은 valid, invalid 또는 unknown 중 하나입니다. 전체 상태는 서명 파일의 각 구성 요소에 대한 확인 상태에 따라 달라집니다.

validityStatus 속성은 다음과 같이 서명 유효성을 보고할 수 있습니다.



구현
    public function get validityStatus():String

오류
IllegalOperationError — 서명의 유효성을 검사하는 동안 액세스한 경우입니다.

참고 사항


예제
다음 예제에서는 XML 서명의 유효성을 검사한 결과를 가져옵니다.
import flash.security.XMLSignatureValidator;
 
 var verifier:XMLSignatureValidator = new XMLSignatureValidator();
 //validate the signature...
  
 var validationResult:String = verifier.validityStatus;
생성자 정보
AIR-only XMLSignatureValidator()생성자
public function XMLSignatureValidator()

런타임 버전: AIR 1.0

XMLSignatureValidator 객체를 만듭니다.

새 객체의 verify() 메서드를 호출하기 전에 uriDereferencer 속성을 설정해야 합니다.

참고 사항


예제

다음 예제에서는 새 XMLSignatureValidator 객체를 만들고 설정합니다.
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);
메서드 정보
AIR-only addCertificate()메서드
public function addCertificate(cert:ByteArray, trusted:Boolean):*

런타임 버전: AIR 1.0

체인을 만들기 위한 x509 인증서를 추가합니다.

추가된 인증서는 DER 인코딩 x509 인증서이어야 합니다.

trusted 매개 변수가 true이면 인증서는 신뢰 앵커로 간주됩니다.

참고: XML 서명에는 서명자의 인증서 체인을 만드는 데 필요한 인증서가 포함될 수 있습니다. XMLSignatureValidator 클래스는 체인을 만들기 위해 이러한 인증서를 사용하지만 기본적으로 신뢰할 수 있는 루트로 사용하지는 않습니다.

매개 변수

cert:ByteArray — DER 인코딩 x509 디지털 인증서가 포함된 ByteArray 객체입니다.
 
trusted:Boolean — 이 인증서를 신뢰 앵커로 지정하려면 true로 설정합니다.

반환값
*

오류
IllegalOperationError — 서명의 유효성을 검사하는 동안 호출된 경우입니다.

예제

다음 예제에서는 파일 시스템에서 인증서를 로드하고 이 인증서를 신뢰할 수 있는 앵커로 추가합니다.
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);
AIR-only verify()메서드 
public function verify(signature:XML):void

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0

지정된 서명을 확인합니다.

확인은 비동기적입니다. XMLSignatureValidator 객체는 확인이 성공적으로 완료된 경우 complete 이벤트를 전달하고 오류로 인해 확인을 완료할 수 없는 경우 error 이벤트를 전달합니다.

확인 프로세스는 취소할 수 없습니다. 확인 프로세스가 진행 중인 동안 후속 verify() 메서드 호출은 실패합니다. 현재 확인 검사가 완료된 후 verify() 메서드를 다시 호출할 수 있습니다.

참고: XMLSignatureValidator는 XML 서명 구문 및 처리를 위한 W3C 권장 사항의 하위 집합만을 구현하므로 올바른 XML 서명을 모두 확인할 수는 없습니다.

매개 변수

signature:XML — 확인할 XML 서명입니다.


이벤트
complete:Event — 확인이 성공적으로 완료되었을 때 전달됩니다.
 
error:ErrorEvent — 참조 확인에서 오류가 발생한 경우 전달됩니다.

오류
IllegalOperationError — 서명의 유효성을 검사하는 동안 호출된 경우입니다.
 
Error — 서명 파일에 형식이 잘못된 XML 또는 지원되지 않는 요소와 같은 기타 오류가 발생한 경우입니다.

예제

다음 예제에서는 verify() 메서드를 호출하여 XML 서명이 들어 있는 파일을 읽고 해당 파일의 유효성을 검사합니다. (예제에서는 서명에 IURIDereferencer 구현이 적합하다고 가정합니다.)
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 );
이벤트 정보
AIR-only complete 이벤트
이벤트 객체 유형: flash.events.Event
속성 Event.type = flash.events.Event.COMPLETE

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0

확인 완료 시 전달됩니다.

complete 이벤트는 서명이 올바르다는 것을 의미하지는 않습니다. XMLSignatureValidator 객체의 validityStatus 속성을 확인하여 서명 확인의 결과를 결정합니다.

Event.COMPLETE 상수는 complete 이벤트 객체의 type 속성 값을 정의합니다.

이 이벤트에는 다음과 같은 속성이 있습니다.

속성
bubbles false
cancelable false; 취소할 기본 비헤이비어가 없습니다.
currentTarget 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다.
target 로드가 완료된 네트워크 객체입니다.

예제

다음 예제에서는 XMLSignatureValidator 객체에서 전달하는 전체 이벤트를 수신하고 유효성 검사 결과를 추적합니다.
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);    
}

참고 사항

AIR-only error 이벤트  
이벤트 객체 유형: flash.events.ErrorEvent
속성 ErrorEvent.type = flash.events.ErrorEvent.ERROR

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0

오류로 인해 확인을 완료할 수 없는 경우 전달됩니다.

error 이벤트 객체의 type 속성 값을 정의합니다.

이 이벤트에는 다음과 같은 속성이 있습니다.

속성
bubbles false
cancelable false; 취소할 기본 비헤이비어가 없습니다.
currentTarget 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다.
target 네트워크 작업에 실패한 객체입니다.
text 오류 메시지로 표시될 텍스트입니다.

예제

다음 예제에서는 XMLSignatureValidator 객체에서 전달하는 오류 이벤트를 수신하고 오류 메시지를 추적합니다.
private function verificationError(event:ErrorEvent):void{
    trace("Verification error: " + event.text);                
}
예제 예제 사용 방법
XMLSignatureValidatorExample.as

다음 예제에서는 XML 서명이 들어 있는 파일을 로드하고 확인합니다. 이 예제를 사용하려면 서명의 유효성을 검사하는 데 적합한 IURIDereferencer를 구현해야 합니다(예제에서 사용된 SignedMessageDereferencer 클래스 바꾸기). SignatureValidatorExample.validateSignature( signatureFile ) 호출을 통해 예제를 실행하여 유효성을 검사할 XML 서명 문서를 참조하는 파일을 전달합니다.
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 );
    }
}