Guide de référence ActionScript® 3.0 pour la plate-forme Adobe® Flash®
Accueil  |  Masquer la liste des packages et des classes |  Packages  |  Classes  |  Nouveautés  |  Index  |  Annexes  |  Pourquoi existe-t-il du contenu en anglais ?
Filtres : Récupération des données du serveur...
Récupération des données du serveur...
flash.security 

XMLSignatureValidator  - AS3

Packageflash.security
Classepublic class XMLSignatureValidator
HéritageXMLSignatureValidator Inheritance EventDispatcher Inheritance Object

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: AIR 1.0

La classe XMLSignatureValidator vérifie si un fichier de signature XML est correctement constitué, s’il n’est pas modifié et, éventuellement, s’il est signé à l’aide d’une clé associée à un certificat numérique approuvé.

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 :

  1. Créez une occurrence de la classe XMLSignatureValidator.
  2. Définissez la propriété uriDereferencer de l’occurrence sur une occurrence de votre classe d’implémentation IURIDereferencer.
  3. 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().
  4. Appelez la méthode verify de l’objet XMLSignatureValidator, en transmettant la signature à vérifier.
  5. 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 sont valid, invalid ou unknown.
  • identityStatus : validité du certificat de signature. Si le certificat a expiré, a été révoqué ou altéré, l’état est invalid. S’il s’avère impossible de lier le certificat à un certificat racine approuvé, l’état est unknown. 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 sont valid, invalid ou unknown. 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és referencesStatus, digestStatus et identityStatus sont toutes valid.
  • invalid : si l’un des états individuels est invalid.
  • unknown : si referencesStatus, digestStatus ou identityStatus est unknown.

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.

Consulter les exemples

Informations complémentaires

Eléments de l’API associés



Propriétés publiques
 PropriétéDéfini par
 Inheritedconstructor : 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éthodes publiques
 MéthodeDéfini par
  
Crée un objet XMLSignatureValidator.
XMLSignatureValidator
  
    addCertificate(cert:ByteArray, trusted:Boolean):*
Ajoute un certificat x509 pour la création de la chaîne.
XMLSignatureValidator
 Inherited
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
 Inherited
Distribue un événement dans le flux d’événements.
EventDispatcher
 Inherited
Vérifie si des écouteurs sont enregistrés auprès de l’objet EventDispatcher pour un type spécifique d’événement.
EventDispatcher
 Inherited
Indique si la propriété spécifiée d’un objet est définie.
Object
 Inherited
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
 Inherited
Indique si la propriété spécifiée existe et est énumérable.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Supprime un écouteur de l’objet EventDispatcher.
EventDispatcher
 Inherited
Définit la disponibilité d’une propriété dynamique pour les opérations en boucle.
Object
 Inherited
Renvoie la représentation de chaîne de cet objet, formatée selon les paramètres régionaux en vigueur.
Object
 Inherited
Renvoie la représentation sous forme de chaîne de l’objet spécifié.
Object
 Inherited
Renvoie la valeur primitive de l’objet spécifié.
Object
  
    verify(signature:XML):void
Vérifie la signature spécifiée.
XMLSignatureValidator
 Inherited
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énements
 Evénement Synthèse Défini par
 Inherited[Evénement de diffusion] Distribué lorsque l’application Flash Player obtient le focus du système d’exploitation et devient active.EventDispatcher
  
    complete
Distribué une fois la vérification terminée.XMLSignatureValidator
 Inherited[Evénement de diffusion] Distribué lorsque l’application Flash Player ou AIR perd le focus du système d’exploitation et devient inactive.EventDispatcher
  
    error
Distribué si la vérification s’avère impossible à cause d’erreurs.XMLSignatureValidator
Détails de la propriété
    

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éthode verify() 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 statut unknown est également signalé lorsqu’il n’a pas été vérifié, soit parce que la méthode verify() 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 )
L’exemple suivant obtient les résultats de la vérification du certificat de signature (après qu’une signature a été vérifiée) :
 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 sur validIdentity (paramètre par défaut) et l’état identityStatus du certificat de signature est unknown
    • la propriété referencesValidationSetting est définie sur never.

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 )
L’exemple suivant obtient les résultats de la vérification des références dans la signature (après qu’une signature a été vérifiée) :
 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 )
L’exemple suivant définit l’objet XMLSignatureValidator de façon à ce qu’il vérifie les références uniquement si le certificat de signature est lié à une ancre de confiance :
 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 )
L’exemple suivant lit le nom commun du certificat de signature (après qu’une signature a été vérifiée) :
 
 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 )
L’exemple suivant lit le nom unique du certificat de signature (après qu’une signature a été vérifiée) :
 
 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 )
L’exemple suivant lit les identificateurs d’objets de l’utilisation avancée de la clé du certificat de signature (après qu’une signature a été vérifiée) :
 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 )
L’exemple suivant lit les paramètres de confiance du certificat de signature (après qu’une signature a été vérifiée) :
 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 )
L’exemple suivant crée une occurrence de SignedMessageDereferencer, qui implémente l’interface IURIDereferencer, puis la définit comme outil de déférencement à utiliser pour la validation de la signature :
 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 )
L’exemple suivant crée une occurrence de XMLSignatureValidator et la définit de façon à utiliser le référentiel système des certificats approuvés lors de la vérification d’une signature XML :
 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és referencesStatus, digestStatus et identityStatus sont toutes valid.
  • invalid : si l’un des états individuels est invalid.
  • unknown : si l’un des états individuels est unknown.



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 )
L’exemple suivant obtient les résultats de la validation de la signature XML
 import flash.security.XMLSignatureValidator;
 
 var verifier:XMLSignatureValidator = new XMLSignatureValidator();
 //validate the signature...
  
 var validationResult:String = verifier.validityStatus;
Détails du constructeur
    

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 )

L’exemple suivant crée et définit un nouvel objet XMLSignatureValidator :
 
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);
Détails de la méthode

    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 renvoyée
*

Valeur émise
IllegalOperationError — Si l’appel a lieu lorsqu’une signature est en cours de validation.

Exemple  ( Comment utiliser cet exemple )

L’exemple suivant charge un certificat à partir du système de fichiers et l’ajoute en tant qu’ancre de confiance.
 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:Event — Distribué lorsque la vérification s’achève avec succès.
 
error:ErrorEvent — 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 )

L’exemple suivant lit un fichier contenant une signature XML et la vérifie en appelant la méthode 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 );
Détails de l’événement
    

complete

Evénement
Type d’objet d’évé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.

La constante 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
bubblesfalse
cancelablefalse ; il n’existe aucun comportement par défaut à annuler.
currentTargetL’objet qui traite activement l’objet Event avec un écouteur d’événements.
targetObjet réseau dont le chargement est terminé.

Exemple  ( Comment utiliser cet exemple )

L’exemple suivant écoute l’événement complete distribué par un objet XMLSignatureValidator et localise les résultats de la vérification :
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  
Type d’objet d’évé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
bubblesfalse
cancelablefalse ; il n’existe aucun comportement par défaut à annuler.
currentTargetL’objet qui traite activement l’objet Event avec un écouteur d’événements.
targetObjet qui subit l’échec de l’opération réseau.
textTexte à afficher en tant que message d’erreur.

Exemple  ( Comment utiliser cet exemple )

L’exemple suivant écoute l’événement error distribué par un objet XMLSignatureValidator et localise le message d’erreur :
private function verificationError(event:ErrorEvent):void{
    trace("Verification error: " + event.text);                
}
XMLSignatureValidatorExample.as

L’exemple suivant charge et vérifie un fichier contenant une signature XML. Pour utiliser cet exemple, vous devez implémenter une classe IURIDereferencer appropriée afin que les signatures soient validées (en remplaçant la classe SignedMessageDereferencer utilisée dans l’exemple). Exécutez l’exemple en appelant 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 );
    }
}




[ X ]Pourquoi existe-t-il du contenu en anglais ?
Certaines parties du Guide de référence ActionScript 3.0 sont en anglais

Tout le contenu du Guide de référence ActionScript 3.0 n’a pas été traduit dans toutes les langues. Si un élément de langage n’est pas traduit, il s’affiche en anglais. Par exemple, la classe ga.controls.HelpBox n’est traduite dans aucune langue. Ainsi, dans la version française du guide de référence, la classe ga.controls.HelpBox apparaît en anglais.