Pakket | flash.security |
Klasse | public class XMLSignatureValidator |
Overerving | XMLSignatureValidator EventDispatcher Object |
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
AIR-profielondersteuning: Deze functie wordt ondersteund op alle desktopbesturingssystemen en op AIR for TV-apparaten, maar niet op mobiele apparaten. Met de eigenschap XMLSignatureValidator.isSupported
kunt u testen op ondersteuning tijdens runtime. Zie AIR-profielondersteuning voor meer informatie over API-ondersteuning voor meerdere profielen.
XMLSignatureValidator implementeert een subset van de W3C-aanbeveling voor de syntaxis en verwerking van XML-handtekeningen en moet niet worden beschouwd als een conformerende implementatie. De ondersteunde subset van de aanbeveling bevat:
- Kernsyntaxis voor alle ondertekeningen, behalve het element KeyInfo.
- Het element KeyInfo ondersteunt alleen het element X509Data.
- Het element X509Data ondersteunt alleen het element X509Certificate.
- Het algoritme digestmethode SHA256.
- Het ondertekeningsalgoritme PKCS1.
- De "Canonical XML zonder commentaar" methode Canonicalization en algoritme Transform.
- Het Manifest-element in aanvullende ondertekeningssyntaxis.
U moet een IURIDereferencer-implementatie opgeven om een XML-ondertekening te controleren. Deze implementatieklasse is verantwoordelijk voor het omzetten van de URI's die zijn opgegeven in de SignedInfo-elementen van het handtekeningbestand en voor het geven van de referentiegegevens in een object, zoals een ByteArray, dat de IDataInput-interface implementeert.
Om te controleren of het handtekeningcertificaat aan een vertrouwd certificaat is gekoppeld, moet de XML-handtekening de vereiste certificaten bevatten waarmee de keten in X509Certificate-elementen wordt gebouwd, of moet u de vereiste certificaten opgeven waarmee de keten moet worden opgebouwd met behulp van de methode addCertificate()
.
Een XMLSignature controleren:
- Maak een instantie van de klasse XMLSignatureValidator.
- Stel de eigenschap
uriDereferencer
van de instantie in op een instantie van uw implementatieklasse IURIDereferencer. - Geef desgewenst DER-gecodeerde certificaten op voor het opbouwen van de vertrouwensketen voor het certificaat met de methode
addCertificate()
. - Roep de XMLSignatureValidator-methode
verify
aan en geef de te controleren handtekening door. - Controleer de eigenschap
validityStatus
nadat het object XMLSignatureValidator een complete-gebeurtenis heeft verzonden.
Over handtekeningstatus:
De status van een XML-handtekening kan geldig, ongeldig of onbekend zijn. De algemene status hangt af van de verificatiestatus van de afzonderlijke componenten van het handtekeningbestand:
-
digestStatus
-- De geldigheid van de cryptografie van de handtekening die berekend is over het SignedInfo-element. Kangeldig
,ongeldig
ofonbekend
zijn. -
identityStatus
— De geldigheid van het handtekeningcertificaat. Als het certificaat verlopen, ingetrokken of gewijzigd is, is de statusongeldig
. Als het certificaat niet kon worden gekoppeld aan een vertrouwd hoofdcertificaat, is de statusonbekend
. Het certificaat wordt niet gecontroleerd als de samenvatting ongeldig is. Als het certificaat niet is gecontroleerd, wordt de statusonbekend
gerapporteerd. -
referencesStatus
-- De geldigheid van de gegevens waarnaar wordt verwezen in het SignedInfo-element van het handtekeningbestand. Kangeldig
,ongeldig
ofonbekend
zijn. De verwijzingen worden niet gecontroleerd als de samenvatting of het certificaat ongeldig is. Het controleren van verwijzingen kan ook worden overgeslagen op basis van de instelling van de eigenschapreferencesValidationSetting
. Als het certificaat niet is gecontroleerd, wordt de statusonbekend
gerapporteerd.
De geldigheid van de handtekening die wordt gemeld door de eigenschap validityStatus
kan zijn:
-
geldig
— AlsreferencesStatus
,digestStatus
enidentityStatus
allemaalgeldig
zijn. -
ongeldig
-- Als een individuele statusongeldig
is. -
onbekend
— AlsreferencesStatus
,digestStatus
ofidentityStatus
onbekend
is.
Kanonieke beperkingen:
De XML-engine in AIR produceert niet altijd de verwachte XML-tekenreeks wanneer een XML-document wordt gecontroleerd. Daarom wordt u geadviseerd geen witruimten tussen elementen te plaatsen in ontwikkelde of losgekoppelde handtekeningdocumenten en geen naamruimten in een handtekeningdocument te herdefiniƫren. In beide gevallen is AIR mogelijk niet in staat om het document opnieuw te maken met dezelfde tekenopeenvolging als het oorspronkelijke document, en zal de validatie dus mislukken.
Meer informatie
Verwante API-elementen
Eigenschap | Gedefinieerd door | ||
---|---|---|---|
constructor : Object
Verwijzing naar het klasseobject of de constructorfunctie van een bepaalde objectinstantie. | Object | ||
digestStatus : String [alleen-lezen]
De geldigheidsstatus van de cryptografische handtekening die berekend is over het handtekeningelement SignedInfo. | XMLSignatureValidator | ||
identityStatus : String [alleen-lezen]
De geldigheidsstatus van het ondertekenende certificaat. | XMLSignatureValidator | ||
isSupported : Boolean [statisch] [alleen-lezen]
De eigenschap isSupported wordt ingesteld op true als de XMLSignatureValidator-klasse op het huidige platform wordt ondersteund. Als dit niet het geval is, wordt de eigenschap ingesteld op false. | XMLSignatureValidator | ||
referencesStatus : String [alleen-lezen]
De geldigheidsstatus van de gegevens in de verwijzingen in het handtekeningelement SignedInfo. | XMLSignatureValidator | ||
referencesValidationSetting : String
Hiermee wordt opgegeven onder welke voorwaarden verwijzingen worden gecontroleerd. | XMLSignatureValidator | ||
revocationCheckSetting : String
Geeft aan hoe intrekking van certificaten wordt gecontroleerd. | XMLSignatureValidator | ||
signerCN : String [alleen-lezen]
Het veld Common Name van het ondertekenende certificaat. | XMLSignatureValidator | ||
signerDN : String [alleen-lezen]
Het veld Distinguished Name van het ondertekenende certificaat. | XMLSignatureValidator | ||
signerExtendedKeyUsages : Array [alleen-lezen]
Een array met de Extended Key Usages OID's in het ondertekenende certificaat. | XMLSignatureValidator | ||
signerTrustSettings : Array [alleen-lezen]
Een array met de vertrouwde instellingen van het ondertekenende certificaat. | XMLSignatureValidator | ||
uriDereferencer : IURIDereferencer
De IURIDereferencer-implementatie. | XMLSignatureValidator | ||
useSystemTrustStore : Boolean
Geeft aan dat certificaten in de vertrouwde opslag van het systeem worden gebruikt voor ketenopbouw. | XMLSignatureValidator | ||
validityStatus : String [alleen-lezen]
De geldigheidsstatus van een gecontroleerde XML-handtekening. | XMLSignatureValidator |
Methode | Gedefinieerd door | ||
---|---|---|---|
Maakt een object van het type XMLSignatureValidator. | XMLSignatureValidator | ||
Voegt een x509-certificaat toe voor het opbouwen van de keten. | XMLSignatureValidator | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registreert een gebeurtenislistenerobject bij een object EventDispatcher, zodat de listener een melding van een gebeurtenis ontvangt. | EventDispatcher | ||
Verzendt een gebeurtenis naar de gebeurtenisstroom. | EventDispatcher | ||
Controleert of het object EventDispatcher listeners heeft geregistreerd voor een specifiek type gebeurtenis. | EventDispatcher | ||
Geeft aan of voor een object een opgegeven eigenschap is gedefinieerd. | Object | ||
Geeft aan of een instantie van de klasse Object zich in de prototypeketen van het object bevindt dat als parameter is opgegeven. | Object | ||
Geeft aan of de opgegeven eigenschap bestaat en kan worden opgesomd. | Object | ||
Verwijdert een listener uit het object EventDispatcher. | EventDispatcher | ||
Stelt de beschikbaarheid van een dynamische eigenschap voor lusbewerkingen in. | Object | ||
Geeft de tekenreeksweergave van dit object weer, geformatteerd volgens de locatiespecifieke conventies. | Object | ||
Retourneert een tekenreeksrepresentatie van het opgegeven object. | Object | ||
Retourneert de primitieve waarde van het opgegeven object. | Object | ||
Controleert de opgegeven handtekening. | XMLSignatureValidator | ||
Controleert of een gebeurtenislistener is geregistreerd bij dit object EventDispatcher of een van de voorouders voor het opgegeven type gebeurtenis. | EventDispatcher |
Gebeurtenis | Overzicht | Gedefinieerd door | ||
---|---|---|---|---|
[uitgezonden gebeurtenis] Wordt verzonden wanneer Flash Player of de AIR-toepassing de besturingssysteemfocus krijgt en actief wordt. | EventDispatcher | |||
Wordt verzonden wanneer verificatie voltooid is. | XMLSignatureValidator | |||
[uitgezonden gebeurtenis] Wordt verzonden wanneer Flash Player of de AIR-toepassing de systeemfocus verliest en inactief wordt. | EventDispatcher | |||
Wordt verzonden als verificatie door fouten niet kan worden voltooid. | XMLSignatureValidator |
digestStatus | eigenschap |
digestStatus:String
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
De geldigheidsstatus van de cryptografische handtekening die berekend is over het handtekeningelement SignedInfo.
De status is:
geldig
— Als de handtekening cryptografisch geldig is.ongeldig
— Als de samenvatting na ondertekening is gewijzigd.onbekend
— Als de methodeverify()
niet is aangeroepen.
Opmerking: als de digestStatus
ongeldig is, worden identityStatus
en referencesStatus
niet gecontroleerd en gerapporteerd als onbekend
.
Implementatie
public function get digestStatus():String
Gegenereerde uitzondering
IllegalOperationError — Indien geopend tijdens de validatie van een handtekening.
|
identityStatus | eigenschap |
identityStatus:String
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
De geldigheidsstatus van het ondertekenende certificaat.
De status kan zijn:
geldig
— Het certificaat is niet verlopen, is door de intrekkingscontrole gekomen en is gekoppeld aan een vertrouwd hoofdcertificaat.onbekend
— Het certificaat is niet verlopen en is door de intrekkingscontrole gekomen maar is niet gekoppeld aan een vertrouwd hoofdcertificaat. De statusonbekend
wordt ook gemeld als de status niet is gecontroleerd, ofwel omdat de methodeverify()
niet is aangeroepen ofwel omdat de cryptografische handtekening van het element SignedInfo (digestStatus
) ongeldig is.ongeldig
— Het certificaat is verlopen of is niet door de intrekkingscontrole gekomen.
De certificaten die zijn toegevoegd met de methode addCertificate()
en de eigenschappen van revocationCheckSetting
en useSystemTrustStore
kunnen worden gewijzigd, ongeacht of een certificaat geldig is bevonden.
Opmerking: als de identityStatus
ongeldig is, wordt referencesStatus
niet gecontroleerd en gerapporteerd als onbekend
. Bovendien worden verwijzingen niet gecontroleerd wanneer de identityStatus
onbekend is, tenzij referencesValidationSetting
gelijk is aan validOrUnknownIdentity
.
Implementatie
public function get identityStatus():String
Gegenereerde uitzondering
IllegalOperationError — Indien geopend tijdens de validatie van een handtekening.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
import flash.security.XMLSignatureValidator; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var identityResult:String = verifier.identityStatus;
isSupported | eigenschap |
isSupported:Boolean
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 2 |
De eigenschap isSupported
is ingesteld op true
als de klasse XMLSignatureValidator op het huidige platform wordt ondersteund. Als dit niet het geval is, is de eigenschap ingesteld op false
.
Implementatie
public static function get isSupported():Boolean
referencesStatus | eigenschap |
referencesStatus:String
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
De geldigheidsstatus van de gegevens in de verwijzingen in het handtekeningelement SignedInfo.
De status kan zijn:
geldig
— Als alle verwijzingen geldig zijn.ongeldig
— Als een verwijzing ongeldig is.unknown
— Als niet is geverifieerd. Verwijzingen kunnen in de volgende omstandigheden ongeverifieerd blijven:- De methode
verify()
is niet aangeroepen. - De cryptografische handtekening van het element SignedInfo (
digestStatus
) is ongeldig. - Het handtekeningcertificaat (
identityStatus
) is ongeldig. referencesValidationSetting
isvalidIdentity
(dit is de standaardinstelling) en deidentityStatus
van het handtekeningcertificaat is onbekend.- De
referencesValidationSetting
isnever
.
- De methode
Belangrijk: externe bronnen worden niet gevalideerd, tenzij er rechtstreeks naar wordt verwezen in een element SignedInfo in het handtekeningdocument. Externe bronnen waarnaar wordt verwezen door een secundaire verwijzing, worden niet gevalideerd. Als een XML-handtekening bijvoorbeeld een manifest-element ondertekent, wordt alleen de integriteit van het manifest-element zelf geverifieerd. De bestanden die in het manifest zijn vermeld, worden niet gecontroleerd.
Implementatie
public function get referencesStatus():String
Gegenereerde uitzondering
IllegalOperationError — Indien geopend tijdens de validatie van een handtekening.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
import flash.security.XMLSignatureValidator; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var dataResult:String = verifier.referencesStatus;
referencesValidationSetting | eigenschap |
referencesValidationSetting:String
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.5 |
Hiermee wordt opgegeven onder welke voorwaarden verwijzingen worden gecontroleerd.
Gebruik constanten die zijn gedefinieerd in de klasse ReferencesValidationSetting om deze eigenschap in te stellen. Voorbeelden van instellingen zijn:
ReferencesValidationSetting.VALID_IDENTITY
— Verwijzingen alleen controleren als het handtekeningcertificaat geldig is en is gekoppeld aan een vertrouwd hoofdcertificaat. Dit is de standaardinstelling.ReferencesValidationSetting.VALID_OR_UNKNOWN_IDENTITY
— Verwijzingen controleren als het handtekeningcertificaat geldig is, ook als het niet is gekoppeld aan een vertrouwd hoofdcertificaat.ReferencesValidationSetting.NEVER
— Verwijzingen nooit controleren.
Gebruik de standaardinstelling validIdentity
met handtekeningen die zijn ondertekend met een commercieel certificaat of wanneer u uw eigen certificaat gebruikt als vertrouwensanker met de methode addCertificate()
. Hiermee voorkomt u dat de geldigheid van verwijzingen wordt gecontroleerd wanneer het ondertekende document toch wordt geweigerd.
Gebruik de instelling validOrUnknownIdentity
met handtekeningen die zijn ondertekend met zelfondertekende certificaten. Met deze instelling kunt u controleren of de ondertekende gegevens niet zijn gewijzigd, maar krijgt u geen garantie over de identiteit van de ondertekenaar.
Gebruik de instelling never
om te voorkomen dat verwijzingen worden gevalideerd wanneer dat niet belangrijk is in de context van uw toepassing.
Implementatie
public function get referencesValidationSetting():String
public function set referencesValidationSetting(value:String):void
Gegenereerde uitzondering
IllegalOperationError — Indien ingesteld tijdens de validatie van een handtekening.
| |
ArgumentError — Als de parameter setting een waarde bevat die niet is gedefinieerd in de klasse ReferencesValidationSetting.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
import flash.security.ReferencesValidationSetting; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); verifier.referencesValidationSetting = ReferencesValidationSetting.VALID_OR_UNKNOWN_IDENTITY;
revocationCheckSetting | eigenschap |
revocationCheckSetting:String
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
Geeft aan hoe intrekking van certificaten wordt gecontroleerd.
Gebruik constanten die zijn gedefinieerd in de klasse RevocationSettings om deze eigenschap in te stellen. Voorbeelden van instellingen zijn:
RevocationCheckSettings.NEVER
— De intrekking van certificaten niet controleren.RevocationCheckSettings.BEST_EFFORT
— De intrekking van certificaten controleren, als er informatie over intrekking beschikbaar is en de status van de intrekking kan worden verkregen. Als er geen positieve status voor de intrekking kan worden vastgesteld, wordt het certificaat niet geweigerd.RevocationCheckSettings.REQUIRED_IF_AVAILABLE
— Als het certificaat intrekkingsinformatie bevat, moet de status van de intrekking positief worden vastgesteld om het certificaat te valideren.RevocationCheckSettings.ALWAYS_REQUIRED
— De intrekking van certificaten altijd controleren. Certificaten zonder informatie over intrekking worden geweigerd.
Implementatie
public function get revocationCheckSetting():String
public function set revocationCheckSetting(value:String):void
Gegenereerde uitzondering
IllegalOperationError — Indien ingesteld tijdens de validatie van een handtekening.
|
Verwante API-elementen
signerCN | eigenschap |
signerCN:String
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
Het veld Common Name van het ondertekenende certificaat.
Implementatie
public function get signerCN():String
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var commonName:String = verifier.signerCN;
signerDN | eigenschap |
signerDN:String
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
Het veld Distinguished Name van het ondertekenende certificaat.
Implementatie
public function get signerDN():String
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var distinguishedName:String = verifier.signerDN;
signerExtendedKeyUsages | eigenschap |
signerExtendedKeyUsages:Array
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
Een array met de Extended Key Usages OID's in het ondertekenende certificaat.
Elk gebruik van uitgebreide sleutels wordt in de vorm van een numerieke OID gemeld.
Implementatie
public function get signerExtendedKeyUsages():Array
Gegenereerde uitzondering
IllegalOperationError — Indien geopend tijdens de validatie van een handtekening.
|
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
import flash.security.XMLSignatureValidator; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var extendedKeyOIDs:Array = verifier.signerExtendedKeyUsages;
signerTrustSettings | eigenschap |
signerTrustSettings:Array
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
Een array met de vertrouwde instellingen van het ondertekenende certificaat.
Vertrouwensinstellingen worden van het systeem afgeleid en de belangrijkste gebruiks-OID's die in het certificaat zijn ingesloten. Constanten voor de tekenreeksen die staan voor de herkende vertrouwensinstellingen zijn gedefinieerd in de klasse SignerTrustSettings.
De signerTrustSettings
-array van een certificaat met de status onbekend
of ongeldig
is leeg.
Wijzigen van de array wijzigt de vertrouwensinstellingen van het certificaat niet.
Implementatie
public function get signerTrustSettings():Array
Gegenereerde uitzondering
IllegalOperationError — Indien geopend tijdens de validatie van een handtekening.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
import flash.security.XMLSignatureValidator; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var certificateTrustedFor:Array = verifier.signerTrustSettings;
uriDereferencer | eigenschap |
uriDereferencer:IURIDereferencer
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
De IURIDereferencer-implementatie.
Een IURIDereferencer-implementatie moet worden opgegeven voordat u een handtekening gaat controleren.
Implementatie
public function get uriDereferencer():IURIDereferencer
public function set uriDereferencer(value:IURIDereferencer):void
Gegenereerde uitzondering
IllegalOperationError — Indien ingesteld tijdens de validatie van een handtekening.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
import com.example.SignedMessageDereferencer; //A custom class implementing IURIDereferencer var verifier:XMLSignatureValidator = new XMLSignatureValidator(); verifier.uriDereferencer = new SignedMessageDereferencer();
useSystemTrustStore | eigenschap |
useSystemTrustStore:Boolean
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
Geeft aan dat certificaten in de vertrouwde opslag van het systeem worden gebruikt voor ketenopbouw.
Als true
is, dan worden de vertrouwensankers in de vertrouwde opslag van het systeem gebruikt als vertrouwde hoofdpunten. De vertrouwde opslag van het systeem wordt niet standaard gebruikt.
Implementatie
public function get useSystemTrustStore():Boolean
public function set useSystemTrustStore(value:Boolean):void
Gegenereerde uitzondering
IllegalOperationError — Indien ingesteld tijdens de validatie van een handtekening.
|
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
var verifier:XMLSignatureValidator = new XMLSignatureValidator(); verifier.useSystemTrustStore = true;
validityStatus | eigenschap |
validityStatus:String
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
De geldigheidsstatus van een gecontroleerde XML-handtekening.
De XML-handtekening wordt geverifieerd door de cryptografische handtekening van het element SignedInfo, het handtekeningcertificaat en de gegevens waarnaar wordt verwezen in het element SignedInfo, te valideren. De geldigheid van al deze elementen worden afzonderlijk gemeld door respectievelijk de eigenschappen digestStatus
, identityStatus()
en referencesStatus
.
De status van een XML-handtekening kan geldig, ongeldig of onbekend zijn. De algemene status hangt af van de verificatiestatus van de afzonderlijke componenten van het handtekeningbestand:
digestStatus
— De geldigheid van de cryptografische handtekening die berekend is over het SignedInfo-element.identityStatus
— De geldigheid van het handtekeningcertificaat.referencesStatus
— De geldigheid is de samenvatting van de referenties in het SignedInfo-element van de handtekening.
De geldigheid van de handtekening die wordt gemeld door de eigenschap validityStatus
kan zijn:
geldig
— AlsreferencesStatus
,digestStatus
enidentityStatus
allemaalgeldig
zijn.ongeldig
-- Als een individuele statusongeldig
is.onbekend
-- Als een individuele statusonbekend
is.
Implementatie
public function get validityStatus():String
Gegenereerde uitzondering
IllegalOperationError — Indien geopend tijdens de validatie van een handtekening.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
import flash.security.XMLSignatureValidator; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate the signature... var validationResult:String = verifier.validityStatus;
XMLSignatureValidator | () | Constructor |
public function XMLSignatureValidator()
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
Maakt een object van het type XMLSignatureValidator.
U moet de eigenschap uriDereferencer
instellen voordat u de methode verify()
van het nieuwe object aanroept.
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
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);
addCertificate | () | methode |
public function addCertificate(cert:ByteArray, trusted:Boolean):*
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
Voegt een x509-certificaat toe voor het opbouwen van de keten.
Het toegevoegde certificaats moet een DER-gecodeerd x509-certificaat zijn.
Als de parameter trusted
true
is, wordt het certificaat beschouwd als een vertrouwensanker.
Opmerking: Een XML-handtekening kan certificaten bevatten voor het opbouwen van de certificaatketen van de ondertekenaar. De klasse XMLSignatureValidator gebruikt deze certificaten voor de ketenopbouw, maar niet als vertrouwde hoofdpunten (standaard).
Parameters
cert:ByteArray — Een object van het type ByteArray met een DER-gecodeerd x509 digitaal certificaat.
| |
trusted:Boolean — Op true instellen om dit certificaat als vertrouwensanker aan te wijzen.
|
* |
Gegenereerde uitzondering
IllegalOperationError — Indien opgeroepen tijdens de validatie van een handtekening.
|
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
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
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
Controleert de opgegeven handtekening.
Verificatie is asynchroon. Het object XMLSignatureValidator verzendt een gebeurtenis complete
wanneer de verificatie succesvol is afgerond of een gebeurtenis error
als de verificatie door fouten niet kon worden voltooid.
Het verificatieproces kan niet worden geannuleerd. Gedurende een verificatieproces zullen verdere aanroepen van de methode verify()
mislukken. Na voltooiing van de huidige verificatie kunt u de methode verify()
weer aanroepen.
Opmerking: omdat XMLSignatureValidator alleen een subset van de W3C-aanbeveling voor syntaxis en verwerking van XML-handtekeningen implementeert, kunnen niet alle geldige XML-handtekeningen worden gecontroleerd.
Parameters
signature:XML — De XML-handtekening die moet worden gecontroleerd.
|
Gebeurtenissen
complete: — Wordt verzonden wanneer verificatie met succes voltooid is.
| |
error: — Wordt verzonden wanneer tijdens de verificatie van verwijzingen een fout optreedt.
|
Gegenereerde uitzondering
IllegalOperationError — Indien opgeroepen tijdens de validatie van een handtekening.
| |
Error — Als er meer fouten worden geconstateerd, zoals niet correct samengestelde XML of niet-ondersteunde elementen in het handtekeningbestand
|
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
verify()
. (In het voorbeeld wordt aangenomen dat de IURIDereferencer-implementatie juist is voor de handtekening.)
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 );
complete | Gebeurtenis |
flash.events.Event
eigenschap Event.type =
flash.events.Event.COMPLETE
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
Wordt verzonden wanneer verificatie voltooid is.
Een gebeurtenis complete
betekent nog niet dat de handtekening geldig is. Controleer de eigenschap validityStatus
van het object XMLSignatureValidator om het resultaat van de handtekeningverificatie te bepalen.
Event.COMPLETE
definieert de waarde van de eigenschap type
van een complete
-gebeurtenisobject.
Deze gebeurtenis heeft de volgende eigenschappen:
Eigenschap | Waarde |
---|---|
bubbles | false |
cancelable | false ; er is geen standaardgedrag om te annuleren. |
currentTarget | Het object dat het gebeurtenisobject actief verwerkt met een gebeurtenislistener. |
target | Het netwerkobject dat klaar is met laden. |
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
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); }
Verwante API-elementen
error | Gebeurtenis |
flash.events.ErrorEvent
eigenschap ErrorEvent.type =
flash.events.ErrorEvent.ERROR
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
Wordt verzonden als verificatie door fouten niet kan worden voltooid.
Definieert de waarde van de eigenschaptype
van een gebeurtenisobject error
.
Deze gebeurtenis heeft de volgende eigenschappen:
Eigenschap | Waarde |
---|---|
bubbles | false |
cancelable | false ; er is geen standaardgedrag om te annuleren. |
currentTarget | Het object dat het gebeurtenisobject actief verwerkt met een gebeurtenislistener. |
target | Het object ondervindt een fout in een netwerkbewerking. |
text | Tekst die moet worden weergegeven als foutbericht. |
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
private function verificationError(event:ErrorEvent):void{ trace("Verification error: " + event.text); }
SignatureValidatorExample.validateSignature(handtekeningbestand)
aan te roepen en geef daarbij het bestand door dat verwijst naar het XML-handtekeningdocument dat moet worden gevalideerd.
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 ); } }
Wed Jun 13 2018, 11:42 AM Z