Pacote | flash.security |
Classe | public class XMLSignatureValidator |
Herança | XMLSignatureValidator EventDispatcher Object |
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0 |
Suporte para perfil AIR: este recurso conta com o suporte de dispositivos AIR for TV e de todos os sistemas operacionais para desktop, mas não é compatível com dispositivos móveis. Você pode testar o suporte que em tempo de execução utilizando a propriedadeXMLSignatureValidator.isSupported
. Consulte Suporte a perfil do AIR para obter mais informações sobre o suporte de API através de múltiplos perfis.
O XMLSignatureValidator implementa um subconjunto da Recomendação W3C para Sintaxe e Processamento de Assinatura XML e não deve ser considerada uma implementação de conformação. O subconjunto suportado da recomendação inclui:
- Toda a sintaxe da assinatura principal, exceto o elemento KeyInfo.
- O elemento KeyInfo suporta somente o elemento X509Data.
- O elemento X509Data suporta somente o elemento X509Certificate.
- O algoritmo do método de compilação SHA256.
- O algoritmo de assinatura PKCS1.
- O algoritmo do Método e transformação de canonicalização "XML canônico sem comentários".
- O elemento Manifest em sintaxe adicional de assinatura.
Você deve fornecer uma implementação IURIDereferencer para verificar uma assinatura XML. Esta classe de implementação é responsável por resolver os URLs especificados nos elementos SignedInfo do arquivo de assinatura e retornar os dados de referência em um objeto, como ByteArray, que implementa a interface IDataInput.
Para verificar se o certificado de autenticação está vinculado a um certificado confiável, a assinatura XML deve conter os certificados necessários para construir o conjunto de chaves nos elementos X509Certificate, ou você deve fornecer os certificados necessários para construir o conjunto usando o método addCertificate()
.
Para verificar uma XMLSignature:
- Cria uma ocorrência da classe XMLSignatureValidator.
- Define a propriedade
uriDereferencer
da instância para uma instância da classe de implementação IURIDereferencer. - Forneça certificados codificados-DER para construir o conjunto de certificados confiáveis, se desejar, usando o método
addCertificate
. - Chame o método XMLSignatureValidator
verify
, enviando a assinatura para verificação. - Verifique a propriedade
validityStatus
depois que o objeto XMLSignatureValidator despachar um evento complete.
Sobre o status de assinatura:
A validade de uma assinatura XML pode ser válida, inválida ou desconhecida. O status geral depende do status de verificação dos componentes individuais do arquivo de assinatura:
-
digestStatus
— A validade da criptografia da assinatura computada sobre o elemento SignedInfo. Pode serválido
,inválido
oudesconhecido
. -
identityStatus
— A validade do certificado de autenticação. Se o certificado venceu ou foi revogado, o status éinválido
. Se o certificado não pode ser vinculado a um certificado raiz confiável, o status édesconhecido
. O certificado não é verificado caso a compilação seja inválida. Se não for verificado, o status será informado comounknown
. -
referencesStatus
— A validade dos dados relacionados às referências no elemento SignedInfo do arquivo de assinatura. Pode serválido
,inválido
oudesconhecido
. As referências não são verificadas caso a compilação ou o certificado seja inválido. A verificação de referência também pode ser ignorada com base na configuração da propriedadereferencesValidationSetting
. Se não for verificado, o status será informado comounknown
.
A validade da assinatura reportada pela propriedade validityStatus
pode ser:
-
válido
— SereferencesStatus
,digestStatus
eidentityStatus
forem todosválidos
. -
inválido
— Se qualquer status individual forinválido
. -
desconhecido
— SereferencesStatus
,digestStatus
ouidentityStatus
fordesconhecido
.
Limitações da canonicalização:
O mecanismo XML no AIR nem sempre produz a string XML esperada ao canonicalizar um documento XML. Por esse motivo, recomenda-se que você evite colocar espaços em branco de elemento inter em documentos de assinatura envelopada ou desanexada e não redefina namespaces dentro de um documento de assinatura. Nos dois casos, o AIR não poderá recriar o documento com a mesma string do original e, portanto, haverá falha na validação.
Saiba mais
Elementos da API relacionados
Propriedade | Definido por | ||
---|---|---|---|
constructor : Object
Uma referência ao objeto de classe ou à função de construtor de uma determinada ocorrência de objeto. | Object | ||
digestStatus : String [somente leitura]
O status de validade da assinatura criptográfica computado no elemento SignedInfo da assinatura. | XMLSignatureValidator | ||
identityStatus : String [somente leitura]
A validade do status do certificado de assinatura. | XMLSignatureValidator | ||
isSupported : Boolean [estático] [somente leitura]
A propriedade isSupported será definida como true se a classe XMLSignatureValidator for suportada na plataforma atual; de outra maneira, ela será definida como false. | XMLSignatureValidator | ||
referencesStatus : String [somente leitura]
O status de validade dos dados nas referências no elemento SignedInfo da assinatura. | XMLSignatureValidator | ||
referencesValidationSetting : String
Especifica as condições em que as referências são verificadas. | XMLSignatureValidator | ||
revocationCheckSetting : String
Especifica como a revogação de um certificado é verificada. | XMLSignatureValidator | ||
signerCN : String [somente leitura]
O campo Nome comum do certificado de assinatura. | XMLSignatureValidator | ||
signerDN : String [somente leitura]
O campo Nome distinto do certificado de assinatura. | XMLSignatureValidator | ||
signerExtendedKeyUsages : Array [somente leitura]
Uma matriz contendo as OIDs de Uso de Chave Estendida listadas no certificado de assinatura. | XMLSignatureValidator | ||
signerTrustSettings : Array [somente leitura]
Uma matriz contendo as configurações confiáveis do certificado de assinatura. | XMLSignatureValidator | ||
uriDereferencer : IURIDereferencer
A implementação IURIDereferencer. | XMLSignatureValidator | ||
useSystemTrustStore : Boolean
Especifica que os certificados na armazenagem confiável do sistema são usados na criação do conjunto. | XMLSignatureValidator | ||
validityStatus : String [somente leitura]
A validade do status de uma assinatura XML verificada. | XMLSignatureValidator |
Método | Definido por | ||
---|---|---|---|
Cria um objeto XMLSignatureValidator. | XMLSignatureValidator | ||
Adiciona um certificado x509 pela criação do conjunto de chaves. | XMLSignatureValidator | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registra um objeto de ouvinte de evento em um objeto EventDispatcher, de forma que o ouvinte receba a notificação de um evento. | EventDispatcher | ||
Envia um evento para o fluxo de eventos. | EventDispatcher | ||
Verifica se o objeto EventDispatcher tem ouvintes registrados para um tipo específico de evento. | EventDispatcher | ||
Indica se um objeto tem uma propriedade especificada definida. | Object | ||
Indica se uma ocorrência da classe Object está na cadeia de protótipos do objeto especificado como o parâmetro. | Object | ||
Indica se a propriedade especificada existe e é enumerável. | Object | ||
Remove um ouvinte do objeto EventDispatcher. | EventDispatcher | ||
Define a disponibilidade de uma propriedade dinâmica para operações de repetição. | Object | ||
Retorna a representação da string deste objeto, formatado segundo as convenções específicas para a localidade. | Object | ||
Retorna a representação de string do objeto especificado. | Object | ||
Retorna o valor primitivo do objeto especificado. | Object | ||
Verifique a assinatura especificada. | XMLSignatureValidator | ||
Verifica se um ouvinte de evento está registrado nesse objeto EventDispatcher ou em qualquer um de seus ancestrais para o tipo de evento especificado. | EventDispatcher |
Evento | Resumo | Definido por | ||
---|---|---|---|---|
[transmissão de evento] Despachado quando o Flash Player ou o aplicativo do AIR ganha o foco do sistema operacional e está se tornando inativo. | EventDispatcher | |||
Despachado quando a verificação for concluída. | XMLSignatureValidator | |||
[transmissão de evento] Despachado quando o Flash Player ou o aplicativo do AIR perde o foco do sistema operacional e está se tornando inativo. | EventDispatcher | |||
Despachado se a verificação não puder ser concluída por causa de erros. | XMLSignatureValidator |
digestStatus | propriedade |
digestStatus:String
[somente leitura] Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0 |
O status de validade da assinatura criptográfica computado no elemento SignedInfo da assinatura.
O status é:
válido
— Se a assinatura tiver criptografia válida.inválida
— Se a compilação tiver sido alterada após a assinatura.desconhecido
— Se o métodoverify()
não tiver sido chamado.
Observação: Se digestStatus
for inválido, identityStatus
e referencesStatus
não são verificados e informados como unknown
.
Implementação
public function get digestStatus():String
Lança
IllegalOperationError — Se for acessado enquanto uma assinatura estiver sendo validada.
|
identityStatus | propriedade |
identityStatus:String
[somente leitura] Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0 |
A validade do status do certificado de assinatura.
O status pode ser:
válido
— O certificado não venceu, não falhou na verificação de revogação e está vinculado a um certificado raiz confiável.desconhecido
— O certificado não venceu e a verificação de revogação não falhou, mas não está vinculado a um certificado raiz confiável. Um statusdesconhecido
também será reportado quando o status não tiver sido verificado, seja porque o métodoverify()
não foi chamado ou porque a assinatura criptográfica do elemento SignedInfo (digestStatus
) é inválida.inválido
— O certificado expirou ou a verificação de revogação falhou.
Os certificados adicionados usando o método addCertificate()
e as definições das propriedades revocationCheckSetting
e useSystemTrustStore
podem ser alteradas se um certificado for considerado válido.
Observação: Se identityStatus
for inválido, referencesStatus
não será verificado e será informado como unknown
. Além disso, as referências não são verificadas quando identityStatus
é desconhecido, a menos que referencesValidationSetting
seja validOrUnknownIdentity
Implementação
public function get identityStatus():String
Lança
IllegalOperationError — Se for acessado enquanto uma assinatura estiver sendo validada.
|
Elementos da API relacionados
Exemplo ( Como usar este exemplo )
import flash.security.XMLSignatureValidator; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var identityResult:String = verifier.identityStatus;
isSupported | propriedade |
isSupported:Boolean
[somente leitura] Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 2 |
A propriedade isSupported
será definida como true
se a classe XMLSignatureValidator for suportada na plataforma atual; de outra maneira, ela será definida como false
.
Implementação
public static function get isSupported():Boolean
referencesStatus | propriedade |
referencesStatus:String
[somente leitura] Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0 |
O status de validade dos dados nas referências no elemento SignedInfo da assinatura.
O status pode ser:
válido
— Se todas as referências forem válidas.inválido
— Se qualquer referência for inválida.desconhecido
— Se não houver verificação. As referências podem permanecer sem verificação nas seguintes circunstâncias:- o método
verify()
não foi chamado - a assinatura criptográfica do elemento SignedInfo (
digestStatus
) é inválida. - o certificado de assinatura (
identityStatus
) é inválido referencesValidationSetting
évalidIdentity
(a configuração padrão) eidentityStatus
do certificado de assinatura é desconhecido.referencesValidationSetting
énever
.
- o método
Importante: Os recursos externos não são validados a menos que sejam referenciados diretamente em um elemento SignedInfo dentro do documento de assinatura. Os recursos externos referenciados por uma referência secundária não são validados. Por exemplo, caso uma assinatura XML assine um elemento manifest, apenas a integridade do elemento manifest é verificada. Os arquivos listados no manifest não são verificados.
Implementação
public function get referencesStatus():String
Lança
IllegalOperationError — Se for acessado enquanto uma assinatura estiver sendo validada.
|
Elementos da API relacionados
Exemplo ( Como usar este exemplo )
import flash.security.XMLSignatureValidator; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var dataResult:String = verifier.referencesStatus;
referencesValidationSetting | propriedade |
referencesValidationSetting:String
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.5 |
Especifica as condições em que as referências são verificadas.
Use as constantes definidas na classe ReferencesValidationSetting para definir esta propriedade. As configurações incluem:
ReferencesValidationSetting.VALID_IDENTITY
— Só verifique referências caso o certificado de assinatura seja válido e esteja encadeado na raiz confiável. Esta é a configuração padrão.ReferencesValidationSetting.VALID_OR_UNKNOWN_IDENTITY
— Verifique referências caso o certificado de assinatura seja válido, mesmo que ele não esteja encadeado na raiz confiável.ReferencesValidationSetting.NEVER
— Jamais verifique referências.
Use o padrão, validIdentity
, a configuração com assinaturas assinada com um certificado comercial ou quando você fornece um certificado próprio como ancoragem confiável com o método addCertificate()
. Essa configuração evita a sobrecarga de verificar a validade de referência quando o documento assinado será rejeitado.
Use a configuração validOrUnknownIdentity
com assinaturas assinadas com certificados assinados automaticamente. Essa configuração permite validar que os dados assinados não foram alterados, mas não fornece nenhuma garantia sobre a identidade do signatário.
Use a configuração never
para evitar a sobrecarga de validação das referências quando essa validação não é importante no contexto do aplicativo.
Implementação
public function get referencesValidationSetting():String
public function set referencesValidationSetting(value:String):void
Lança
IllegalOperationError — Se for definido enquanto uma assinatura estiver sendo validada.
| |
ArgumentError — se o parâmtro setting contiver um valor não definido na classe ReferencesValidationSetting.
|
Elementos da API relacionados
Exemplo ( Como usar este exemplo )
import flash.security.ReferencesValidationSetting; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); verifier.referencesValidationSetting = ReferencesValidationSetting.VALID_OR_UNKNOWN_IDENTITY;
revocationCheckSetting | propriedade |
revocationCheckSetting:String
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0 |
Especifica como a revogação de um certificado é verificada.
Use as constantes definidas na classe RevocationSettings para definir esta propriedade. As configurações incluem:
RevocationCheckSettings.NEVER
— Não verificar a revogação do certificado.RevocationCheckSettings.BEST_EFFORT
— Verificar a revogação do certificado, se as informações de revogação estiverem disponíveis e o status de revogação puder ser obtido. Se o status de revogação não puder ser determinado positivamente, o certificado não será rejeitado.RevocationCheckSettings.REQUIRED_IF_AVAILABLE
— Se o certificado incluir informações de revogação, o status de revogação deve ser positivamente determinado para validar o certificado.RevocationCheckSettings.ALWAYS_REQUIRED
— Sempre verificar a revogação do certificado. Certificados sem informações de revogação são rejeitados.
Implementação
public function get revocationCheckSetting():String
public function set revocationCheckSetting(value:String):void
Lança
IllegalOperationError — Se for definido enquanto uma assinatura estiver sendo validada.
|
Elementos da API relacionados
signerCN | propriedade |
signerCN:String
[somente leitura] Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0 |
O campo Nome comum do certificado de assinatura.
Implementação
public function get signerCN():String
Exemplo ( Como usar este exemplo )
var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var commonName:String = verifier.signerCN;
signerDN | propriedade |
signerDN:String
[somente leitura] Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0 |
O campo Nome distinto do certificado de assinatura.
Implementação
public function get signerDN():String
Exemplo ( Como usar este exemplo )
var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var distinguishedName:String = verifier.signerDN;
signerExtendedKeyUsages | propriedade |
signerExtendedKeyUsages:Array
[somente leitura] Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0 |
Uma matriz contendo as OIDs de Uso de Chave Estendida listadas no certificado de assinatura.
Cada uso de chave estendida é reportada num formulário OID numérico.
Implementação
public function get signerExtendedKeyUsages():Array
Lança
IllegalOperationError — Se for acessado enquanto uma assinatura estiver sendo validada.
|
Exemplo ( Como usar este exemplo )
import flash.security.XMLSignatureValidator; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var extendedKeyOIDs:Array = verifier.signerExtendedKeyUsages;
signerTrustSettings | propriedade |
signerTrustSettings:Array
[somente leitura] Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0 |
Uma matriz contendo as configurações confiáveis do certificado de assinatura.
As configurações confiáveis são derivadas do sistema e o uso da chave OIDs está incorporado no certificado. As constantes para as strings representam as configurações confiáveis reconhecidas definidas na classe SignerTrustSettings.
A matriz signerTrustSettings
de um certificado desconhecido
ou inválido
está vazia.
A modificação da matriz não altera as configurações confiáveis do certificado.
Implementação
public function get signerTrustSettings():Array
Lança
IllegalOperationError — Se for acessado enquanto uma assinatura estiver sendo validada.
|
Elementos da API relacionados
Exemplo ( Como usar este exemplo )
import flash.security.XMLSignatureValidator; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var certificateTrustedFor:Array = verifier.signerTrustSettings;
uriDereferencer | propriedade |
uriDereferencer:IURIDereferencer
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0 |
A implementação IURIDereferencer.
Uma implementação de IURIDereferencer deve ser fornecida antes de tentar verificar a assinatura.
Implementação
public function get uriDereferencer():IURIDereferencer
public function set uriDereferencer(value:IURIDereferencer):void
Lança
IllegalOperationError — Se for definido enquanto uma assinatura estiver sendo validada.
|
Elementos da API relacionados
Exemplo ( Como usar este exemplo )
import com.example.SignedMessageDereferencer; //A custom class implementing IURIDereferencer var verifier:XMLSignatureValidator = new XMLSignatureValidator(); verifier.uriDereferencer = new SignedMessageDereferencer();
useSystemTrustStore | propriedade |
useSystemTrustStore:Boolean
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0 |
Especifica que os certificados na armazenagem confiável do sistema são usados na criação do conjunto.
Se for true
, as âncoras confiáveis na armazenagem confiável do sistema serão usadas como raízes confiáveis. A armazenagem confiável do sistema não é usada por padrão.
Implementação
public function get useSystemTrustStore():Boolean
public function set useSystemTrustStore(value:Boolean):void
Lança
IllegalOperationError — Se for definido enquanto uma assinatura estiver sendo validada.
|
Exemplo ( Como usar este exemplo )
var verifier:XMLSignatureValidator = new XMLSignatureValidator(); verifier.useSystemTrustStore = true;
validityStatus | propriedade |
validityStatus:String
[somente leitura] Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0 |
A validade do status de uma assinatura XML verificada.
A assinatura XML é verificada por meio da validação da assinatura criptográfica do elemento SignedInfo, do certificado de assinatura e dos dados relacionados às referências no elemento SignedInfo. A validade de cada um desses elementos é reportada individualmente pelas propriedades digestStatus
, identityStatus()
e referencesStatus
, respectivamente.
A validade de uma assinatura XML pode ser válida, inválida ou desconhecida. O status geral depende do status de verificação dos componentes individuais do arquivo de assinatura:
digestStatus
— A validade da assinatura criptográfica computada sobre o elemento SignedInfo.identityStatus
— A validade do certificado de autenticação.referencesStatus
— A validade da compilação das referências no elemento SignedInfo da assinatura.
A validade da assinatura reportada pela propriedade validityStatus
pode ser:
válido
— SereferencesStatus
,digestStatus
eidentityStatus
forem todosválidos
.inválido
— Se qualquer status individual forinválido
.desconhecido
— Se qualquer status individual fordesconhecido
.
Implementação
public function get validityStatus():String
Lança
IllegalOperationError — Se for acessado enquanto uma assinatura estiver sendo validada.
|
Elementos da API relacionados
Exemplo ( Como usar este exemplo )
import flash.security.XMLSignatureValidator; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate the signature... var validationResult:String = verifier.validityStatus;
XMLSignatureValidator | () | Construtor |
public function XMLSignatureValidator()
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0 |
Cria um objeto XMLSignatureValidator.
Você deve definir a propriedade uriDereferencer
antes de chamar o método verify()
do novo objeto.
Elementos da API relacionados
Exemplo ( Como usar este exemplo )
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étodo |
public function addCertificate(cert:ByteArray, trusted:Boolean):*
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0 |
Adiciona um certificado x509 pela criação do conjunto de chaves.
O certificado adicionado deve ser um certificado x509 DER-codificado.
Se o parâmetro trusted
for true
, o certificado será considerado uma âncora confiável.
Observação: Uma assinatura XML pode incluir certificados para a elaboração de um conjunto de assinaturas de certificados. A classe XMLSignatureValidator usa esses certificados para criação de conjuntos, mas não como raízes confiáveis (por padrão).
Parâmetros
cert:ByteArray — Um objeto ByteArray que contém um certificado digital x509 codificado-DER.
| |
trusted:Boolean — Defina como true para designar este certificado como âncora confiável.
|
* |
Lança
IllegalOperationError — Se for chamado enquanto uma assinatura estiver sendo validada.
|
Exemplo ( Como usar este exemplo )
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étodo |
public function verify(signature:XML):void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0 |
Verifique a assinatura especificada.
A verificação é assíncrona. O objeto XMLSignatureValidator despacha um evento completo
quando a verificação é concluída com êxito ou error
ainda que a verificação não pôde ser concluída por causa dos erros.
O processo de verificação não pode ser cancelado. Enquanto um processo de verificação estiver em andamento, as chamadas subsequentes para o método verify()
falham. Depois que a verificação atual estiver completa, será possível chamar novamente o método verify()
.
Observação: Como XMLSignatureValidator implementa somente um subconjunto de recomendações W3C para a sintaxe da assinatura XML e o processamento, nem todas as assinaturas XML válidas podem ser verificadas.
Parâmetros
signature:XML — A assinatura XML a ser verificada.
|
Eventos
complete: — Despachado quando a verificação for concluída com êxito.
| |
error: — Despachado se a verificação das referências encontra um erro.
|
Lança
IllegalOperationError — Se for chamado enquanto uma assinatura estiver sendo validada.
| |
Error — Se outros erros forem encontrados, como XML mal-formado ou elementos não suportados no arquivo de assinatura.
|
Exemplo ( Como usar este exemplo )
verify()
. (O exemplo pressupõe que a implementação de IURIDereferencer é apropriada à assinatura.)
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
propriedade Event.type =
flash.events.Event.COMPLETE
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0 |
Despachado quando a verificação for concluída.
Um evento complete
não implica numa assinatura válida. Verifique a propriedade validityStatus
do objeto XMLSignatureValidator para determinar o resultado da verificação de assinatura.
Event.COMPLETE
define o valor da propriedade type
de um objeto de evento complete
.
Esse evento tem as seguintes propriedades:
Propriedade | Valor |
---|---|
bubbles | false |
cancelable | false ; não há comportamento padrão a ser cancelado. |
currentTarget | O objeto que está processando ativamente o objeto Event com um ouvinte de evento. |
target | O objeto de rede que concluiu o carregamento. |
Exemplo ( Como usar este exemplo )
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); }
Elementos da API relacionados
error | Evento |
flash.events.ErrorEvent
propriedade ErrorEvent.type =
flash.events.ErrorEvent.ERROR
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0 |
Despachado se a verificação não puder ser concluída por causa de erros.
Define o valor da propriedadetype
de um objeto de evento error
.
Esse evento tem as seguintes propriedades:
Propriedade | Valor |
---|---|
bubbles | false |
cancelable | false ; não há comportamento padrão a ser cancelado. |
currentTarget | O objeto que está processando ativamente o objeto Event com um ouvinte de evento. |
target | O objeto que está passando por uma falha de operação na rede. |
text | Texto a ser exibido como uma mensagem de erro. |
Exemplo ( Como usar este exemplo )
private function verificationError(event:ErrorEvent):void{ trace("Verification error: " + event.text); }
SignatureValidatorExample.validateSignature(signatureFile)
, passando o arquivo que referencia o documento de assinatura XML a ser validado.
import flash.events.Event; import flash.filesystem.File; import flash.filesystem.FileStream; import flash.security.ReferencesValidationSetting; import flash.security.XMLSignatureValidator; import com.example.SignedMessageDereferencer; //A custom class implementing IURIDereferencer public class SignatureValidatorExample{ private var xmlSig:XML; private const signatureNS:Namespace = new Namespace( "http://www.w3.org/2000/09/xmldsig#" ); public static function validateSignature( signatureFile:File ):void{ try{ //Set up the XMLSignatureValidator var verifier:XMLSignatureValidator = new XMLSignatureValidator(); verifier.addEventListener( Event.COMPLETE, verificationComplete ); verifier.uriDereferencer = new SignedMessageDereferencer(); verifier.referencesValidationSetting = ReferencesValidationSetting.VALID_OR_UNKNOWN_IDENTITY; //Load the signed document var sigFileStream:FileStream = new FileStream(); sigFileStream.open( signatureFile, FileMode.READ ); var xmlDoc:XML = XML( sigFileStream.readUTFBytes(sigFileStream.bytesAvailable) ); //Get the last Signature element in the document if( xmlDoc.name().localName != "Signature" ){ var signatureList:XMLList = xmlDoc..signatureNS::Signature; xmlSig = XML( signatureList[ signatureList.length()-1 ] ); } else{ xmlSig = xmlDoc; } //Validate the signature verifier.verify( xmlSig ); }catch (e:Error){ statusDisplay.text = "Verification error.\n" + e; } } private static function verificationComplete(event:Event):void{ trace( "Signature Validity: " + verifier.validityStatus ); trace( "Digest validity: " + verifier.digestStatus ); trace( "Certificate validity: " + verifier.identityStatus ); trace( "Data validity: " + verifier.referencesStatus ); } }
Wed Jun 13 2018, 11:10 AM Z