Package | flash.security |
Classe | public class XMLSignatureValidator |
Héritage | XMLSignatureValidator EventDispatcher Object |
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0 |
Prise en charge du profil AIR : cette fonctionnalité est prise en charge sur tous les systèmes d’exploitation de bureau et les périphériques AIR pour TV, mais ne l’est pas sur les périphériques mobiles. Vous pouvez tester la prise en charge lors de l’exécution à l’aide de la propriété XMLSignatureValidator.isSupported
. Voir Prise en charge du profil AIR pour plus d’informations sur la prise en charge de l’API dans plusieurs profils.
La classe XMLSignatureValidator implémente un sous-ensemble de la recommandation du W3C portant sur la syntaxe et le traitement de XML Signature, bien que ce dernier ne doive pas être considéré comme une implémentation normalisée. Le sous-ensemble de la recommandation pris en charge inclut les éléments suivants :
- Toute la syntaxe des signatures de base à l’exception de l’élément KeyInfo.
- L’élément KeyInfo prend en charge uniquement l’élément X509Data.
- L’élément X509Data prend en charge uniquement l’élément X509Certificate.
- Algorithme de la méthode digest SHA256.
- Algorithme de signature PKCS1.
- Méthode de canonisation « XML canonique sans commentaires » et algorithme de transformation.
- Elément Manifest dans une syntaxe de signatures supplémentaire.
Vous devez fournir une implémentation IURIDereferencer pour vérifier une signature XML. Cette classe d’implémentation est chargée de résoudre les URI (Uniform Resource Identifier) spécifiés dans les éléments SignedInfo du fichier de signature, puis de renvoyer les données référencées dans un objet, tel que ByteArray, qui implémente l’interface IDataInput.
Pour vérifier que le certificat de signature est lié à un certificat approuvé, deux possibilités s’offrent à vous : soit la signature XML doit contenir les certificats requis pour créer la chaîne dans les éléments X509Certificate, soit vous devez fournir les certificats requis pour créer la chaîne à l’aide de la méthode addCertificate()
.
Pour vérifier une signature XML :
- Créez une occurrence de la classe XMLSignatureValidator.
- Définissez la propriété
uriDereferencer
de l’occurrence sur une occurrence de votre classe d’implémentation IURIDereferencer. - Si vous souhaitez créer la chaîne d’approbation de certificat, fournissez des certificats codés en DER (Distinguished Encoding Rules) à l’aide de la méthode
addCertificate()
. - Appelez la méthode
verify
de l’objet XMLSignatureValidator, en transmettant la signature à vérifier. - Vérifiez la propriété
validityStatus
une fois que l’objet XMLSignatureValidator distribue un événement complete.
A propos de l’état des signatures :
Une signature XML peut présenter un état « valid » (valide), non « invalid » (non valide) ou « unknown » (inconnu). L’état général dépend de l’état de vérification des composants individuels du fichier de signature :
-
digestStatus
: validité de la signature cryptographique calculée sur l’élément SignedInfo. Les valeurs possibles sontvalid
,invalid
ouunknown
. -
identityStatus
: validité du certificat de signature. Si le certificat a expiré, a été révoqué ou altéré, l’état estinvalid
. S’il s’avère impossible de lier le certificat à un certificat racine approuvé, l’état estunknown
. Le certificat n’est pas vérifié si le digest n’est pas valide. S’il n’est pas vérifié, l’état correspond àunknown
. -
referencesStatus
: validité des données transmises par les références dans l’élément SignedInfo du fichier de signature. Les valeurs possibles sontvalid
,invalid
ouunknown
. Les références ne sont pas vérifiées si le digest ou le certificat n’est pas valide. Il est également possible que la vérification des références ne soit pas effectuée, selon le paramètre de la propriétéreferencesValidationSetting
. S’il n’est pas vérifié, l’état correspond àunknown
.
L’état de la signature indiqué par la propriété validityStatus
peut être :
-
valid
: si les propriétésreferencesStatus
,digestStatus
etidentityStatus
sont toutesvalid
. -
invalid
: si l’un des états individuels estinvalid
. -
unknown
: sireferencesStatus
,digestStatus
ouidentityStatus
estunknown
.
Restrictions concernant la mise en forme canonique :
Le moteur XML d’AIR ne produit pas toujours la chaîne XML attendue lors de la mise en forme canonique d’un document XML. Pour cette raison, nous vous recommandons d’éviter d’insérer des espaces blancs entre les éléments dans les documents de signature enveloppés ou séparés et de ne pas redéfinir les espaces de noms au sein d’un document de signature. Dans les deux cas, AIR peut de ne pas recréer le document avec la même séquence de caractères que celle du document original, ce qui risque d’entraîner l’échec de la validation.
Informations complémentaires
Eléments de l’API associés
Propriété | Défini par | ||
---|---|---|---|
constructor : Object
Référence à l’objet de classe ou à la fonction constructeur d’une occurrence donnée d’un objet. | Object | ||
digestStatus : String [lecture seule]
Etat de validité de la signature cryptographique calculée sur l’élément de signature SignedInfo. | XMLSignatureValidator | ||
identityStatus : String [lecture seule]
Etat de validité du certificat de signature. | XMLSignatureValidator | ||
isSupported : Boolean [statique] [lecture seule]
La propriété isSupported est définie sur true si la classe XMLSignatureValidator est disponible sur la plate-forme actuelle ; dans le cas contraire, elle est définie sur false. | XMLSignatureValidator | ||
referencesStatus : String [lecture seule]
Validité des données de toutes les références dans l’élément de signature SignedInfo. | XMLSignatureValidator | ||
referencesValidationSetting : String
Spécifie les conditions sous lesquelles les références sont vérifiées. | XMLSignatureValidator | ||
revocationCheckSetting : String
Détermine la méthode de vérification de la révocation des certificats. | XMLSignatureValidator | ||
signerCN : String [lecture seule]
Champ Nom commun du certificat de signature. | XMLSignatureValidator | ||
signerDN : String [lecture seule]
Champ Nom unique du certificat de signature. | XMLSignatureValidator | ||
signerExtendedKeyUsages : Array [lecture seule]
Tableau contenant les identificateurs d’objets de l’utilisation avancée de la clé répertoriés dans le certificat de signature. | XMLSignatureValidator | ||
signerTrustSettings : Array [lecture seule]
Tableau contenant les paramètres d’approbation du certificat de signature. | XMLSignatureValidator | ||
uriDereferencer : IURIDereferencer
Implémentation de IURIDereferencer. | XMLSignatureValidator | ||
useSystemTrustStore : Boolean
Indique que les certificats dans le magasin d’approbations du système sont utilisés pour la création de chaînes. | XMLSignatureValidator | ||
validityStatus : String [lecture seule]
Etat de validité d’une signature XML vérifiée. | XMLSignatureValidator |
Méthode | Défini par | ||
---|---|---|---|
Crée un objet XMLSignatureValidator. | XMLSignatureValidator | ||
Ajoute un certificat x509 pour la création de la chaîne. | XMLSignatureValidator | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Enregistre un objet écouteur d’événement auprès d’un objet EventDispatcher afin que l’écouteur soit averti d’un événement. | EventDispatcher | ||
Distribue un événement dans le flux d’événements. | EventDispatcher | ||
Vérifie si des écouteurs sont enregistrés auprès de l’objet EventDispatcher pour un type spécifique d’événement. | EventDispatcher | ||
Indique si la propriété spécifiée d’un objet est définie. | Object | ||
Indique si une occurrence de la classe Object figure dans la chaîne de prototype de l’objet spécifié en tant que paramètre. | Object | ||
Indique si la propriété spécifiée existe et est énumérable. | Object | ||
Supprime un écouteur de l’objet EventDispatcher. | EventDispatcher | ||
Définit la disponibilité d’une propriété dynamique pour les opérations en boucle. | Object | ||
Renvoie la représentation de chaîne de cet objet, formatée selon les paramètres régionaux en vigueur. | Object | ||
Renvoie la représentation sous forme de chaîne de l’objet spécifié. | Object | ||
Renvoie la valeur primitive de l’objet spécifié. | Object | ||
Vérifie la signature spécifiée. | XMLSignatureValidator | ||
Vérifie si un écouteur d’événement est enregistré auprès de cet objet EventDispatcher ou de ses ancêtres pour le type d’événement spécifié. | EventDispatcher |
Evénement | Synthèse | Défini par | ||
---|---|---|---|---|
[Evénement de diffusion] Distribué lorsque l’application Flash Player obtient le focus du système d’exploitation et devient active. | EventDispatcher | |||
Distribué une fois la vérification terminée. | XMLSignatureValidator | |||
[Evénement de diffusion] Distribué lorsque l’application Flash Player ou AIR perd le focus du système d’exploitation et devient inactive. | EventDispatcher | |||
Distribué si la vérification s’avère impossible à cause d’erreurs. | XMLSignatureValidator |
digestStatus | propriété |
digestStatus:String
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0 |
Etat de validité de la signature cryptographique calculée sur l’élément de signature SignedInfo.
Le statut est :
valid
: si la signature est valide au niveau cryptographique.invalid
: si la méthode digest a été modifiée après la signature.unknown
: si la méthodeverify()
n’a pas été appelée.
Remarque : si digestStatus
est invalid, les états identityStatus
et referencesStatus
ne sont pas vérifiés et sont indiqués comme unknown
.
Implémentation
public function get digestStatus():String
Valeur émise
IllegalOperationError — Si l’accès a lieu lorsqu’une signature est en cours de validation.
|
identityStatus | propriété |
identityStatus:String
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0 |
Etat de validité du certificat de signature.
Les états possibles sont les suivants :
valid
: le certificat n’a pas expiré, la vérification de la révocation a été effectuée correctement et il est lié à un certificat racine approuvé.unknown
: le certificat n’a pas expiré, la vérification de la révocation a été effectuée correctement, mais il n’est pas lié à un certificat racine approuvé. Le statutunknown
est également signalé lorsqu’il n’a pas été vérifié, soit parce que la méthodeverify()
n’a pas été appelée, soit parce que la signature cryptographique de l’élément SignedInfo (digestStatus
) n’est pas valide.invalid
: le certificat a expiré ou la vérification de la révocation a échoué.
Les certificats ajoutés à l’aide de la méthode addCertificate()
, ainsi que les paramètres des propriétés revocationCheckSetting
et useSystemTrustStore
peuvent changer lorsqu’un certificat est considéré comme étant valide.
Remarque : si identifyStatus
est invalid, l’état referenceStatus
n’est pas vérifié et est indiqué comme unknown
. En outre, les références ne sont pas vérifiées si l’état identityStatus
est unknown, à moins que la propriété referencesValidationSetting
soit définie sur validOrUnknownIdentity
.
Implémentation
public function get identityStatus():String
Valeur émise
IllegalOperationError — Si l’accès a lieu lorsqu’une signature est en cours de validation.
|
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
import flash.security.XMLSignatureValidator; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var identityResult:String = verifier.identityStatus;
isSupported | propriété |
isSupported:Boolean
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 2 |
La propriété isSupported
est définie sur true
si la classe XMLSignatureValidator est disponible sur la plate-forme actuelle ; dans le cas contraire, elle est définie sur false
.
Implémentation
public static function get isSupported():Boolean
referencesStatus | propriété |
referencesStatus:String
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0 |
Validité des données de toutes les références dans l’élément de signature SignedInfo.
Les états possibles sont les suivants :
valid
: si toutes les références sont valides.invalid
: si l’une des références n’est pas valide.unknown
: si aucune référence n’est vérifiée. Il est possible de ne pas vérifier les références dans les cas suivants :- la méthode
verify()
n’a pas été appelée - la signature cryptographique de l’élément SignedInfo (
digestStatus
) n’est pas valide - le certificat de signature (
identityStatus
) n’est pas valide - la propriété
referencesValidationSetting
est définie survalidIdentity
(paramètre par défaut) et l’étatidentityStatus
du certificat de signature est unknown - la propriété
referencesValidationSetting
est définie surnever
.
- la méthode
Important : les ressources externes ne sont pas vérifiées, à moins qu’elles ne soient référencées directement dans un élément SignedInfo au sein du document de signature. Les ressources externes désignées par une référence secondaire ne sont pas vérifiées. Par exemple, si une signature XML signe un élément manifest, seule l’intégrité de l’élément manifest est vérifiée. Les fichiers répertoriés dans le manifeste ne sont pas vérifiés.
Implémentation
public function get referencesStatus():String
Valeur émise
IllegalOperationError — Si l’accès a lieu lorsqu’une signature est en cours de validation.
|
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
import flash.security.XMLSignatureValidator; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var dataResult:String = verifier.referencesStatus;
referencesValidationSetting | propriété |
referencesValidationSetting:String
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.5 |
Spécifie les conditions sous lesquelles les références sont vérifiées.
Utilisez les constantes définies dans la classe ReferencesValidationSetting pour définir cette propriété. Les paramètres sont les suivants :
ReferencesValidationSetting.VALID_IDENTITY
: vérifiez les références uniquement si le certificat de signature est valide et s’il est lié à un certificat racine approuvé. C’est la valeur par défaut.ReferencesValidationSetting.VALID_OR_UNKNOWN_IDENTITY
: vérifiez les références si le certificat de signature est valide, même s’il n’est lié à aucun certificat racine approuvé.ReferencesValidationSetting.NEVER
: ne vérifiez jamais les références.
Utilisez le paramètre par défaut, validIdentity
, avec les signatures signées à l’aide d’un certificat commercial ou lorsque vous fournissez votre propre certificat en tant qu’ancre de confiance à l’aide de la méthode addCertificate()
. Ce paramètre permet d’éviter de vérifier plusieurs fois la validité des références lorsque le document signé est rejeté.
Utilisez le paramètre validOrUnknownIdentity
avec les signatures signées à l’aide de certificats auto-signés. Ce paramètre vous permet de vérifier que les données signées n’ont pas été altérées, mais il ne permet pas de vérifier l’identité du signataire.
Utilisez le paramètre never
pour éviter de vérifier plusieurs fois les références lorsque cette vérification n’est pas importante dans le contexte de votre application.
Implémentation
public function get referencesValidationSetting():String
public function set referencesValidationSetting(value:String):void
Valeur émise
IllegalOperationError — Si le paramétrage a lieu lorsqu’une signature est en cours de validation.
| |
ArgumentError — Si le paramètre setting contient une valeur non définie dans la classe ReferencesValidationSetting.
|
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
import flash.security.ReferencesValidationSetting; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); verifier.referencesValidationSetting = ReferencesValidationSetting.VALID_OR_UNKNOWN_IDENTITY;
revocationCheckSetting | propriété |
revocationCheckSetting:String
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0 |
Détermine la méthode de vérification de la révocation des certificats.
Utilisez les constantes définies dans la classe RevocationSettings pour définir cette propriété. Les paramètres sont les suivants :
RevocationCheckSettings.NEVER
: la révocation des certificats n’est pas vérifiée.RevocationCheckSettings.BEST_EFFORT
: la révocation des certificats est vérifiée si les informations de révocation sont disponibles et s’il est possible d’obtenir le statut de révocation. S'il s'avère impossible de déterminer le statut de révocation, le certificat n'est pas rejeté.RevocationCheckSettings.REQUIRED_IF_AVAILABLE
: si le certificat dispose d’informations de révocation, il est nécessaire de déterminer le statut de révocation pour le valider.RevocationCheckSettings.ALWAYS_REQUIRED
: vérifie toujours la révocation des certificats. Les certificats ne disposant d’aucune information de révocation sont rejetés.
Implémentation
public function get revocationCheckSetting():String
public function set revocationCheckSetting(value:String):void
Valeur émise
IllegalOperationError — Si le paramétrage a lieu lorsqu’une signature est en cours de validation.
|
Eléments de l’API associés
signerCN | propriété |
signerCN:String
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0 |
Champ Nom commun du certificat de signature.
Implémentation
public function get signerCN():String
Exemple ( Comment utiliser cet exemple )
var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var commonName:String = verifier.signerCN;
signerDN | propriété |
signerDN:String
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0 |
Champ Nom unique du certificat de signature.
Implémentation
public function get signerDN():String
Exemple ( Comment utiliser cet exemple )
var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var distinguishedName:String = verifier.signerDN;
signerExtendedKeyUsages | propriété |
signerExtendedKeyUsages:Array
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0 |
Tableau contenant les identificateurs d’objets de l’utilisation avancée de la clé répertoriés dans le certificat de signature.
Chaque utilisation avancée de la clé est indiquée sous forme d’identificateur d’objet numérique.
Implémentation
public function get signerExtendedKeyUsages():Array
Valeur émise
IllegalOperationError — Si l’accès a lieu lorsqu’une signature est en cours de validation.
|
Exemple ( Comment utiliser cet exemple )
import flash.security.XMLSignatureValidator; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var extendedKeyOIDs:Array = verifier.signerExtendedKeyUsages;
signerTrustSettings | propriété |
signerTrustSettings:Array
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0 |
Tableau contenant les paramètres d’approbation du certificat de signature.
Les paramètres d’approbation proviennent du système et des identificateurs d’objets incorporés dans le certificat. Les constantes des chaînes représentant les paramètres d’approbation reconnus sont définies dans la classe SignerTrustSettings.
Le tableau signerTrustSettings
d’un certificat unknown
ou invalid
est vide.
La modification du tableau ne permet pas de modifier les paramètres d’approbation du certificat.
Implémentation
public function get signerTrustSettings():Array
Valeur émise
IllegalOperationError — Si l’accès a lieu lorsqu’une signature est en cours de validation.
|
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
import flash.security.XMLSignatureValidator; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var certificateTrustedFor:Array = verifier.signerTrustSettings;
uriDereferencer | propriété |
uriDereferencer:IURIDereferencer
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0 |
Implémentation de IURIDereferencer.
Vous devez fournir une implémentation de IURIDereferencer avant de vérifier une signature.
Implémentation
public function get uriDereferencer():IURIDereferencer
public function set uriDereferencer(value:IURIDereferencer):void
Valeur émise
IllegalOperationError — Si le paramétrage a lieu lorsqu’une signature est en cours de validation.
|
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
import com.example.SignedMessageDereferencer; //A custom class implementing IURIDereferencer var verifier:XMLSignatureValidator = new XMLSignatureValidator(); verifier.uriDereferencer = new SignedMessageDereferencer();
useSystemTrustStore | propriété |
useSystemTrustStore:Boolean
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0 |
Indique que les certificats dans le magasin d’approbations du système sont utilisés pour la création de chaînes.
Si la valeur true
est définie, les ancres de confiance dans le magasin d’approbations du système sont utilisées comme racines de confiance. Par défaut, le magasin d’approbations du système n’est pas utilisé.
Implémentation
public function get useSystemTrustStore():Boolean
public function set useSystemTrustStore(value:Boolean):void
Valeur émise
IllegalOperationError — Si le paramétrage a lieu lorsqu’une signature est en cours de validation.
|
Exemple ( Comment utiliser cet exemple )
var verifier:XMLSignatureValidator = new XMLSignatureValidator(); verifier.useSystemTrustStore = true;
validityStatus | propriété |
validityStatus:String
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0 |
Etat de validité d’une signature XML vérifiée.
La signature XML est vérifiée en validant la signature cryptographique de l’élément SignedInfo, le certificat de signature et les données transmises par les références dans l’élément SignedInfo. La validité de ces éléments est indiquée individuellement par les propriétés digestStatus
, identityStatus()
et referencesStatus
, respectivement.
Une signature XML peut présenter un état « valid » (valide), non « invalid » (non valide) ou « unknown » (inconnu). L’état général dépend de l’état de vérification des composants individuels du fichier de signature :
digestStatus
: validité de la signature cryptographique calculée sur l’élément SignedInfo.identityStatus
: validité du certificat de signature.referencesStatus
: validité de la méthode digest des références dans l’élément de signature SignedInfo.
L’état de la signature indiqué par la propriété validityStatus
peut être :
valid
: si les propriétésreferencesStatus
,digestStatus
etidentityStatus
sont toutesvalid
.invalid
: si l’un des états individuels estinvalid
.unknown
: si l’un des états individuels estunknown
.
Implémentation
public function get validityStatus():String
Valeur émise
IllegalOperationError — Si l’accès a lieu lorsqu’une signature est en cours de validation.
|
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
import flash.security.XMLSignatureValidator; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate the signature... var validationResult:String = verifier.validityStatus;
XMLSignatureValidator | () | Constructeur |
public function XMLSignatureValidator()
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0 |
Crée un objet XMLSignatureValidator.
Vous devez définir la propriété uriDereferencer
avant d’appeler la méthode verify()
du nouvel objet.
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
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 | () | méthode |
public function addCertificate(cert:ByteArray, trusted:Boolean):*
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0 |
Ajoute un certificat x509 pour la création de la chaîne.
Le certificat ajouté doit être un certificat x509 codé en DER.
Si le paramètre trusted
est défini sur true
, le certificat est considéré comme une ancre de confiance.
Remarque : une signature XML peut inclure des certificats permettant de créer la chaîne de certificats du signataire. Par défaut, la classe XMLSignatureValidator utilise ces certificats pour la création de chaînes, et non comme racines de confiance.
Paramètres
cert:ByteArray — Objet ByteArray contenant un certificat numérique x509 codé en DER.
| |
trusted:Boolean — Défini sur true pour désigner ce certificat comme ancre de confiance.
|
* |
Valeur émise
IllegalOperationError — Si l’appel a lieu lorsqu’une signature est en cours de validation.
|
Exemple ( Comment utiliser cet exemple )
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 | () | méthode |
public function verify(signature:XML):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0 |
Vérifie la signature spécifiée.
La vérification est asynchrone. L’objet XMLSignatureValidator distribue un événement complete
lorsque la vérification s’achève avec succès, ou si un événement error
est émis lorsque la vérification s’avère impossible à cause d’erreurs.
Il est impossible d’annuler la procédure de vérification. Lorsqu’une vérification est en cours, les appels suivants à la méthode verify()
échouent. Une fois la vérification en cours terminée, vous pouvez rappeler la méthode verify()
.
Remarque : étant donné que l’objet XMLSignatureValidator implémente uniquement un sous-ensemble de la recommandation du W3C portant sur la syntaxe et le traitement des signatures XML, toutes les signatures XML valides ne peuvent pas être vérifiées.
Paramètres
signature:XML — Signature XML à vérifier.
|
Evénements
complete: — Distribué lorsque la vérification s’achève avec succès.
| |
error: — Distribué si une erreur se produit lors de la vérification des références.
|
Valeur émise
IllegalOperationError — Si l’appel a lieu lorsqu’une signature est en cours de validation.
| |
Error — En cas d’erreurs, telles qu’une mauvaise constitution des fichiers XML ou la non prise en charge d’éléments dans le fichier de signature.
|
Exemple ( Comment utiliser cet exemple )
verify()
(dans l’exemple suivant, nous supposons que l’implémentation de IURIDereferencer est appropriée pour la signature).
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 | Evénement |
flash.events.Event
propriété Event.type =
flash.events.Event.COMPLETE
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0 |
Distribué une fois la vérification terminée.
Un événement complete
n’indique pas la validité d’une signature. Vérifiez la propriété validityStatus
de l’objet XMLSignatureValidator afin de déterminer les résultats de la vérification de la signature.
Event.COMPLETE
définit la valeur de la propriété type
d’un objet événement complete
.
Les propriétés de cet événement sont les suivantes :
Propriété | Valeur |
---|---|
bubbles | false |
cancelable | false ; il n’existe aucun comportement par défaut à annuler. |
currentTarget | L’objet qui traite activement l’objet Event avec un écouteur d’événements. |
target | Objet réseau dont le chargement est terminé. |
Exemple ( Comment utiliser cet exemple )
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); }
Eléments de l’API associés
error | Evénement |
flash.events.ErrorEvent
propriété ErrorEvent.type =
flash.events.ErrorEvent.ERROR
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0 |
Distribué si la vérification s’avère impossible à cause d’erreurs.
Définit la valeur de la propriététype
d’un objet d’événement error
.
Les propriétés de cet événement sont les suivantes :
Propriété | Valeur |
---|---|
bubbles | false |
cancelable | false ; il n’existe aucun comportement par défaut à annuler. |
currentTarget | L’objet qui traite activement l’objet Event avec un écouteur d’événements. |
target | Objet qui subit l’échec de l’opération réseau. |
text | Texte à afficher en tant que message d’erreur. |
Exemple ( Comment utiliser cet exemple )
private function verificationError(event:ErrorEvent):void{ trace("Verification error: " + event.text); }
SignatureValidatorExample.validateSignature( signatureFile )
et en transmettant le fichier qui référence le document de signature XML à valider.
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, 09:30 AM Z