Paket | flash.security |
Sınıf | public class XMLSignatureValidator |
Miras Alma | XMLSignatureValidator EventDispatcher Object |
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0 |
AIR profil desteği: Bu özellik tüm masaüstü işletim sistemlerinde ve AIR for TV aygıtlarında desteklenir ancak mobil aygıtlarda desteklenmez. Desteği çalışma zamanında XMLSignatureValidator.isSupported
özelliğini kullanarak test edebilirsiniz. Birden fazla profilde API desteği ile ilgili daha fazla bilgi için bkz. AIR Profil Desteği.
XMLSignatureValidator, W3C Recommendation for XML-Signature Syntax and Processing (XML İmzası Sözdizimi ve İşlemesi için W3C Önerileri) alt kümesini uygular ve uygun uygulama olarak değerlendirilmemelidir. Önerinin desteklenen alt kümesi şunları içerir:
- KeyInfo öğesi dışındaki temel imza sözdiziminin tamamı.
- KeyInfo öğesi yalnızca X509Data öğesini destekler.
- X509Data öğesi yalnızca X509Certificate öğesini destekler.
- SHA256 özet yöntemi algoritması.
- PKCS1 imzalama algoritması.
- “Yorum içermeyen kanonik XML“ Kanonikleştirme Yöntemi ve Dönüştürme algoritması.
- Ek imza sözdizimindeki Manifest öğesi.
Bir XML imzasını doğrulamak için IURIDereferencer uygulaması sağlamanız gerekir. Bu uygulama sınıfı, imza dosyasının SignedInfo öğelerinde belirtilen URI'leri çözmekten ve nesnedeki, ByteArray gibi, IDataInput arabirimi uygulayan başvurulmuş verileri döndürmekten sorumludur.
İmzalama sertifikasının güvenilen bir sertifikaya zincirli olduğunu doğrulamak için XML imzasının, X509Certificate öğelerinde zinciri oluşturmak için gerekli olan sertifikaları içermesi gerekir veya addCertificate()
yöntemini kullanarak zinciri oluşturmak için gerekli olan sertifikaları sizin sağlamanız gerekir.
XMLSignature öğesini doğrulamak için:
- XMLSignatureValidator sınıfı örneği oluşturun.
- Örneğin
uriDereferencer
özelliğini IURIDereferencer uygulama sınıfınızın bir örneğine ayarlayın. - İstenirse,
addCertificate()
yöntemini kullanarak sertifika güven zinciri oluşturmak için DER ile kodlanmış sertifikalar sağlayın. - Doğrulanacak imzayı ileterek XMLSignatureValidator
verify
yöntemini çağırın. - XMLSignatureValidator nesnesi complete olayı gönderdikten sonra
validityStatus
özelliğini kontrol edin.
İşaret durumu hakkında:
XML imzasının geçerliliği valid, invalid veya unknown olabilir. Genel durum, imza dosyasının bağımsız bileşenlerinin doğrulama durumuna bağlıdır.
-
digestStatus
— SignedInfo öğesi üzerinde hesaplanan imza kriptografik değerinin geçerliliğivalid
,invalid
veyaunknown
olabilir. -
identityStatus
— İmzalama sertifikasının geçerliliği. Sertifikanın süresi dolduysa, iptal edildi veya değiştirildiyse,invalid
durumundadır. Sertifika güvenilen bir kök sertifikasına zincirlenemezse durumunknown
olur. Özet geçersizse, sertifika kontrol edilmez. Kontrol edilmediyse, durumuunknown
olarak bildirilir. -
referencesStatus
-- İmza dosyasının SignedInfo öğesindeki başvurunun hedef aldığı verilerin geçerliliği.valid
,invalid
veyaunknown
olabilir. Özet veya sertifika geçersizse, başvurular kontrol edilmez. Başvuru kontrolü,referencesValidationSetting
özelliğinin ayarları temelinde de atlanabilir. Kontrol edilmediyse, durumuunknown
olarak bildirilir.
validityStatus
özelliği tarafından bildirilen imza geçerliliği aşağıdaki durumlara sahip olabilir:
-
valid
—referencesStatus
,digestStatus
veidentityStatus
öğelerinin tümüvalid
olur. -
invalid
— Herhangi bir bağımsız duruminvalid
ise. -
unknown
—referencesStatus
,digestStatus
veyaidentityStatus
unknown
olursa.
Kanonikleştirme sınırlamaları:
AIR'da yer alan XML motoru, XML belgesinin kanonikleştirilmesi sırasında her zaman beklenen XML dizesini üretmez. Bu nedenle, zarflanan veya ayrılan imza belgelerine öğeler arası beyaz alan koymaktan kaçınmanız ve bir imza belgesi içindeki ad alanlarını yeniden tanımlamamanız önerilir. Her iki durumda da, AIR belgeyi orijinalindeki karakter sırasının aynısıyla yeniden oluşturamayabilir ve bu nedenle doğrulama başarısız olabilir.
Daha fazla bilgi
İlgili API Öğeleri
Özellik | Tanımlayan: | ||
---|---|---|---|
constructor : Object
Belirli bir nesne örneği için sınıf nesnesine veya yapıcı işlevine bir başvuru. | Object | ||
digestStatus : String [salt okunur]
İmza SignedInfo öğesi üzerinde hesaplanan kriptografik imzanın geçerlilik durumu. | XMLSignatureValidator | ||
identityStatus : String [salt okunur]
İmzalama sertifikasının geçerlilik durumu. | XMLSignatureValidator | ||
isSupported : Boolean [statik] [salt okunur]
XMLSignatureValidator sınıfı geçerli platformda destekleniyorsa, isSupported özelliği true olarak, aksi halde false olarak ayarlanır. | XMLSignatureValidator | ||
referencesStatus : String [salt okunur]
İmza SignedInfo öğesindeki başvurularda bulunan verilerin geçerlilik durumu. | XMLSignatureValidator | ||
referencesValidationSetting : String
Başvuruların kontrol edileceği koşulları belirler. | XMLSignatureValidator | ||
revocationCheckSetting : String
Sertifika iptalinin nasıl kontrol edildiğini belirtir. | XMLSignatureValidator | ||
signerCN : String [salt okunur]
İmzalama sertifikasının Ortak Ad alanı. | XMLSignatureValidator | ||
signerDN : String [salt okunur]
İmzalama sertifikasının Ayırt Edilen Ad alanı. | XMLSignatureValidator | ||
signerExtendedKeyUsages : Array [salt okunur]
İmzalama sertifikasında listelenen Genişletilmiş Anahtar Kullanımı OID'lerini içeren bir dizi. | XMLSignatureValidator | ||
signerTrustSettings : Array [salt okunur]
İmzalama sertifikasının güven ayarlarını içeren dizi. | XMLSignatureValidator | ||
uriDereferencer : IURIDereferencer
IURIDereferencer uygulaması. | XMLSignatureValidator | ||
useSystemTrustStore : Boolean
Sistemin güven deposundaki sertifikaların zincir oluşturma için kullanıldığını belirtir. | XMLSignatureValidator | ||
validityStatus : String [salt okunur]
Doğrulanmış XML imzasının geçerlilik durumu. | XMLSignatureValidator |
Yöntem | Tanımlayan: | ||
---|---|---|---|
XMLSignatureValidator nesnesi oluşturur. | XMLSignatureValidator | ||
Zincir oluşturma için x509 sertifikası ekler. | XMLSignatureValidator | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
EventDispatcher nesnesi olan bir olay dinleyici nesnesini, dinleyicinin bir olayın bildirimini alması için kaydeder. | EventDispatcher | ||
Olay akışına bir olay gönderir. | EventDispatcher | ||
EventDispatcher nesnesinin belirli bir olay türü için kayıtlı dinleyicisi olup olmadığını kontrol eder. | EventDispatcher | ||
Bir nesnenin belirli bir özelliğinin tanımlı olup olmadığını gösterir. | Object | ||
Object sınıfının bir örneğinin parametre olarak belirtilen nesnenin prototip zincirinde olup olmadığını gösterir. | Object | ||
Belirtilen özelliğin bulunup bulunmadığını ve numaralandırılabilir olup olmadığını gösterir. | Object | ||
EventDispatcher nesnesinden bir dinleyiciyi kaldırır. | EventDispatcher | ||
Dinamik bir özelliğin döngü işlemlerinde kullanılabilirliğini ayarlar. | Object | ||
Bu nesnenin, yerel ayara özel kurallara göre biçimlendirilmiş dize temsilini döndürür. | Object | ||
Belirtilen nesnenin dize olarak temsil edilen halini döndürür. | Object | ||
Belirtilen nesnenin temel değerini döndürür. | Object | ||
Belirtilen imzayı doğrular. | XMLSignatureValidator | ||
Bir olay dinleyicisinin bu EventDispatcher nesnesiyle mi, yoksa onun belirtilen olay türüne yönelik üst öğelerinden biriyle mi kayıtlı olduğunu kontrol eder. | EventDispatcher |
Olay | Özet | Tanımlayan: | ||
---|---|---|---|---|
[broadcast olayı] Flash Player veya AIR uygulaması işletim sistemi odağına gelip etkin olduğunda gönderilir. | EventDispatcher | |||
Doğrulama işlemi tamamlandığında gönderilir. | XMLSignatureValidator | |||
[broadcast olayı] Çalışan Flash Player veya AIR uygulaması sistem odağını kaybettiğinde ve etkin olmayan duruma geldiğinde gönderilir. | EventDispatcher | |||
Doğrulama işlemi hatalar nedeniyle tamamlanamıyorsa gönderilir. | XMLSignatureValidator |
digestStatus | özellik |
digestStatus:String
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0 |
İmza SignedInfo öğesi üzerinde hesaplanan kriptografik imzanın geçerlilik durumu.
Durum:
valid
— İmza kriptografik olarak geçerli olursa.invalid
— İmzalama işleminden sonra özet değiştirilmişse.unknown
—verify()
yöntemi çağrılmamışsa.
Not: digestStatus
geçersizse, identityStatus
ve referencesStatus
kontrol edilmez ve unknown
olarak bildirilir.
Uygulama
public function get digestStatus():String
Atar
IllegalOperationError — İmza doğrulanıyorken erişilirse.
|
identityStatus | özellik |
identityStatus:String
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0 |
İmzalama sertifikasının geçerlilik durumu.
Durum şunlardan biri olabilir:
valid
— Sertifikanın süresi dolmamıştır, iptal kontrolünden başarıyla geçmiştir ve güvenilen bir kök sertifikasına zincirlidir.unknown
— Sertifikanın süresi dolmamıştır, iptal kontrolünden başarıyla geçmiştir ve güvenilen bir kök sertifikasına zincirli değildir.verify()
yöntemi çağrılmadığı için veya SignedInfo öğesinin kriptografik imzası (digestStatus
) geçersiz olduğu için durum doğrulanmadığındaunknown
durumu da bildirilir.invalid
— Sertifikanın süresi dolmuştur veya iptal kontrolünden geçememiştir.
addCertificate()
yöntemi kullanılarak eklenen sertifikalar, revocationCheckSetting
ayarları ve useSystemTrustStore
özellikleri, bir sertifikanın geçerli olarak değerlendirilip değerlendirilmeme durumunu değiştirebilir.
Not: identityStatus
geçersizse, referencesStatus
kontrol edilmez ve unknown
olarak bildirilir. Ayrıca, identityStatus
bilinmiyorsa, referencesValidationSetting
öğesi validOrUnknownIdentity
olmadığı sürece başvurular kontrol edilmez
Uygulama
public function get identityStatus():String
Atar
IllegalOperationError — İmza doğrulanıyorken erişilirse.
|
İlgili API Öğeleri
Örnek ( Bu örnek nasıl kullanılır? )
import flash.security.XMLSignatureValidator; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var identityResult:String = verifier.identityStatus;
isSupported | özellik |
referencesStatus | özellik |
referencesStatus:String
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0 |
İmza SignedInfo öğesindeki başvurularda bulunan verilerin geçerlilik durumu.
Durum şunlardan biri olabilir:
valid
— Tüm başvurular geçerliyse.invalid
— Herhangi bir başvuru geçersizse.unknown
— Doğrulanmadıysa. Başvurular, aşağıdaki koşullarda doğrulanmamış olarak kalabilir:verify()
yöntemi çağrılmamışsa- SignedInfo öğesinin kriptografik imzası (
digestStatus
) geçersizse. - imzalama sertifikası (
identityStatus
) geçersizse referencesValidationSetting
öğesivalidIdentity
(varsayılan ayar) ise ve imzalama sertifikasınınidentityStatus
öğesi bilinmiyorsa.referencesValidationSetting
,never
ise.
Önemli: İmza belgesi içinde bulunan SignedInfo öğesinde doğrudan başvurulmadıkları sürece, harici kaynaklar doğrulanmaz. İkincil bir başvuru tarafından başvurulan harici kaynaklar doğrulanmaz. Örneğin, XML imzası bir bildirim öğesini imzalıyorsa, yalnızca bildirim öğesinin kendisinin bütünlüğü doğrulanır. Bildirimde listelenen dosyalar kontrol edilmez.
Uygulama
public function get referencesStatus():String
Atar
IllegalOperationError — İmza doğrulanıyorken erişilirse.
|
İlgili API Öğeleri
Örnek ( Bu örnek nasıl kullanılır? )
import flash.security.XMLSignatureValidator; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var dataResult:String = verifier.referencesStatus;
referencesValidationSetting | özellik |
referencesValidationSetting:String
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.5 |
Başvuruların kontrol edileceği koşulları belirler.
Bu özelliği ayarlamak için ReferencesValidationSetting sınıfında tanımlanan sabitleri kullanın. Ayarlar şunları içerir:
ReferencesValidationSetting.VALID_IDENTITY
— Yalnızca imzalama sertifikası geçerliyse ve güvenilir bir köke bağlanıyorsa başvuruları kontrol et. Bu varsayılan ayardır.ReferencesValidationSetting.VALID_OR_UNKNOWN_IDENTITY
— İmzalama sertifikası geçerliyse, güvenilir bir köke bağlanmıyorsa bile başvuruları kontrol et.ReferencesValidationSetting.NEVER
— Başvuruları hiçbir zaman kontrol etme.
Varsayılan validIdentity
ayarını ticari bir sertifikayla imzalanmış imzalarla veya addCertificate()
yöntemini kullanarak kendi sertifikanızı güven bağlantısı olarak sağladığınızda kullanın. Bu ayar, imzalanan belgenin yine de reddedileceği durumlarda, başvuru geçerliliğini kontrol etme yükünü önler.
validOrUnknownIdentity
ayarını, kendinden imzalı sertifikalarla imzalanan imzalarla kullanın. Bu ayar, imzalanan verilerin değiştirilmediğini, ancak imzalayanın kimliği hakkında herhangi bir garanti vermediğini doğrulamanızı sağlar.
never
ayarını, uygulamanız bağlamında bu tür bir doğrulama önemli olmadığında, başvuruları doğrulama yükünü önlemek için kullanın.
Uygulama
public function get referencesValidationSetting():String
public function set referencesValidationSetting(value:String):void
Atar
IllegalOperationError — İmza doğrulanıyorken ayarlanırsa.
| |
ArgumentError — setting parametresi, ReferencesValidationSetting sınıfında tanımlanmamış bir değer içeriyorsa.
|
İlgili API Öğeleri
Örnek ( Bu örnek nasıl kullanılır? )
import flash.security.ReferencesValidationSetting; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); verifier.referencesValidationSetting = ReferencesValidationSetting.VALID_OR_UNKNOWN_IDENTITY;
revocationCheckSetting | özellik |
revocationCheckSetting:String
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0 |
Sertifika iptalinin nasıl kontrol edildiğini belirtir.
Bu özelliği ayarlamak için RevocationSettings sınıfında tanımlanan sabitleri kullanın. Ayarlar şunları içerir:
RevocationCheckSettings.NEVER
— Sertifika iptalini kontrol etmez.RevocationCheckSettings.BEST_EFFORT
— İptal bilgileri mevcutsa ve iptal durumu edinilebiliyorsa sertifika iptalini kontrol eder. İptal durumu pozitif biçimde belirlenemiyorsa sertifika reddedilmez.RevocationCheckSettings.REQUIRED_IF_AVAILABLE
— Sertifika iptal bilgilerini içeriyorsa iptal durumu, sertifikayı doğrulamak üzere pozitif olarak belirlenmelidir.RevocationCheckSettings.ALWAYS_REQUIRED
— Her zaman sertifika iptalini kontrol eder. İptal bilgileri içermeyen sertifikalar reddedilir.
Uygulama
public function get revocationCheckSetting():String
public function set revocationCheckSetting(value:String):void
Atar
IllegalOperationError — İmza doğrulanıyorken ayarlanırsa.
|
İlgili API Öğeleri
signerCN | özellik |
signerCN:String
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0 |
İmzalama sertifikasının Ortak Ad alanı.
Uygulama
public function get signerCN():String
Örnek ( Bu örnek nasıl kullanılır? )
var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var commonName:String = verifier.signerCN;
signerDN | özellik |
signerDN:String
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0 |
İmzalama sertifikasının Ayırt Edilen Ad alanı.
Uygulama
public function get signerDN():String
Örnek ( Bu örnek nasıl kullanılır? )
var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var distinguishedName:String = verifier.signerDN;
signerExtendedKeyUsages | özellik |
signerExtendedKeyUsages:Array
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0 |
İmzalama sertifikasında listelenen Genişletilmiş Anahtar Kullanımı OID'lerini içeren bir dizi.
Genişletilen her anahtar kullanımı, sayısal OID biçiminde bildirilir.
Uygulama
public function get signerExtendedKeyUsages():Array
Atar
IllegalOperationError — İmza doğrulanıyorken erişilirse.
|
Örnek ( Bu örnek nasıl kullanılır? )
import flash.security.XMLSignatureValidator; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var extendedKeyOIDs:Array = verifier.signerExtendedKeyUsages;
signerTrustSettings | özellik |
signerTrustSettings:Array
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0 |
İmzalama sertifikasının güven ayarlarını içeren dizi.
Güven ayarları, sistemden türetilir ve anahtar kullanımı OID'leri (Nesne Kimliği) sertifikaya gömülüdür. Tanınan güven ayarlarını sunan dizelere ait sabitler, SignerTrustSettings sınıfında tanımlanır.
unknown
veya invalid
sertifikasının signerTrustSettings
dizisi boştur.
Dizinin değiştirilmesi, sertifika güven ayarlarını değiştirmez.
Uygulama
public function get signerTrustSettings():Array
Atar
IllegalOperationError — İmza doğrulanıyorken erişilirse.
|
İlgili API Öğeleri
Örnek ( Bu örnek nasıl kullanılır? )
import flash.security.XMLSignatureValidator; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate a signature... var certificateTrustedFor:Array = verifier.signerTrustSettings;
uriDereferencer | özellik |
uriDereferencer:IURIDereferencer
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0 |
IURIDereferencer uygulaması.
Bir imza doğrulamaya çalışmadan önce IURIDereferencer uygulaması sağlanmalıdır.
Uygulama
public function get uriDereferencer():IURIDereferencer
public function set uriDereferencer(value:IURIDereferencer):void
Atar
IllegalOperationError — İmza doğrulanıyorken ayarlanırsa.
|
İlgili API Öğeleri
Örnek ( Bu örnek nasıl kullanılır? )
import com.example.SignedMessageDereferencer; //A custom class implementing IURIDereferencer var verifier:XMLSignatureValidator = new XMLSignatureValidator(); verifier.uriDereferencer = new SignedMessageDereferencer();
useSystemTrustStore | özellik |
useSystemTrustStore:Boolean
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0 |
Sistemin güven deposundaki sertifikaların zincir oluşturma için kullanıldığını belirtir.
true
ise sistemin güven deposundaki güven tutturucuları, güvenilen kökler olarak kullanılır. Sistemin güven deposu varsayılan olarak kullanılmaz.
Uygulama
public function get useSystemTrustStore():Boolean
public function set useSystemTrustStore(value:Boolean):void
Atar
IllegalOperationError — İmza doğrulanıyorken ayarlanırsa.
|
Örnek ( Bu örnek nasıl kullanılır? )
var verifier:XMLSignatureValidator = new XMLSignatureValidator(); verifier.useSystemTrustStore = true;
validityStatus | özellik |
validityStatus:String
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0 |
Doğrulanmış XML imzasının geçerlilik durumu.
XML imzası, SignedInfo öğesinin kriptografik imzasının, imzalama sertifikasının ve SignedInfo öğesindeki başvuruların hedef aldığı verilerin doğrulanması yoluyla doğrulanır. Bu öğelerin her birinin geçerliliği, sırasıyla digestStatus
, identityStatus()
ve referencesStatus
özellikleri tarafından ayrı ayrı bildirilir.
XML imzasının geçerliliği valid, invalid veya unknown olabilir. Genel durum, imza dosyasının bağımsız bileşenlerinin doğrulama durumuna bağlıdır.
digestStatus
— SignedInfo öğesi üzerinde hesaplanan kriptografik imzanın geçerliliği.identityStatus
— İmzalama sertifikasının geçerliliği.referencesStatus
— İmza SignedInfo öğesindeki başvuruların özetinin geçerliliği.
validityStatus
özelliği tarafından bildirilen imza geçerliliği aşağıdaki durumlara sahip olabilir:
valid
—referencesStatus
,digestStatus
veidentityStatus
öğelerinin tümüvalid
olur.invalid
— Herhangi bir bağımsız duruminvalid
ise.unknown
— Her bir durumunknown
olduğunda.
Uygulama
public function get validityStatus():String
Atar
IllegalOperationError — İmza doğrulanıyorken erişilirse.
|
İlgili API Öğeleri
Örnek ( Bu örnek nasıl kullanılır? )
import flash.security.XMLSignatureValidator; var verifier:XMLSignatureValidator = new XMLSignatureValidator(); //validate the signature... var validationResult:String = verifier.validityStatus;
XMLSignatureValidator | () | Yapıcı |
public function XMLSignatureValidator()
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0 |
XMLSignatureValidator nesnesi oluşturur.
Yeni nesnenin verify()
yöntemini çağırmadan önce uriDereferencer
özelliğini ayarlamanız gerekir.
İlgili API Öğeleri
Örnek ( Bu örnek nasıl kullanılır? )
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 | () | yöntem |
public function addCertificate(cert:ByteArray, trusted:Boolean):*
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0 |
Zincir oluşturma için x509 sertifikası ekler.
Eklenen sertifika, DER ile kodlanmış x509 sertifikası olmalıdır.
trusted
parametresi true
ise sertifika, güven tutturucusu olarak değerlendirilir.
Not: XML imzası, imzalayanın sertifika zincirini oluşturmak için sertifikalar içerebilir. XMLSignatureValidator sınıfı, bu sertifikaları güvenilen kökler olarak değil (varsayılan olarak), zincir oluşturma için kullanır.
Parametreler
cert:ByteArray — DER ile kodlanmış x509 dijital sertifikası içeren ByteArray nesnesi.
| |
trusted:Boolean — Bu sertifikayı güven tutturucusu olarak atamak için true olarak ayarlayın.
|
* |
Atar
IllegalOperationError — İmza doğrulanıyorken çağrılırsa.
|
Örnek ( Bu örnek nasıl kullanılır? )
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 | () | yöntem |
public function verify(signature:XML):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0 |
Belirtilen imzayı doğrular.
Doğrulama eşzamansızdır. XMLSignatureValidator nesnesi, doğrulama başarıyla tamamlandığında bir complete
olayı veya doğrulama hatalar nedeniyle tamamlanamıyorsa bir error
olayı gönderir.
Doğrulama işlemi iptal edilemez. Doğrulama işlemi devam ederken verify()
yöntemine yapılan sonraki çağrılar başarısız olur. Geçerli doğrulama kontrolü tamamlandıktan sonra verify()
yöntemini yeniden çağırabilirsiniz.
Not: XMLSignatureValidator yalnızca W3C recommendation for XML Signature Syntax and Processing (XML İmzası Sözdizimi ve İşlemesi için W3C Önerileri) alt kümesi uyguladığından, tüm geçerli XML imzaları doğrulanmaz.
Parametreler
signature:XML — Doğrulacak XML imzası.
|
Olaylar
complete: — Doğrulama başarıyla tamamlandığında gönderilir.
| |
error: — Başvuru doğrulaması bir hatayla karşılaştığında gönderilir.
|
Atar
IllegalOperationError — İmza doğrulanıyorken çağrılırsa.
| |
Error — İmza dosyasında iyi oluşturulmamış XML veya desteklenmeyen öğeler gibi başka hatalarla karşılaşılırsa.
|
Örnek ( Bu örnek nasıl kullanılır? )
verify()
yöntemini kullanarak bu dosyayı doğrular. (Örnek, imza için IURIDereferencer uygulamasının uygun olduğunu varsayar.)
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 | Olay |
flash.events.Event
özellik Event.type =
flash.events.Event.COMPLETE
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0 |
Doğrulama işlemi tamamlandığında gönderilir.
complete
olayı, imzanın geçerli olmadığını gösterir. İmza doğrulama sonucunu belirlemek için XMLSignatureValidator nesnesinin validityStatus
özelliğini kontrol edin.
Event.COMPLETE
sabiti, complete
olay nesnesinin type
özelliği değerini tanımlar.
Bu olay şu özelliklere sahiptir:
Özellik | Değer |
---|---|
bubbles | false |
cancelable | false ; iptal edilecek varsayılan davranış yoktur. |
currentTarget | Bu Event nesnesini olay dinleyicisiyle etkin olarak işleyen nesne. |
target | Yüklemesi tamamlanan network nesnesi. |
Örnek ( Bu örnek nasıl kullanılır? )
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); }
İlgili API Öğeleri
error | Olay |
flash.events.ErrorEvent
özellik ErrorEvent.type =
flash.events.ErrorEvent.ERROR
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0 |
Doğrulama işlemi hatalar nedeniyle tamamlanamıyorsa gönderilir.
Birerror
olay nesnesinin type
özelliğinin değerini tanımlar.
Bu olay şu özelliklere sahiptir:
Özellik | Değer |
---|---|
bubbles | false |
cancelable | false ; iptal edilecek varsayılan davranış yoktur. |
currentTarget | Bu Event nesnesini olay dinleyicisiyle etkin olarak işleyen nesne. |
target | Ağ işlemi arızası yaşayan nesne. |
text | Hata mesajı olarak gösterilecek metin. |
Örnek ( Bu örnek nasıl kullanılır? )
private function verificationError(event:ErrorEvent):void{ trace("Verification error: " + event.text); }
SignatureValidatorExample.validateSignature(signatureFile)
çağırarak, doğrulanacak XML imza belgesine başvuran dosyayı aktararak örneği çalıştırın.
import flash.events.Event; import flash.filesystem.File; import flash.filesystem.FileStream; import flash.security.ReferencesValidationSetting; import flash.security.XMLSignatureValidator; import com.example.SignedMessageDereferencer; //A custom class implementing IURIDereferencer public class SignatureValidatorExample{ private var xmlSig:XML; private const signatureNS:Namespace = new Namespace( "http://www.w3.org/2000/09/xmldsig#" ); public static function validateSignature( signatureFile:File ):void{ try{ //Set up the XMLSignatureValidator var verifier:XMLSignatureValidator = new XMLSignatureValidator(); verifier.addEventListener( Event.COMPLETE, verificationComplete ); verifier.uriDereferencer = new SignedMessageDereferencer(); verifier.referencesValidationSetting = ReferencesValidationSetting.VALID_OR_UNKNOWN_IDENTITY; //Load the signed document var sigFileStream:FileStream = new FileStream(); sigFileStream.open( signatureFile, FileMode.READ ); var xmlDoc:XML = XML( sigFileStream.readUTFBytes(sigFileStream.bytesAvailable) ); //Get the last Signature element in the document if( xmlDoc.name().localName != "Signature" ){ var signatureList:XMLList = xmlDoc..signatureNS::Signature; xmlSig = XML( signatureList[ signatureList.length()-1 ] ); } else{ xmlSig = xmlDoc; } //Validate the signature verifier.verify( xmlSig ); }catch (e:Error){ statusDisplay.text = "Verification error.\n" + e; } } private static function verificationComplete(event:Event):void{ trace( "Signature Validity: " + verifier.validityStatus ); trace( "Digest validity: " + verifier.digestStatus ); trace( "Certificate validity: " + verifier.identityStatus ); trace( "Data validity: " + verifier.referencesStatus ); } }
Tue Jun 12 2018, 01:09 PM Z