Paket | flash.security |
Klass | public class XMLSignatureValidator |
Arv | XMLSignatureValidator EventDispatcher Object |
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0 |
Stöd för AIR-profiler: Den här funktionen stöds på alla operativsystem för datorer och enheter med AIR for TV, men inte på mobilenheter. Du kan testa stödet vid körning med egenskapen XMLSignatureValidator.isSupported
. På sidan om stöd för AIR-profiler hittar du mer information om API-stöd för flera profiler.
XMLSignatureValidator implementerar en delmängd av W3C-rekommendationen för XML-signatursyntax och -bearbetning och ska inte betraktas som en fullständig implementering. Den delmängd av rekommendationen som stöds inkluderar:
- All kärnsignatursyntax förutom KeyInfo-elementet.
- KeyInfo-elementet stöder endast X509Data-elementet.
- X509Data-elementet stöder endast X509Certificate-elementet.
- Algoritmen för SHA256-sammanfattningsmetoden.
- Algoritmen för PKCS1-signering.
- ”Kanonisk XML utan kommentarer” – kanoniseringsmetod och transformeringsalgoritm.
- Manifestelementet i extra signatursyntax.
Du måste ange en IURIDereferencer-implementering för att kunna kontrollera en XML-signatur. Den här implementeringsklassen används för att matcha de URI:er som anges i signaturfilens SignedInfo-element och för att returnera referensdata i ett objekt, till exempel ett ByteArray-objekt, som implementerar IDataInput-gränssnittet.
Om det ska gå att kontrollera att signeringscertifikatet är kopplat via en kedja till ett tillförlitligt certifikat, måste XML-signaturen antingen innehålla de certifikat som krävs för att skapa kedjan med X509Certificate-element eller så måste du ange de certifikat som krävs för att skapa kedjan med addCertificate()
-metoden.
Så här kontrollerar du en XML-signatur:
- Skapa en instans av klassen XMLSignatureValidator.
- Ange egenskapen
uriDereferencer
för instansen till en instans av din IURIDereferencer-implementeringsklass. - Ange DER-kodade certifikat för att skapa certifikatförtroendekedjan, om så önskas, med hjälp av metoden
addCertificate()
. - Anropa metoden
verify
för XMLSignatureValidator och skicka in den signatur som ska kontrolleras. - Kontrollera egenskapen
validityStatus
efter att XMLSignatureValidator-objektet har skickat en complete-händelse.
Om signaturstatus:
En XML-signatur kan ha statusen valid, invalid eller unknown. Den överordnade statusen beror på kontrollstatusen för de enskilda komponenterna i signaturfilen:
-
digestStatus
– Giltigheten hos signaturens kryptografi beräknad över SignedInfo-elementet. Kan varavalid
,invalid
ellerunknown
. -
identityStatus
– Giltigheten hos signeringscertifikatet. Om certifikatet har upphört att gälla, har återkallats eller ändrats är statuseninvalid
. Om certifikatet inte kan kopplas till ett tillförlitligt rotcertifikat är statusenunknown
. Certifikatet kontrolleras inte om sammanfattningen är ogiltig. Om det inte kontrolleras rapporteras statusen somunknown
. -
referencesStatus
– Giltigheten hos data som adresseras i referenserna i signaturfilens SignedInfo-element. Kan varavalid
,invalid
ellerunknown
. Referenserna kontrolleras inte om sammanfattningen eller certifikatet är ogiltigt. Referenskontrollen kan också hoppas över baserat på inställningen av egenskapenreferencesValidationSetting
. Om det inte kontrolleras rapporteras statusen somunknown
.
Den signaturstatus som rapporteras av egenskapen validityStatus
kan vara:
-
valid
– OmreferencesStatus
,digestStatus
ochidentityStatus
alla har värdetvalid
. -
invalid
– Om någon enskild status har värdetinvalid
. -
unknown
– OmreferencesStatus
,digestStatus
elleridentityStatus
ärunknown
.
Kanoniseringsbegränsningar:
XML-motorn i AIR skapar inte alltid den förväntade XML-strängen när ett XML-dokument kanoniseras. Därför bör du undvika att placera tomt inter-element-utrymme i inslagna eller avdelade signaturdokument och inte definiera om namnutrymmen i ett signaturdokument. I båda fallen återskapas inte dokumentet med samma teckensekvens som originalet och därför misslyckas valideringen.
Lär dig mer
Relaterade API-element
Egenskap | Definieras med | ||
---|---|---|---|
constructor : Object
En referens till klassobjektet eller konstruktorfunktionen för en given objektinstans. | Object | ||
digestStatus : String [skrivskyddad]
Giltigheten hos signaturens kryptografi beräknad över signaturens SignedInfo-element. | XMLSignatureValidator | ||
identityStatus : String [skrivskyddad]
Giltighetsstatus hos signeringscertifikatet. | XMLSignatureValidator | ||
isSupported : Boolean [statisk] [skrivskyddad]
Egenskapen isSupported är true om klassen XMLSignatureValidator stöds på den aktuella plattformen, och i annat fall är värdet false. | XMLSignatureValidator | ||
referencesStatus : String [skrivskyddad]
Giltighetsstatus för data i referenserna i signaturen för SignedInfo-elementet. | XMLSignatureValidator | ||
referencesValidationSetting : String
Anger de villkor under vilka referenser kontrolleras. | XMLSignatureValidator | ||
revocationCheckSetting : String
Anger hur certifikatåterkallning kontrolleras. | XMLSignatureValidator | ||
signerCN : String [skrivskyddad]
Fältet för signeringscertifikatets allmänna namn. | XMLSignatureValidator | ||
signerDN : String [skrivskyddad]
Fältet för signeringscertifikatets unika namn. | XMLSignatureValidator | ||
signerExtendedKeyUsages : Array [skrivskyddad]
En array som innehåller de OID för utökad nyckelanvändning som anges i signeringscertifikatet. | XMLSignatureValidator | ||
signerTrustSettings : Array [skrivskyddad]
En array som innehåller signeringscertifikatets förtroendeinställningar. | XMLSignatureValidator | ||
uriDereferencer : IURIDereferencer
IURIDereferencer-implementeringen. | XMLSignatureValidator | ||
useSystemTrustStore : Boolean
Anger att certifikaten i systemets förtroendearkiv används för kedjeskapande. | XMLSignatureValidator | ||
validityStatus : String [skrivskyddad]
Giltighetsstatus hos en kontrollerad XML-signatur. | XMLSignatureValidator |
Metod | Definieras med | ||
---|---|---|---|
Skapar ett XMLSignatureValidator-objekt. | XMLSignatureValidator | ||
Lägger till ett x509-certifikat för kedjeskapande. | XMLSignatureValidator | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registrerar ett händelseavlyssnarobjekt för ett EventDispatcher-objekt så att avlyssnaren får meddelanden om händelser. | EventDispatcher | ||
Skickar en händelse till händelseflödet. | EventDispatcher | ||
Kontrollerar om EventDispatcher-objektet har några avlyssnare registrerade för en viss typ av händelse. | EventDispatcher | ||
Anger om det finns en egenskap angiven för ett objekt. | Object | ||
Anger om en instans av klassen Object finns i prototypkedjan för objektet som anges som parameter. | Object | ||
Anger om den angivna egenskapen finns och är uppräkningsbar. | Object | ||
Tar bort en avlyssnare från EventDispatcher-objektet. | EventDispatcher | ||
Anger tillgänglighet för en dynamisk egenskap för slingåtgärder. | Object | ||
Returnerar det här objektets strängrepresentation, formaterad i enlighet med språkspecifika konventioner. | Object | ||
Returnerar det angivna objektets strängbeteckning. | Object | ||
Returnerar det angivna objektets primitiva värde. | Object | ||
Kontrollerar den angivna signaturen. | XMLSignatureValidator | ||
Kontrollerar om en händelseavlyssnare är registrerad för det här EventDispatcher-objektet eller något av dess överordnade objekt för den angivna händelsetypen. | EventDispatcher |
Händelse | Sammanfattning | Definieras med | ||
---|---|---|---|---|
[utsändningshändelse] Skickas när Flash Player eller AIR får operativsystemfokus och blir aktivt. | EventDispatcher | |||
Skickas när kontrollen har slutförts. | XMLSignatureValidator | |||
[utsändningshändelse] Skickas när Flash Player eller AIR förlorar operativsystemfokus och blir inaktivt. | EventDispatcher | |||
Skickas om kontrollen inte kan slutföras på grund av fel. | XMLSignatureValidator |
digestStatus | egenskap |
digestStatus:String
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0 |
Giltigheten hos signaturens kryptografi beräknad över signaturens SignedInfo-element.
Statusen är:
valid
— Om signaturen är kryptografiskt giltig.invalid
— Om sammanfattningen har ändrats efter signering.unknown
— Omverify()
-metoden inte har anropats.
Obs! Om digestStatus
är ogiltigt kontrolleras inte identityStatus
och referencesStatus
och det rapporteras som unknown
.
Implementering
public function get digestStatus():String
Utlöser
IllegalOperationError — Om den används medan en signatur verifieras.
|
identityStatus | egenskap |
identityStatus:String
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0 |
Giltighetsstatus hos signeringscertifikatet.
Statusen kan vara:
valid
– Certifikatet har inte upphört att gälla, har inte fastnat i en återkallningskontroll och är kopplat via en kedja till ett tillförlitligt rotcertifikat.unknown
– Certifikatet har inte upphört att gälla och har inte fastnat i en återkallningskontroll, men är inte kopplat via en kedja till ett tillförlitligt rotcertifikat. En status påunknown
rapporteras också när statusen inte har verifierats, antingen därför attverify()
-metoden inte har anropats eller därför att den kryptografiska signaturen i SignedInfo-elementet (digestStatus
) är ogiltig.invalid
– Certifikatet har upphört att gälla eller har fastnat i en återkallningskontroll.
De certifikat som läggs till med hjälp av metoden addCertificate()
och inställningen av revocationCheckSetting
och useSystemTrustStore
kan ändra huruvida ett certifikat anses giltigt.
Obs! Om identityStatus
är ogiltigt kontrolleras inte referencesStatus
och det rapporteras som unknown
. Referenser kontrolleras heller inte när identityStatus
är okänt såvida inte referencesValidationSetting
är validOrUnknownIdentity
Implementering
public function get identityStatus():String
Utlöser
IllegalOperationError — Om den används medan en signatur verifieras.
|
Relaterade API-element
Exempel ( Så här använder du exemplet )
import flash.security.XMLSignatureValidator; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var identityResult:String = verifier.identityStatus;
isSupported | egenskap |
referencesStatus | egenskap |
referencesStatus:String
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0 |
Giltighetsstatus för data i referenserna i signaturen för SignedInfo-elementet.
Statusen kan vara:
valid
— Om alla referenser är giltigainvalid
– Om någon referens är ogiltig.unknown
– Om inte kontrollerad. Referenser kan vara okontrollerade i följande fall:- metoden
verify()
har inte anropats - den kryptografiska signaturen för SignedInfo-elementet (
digestStatus
) är ogiltig. - signeringscertifikatet (
identityStatus
) är ogiltigt referencesValidationSetting
ärvalidIdentity
(som är standardinställningen) ochidentityStatus
för signeringscertifikatet är unknown.referencesValidationSetting
ärnever
.
- metoden
Viktigt! Externa resurser valideras inte såvida de inte refereras direkt i ett SignedInfo-element i signaturdokumentet. Externa resurser som refereras av en sekundär referens valideras inte. Om till exempel en XML-signatur signerar ett manifestelement, verifieras bara manifestelementets integritet. Filerna som anges i manifestet kontrolleras inte.
Implementering
public function get referencesStatus():String
Utlöser
IllegalOperationError — Om den används medan en signatur verifieras.
|
Relaterade API-element
Exempel ( Så här använder du exemplet )
import flash.security.XMLSignatureValidator; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var dataResult:String = verifier.referencesStatus;
referencesValidationSetting | egenskap |
referencesValidationSetting:String
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.5 |
Anger de villkor under vilka referenser kontrolleras.
Använd de konstanter som har definierats i klassen ReferencesValidationSetting när du vill ange den här egenskapen. Inställningarna inkluderar:
ReferencesValidationSetting.VALID_IDENTITY
– Kontrollera referenser enbart om signeringscertifikatet är giltigt och går upp till en tillförlitlig rot. Detta är standardinställningen.ReferencesValidationSetting.VALID_OR_UNKNOWN_IDENTITY
– Kontrollera referenser om signeringscertifikatet är giltigt, även om det inte leder upp till en tillförlitlig rot.ReferencesValidationSetting.NEVER
– Kontrollera aldrig referenser.
Använd standardinställningen validIdentity
med signaturer som har signerats med ett kommersiellt certifikat eller när du tillhandahåller ett eget certifikat som en förtroendebas med hjälp av metoden addCertificate()
. Om du använder den här inställningen undviker du allmän kontroll av referensgiltighet när signerade dokument ändå kommer att avvisas.
Använd inställningen validOrUnknownIdentity
med signaturer som har signerats med självsignerade certifikat. Med den här inställningen kan du validera att signerade data inte har ändrats, men det ger inga garantier om signerarens identitet.
Använd inställningen never
om du vill undvika allmän validering av referenser när sådan validering inte behövs.
Implementering
public function get referencesValidationSetting():String
public function set referencesValidationSetting(value:String):void
Utlöser
IllegalOperationError — Om den anges medan en signatur verifieras.
| |
ArgumentError — om setting -parametern innehåller ett värde som inte definieras i ReferencesValidationSetting-klassen.
|
Relaterade API-element
Exempel ( Så här använder du exemplet )
import flash.security.ReferencesValidationSetting; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); verifier.referencesValidationSetting = ReferencesValidationSetting.VALID_OR_UNKNOWN_IDENTITY;
revocationCheckSetting | egenskap |
revocationCheckSetting:String
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0 |
Anger hur certifikatåterkallning kontrolleras.
Använd de konstanter som har definierats i klassen RevocationSettings när du vill ange den här egenskapen. Inställningarna inkluderar:
RevocationCheckSettings.NEVER
– Kontrollera inte certifikatåterkallning.RevocationCheckSettings.BEST_EFFORT
– Kontrollera certifikatåterkallning, om återkallningsinformationen är tillgänglig och återkallningsstatus kan hämtas. Om det inte går att säkert bestämma återkallningsstatus nekas inte certifikatet.RevocationCheckSettings.REQUIRED_IF_AVAILABLE
– Om certifikatet innehåller återkallningsinformation måste återkallningsstatus bestämmas säkert för att certifikatet ska kunna verifieras.RevocationCheckSettings.ALWAYS_REQUIRED
– Kontrollera alltid certifikatåterkallning. Certifikat utan återkallningsinformation nekas.
Implementering
public function get revocationCheckSetting():String
public function set revocationCheckSetting(value:String):void
Utlöser
IllegalOperationError — Om den anges medan en signatur verifieras.
|
Relaterade API-element
signerCN | egenskap |
signerCN:String
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0 |
Fältet för signeringscertifikatets allmänna namn.
Implementering
public function get signerCN():String
Exempel ( Så här använder du exemplet )
var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var commonName:String = verifier.signerCN;
signerDN | egenskap |
signerDN:String
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0 |
Fältet för signeringscertifikatets unika namn.
Implementering
public function get signerDN():String
Exempel ( Så här använder du exemplet )
var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var distinguishedName:String = verifier.signerDN;
signerExtendedKeyUsages | egenskap |
signerExtendedKeyUsages:Array
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0 |
En array som innehåller de OID för utökad nyckelanvändning som anges i signeringscertifikatet.
Varje utökad nyckelanvändning rapporteras i numeriskt OID-format.
Implementering
public function get signerExtendedKeyUsages():Array
Utlöser
IllegalOperationError — Om den används medan en signatur verifieras.
|
Exempel ( Så här använder du exemplet )
import flash.security.XMLSignatureValidator; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var extendedKeyOIDs:Array = verifier.signerExtendedKeyUsages;
signerTrustSettings | egenskap |
signerTrustSettings:Array
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0 |
En array som innehåller signeringscertifikatets förtroendeinställningar.
Förtroendeinställningar härleds från systemet och de OID för nyckelanvändning som är inbäddade i certifikatet. Konstanter för de strängar som representerar de identifierade förtroendeinställningarna anges i klassen SignerTrustSettings.
Arrayen signerTrustSettings
för ett certifikat med statusen unknown
eller invalid
är tom.
Certifikatets förtroendeinställningar ändras inte om arrayen redigeras.
Implementering
public function get signerTrustSettings():Array
Utlöser
IllegalOperationError — Om den används medan en signatur verifieras.
|
Relaterade API-element
Exempel ( Så här använder du exemplet )
import flash.security.XMLSignatureValidator; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var certificateTrustedFor:Array = verifier.signerTrustSettings;
uriDereferencer | egenskap |
uriDereferencer:IURIDereferencer
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0 |
IURIDereferencer-implementeringen.
Du måste ange en IURIDereferencer-implementering innan du försöker kontrollera en signatur.
Implementering
public function get uriDereferencer():IURIDereferencer
public function set uriDereferencer(value:IURIDereferencer):void
Utlöser
IllegalOperationError — Om den anges medan en signatur verifieras.
|
Relaterade API-element
Exempel ( Så här använder du exemplet )
import com.example.SignedMessageDereferencer; //A custom class implementing IURIDereferencer var verifier:XMLSignatureValidator = new XMLSignatureValidator(); verifier.uriDereferencer = new SignedMessageDereferencer();
useSystemTrustStore | egenskap |
useSystemTrustStore:Boolean
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0 |
Anger att certifikaten i systemets förtroendearkiv används för kedjeskapande.
Om värdet är true
används förtroendebaserna i systemets förtroendearkiv som tillförlitliga rötter. Systemets förtroendearkiv används inte som standard.
Implementering
public function get useSystemTrustStore():Boolean
public function set useSystemTrustStore(value:Boolean):void
Utlöser
IllegalOperationError — Om den anges medan en signatur verifieras.
|
Exempel ( Så här använder du exemplet )
var verifier:XMLSignatureValidator = new XMLSignatureValidator(); verifier.useSystemTrustStore = true;
validityStatus | egenskap |
validityStatus:String
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0 |
Giltighetsstatus hos en kontrollerad XML-signatur.
XML-signaturen verifieras genom validering av den kryptografiska signaturen för SignedInfo-elementet, signeringscertifikatet och de data som adresseras av referenserna i SignedInfo-elementet. Giltigheten hos vart och ett av de här elementen rapporteras enskilt i de olika egenskaperna digestStatus
, identityStatus()
och referencesStatus
.
En XML-signatur kan ha statusen valid, invalid eller unknown. Den överordnade statusen beror på kontrollstatusen för de enskilda komponenterna i signaturfilen:
digestStatus
– Giltigheten hos signaturens kryptografi beräknad över SignedInfo-elementet.identityStatus
– Giltigheten hos signeringscertifikatet.referencesStatus
– Giltigheten hos sammanfattningen av referenserna i signaturens SignedInfo-element.
Den signaturstatus som rapporteras av egenskapen validityStatus
kan vara:
valid
– OmreferencesStatus
,digestStatus
ochidentityStatus
alla har värdetvalid
.invalid
– Om någon enskild status har värdetinvalid
.unknown
– om någon enskild status har värdetunknown
.
Implementering
public function get validityStatus():String
Utlöser
IllegalOperationError — Om den används medan en signatur verifieras.
|
Relaterade API-element
Exempel ( Så här använder du exemplet )
import flash.security.XMLSignatureValidator; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate the signature... var validationResult:String = verifier.validityStatus;
XMLSignatureValidator | () | Konstruktor |
public function XMLSignatureValidator()
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0 |
Skapar ett XMLSignatureValidator-objekt.
Du måste ange egenskapen uriDereferencer
innan du anropar metoden verify()
för det nya objektet.
Relaterade API-element
Exempel ( Så här använder du exemplet )
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 | () | metod |
public function addCertificate(cert:ByteArray, trusted:Boolean):*
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0 |
Lägger till ett x509-certifikat för kedjeskapande.
Det certifikat som läggs till måste vara ett DER-kodat x509-certifikat.
Om parametern trusted
har värdet true
fungerar certifikatet som förtroendebas.
Obs! En XML-signatur kan innehålla certifikat för att skapa signerarens certifikatkedja. Klassen XMLSignatureValidator använder de här certifikaten för kedjeskapande, men inte som tillförlitliga rötter (som standard).
Parametrar
cert:ByteArray — Ett ByteArray-objekt som innehåller ett DER-kodat, digitalt x509-certifikat.
| |
trusted:Boolean — Ange true om du vill ange det här certifikatet som förtroendebas.
|
* |
Utlöser
IllegalOperationError — Om den anropas medan en signatur verifieras.
|
Exempel ( Så här använder du exemplet )
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 | () | metod |
public function verify(signature:XML):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0 |
Kontrollerar den angivna signaturen.
Kontrollen är asynkron. XMLSignatureValidator-objektet skickar en complete
-händelse när kontrollen har slutförts eller en error
-händelse om det inte går att slutföra kontrollen på grund av fel.
Det går inte att avbryta kontrollen. Så länge en kontroll pågår misslyckas efterföljande anrop till metoden verify()
. När den aktuella kontrollen har slutförts kan du anropa metoden verify()
igen.
Obs! Eftersom XMLSignatureValidator endast implementerar en delmängd av W3C-rekommendationen för XML-signatursyntax och -bearbetning, kan alla giltiga XML-signaturer inte verifieras.
Parametrar
signature:XML — Den XML-signatur som ska kontrolleras.
|
Händelser
complete: — Skickas när kontrollen har slutförts.
| |
error: — Skickas om ett fel inträffar under kontrollen av referenser.
|
Utlöser
IllegalOperationError — Om den anropas medan en signatur verifieras.
| |
Error — Om andra fel påträffas, t.ex. felaktigt formaterad XML eller element som inte stöds i signaturfilen.
|
Exempel ( Så här använder du exemplet )
verify()
. (I exemplet förutsätts det att IURIDereferencer-implementeringen passar för signaturen.)
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 | Händelse |
flash.events.Event
egenskap Event.type =
flash.events.Event.COMPLETE
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0 |
Skickas när kontrollen har slutförts.
En complete
-händelse anger inte att signaturen är giltig. Kontrollera validityStatus
-egenskapen för XMLSignatureValidator-objektet för att ta reda på resultaten från signaturverifieringen.
Event.COMPLETE
-konstanten definierar värdet på type
-egenskapen i ett complete
-händelseobjekt.
Den här händelsen har följande egenskaper:
Egenskap | Värde |
---|---|
bubbles | false |
cancelable | false ; det finns inget standardbeteende att avbryta. |
currentTarget | Det objekt som aktivt behandlar Event-objektet med en händelseavlyssnare. |
target | Det nätverksobjekt som har lästs in. |
Exempel ( Så här använder du exemplet )
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); }
Relaterade API-element
error | Händelse |
flash.events.ErrorEvent
egenskap ErrorEvent.type =
flash.events.ErrorEvent.ERROR
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0 |
Skickas om kontrollen inte kan slutföras på grund av fel.
Definierar värdet för etterror
-händelseobjekts type
-egenskap.
Den här händelsen har följande egenskaper:
Egenskap | Värde |
---|---|
bubbles | false |
cancelable | false ; det finns inget standardbeteende att avbryta. |
currentTarget | Det objekt som aktivt behandlar Event-objektet med en händelseavlyssnare. |
target | Objektet är med om ett nätverksfel. |
text | Text som visas som felmeddelande. |
Exempel ( Så här använder du exemplet )
private function verificationError(event:ErrorEvent):void{ trace("Verification error: " + event.text); }
SignatureValidatorExample.validateSignature( signatureFile )
, som skickas i filen som refererar till XML-signaturdokumentet som ska valideras.
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 ); } }
Tue Jun 12 2018, 01:40 PM Z