Pacchetto | flash.security |
Classe | public class XMLSignatureValidator |
Ereditarietà | XMLSignatureValidator EventDispatcher Object |
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0 |
Supporto profili AIR: questa funzionalità è supportata in tutti i sistemi operativi desktop e nei dispositivi AIR per TV, ma non nei dispositivi mobili. È possibile verificare se la funzionalità è supportata in fase runtime utilizzando la proprietà XMLSignatureValidator.isSupported
. Per ulteriori informazioni sul supporto delle API tra più profili, vedete Supporto dei profili AIR.
XMLSignatureValidator implementa un sottoinsieme della W3C Recommendation for XML-Signature Syntax and Processing (una specifica che regola la sintassi e l'elaborazione delle firme XML) e non deve essere considerata un'implementazione conforme. Il sottoinsieme supportato della specifica include:
- tutta la sintassi di base per le firme, ad eccezione dell'elemento KeyInfo;
- l'elemento KeyInfo supporta solo l'elemento X509Data;
- l'elemento X509Data supporta solo l'elemento X509Certificate;
- l'algoritmo del metodo digest SHA256;
- l'algoritmo di firma PKCS1;
- l'algoritmo Canonicalization Method and Transform "Canonical XML without comments";
- l'elemento Manifest nella sintassi delle firme aggiuntiva.
Dovete fornire un'implementazione IURIDereferencer per poter verificare una firma XML. Questa classe di implementazione è responsabile della risoluzione degli URI specificati negli elementi SignedInfo del file della firma e della restituzione dei dati a cui si fa riferimento in un oggetto, ad esempio ByteArray, che implementa l'interfaccia IDataInput.
Per poter verificare che un certificato di firma sia collegato a catena a un certificato attendibile, la firma XML deve contenere i certificati richiesti per creare la catena negli elementi X509Certificate oppure dovete fornire i certificati richiesti per creare la catena utilizzando il metodo addCertificate()
.
Per verificare XMLSignature:
- Create un'istanza della classe XMLSignatureValidator.
- Impostate la proprietà
uriDereferencer
dell'istanza su un'istanza della classe di implementazione IURIDereferencer. - Fornite dei certificati con codifica DER per creare la catena di attendibilità dei certificati, se desiderato, mediante il metodo
addCertificate
. - Chiamate il metodo
verify
di XMLSignatureValidator, passando la firma da verificare. - Verificate la proprietà
validityStatus
dopo che l'oggetto XMLSignatureValidator ha inviato un evento complete.
Informazioni sullo stato della firma:
Una firma può essere valida (valid), non valida (invalid) o sconosciuta (unknown). Lo stato complessivo dipende dallo stato della verifica dei singoli componenti del file della firma:
-
digestStatus
: la validità della crittografia della firma calcolata sull'elemento SignedInfo. Può esserevalid
,invalid
ounknown
. -
identityStatus
: la validità del certificato di firma. Se il certificato è scaduto oppure è stato revocato o alterato, lo stato èinvalid
. Se il certificato non può essere collegato a catena a un certificato principale attendibile, lo stato èunknown
. Il certificato non viene verificato se il valore del digest è invalid. Se non viene verificato, lo stato riportato èunknown
. -
referencesStatus
: la validità dei dati specificati dai riferimenti nell'elemento SignedInfo del file della firma. Può esserevalid
,invalid
ounknown
. I riferimenti non vengono verificati se lo stato del digest o del certificato è invalid. La verifica dei riferimenti può anche essere evitata in base all'impostazione della proprietàreferencesValidationSetting
. Se non viene verificato, lo stato riportato èunknown
.
La validità della firma riportata dalla proprietà validityStatus
può essere:
-
valid
: sereferencesStatus
,digestStatus
eidentityStatus
sono tuttivalid
. -
invalid
: se uno dei singoli stati èinvalid
. -
unknown
: sereferencesStatus
,digestStatus
oidentityStatus
èunknown
.
Limitazioni della convenzionalizzazione:
Il motore XML in AIR non produce sempre la stringa XML prevista in caso di convenzionalizzazione di un documento XML. Per questo motivo, è consigliabile non inserire spazi vuoti tra elementi in documenti di firma protetti digitalmente o scollegati e non ridefinire spazi dei nomi all'interno di un documento di firma. In entrambi i casi, AIR potrebbe non ricreare il documento con la stessa sequenza di caratteri dell'originale e pertanto la convalida non riuscirebbe.
Altre informazioni
Elementi API correlati
Proprietà | Definito da | ||
---|---|---|---|
constructor : Object
Un riferimento all'oggetto classe o alla funzione di costruzione per una determinata istanza di oggetto. | Object | ||
digestStatus : String [sola lettura]
Lo stato di validità della firma crittografica calcolata sull'elemento firma SignedInfo. | XMLSignatureValidator | ||
identityStatus : String [sola lettura]
Lo stato di validità del certificato di firma. | XMLSignatureValidator | ||
isSupported : Boolean [statico] [sola lettura]
La proprietà isSupported è impostata su true se la classe XMLSignatureValidator è supportata nella piattaforma corrente, altrimenti è impostata su false. | XMLSignatureValidator | ||
referencesStatus : String [sola lettura]
Lo stato di validità dei dati nei riferimenti dell'elemento firma SignedInfo. | XMLSignatureValidator | ||
referencesValidationSetting : String
Specifica le condizioni nelle quali i riferimenti vengono verificati. | XMLSignatureValidator | ||
revocationCheckSetting : String
Specifica il modo in cui viene verificata la revoca dei certificati. | XMLSignatureValidator | ||
signerCN : String [sola lettura]
Il campo Common Name del certificato di firma. | XMLSignatureValidator | ||
signerDN : String [sola lettura]
Il campo Distinguished del certificato di firma. | XMLSignatureValidator | ||
signerExtendedKeyUsages : Array [sola lettura]
Un array che contiene gli Extended Key Usages OID elencati nel certificati di firma. | XMLSignatureValidator | ||
signerTrustSettings : Array [sola lettura]
Un array che contiene le impostazioni di attendibilità del certificato di firma. | XMLSignatureValidator | ||
uriDereferencer : IURIDereferencer
L'implementazione IURIDereferencer. | XMLSignatureValidator | ||
useSystemTrustStore : Boolean
Specifica che i certificati nell'archivio delle fonti attendibili del sistema vengono utilizzati per la creazione della catena. | XMLSignatureValidator | ||
validityStatus : String [sola lettura]
Lo stato di validità di una firma XML verificata. | XMLSignatureValidator |
Metodo | Definito da | ||
---|---|---|---|
Crea un oggetto XMLSignatureValidator. | XMLSignatureValidator | ||
Aggiunge un certificato x509 per la creazione del catena. | XMLSignatureValidator | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registra un oggetto listener di eventi con un oggetto EventDispatcher, in modo che il listener riceva la notifica di un evento. | EventDispatcher | ||
Invia un evento nel flusso di eventi. | EventDispatcher | ||
Verifica se per l'oggetto EventDispatcher sono presenti listener registrati per un tipo specifico di evento. | EventDispatcher | ||
Indica se per un oggetto è definita una proprietà specifica. | Object | ||
Indica se un'istanza della classe Object si trova nella catena di prototipi dell'oggetto specificato come parametro. | Object | ||
Indica se la proprietà specificata esiste ed è enumerabile. | Object | ||
Rimuove un listener dall'oggetto EventDispatcher. | EventDispatcher | ||
Imposta la disponibilità di una proprietà dinamica per le operazioni cicliche. | Object | ||
Restituisce la rappresentazione in formato stringa di questo oggetto, formattato in base alle convenzioni specifiche per le versioni localizzate. | Object | ||
Restituisce la rappresentazione in formato stringa dell'oggetto specificato. | Object | ||
Restituisce il valore di base dell'oggetto specificato. | Object | ||
Verifica la firma specificata. | XMLSignatureValidator | ||
Verifica se un listener di eventi è registrato con questo oggetto EventDispatcher o qualsiasi suo antenato per il tipo di evento specificato. | EventDispatcher |
Evento | Riepilogo | Definito da | ||
---|---|---|---|---|
[evento di trasmissione] Inviato quando Flash Player o l'applicazione AIR ottiene lo stato di attivazione del sistema operativo ed entra nello stato attivo. | EventDispatcher | |||
Inviato quando la verifica è stata completata. | XMLSignatureValidator | |||
[evento di trasmissione] Inviato quando Flash Player o l'applicazione AIR perde l'attivazione del sistema operativo e sta entrando nello stato inattivo. | EventDispatcher | |||
Inviato se la verifica non può essere completata a causa di errori. | XMLSignatureValidator |
digestStatus | proprietà |
digestStatus:String
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0 |
Lo stato di validità della firma crittografica calcolata sull'elemento firma SignedInfo.
Lo stato è:
valid
: se la firma dal punto di vista crittografico è valid.invalid
: se il digest è stato modificato dopo la firma.unknown
: se il metodoverify()
non è stato chiamato.
Nota: se il valore di digestStatus
è invalid, i valori di identityStatus
e referencesStatus
non vengono verificati e vengono segnalati come unknown
.
Implementazione
public function get digestStatus():String
Genera
IllegalOperationError — Se vi si accede mentre è in corso la convalida di una firma.
|
identityStatus | proprietà |
identityStatus:String
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0 |
Lo stato di validità del certificato di firma.
Lo stato dello script può essere:
valid
: il certificato non è scaduto, non ha fallito una verifica delle revoche ed è collegato a catena a un certificato di una fonte attendibile.unknown
: il certificato non è scaduto e non ha fallito una verifica delle revoche, ma non è collegato a catena a un certificato di una fonte attendibile. Viene segnalato uno statounknown
anche quando lo stato non è stato verificato, sia perché il metodoverify()
non è stato chiamato, sia perché la firma crittografica dell'elemento SignedInfo (digestStatus
) è invalid.invalid
: il certificato è scaduto e ha fallito una verifica delle revoche.
I certificati aggiunti mediante il metodo addCertificate()
e le impostazioni delle proprietà revocationCheckSetting
e useSystemTrustStore
possono variare se un certificato è considerato valido.
Nota: se il valore di identityStatus
è invalid, il valore di referencesStatus
non viene verificato e viene segnalato come unknown
. Inoltre, i riferimenti non vengono verificati quando identityStatus
è unknown, a meno che il valore di referencesValidationSetting
non sia validOrUnknownIdentity
.
Implementazione
public function get identityStatus():String
Genera
IllegalOperationError — Se vi si accede mentre è in corso la convalida di una firma.
|
Elementi API correlati
Esempio ( Come utilizzare questo esempio )
import flash.security.XMLSignatureValidator; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var identityResult:String = verifier.identityStatus;
isSupported | proprietà |
isSupported:Boolean
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 2 |
La proprietà isSupported
è impostata su true
se la classe XMLSignatureValidator è supportata nella piattaforma corrente, altrimenti è impostata su false
.
Implementazione
public static function get isSupported():Boolean
referencesStatus | proprietà |
referencesStatus:String
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0 |
Lo stato di validità dei dati nei riferimenti dell'elemento firma SignedInfo.
Lo stato dello script può essere:
valid
: se tutti i riferimenti sono valid.invalid
: se uno dei riferimenti è invalid.unknown
: se non è verificato. I riferimenti possono rimanere non verificati nelle seguenti circostanze:- Il metodo
verify()
non è stato chiamato. - La firma crittografica dell'elemento SignedInfo (
digestStatus
) non è valida. - Il certificato di firma (
identityStatus
) non è valido. referencesValidationSetting
èvalidIdentity
(l'impostazione predefinita) e il valore diidentityStatus
del certificato di firma è unknown.- Il valore di
referencesValidationSetting
ènever
.
- Il metodo
Importante: le risorse esterne non vengono convalidate a meno che non si faccia un riferimento diretto a esse in un elemento SignedInfo all'interno del documento della firma. Le risorse esterne a cui si riferisce un riferimento secondario non vengono convalidate. Ad esempio, se una firma XML accredita un elemento manifesto, viene verificata solo l'integrità dell'elemento manifesto. I file elencati nel manifesto non vengono verificati.
Implementazione
public function get referencesStatus():String
Genera
IllegalOperationError — Se vi si accede mentre è in corso la convalida di una firma.
|
Elementi API correlati
Esempio ( Come utilizzare questo esempio )
import flash.security.XMLSignatureValidator; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var dataResult:String = verifier.referencesStatus;
referencesValidationSetting | proprietà |
referencesValidationSetting:String
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.5 |
Specifica le condizioni nelle quali i riferimenti vengono verificati.
Utilizzate le costanti definite nella classe ReferencesValidationSetting per impostare questa proprietà. Le impostazioni comprendono:
ReferencesValidationSetting.VALID_IDENTITY
: verifica i riferimenti solo se il certificato di firma è valido e collegato a un elemento superiore attendibile. Questa è l'impostazione predefinita.ReferencesValidationSetting.VALID_OR_UNKNOWN_IDENTITY
: verifica i riferimenti se il certificato di firma è valido, anche se non è collegato a un elemento cartella superiore attendibile.ReferencesValidationSetting.NEVER
: non verifica mai i riferimenti.
Utilizzate l'impostazione validIdentity
predefinita con le firme fornite da un certificato commerciale o quando fornite un vostro certificato come trust anchor ("ancoraggio di attendibilità") con il metodo addCertificate()
. Questa impostazione evita la ridondanza legata alla verifica della validità dei riferimento quando il documento firmato viene comunque rifiutato.
Utilizzate l'impostazione validOrUnknownIdentity
con le firme fornite da certificati autofirmati. Questa impostazione consente di convalidare che i dati firmati non sono stati alterati, ma non fornisce alcuna garanzia sull'identità dell'autore della firma.
Utilizzate l'impostazione never
per evitare la ridondanza legata alla convalida dei riferimenti quando tale convalida non è importante nel contesto dell'applicazione.
Implementazione
public function get referencesValidationSetting():String
public function set referencesValidationSetting(value:String):void
Genera
IllegalOperationError — Se impostato mentre è in corso la convalida di una firma.
| |
ArgumentError — se il parametro setting contiene un valore non definito nella classe ReferencesValidationSetting.
|
Elementi API correlati
Esempio ( Come utilizzare questo esempio )
import flash.security.ReferencesValidationSetting; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); verifier.referencesValidationSetting = ReferencesValidationSetting.VALID_OR_UNKNOWN_IDENTITY;
revocationCheckSetting | proprietà |
revocationCheckSetting:String
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0 |
Specifica il modo in cui viene verificata la revoca dei certificati.
Utilizzate le costanti definite nella classe RevocationSettings per impostare questa proprietà. Le impostazioni comprendono:
RevocationCheckSettings.NEVER
: non verifica la revoca dei certificati.RevocationCheckSettings.BEST_EFFORT
: verifica la revoca dei certificati, se le informazioni sulla revoca sono disponibili ed è possibile ottenere lo stato della revoca. Se lo stato della revoca non può essere determinato positivamente, il certificato non viene rifiutato.RevocationCheckSettings.REQUIRED_IF_AVAILABLE
: se il certificato include informazioni sulla revoca, lo stato della revoca deve essere determinato positivamente per convalidare il certificato.RevocationCheckSettings.ALWAYS_REQUIRED
: verifica sempre la revoca dei certificati. I certificati senza informazioni sulla revoca vengono rifiutati.
Implementazione
public function get revocationCheckSetting():String
public function set revocationCheckSetting(value:String):void
Genera
IllegalOperationError — Se impostato mentre è in corso la convalida di una firma.
|
Elementi API correlati
signerCN | proprietà |
signerCN:String
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0 |
Il campo Common Name del certificato di firma.
Implementazione
public function get signerCN():String
Esempio ( Come utilizzare questo esempio )
var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var commonName:String = verifier.signerCN;
signerDN | proprietà |
signerDN:String
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0 |
Il campo Distinguished del certificato di firma.
Implementazione
public function get signerDN():String
Esempio ( Come utilizzare questo esempio )
var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var distinguishedName:String = verifier.signerDN;
signerExtendedKeyUsages | proprietà |
signerExtendedKeyUsages:Array
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0 |
Un array che contiene gli Extended Key Usages OID elencati nel certificati di firma.
Ogni Extended Key Usage viene riportato in formato OID numerico.
Implementazione
public function get signerExtendedKeyUsages():Array
Genera
IllegalOperationError — Se vi si accede mentre è in corso la convalida di una firma.
|
Esempio ( Come utilizzare questo esempio )
import flash.security.XMLSignatureValidator; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var extendedKeyOIDs:Array = verifier.signerExtendedKeyUsages;
signerTrustSettings | proprietà |
signerTrustSettings:Array
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0 |
Un array che contiene le impostazioni di attendibilità del certificato di firma.
Le impostazioni di attendibilità vengono derivate dal sistema e dai Key Usages OID di utilizzo principali incorporati nel certificato. Le costanti delle stringhe che rappresentano le impostazioni di attendibilità riconosciute nella classe SignerTrustSettings.
L'array signerTrustSettings
di un certificato unknown
o invalid
è vuoto.
La modifica di un array non modifica le impostazioni di attendibilità del certificato.
Implementazione
public function get signerTrustSettings():Array
Genera
IllegalOperationError — Se vi si accede mentre è in corso la convalida di una firma.
|
Elementi API correlati
Esempio ( Come utilizzare questo esempio )
import flash.security.XMLSignatureValidator; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var certificateTrustedFor:Array = verifier.signerTrustSettings;
uriDereferencer | proprietà |
uriDereferencer:IURIDereferencer
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0 |
L'implementazione IURIDereferencer.
Un'implementazione IURIDereferencer deve essere fornita prima di tentare la verifica di una firma.
Implementazione
public function get uriDereferencer():IURIDereferencer
public function set uriDereferencer(value:IURIDereferencer):void
Genera
IllegalOperationError — Se impostato mentre è in corso la convalida di una firma.
|
Elementi API correlati
Esempio ( Come utilizzare questo esempio )
import com.example.SignedMessageDereferencer; //A custom class implementing IURIDereferencer var verifier:XMLSignatureValidator = new XMLSignatureValidator(); verifier.uriDereferencer = new SignedMessageDereferencer();
useSystemTrustStore | proprietà |
useSystemTrustStore:Boolean
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0 |
Specifica che i certificati nell'archivio delle fonti attendibili del sistema vengono utilizzati per la creazione della catena.
Se true
, gli ancoraggi di attendibilità nell'archivio delle fonti attendibili vengono utilizzati come fonti attendibili. L'archivio delle fonti attendibili non viene utilizzato per impostazione predefinita.
Implementazione
public function get useSystemTrustStore():Boolean
public function set useSystemTrustStore(value:Boolean):void
Genera
IllegalOperationError — Se impostato mentre è in corso la convalida di una firma.
|
Esempio ( Come utilizzare questo esempio )
var verifier:XMLSignatureValidator = new XMLSignatureValidator(); verifier.useSystemTrustStore = true;
validityStatus | proprietà |
validityStatus:String
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0 |
Lo stato di validità di una firma XML verificata.
La firma XML viene verificata convalidando la firma crittografica dell'elemento SignedInfo, il certificato di firma e i dati a cui si riferiscono i riferimenti presenti nell'elemento SignedInfo. La validità di ciascuno di questi elementi viene segnalata rispettivamente dalle proprietà digestStatus
, identityStatus()
e referencesStatus
.
Una firma può essere valida (valid), non valida (invalid) o sconosciuta (unknown). Lo stato complessivo dipende dallo stato della verifica dei singoli componenti del file della firma:
digestStatus
: la validità della firma crittografica calcolata sull'elemento SignedInfo.identityStatus
: la validità del certificato di firma.referencesStatus
: la validità del digest di tutti i riferimenti dell'elemento SignedInfo della firma.
La validità della firma riportata dalla proprietà validityStatus
può essere:
valid
: sereferencesStatus
,digestStatus
eidentityStatus
sono tuttivalid
.invalid
: se uno dei singoli stati èinvalid
.unknown
: se uno qualunque dei singoli stati èunknown
.
Implementazione
public function get validityStatus():String
Genera
IllegalOperationError — Se vi si accede mentre è in corso la convalida di una firma.
|
Elementi API correlati
Esempio ( Come utilizzare questo esempio )
import flash.security.XMLSignatureValidator; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate the signature... var validationResult:String = verifier.validityStatus;
XMLSignatureValidator | () | Funzione di costruzione |
public function XMLSignatureValidator()
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0 |
Crea un oggetto XMLSignatureValidator.
Dovete impostare la proprietà uriDereferencer
prima di chiamare il metodo verify()
del nuovo oggetto.
Elementi API correlati
Esempio ( Come utilizzare questo esempio )
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 | () | metodo |
public function addCertificate(cert:ByteArray, trusted:Boolean):*
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0 |
Aggiunge un certificato x509 per la creazione del catena.
Il certificato aggiunto deve essere un certificato x509 con codifica DER.
Se il parametro trusted
è true
, il certificato viene considerato un ancoraggio di attendibilità.
Nota: una firma XML può comprendere i certificati per la creazione della catena dei certificati del firmatario. La classe XMLSignatureValidator utilizza questi certificati per la creazione della catena, ma non come fonte attendibile (per impostazione predefinita).
Parametri
cert:ByteArray — Un oggetto ByteArray che contiene un certificato digitale x509 con codifica DER.
| |
trusted:Boolean — Impostate su true per designare questo certificato come ancoraggio di attendibilità.
|
* |
Genera
IllegalOperationError — Se viene chiamato mentre è in corso la convalida di una firma.
|
Esempio ( Come utilizzare questo esempio )
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 | () | metodo |
public function verify(signature:XML):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0 |
Verifica la firma specificata.
La verifica è asincrona. L'oggetto XMLSignatureValidator invia un evento complete
quando la verifica viene completata correttamente oppure un evento error
se la verifica non può essere completata a causa di errori.
Il processo di verifica non può essere annullato. Mentre è in corso un processo di verifica, le successive chiamate al metodo verify()
danno esito negativo. Una volta completata la verifica corrente, potete chiamare di nuovo il metodo verify()
.
Nota: poiché l'oggetto XMLSignatureValidator implementa solo un sottoinsieme della W3C Recommendation for XML Signature Syntax and Processing, non tutte le firme XML valide possono essere verificate.
Parametri
signature:XML — La firma XML da verificare.
|
Eventi
complete: — Inviato quando la verifica viene effettuata correttamente.
| |
error: — Inviato se la verifica dei riferimento incontra un errore.
|
Genera
IllegalOperationError — Se viene chiamato mentre è in corso la convalida di una firma.
| |
Error — Se si verificano altri errori, ad esempio codice XML non formato correttamente o elementi non supportati nel file della firma.
|
Esempio ( Come utilizzare questo esempio )
verify()
. (L'esempio presuppone che l'implementazione di IURIDereferencer sia appropriata per la firma).
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 | Evento |
flash.events.Event
proprietà Event.type =
flash.events.Event.COMPLETE
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0 |
Inviato quando la verifica è stata completata.
Un evento complete
non implica che la firma sia valida. Verificate la proprietà validityStatus
dell'oggetto XMLSignatureValidator per determinare il risultato della verifica della firma.
Event.COMPLETE
definisce il valore della proprietà type
di un oggetto evento complete
.
Questo evento ha le seguenti proprietà:
Proprietà | Valore |
---|---|
bubbles | false |
cancelable | false ; non è presente alcun comportamento predefinito da annullare. |
currentTarget | L'oggetto che elabora attivamente l'oggetto Event con un listener di eventi. |
target | L'oggetto di rete che ha completato il caricamento. |
Esempio ( Come utilizzare questo esempio )
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); }
Elementi API correlati
error | Evento |
flash.events.ErrorEvent
proprietà ErrorEvent.type =
flash.events.ErrorEvent.ERROR
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0 |
Inviato se la verifica non può essere completata a causa di errori.
Definisce il valore della proprietàtype
di un oggetto evento error
.
Questo evento ha le seguenti proprietà:
Proprietà | Valore |
---|---|
bubbles | false |
cancelable | false ; non è presente alcun comportamento predefinito da annullare. |
currentTarget | L'oggetto che elabora attivamente l'oggetto Event con un listener di eventi. |
target | L'oggetto interessato da un errore di funzionamento di rete. |
text | Testo da visualizzare come messaggio di errore. |
Esempio ( Come utilizzare questo esempio )
private function verificationError(event:ErrorEvent):void{ trace("Verification error: " + event.text); }
SignatureValidatorExample.validateSignature(signatureFile)
, passando il file che fa riferimento al documento della firma XML da convalidare.
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, 02:44 PM Z