ActionScript® 3.0 Referenzhandbuch für die Adobe® Flash®-Plattform
Home  |  Liste der Pakete und Klassen ausblenden |  Pakete  |  Klassen  |  Neue Funktionen  |  Stichwortverzeichnis  |  Anhänge  |  Warum auf Englisch?
Filter: Daten werden vom Server abgerufen...
Daten werden vom Server abgerufen...
flash.security 

XMLSignatureValidator  - AS3

Paketflash.security
Klassepublic class XMLSignatureValidator
VererbungXMLSignatureValidator Inheritance EventDispatcher Inheritance Object

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0

Die XMLSignatureValidator-Klasse überprüft sowohl, ob eine XML-Signaturdatei gut strukturiert und unverändert ist, als auch optional, ob sie mit einem Schlüssel signiert wurde, der mit einem vertrauenswürdigen digitalen Zertifikat verknüpft ist.

Unterstützung von AIR-Profilen: Diese Funktion wird unter allen Desktopbetriebssystemen und auf Geräten mit AIR für TV unterstützt, jedoch nicht auf mobilen Geräten. Mit der XMLSignatureValidator.isSupported-Eigenschaft können Sie testen, ob zur Laufzeit Unterstützung gegeben ist. Weitere Informationen zum AIR-Support über mehrere Profile finden Sie unter Unterstützung von AIR-Profilen.

XMLSignatureValidator implementiert einen Teilsatz der W3C-Empfehlung für XML-Signatursyntax- und -verarbeitung und sollte nicht als konforme Implementierung betrachtet werden. Der unterstützte Teilsatz der Empfehlung enthält:

  • Die gesamte Kernsignatursyntax mit Ausnahme des KeyInfo-Elements.
  • Das KeyInfo-Element unterstützt nur das X509Data-Element.
  • Das X509Data-Element unterstützt nur das X509Certificate-Element.
  • Der SHA256-Digestmethodenalgorithmus.
  • Der PKCS1-Signieralgorithmus.
  • Die „Canonical XML without comments“-Kanonisierungsmethode und Transformationsalgorithmus.
  • Das Manifest-Element in zusätzlicher Signatursyntax.

Sie müssen eine IURIDereferencer-Implementierung zur Verfügung stellen, um eine XML-Signatur zu verifizieren. Diese Implementierungsklasse ist zuständig für das Auflösen der URIs, die in den SignedInfo-Elementen der Signaturdatei angegeben sind und die referenzierten Daten in einem Objekt zurückgeben, zum Beispiel ein ByteArray, das die IDataInput-Schnittstelle implementiert.

Um zu überprüfen, ob das Signierzertifikat mit einem vertrauenswürdigen Zertifikat verkettet ist, muss entweder die XML-Signatur die zum Bilden der Kette in X509Certificate-Elementen erforderlichen Zertifikate enthalten oder Sie müssen die zum Bilden der Kette erforderlichen Zertifikate über die addCertificate()-Methode bereitstellen.

Überprüfen einer XMLSignatur:

  1. Erstellen Sie eine Instanz der XMLSignatureValidator-Klasse.
  2. Stellen Sie die uriDereferencer-Eigenschaft der Instanz auf eine Instanz Ihrer IURIDereferencer-Implementierungsklasse ein.
  3. (Optional) Stellen Sie über die addCertificate()-Methode DER-kodierte Zertifikate zum Bilden der vertrauenswürdigen Zertifikatkette bereit.
  4. Rufen Sie die verify-Methode von XMLSignatureValidator auf, wobei Sie die zu verifizierende Signatur übergeben.
  5. Überprüfen Sie die validityStatus-Eigenschaft, nachdem das XMLSignatureValidator-Objekt ein complete-Ereignis auslöst.

Informationen zum Signaturstatus:

XML-Signaturen können gültig oder ungültig sein oder ihre Gültigkeit ist unbekannt. Der Gesamtstatus richtet sich nach dem Verifizierungsstatus der einzelnen Komponenten der Signaturdatei:

  • digestStatus: Die Gültigkeit der Kryptographie der Signatur, die über das SignedInfo-Element berechnet wird. Kann valid, invalid oder unknown sein.
  • identityStatus: Die Gültigkeit des signierenden Zertifikats. Wenn das Zertifikat abgelaufen, zurückgenommen oder geändert wurde, ist der Status invalid. Wenn das Zertifikat nicht mit einem vertrauenswürdigen Stammzertifikat verbunden werden kann, ist der Status unknown. Das Zertifikat wird nicht überprüft, wenn der Digest ungültig ist. Bei Nichtüberprüfung wird der Status als unknown gemeldet.
  • referencesStatus: Die Gültigkeit der Daten, auf die von den Referenzen im SignedInfo-Element der Signaturdatei verwiesen wird. Kann valid, invalid oder unknown sein. Die Referenzen werden nicht überprüft, wenn der Digest oder das Zertifikat ungültig ist. Die Referenzprüfung kann auch basierend auf der Einstellung der referencesValidationSetting-Eigenschaft übersprungen werden. Bei Nichtüberprüfung wird der Status als unknown gemeldet.

Die von der validityStatus-Eigenschaft gemeldete Signaturgültigkeit kann folgende Werte aufweisen:

  • valid, wenn referencesStatus, digestStatus und identityStatus alle valid sind.
  • invalid, wenn einer der Status invalid ist.
  • unknown: Wenn referencesStatus, digestStatus oder identityStatus unknown ist.

Kanonisierungsbeschränkungen:

Die XML-Engine in AIR erzeugt beim Kanonisieren eines XML-Dokuments nicht immer den erwarteten XML-String. Aus diesem Grund wird empfohlen, keine Weißräume zwischen Elemente in umhüllten oder abgetrennten Signaturdokumenten zu setzen und Namespaces in Signaturdokumenten nicht neu zu definieren. In beiden Fällen erzeugt AIR das Dokument unter Umständen nicht mit der gleichen Zeichenfolge wie das Original und die Prüfung schlägt folglich fehl.

Beispiele anzeigen

Weitere Informationen

Verwandte API-Elemente



Öffentliche Eigenschaften
 EigenschaftDefiniert von
 Inheritedconstructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz.
Object
      digestStatus : String
[schreibgeschützt] Der Gültigkeitsstatus der kryptografischen Signatur, die aus dem SignedInfo-Element der Signatur berechnet wird.
XMLSignatureValidator
      identityStatus : String
[schreibgeschützt] Der Gültigkeitsstatus des signierenden Zertifikats.
XMLSignatureValidator
      isSupported : Boolean
[statisch] [schreibgeschützt] Die isSupported-Eigenschaft hat den Wert „true“, wenn die XMLSignatureValidator-Klasse von der aktuellen Plattform unterstützt wird, andernfalls hat sie den Wert „false“.
XMLSignatureValidator
      referencesStatus : String
[schreibgeschützt] Der Gültigkeitsstatus der Daten in den Verweisen im SignedInfo-Element der Signatur.
XMLSignatureValidator
      referencesValidationSetting : String
Gibt die Bedingungen an, unter denen Verweise überprüft werden.
XMLSignatureValidator
      revocationCheckSetting : String
Gibt an, wie die Zertifikatrücknahme überprüft werden soll.
XMLSignatureValidator
      signerCN : String
[schreibgeschützt] Das Feld „Allgemeiner Name“ des signierenden Zertifikats.
XMLSignatureValidator
      signerDN : String
[schreibgeschützt] Das Feld „Eindeutiger Name“ des signierenden Zertifikats.
XMLSignatureValidator
      signerExtendedKeyUsages : Array
[schreibgeschützt] Ein Array, das die OIDs für die erweiterte Tastenverwendung enthält, die im signierenden Zertifikat aufgeführt sind.
XMLSignatureValidator
      signerTrustSettings : Array
[schreibgeschützt] Ein Array, das die Vertrauenseinstellungen des signierenden Zertifikats enthält.
XMLSignatureValidator
      uriDereferencer : IURIDereferencer
Die IURIDereferencer-Implementierung.
XMLSignatureValidator
      useSystemTrustStore : Boolean
Gibt an, dass Zertifikate im Vertrauensspeicher des Systems für die Kettenbildung verwendet werden.
XMLSignatureValidator
      validityStatus : String
[schreibgeschützt] Der Gültigkeitsstatus einer überprüften XML-Signatur.
XMLSignatureValidator
Öffentliche Methoden
 MethodeDefiniert von
  
Erstellt ein neues XMLSignatureValidator-Objekt.
XMLSignatureValidator
  
    addCertificate(cert:ByteArray, trusted:Boolean):*
Fügt ein x509-Zertifikat für die Kettenbildung hinzu.
XMLSignatureValidator
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registriert ein Ereignis-Listener-Objekt bei einem EventDispatcher-Objekt, sodass der Listener über ein Ereignis benachrichtigt wird.
EventDispatcher
 Inherited
Sendet ein Ereignis in den Ereignisablauf.
EventDispatcher
 Inherited
Überprüft, ob das EventDispatcher-Objekt Listener für einen bestimmten Ereignistyp registriert hat.
EventDispatcher
 Inherited
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde.
Object
 Inherited
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde.
Object
 Inherited
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Entfernt einen Listener aus dem EventDispatcher-Objekt.
EventDispatcher
 Inherited
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest.
Object
 Inherited
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas.
Object
 Inherited
Gibt das angegebene Objekt als String zurück.
Object
 Inherited
Gibt den Grundwert des angegebenen Objekts zurück.
Object
  
    verify(signature:XML):void
Überprüft die angegebene Signatur.
XMLSignatureValidator
 Inherited
Überprüft, ob bei diesem EventDispatcher-Objekt oder bei einem seiner Vorgänger ein Ereignis-Listener für einen bestimmten Ereignistyp registriert ist.
EventDispatcher
Ereignisse
 Ereignis Übersicht Definiert von
 Inherited[broadcast event] Wird ausgelöst, wenn Flash Player oder eine AIR-Anwendung den Betriebssystemfokus erhält und aktiv wird.EventDispatcher
  
    complete
Wird ausgelöst, wenn die Überprüfung abgeschlossen ist.XMLSignatureValidator
 Inherited[broadcast event] Wird ausgelöst, wenn Flash Player- oder die AIR-Anwendung den Fokus verliert und inaktiv wird.EventDispatcher
  
    error
Wird ausgelöst, wenn die Überprüfung aufgrund von Fehlern nicht abgeschlossen werden kann.XMLSignatureValidator
Eigenschaftendetails
    

digestStatus

Eigenschaft
digestStatus:String  [schreibgeschützt]

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0

Der Gültigkeitsstatus der kryptografischen Signatur, die aus dem SignedInfo-Element der Signatur berechnet wird.

Der Status ist:

  • valid: Wenn die Signatur kryptographisch gültig ist.
  • invalid: Wenn der Digest nach dem Signieren geändert wurde.
  • unknown: Wenn die verify()-Methode nicht aufgerufen wurde.

Hinweis: Wenn der digestStatus ungültig ist, werden der identityStatus und der referencesStatus nicht überprüft und als unknown gemeldet.



Implementierung
    public function get digestStatus():String

Auslöser
IllegalOperationError — Wenn der Zugriff während der Überprüfung einer Signatur erfolgt.
    

identityStatus

Eigenschaft 
identityStatus:String  [schreibgeschützt]

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0

Der Gültigkeitsstatus des signierenden Zertifikats.

Der Status kann sein:

  • valid: Das Zertifikat ist nicht abgelaufen, hat die Rücknahmeüberprüfung bestanden und ist mit einem vertrauenswürdigen Stammzertifikat verbunden.
  • unknown: Das Zertifikat ist nicht abgelaufen, hat die Rücknahmeüberprüfung bestanden, ist jedoch nicht mit einem vertrauenswürdigen Stammzertifikat verbunden. Der Statusunknown wird auch gemeldet, wenn der Status nicht überprüft wurde, weil entweder die verify()-Methode nicht aufgerufen wurde oder weil die kryptographische Signatur des SignedInfo-Elements (digestStatus) ungültig ist.
  • invalid: Das Zertifikat ist abgelaufen oder hat eine Rücknahmeüberprüfung nicht bestanden.

Die über die addCertificate()-Methode hinzugefügten Zertifikate und die Einstellungen der revocationCheckSetting- und der useSystemTrustStore-Eigenschaft können ändern, ob ein Zertifikat als gültig betrachtet wird.

Hinweis: Wenn der identityStatus ungültig ist, wird der referencesStatus nicht überprüft und als unknown gemeldet. Außerdem werden Verweise nicht überprüft, wenn der identityStatus unbekannt ist, es sei denn, die referencesValidationSetting ist validOrUnknownIdentity.



Implementierung
    public function get identityStatus():String

Auslöser
IllegalOperationError — Wenn der Zugriff während der Überprüfung einer Signatur erfolgt.

Verwandte API-Elemente


Beispiel  ( Verwendung dieses Beispiels )
Das folgende Beispiel ruft das Ergebnis der Überprüfung des signierenden Zertifikats ab (nachdem eine Signatur überprüft wurde):
 import flash.security.XMLSignatureValidator;
 
 
 var verifier:XMLSignatureValidator = new XMLSignatureValidator();
 //validate a signature...
  
 var identityResult:String = verifier.identityStatus;
    

isSupported

Eigenschaft 
isSupported:Boolean  [schreibgeschützt]

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 2

Die isSupported-Eigenschaft hat den Wert true, wenn die XMLSignatureValidator-Klasse von der aktuellen Plattform unterstützt wird, andernfalls hat sie den Wert false.



Implementierung
    public static function get isSupported():Boolean
    

referencesStatus

Eigenschaft 
referencesStatus:String  [schreibgeschützt]

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0

Der Gültigkeitsstatus der Daten in den Verweisen im SignedInfo-Element der Signatur.

Der Status kann sein:

  • valid: Wenn alle Verweise gültig sind.
  • invalid: Wenn einer der Verweise ungültig ist.
  • unknown: Wenn keine Überprüfung stattgefunden hat. Verweise können in den folgenden Situationen unüberprüft bleiben:
    • die verify()-Methode wurde nicht aufgerufen
    • die kryptographische Signatur des SignedInfo-Elements (digestStatus) ist ungültig.
    • das signierende Zertifikat (identityStatus) ist ungültig
    • referencesValidationSetting ist validIdentity (die Standardeinstellung) und der identityStatus des signierenden Zertifikats ist unbekannt.
    • die referencesValidationSetting ist never.

Wichtig: Externe Ressourcen werden nur überprüft, wenn sie direkt in einem SignedInfo-Element innerhalb des Signaturdokuments referenziert werden. Externe Ressourcen, auf die von einer sekundären Referenz verwiesen wird, werden nicht überprüft. Wenn z. B. eine XML-Signatur ein Manifest-Element signiert, wird nur die Integrität des Manifest-Elements selbst überprüft. Die im Manifest aufgelisteten Dateien werden nicht überprüft.



Implementierung
    public function get referencesStatus():String

Auslöser
IllegalOperationError — Wenn der Zugriff während der Überprüfung einer Signatur erfolgt.

Verwandte API-Elemente


Beispiel  ( Verwendung dieses Beispiels )
Das folgende Beispiel ruft das Ergebnis der Überprüfung der Verweise in der Signatur ab (nachdem eine Signatur überprüft wurde):
 import flash.security.XMLSignatureValidator;
 
 var verifier:XMLSignatureValidator = new XMLSignatureValidator();
 //validate a signature...
  
 var dataResult:String = verifier.referencesStatus;
    

referencesValidationSetting

Eigenschaft 
referencesValidationSetting:String

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.5

Gibt die Bedingungen an, unter denen Verweise überprüft werden.

Verwenden Sie Konstanten, die in der ReferencesValidationSetting-Klasse definiert sind, um die Eigenschaft festzulegen. Zu diesen Einstellungen gehören:

  • ReferencesValidationSetting.VALID_IDENTITY: Verweise werden nur überprüft, wenn das signierende Zertifikat gültig und mit einem vertrauenswürdigen Stamm verkettet ist. Dies ist die Standardeinstellung.
  • ReferencesValidationSetting.VALID_OR_UNKNOWN_IDENTITY: Verweise werden überprüft, wenn das signierende Zertifikat gültig ist, selbst wenn es nicht mit einem vertrauenswürdigen Stamm verkettet ist.
  • ReferencesValidationSetting.NEVER: Verweise werden nie überprüft.

Verwenden Sie die Standardeinstellung (validIdentity) für Signaturen, die mit einem kommerziellen Zertifikat signiert sind, oder wenn Sie Ihr eigenes Zertifikat als Vertrauensanker über die addCertificate()-Methode bereitstellen. Durch diese Einstellung wird verhindert, dass Verweise überprüft werden, wenn das signierte Dokument sowieso abgelehnt wird.

Verwenden Sie die Einstellung validOrUnknownIdentity für Signaturen, die mit selbst signierten Zertifikaten signiert sind. Mit dieser Einstellung können Sie überprüfen, ob die signierten Daten unverändert sind, erhalten aber keine Garantie bezüglich der Identität des Signierers.

Verwenden Sie die Einstellung never, um zu verhindern, dass Verweise überprüft werden, wenn diese Überprüfung im Kontext Ihrer Anwendung unerheblich ist.



Implementierung
    public function get referencesValidationSetting():String
    public function set referencesValidationSetting(value:String):void

Auslöser
IllegalOperationError — Wenn der Zugriff während der Validierung einer Signatur erfolgt.
 
ArgumentError — wenn der setting-Parameter einen Wert enthält, der nicht in der ReferencesValidationSetting-Klasse definiert ist.

Verwandte API-Elemente


Beispiel  ( Verwendung dieses Beispiels )
Das folgende Beispiel setzt das XMLSignatureValidator-Objekt nur dann auf eine Überprüfung von Verweisen, wenn das signierende Zertifikat mit einem Vertrauensanker verkettet ist:
 import flash.security.ReferencesValidationSetting;
 
 var verifier:XMLSignatureValidator = new XMLSignatureValidator(); 
 verifier.referencesValidationSetting = ReferencesValidationSetting.VALID_OR_UNKNOWN_IDENTITY;
    

revocationCheckSetting

Eigenschaft 
revocationCheckSetting:String

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0

Gibt an, wie die Zertifikatrücknahme überprüft werden soll.

Legen Sie diese Eigenschaft mit Konstanten, die in der RevocationSettings-Klasse definiert sind, fest. Zu diesen Einstellungen gehören:

  • RevocationCheckSettings.NEVER: Die Zertifikatrücknahme wird nicht überprüft.
  • RevocationCheckSettings.BEST_EFFORT: Die Zertifikatrücknahme wird überprüft, wenn Rücknahmeinformationen zur Verfügung stehen und der Rücknahmestatus abgerufen werden kann. Wenn der Rücknahmestatus nicht ermittelt werden kann, wird das Zertifikat nicht zurückgewiesen.
  • RevocationCheckSettings.REQUIRED_IF_AVAILABLE: Wenn das Zertifikat Rücknahmeinformationen enthält, muss zur Überprüfung des Zertifikats der Rücknahmestatus ermittelt werden.
  • RevocationCheckSettings.ALWAYS_REQUIRED: Der Rücknahmestatus wird immer überprüft. Zertifikate ohne Rücknahmeinformationen werden abgelehnt.



Implementierung
    public function get revocationCheckSetting():String
    public function set revocationCheckSetting(value:String):void

Auslöser
IllegalOperationError — Wenn der Zugriff während der Validierung einer Signatur erfolgt.

Verwandte API-Elemente

    

signerCN

Eigenschaft 
signerCN:String  [schreibgeschützt]

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0

Das Feld „Allgemeiner Name“ des signierenden Zertifikats.



Implementierung
    public function get signerCN():String

Beispiel  ( Verwendung dieses Beispiels )
Das folgende Beispiel liest den allgemeinen Namen des signierenden Zertifikats (nachdem eine Signatur überprüft wurde):
 
 var verifier:XMLSignatureValidator = new XMLSignatureValidator();
 //validate a signature...
  
 var commonName:String = verifier.signerCN;
    

signerDN

Eigenschaft 
signerDN:String  [schreibgeschützt]

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0

Das Feld „Eindeutiger Name“ des signierenden Zertifikats.



Implementierung
    public function get signerDN():String

Beispiel  ( Verwendung dieses Beispiels )
Das folgende Beispiel liest den eindeutigen Namen des signierenden Zertifikats (nachdem eine Signatur überprüft wurde):
 
 var verifier:XMLSignatureValidator = new XMLSignatureValidator();
 //validate a signature...
  
 var distinguishedName:String = verifier.signerDN;
    

signerExtendedKeyUsages

Eigenschaft 
signerExtendedKeyUsages:Array  [schreibgeschützt]

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0

Ein Array, das die OIDs für die erweiterte Tastenverwendung enthält, die im signierenden Zertifikat aufgeführt sind.

Jede erweiterte Tastenverwendung wird in numerischer OID-Form gemeldet.



Implementierung
    public function get signerExtendedKeyUsages():Array

Auslöser
IllegalOperationError — Wenn der Zugriff während der Überprüfung einer Signatur erfolgt.

Beispiel  ( Verwendung dieses Beispiels )
Das folgende Beispiel liest die erweiterten Tasten-OIDs des signierenden Zertifikats (nachdem eine Signatur überprüft wurde):
 import flash.security.XMLSignatureValidator;
 
 var verifier:XMLSignatureValidator = new XMLSignatureValidator();
 //validate a signature...
  
 var extendedKeyOIDs:Array = verifier.signerExtendedKeyUsages;
    

signerTrustSettings

Eigenschaft 
signerTrustSettings:Array  [schreibgeschützt]

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0

Ein Array, das die Vertrauenseinstellungen des signierenden Zertifikats enthält.

Die Vertrauenseinstellungen werden aus dem System und den Schlüssel-IODs, die im Zertifikat eingebettet sind, abgeleitet. Konstanten für die Strings, die die erkannten Vertrauenseinstellungen repräsentieren, sind in der SignerTrustSettings-Klasse definiert.

Das signerTrustSettings-Array eines Zertifikats mit dem Status unknown oder invalid ist leer.

Das Verändern des Array hat keinen Einfluss auf die Vertrauenseinstellungen des Zertifikats.



Implementierung
    public function get signerTrustSettings():Array

Auslöser
IllegalOperationError — Wenn der Zugriff während der Überprüfung einer Signatur erfolgt.

Verwandte API-Elemente


Beispiel  ( Verwendung dieses Beispiels )
Das folgende Beispiel liest die Vertrauenseinstellungen des signierenden Zertifikats (nachdem eine Signatur überprüft wurde):
 import flash.security.XMLSignatureValidator;
 
 var verifier:XMLSignatureValidator = new XMLSignatureValidator();
 //validate a signature...
  
 var certificateTrustedFor:Array = verifier.signerTrustSettings;
    

uriDereferencer

Eigenschaft 
uriDereferencer:IURIDereferencer

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0

Die IURIDereferencer-Implementierung.

Eine IURIDereferencer-Implementierung muss bereitgestellt werden, bevor eine Signatur überprüft wird.



Implementierung
    public function get uriDereferencer():IURIDereferencer
    public function set uriDereferencer(value:IURIDereferencer):void

Auslöser
IllegalOperationError — Wenn der Zugriff während der Validierung einer Signatur erfolgt.

Verwandte API-Elemente


Beispiel  ( Verwendung dieses Beispiels )
Das folgende Beispiel erstellt eine Instanz von SignedMessageDereferencer, die die IURIDereferencer-Schnittstelle implementiert, und setzt sie als den Dereferenzierer, der zur Überprüfung der Signatur verwendet werden soll:
 import com.example.SignedMessageDereferencer; //A custom class implementing IURIDereferencer
 
 var verifier:XMLSignatureValidator = new XMLSignatureValidator(); 
 verifier.uriDereferencer = new SignedMessageDereferencer();
    

useSystemTrustStore

Eigenschaft 
useSystemTrustStore:Boolean

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0

Gibt an, dass Zertifikate im Vertrauensspeicher des Systems für die Kettenbildung verwendet werden.

Ist der Wert true, werden die Vertrauensanker im Vertrauensspeicher des Systems als vertrauenswürdige Stämme verwendet. Der Vertrauensspeicher des Systems wird standardmäßig nicht verwendet.



Implementierung
    public function get useSystemTrustStore():Boolean
    public function set useSystemTrustStore(value:Boolean):void

Auslöser
IllegalOperationError — Wenn der Zugriff während der Validierung einer Signatur erfolgt.

Beispiel  ( Verwendung dieses Beispiels )
Das folgende Beispiel erzeugt eine XMLSignatureValidator-Instanz und richtet diese so ein, dass beim Überprüfen einer XML-Signatur der Systemablagebereich für vertrauenswürdige Zertifikate verwendet wird:
 var verifier:XMLSignatureValidator = new XMLSignatureValidator(); 
 verifier.useSystemTrustStore = true;
    

validityStatus

Eigenschaft 
validityStatus:String  [schreibgeschützt]

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0

Der Gültigkeitsstatus einer überprüften XML-Signatur.

Die XML-Signatur wird überprüft, indem die kryptographische Signatur des SignedInfo-Elements, das signierende Zertifikat und die Daten, auf die die Referenzen im SignedInfo-Element verweisen, überprüft werden. Die Gültigkeit jedes dieser Elemente wird einzeln über die digestStatus-, die identityStatus()- bzw. die referencesStatus-Eigenschaft gemeldet.

XML-Signaturen können gültig oder ungültig sein oder ihre Gültigkeit ist unbekannt. Der Gesamtstatus richtet sich nach dem Verifizierungsstatus der einzelnen Komponenten der Signaturdatei:

  • digestStatus: Die Gültigkeit der kryptographischen Signatur, die über das SignedInfo-Element berechnet wird.
  • identityStatus: Die Gültigkeit des signierenden Zertifikats.
  • referencesStatus: Die Gültigkeit des Digests der Verweise im SignedInfo-Element der Signatur.

Die von der validityStatus-Eigenschaft gemeldete Signaturgültigkeit kann folgende Werte aufweisen:

  • valid, wenn referencesStatus, digestStatus und identityStatus alle valid sind.
  • invalid, wenn einer der Status invalid ist.
  • unknown: Wenn einer der Status unknown ist.



Implementierung
    public function get validityStatus():String

Auslöser
IllegalOperationError — Wenn der Zugriff während der Überprüfung einer Signatur erfolgt.

Verwandte API-Elemente


Beispiel  ( Verwendung dieses Beispiels )
Das folgende Beispiel ruft das Ergebnis der Überprüfung der XML-Signatur ab.
 import flash.security.XMLSignatureValidator;
 
 var verifier:XMLSignatureValidator = new XMLSignatureValidator();
 //validate the signature...
  
 var validationResult:String = verifier.validityStatus;
Konstruktordetails
    

XMLSignatureValidator

()Konstruktor
public function XMLSignatureValidator()

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0

Erstellt ein neues XMLSignatureValidator-Objekt.

Sie müssen die uriDereferencer-Eigenschaft einstellen, bevor Sie die verify()-Methode des neuen Objekts aufrufen.

Verwandte API-Elemente


Beispiel  ( Verwendung dieses Beispiels )

Das folgende Beispiel erstellt und richtet ein neues XMLSignatureValidator-Objekt ein:
 
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);
Methodendetails

    addCertificate

()Methode
public function addCertificate(cert:ByteArray, trusted:Boolean):*

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0

Fügt ein x509-Zertifikat für die Kettenbildung hinzu.

Das hinzugefügte Zertifikat muss ein DER-kodiertes x509-Zertifikat sein.

Wenn der trusted-Parameter den Wert true hat, wird das Zertifikat als Vertrauensanker angesehen.

Hinweis: Eine XML-Signatur kann Zertifikate zum Bilden der Zertifikatkette des Unterzeichners enthalten. Die XMLSignatureValidator-Klasse verwendet diese Zertifikate zur Kettenbildung, aber nicht als vertrauenswürdige Stämme (standardmäßig).

Parameter

cert:ByteArray — Ein ByteArray-Objekt, das ein digitales DER-kodiertes x509-Zertifikat enthält.
 
trusted:Boolean — Setzen Sie es auf true, um dieses Zertifikat als Vertrauensanker festzulegen.

Rückgabewerte
*

Auslöser
IllegalOperationError — Wenn der Aufruf während der Überprüfung einer Signatur erfolgt.

Beispiel  ( Verwendung dieses Beispiels )

Das folgende Beispiel lädt ein Zertifikat aus dem Dateisystem und fügt es als Vertrauensanker hinzu.
 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);

    verify

()Methode 
public function verify(signature:XML):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0

Überprüft die angegebene Signatur.

Die Überprüfung ist asynchron. Das XMLSignatureValidator-Objekt löst ein complete-Ereignis aus, wenn die Überprüfung erfolgreich abgeschlossen wird bzw. ein error-Ereignis, wenn die Überprüfung aufgrund von Fehlern nicht abgeschlossen werden kann.

Der Überprüfungsprozess kann nicht abgebrochen werden. Wenn gerade ein Überprüfungsprozess ausgeführt wird, schlagen anschließende Aufrufe der verify()-Methode fehl. Nach der aktuellen Überprüfung können Sie die verify()-Methode erneut aufrufen.

Hinweis: Da der XMLSignatureValidator nur einen Teilsatz der W3C-Empfehlung für die Syntax und Verarbeitung von XML-Signaturen implementiert, können nicht alle gültigen XML-Signaturen überprüft werden.

Parameter

signature:XML — Die XML-Signatur, die überprüft werden soll.


Ereignisse
complete:Event — Wird ausgelöst, wenn die Überprüfung erfolgreich abgeschlossen wurde.
 
error:ErrorEvent — Wird ausgelöst, wenn bei der Überprüfung von Verweisen ein Fehler aufgetreten ist.

Auslöser
IllegalOperationError — Wenn der Aufruf während der Überprüfung einer Signatur erfolgt.
 
Error — Wenn andere Fehler gefunden werden, z. B. nicht wohlgeformtes XML oder nicht unterstützte Elemente in der Signaturdatei.

Beispiel  ( Verwendung dieses Beispiels )

Das folgende Beispiel liest eine Datei, die eine XML-Signatur enthält, und überprüft sie durch Aufrufen der verify()-Methode. (Bei diesem Beispiel wird angenommen, dass die IURIDereferencer-Implementierung für die Signatur geeignet ist.)
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 );
Ereignisdetails
    

complete

Ereignis
Ereignisobjekttyp: flash.events.Event
Eigenschaft Event.type = flash.events.Event.COMPLETE

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0

Wird ausgelöst, wenn die Überprüfung abgeschlossen ist.

Ein complete-Ereignis bedeutet nicht, dass die Signatur gültig ist. Überprüfen Sie die validityStatus-Eigenschaft des XMLSignatureValidator-Objekts, um das Ergebnis der Signaturüberprüfung zu ermitteln.

Die Event.COMPLETE-Konstante definiert den Wert der type-Eigenschaft eines complete-Ereignisobjekts.

Dieses Ereignis verfügt über die folgenden Eigenschaften:

EigenschaftWert
bubblesfalse
cancelablefalse. Es gibt kein Standardverhalten, das abgebrochen werden kann.
currentTargetDas Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet.
targetDas Netzwerkobjekt, dessen Ladevorgang beendet ist.

Beispiel  ( Verwendung dieses Beispiels )

Das folgende Beispiel überwacht vollständige Ergebnisse, die von einem XMLSignatureValidator-Objekt ausgelöst werden, und verfolgt die Überprüfungsergebnisse:
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);    
}

Verwandte API-Elemente

    

error

Ereignis  
Ereignisobjekttyp: flash.events.ErrorEvent
Eigenschaft ErrorEvent.type = flash.events.ErrorEvent.ERROR

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0

Wird ausgelöst, wenn die Überprüfung aufgrund von Fehlern nicht abgeschlossen werden kann.

Definiert den Wert der Eigenschaft type eines error-Ereignisobjekts.

Dieses Ereignis verfügt über die folgenden Eigenschaften:

EigenschaftWert
bubblesfalse
cancelablefalse. Es gibt kein Standardverhalten, das abgebrochen werden kann.
currentTargetDas Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet.
targetDas Objekt, bei dem der Netzwerkvorgang fehlschlägt.
textDer als Fehlermeldung anzuzeigende Text.

Beispiel  ( Verwendung dieses Beispiels )

Das folgende Beispiel überwacht Fehlerereignisse, die von einem XMLSignatureValidator-Objekt ausgelöst werden, und verfolgt die Fehlermeldung:
private function verificationError(event:ErrorEvent):void{
    trace("Verification error: " + event.text);                
}
XMLSignatureValidatorExample.as

Das folgende Beispiel lädt und überprüft eine Datei, die eine XML-Signatur enthält. Um dieses Beispiel zu verwenden, müssen Sie einen IURIDereferencer implementieren, der zu den zu überprüfenden Signaturen passt (ersetzen Sie hierzu die im Beispiel verwendete SignedMessageDereferencer-Klasse). Führen Sie das Beispiel aus, indem Sie SignatureValidatorExample.validateSignature( signatureFile ) aufrufen und die Datei, die das zu überprüfende XML-Signaturdokument enthält, übergeben.
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 );
    }
}




[ X ]Warum auf Englisch?
Inhalt des ActionScript 3.0-Referenzhandbuchs wird in englischer Sprache angezeigt

Nicht alle Teile des ActionScript 3.0-Referenzhandbuchs wurden in alle Sprachen übersetzt. Wenn der Text zu einem Sprachelement nicht übersetzt wurde, wird er auf Englisch angezeigt. Zum Beispiel wurden die Informationen zur ga.controls.HelpBox-Klasse nicht in andere Sprachen übersetzt. In der deutschen Version des Referenzhandbuchs erscheint der Abschnitt zur ga.controls.HelpBox-Klasse deshalb auf Englisch.