AIR プロファイルのサポート:この機能はすべてのデスクトップオペレーティングシステムおよびテレビ用 AIR デバイスでサポートされますが、モバイルデバイスではサポートされません。
XMLSignatureValidator は、W3C Recommendation for XML-Signature Syntax and Processing のサブセットを実装しているため、適合する実装と見なされません。この勧告でサポートされているサブセットには次のようなものがあります。
XML 署名を検証するために、IURIDereferencer 実装を提供する必要があります。この実装クラスは、署名ファイルの SignedInfo エレメントで指定されている URI を解決し、IDataInput インターフェイスを実装するオブジェクト(ByteArray など)で参照データを返します。
署名証明書が信頼された証明書にチェーンされていることを検証するためには、XML 署名に X509Certificate エレメントでチェーンを構築するために必要な証明書が含まれているか、または
XMLSignature を検証するには:
署名のステータスについて:
XML 署名の有効性は valid、invalid、または unknown です。全体のステータスは、署名ファイルの個々のコンポーネントの検証ステータスによって決まります。
標準化の制限:
XML ドキュメントを標準化するとき、AIR の XML エンジンで予想どおりの XML ストリングが常に生成されるとは限りません。この理由により、エンベロープに入れられたまたはデタッチされたシグネチャドキュメント内ではエレメント間に空白文字を挿入しないこと、およびシグネチャドキュメント内部で名前空間を再定義しないことをお勧めします。どちらの場合も、AIR で元のドキュメントと同じ文字並びのドキュメントが再生成されない可能性があり、そのため検証が失敗します。
追加される証明書は、DER エンコードされた x509 証明書でなければなりません。
注意:XML 署名に、署名者の証明書チェーンを構築するための証明書が含まれていることがあります。XMLSignatureValidator クラスは、チェーンを構築するためにこれらの証明書を使用しますが、信頼されたルートとしては構築されません(デフォルト)。
検証は非同期です。XMLSignatureValidator オブジェクトは、検証が正常に完了すると
検証処理はキャンセルできません。検証処理の実行中は、後続の
注意: XMLSignatureValidator は、W3C recommendation for XML Signature Syntax and Processing のサブセットのみを実装するため、有効な XML 署名のすべてを検証できるわけではありません。
ステータスを以下に示します。
注意:
ステータスは次のいずれかです。
注意:
ステータスは次のいずれかです。
重要:外部リソースは、署名ドキュメントの SignedInfo エレメント内で直接参照されていない限り、検証されません。二次参照によって参照される外部リソースは検証されません。例えば、XML 署名がマニフェストエレメントに署名している場合は、マニフェストエレメント自体の整合性だけが検証されます。マニフェストにリストされているファイルはチェックされません。
このプロパティを設定するには、ReferencesValidationSetting クラスに定義されている定数を使用します。この設定には次のようなものがあります。
デフォルトの設定である
自己署名証明書を使用して署名された署名では、
アプリケーションのコンテキストの中でこのような検証が重要でない場合は、
このプロパティを設定するために、RevocationSettings クラスで定義されている定数を使用します。この設定には次のようなものがあります。
各拡張キー使用法は、数値形式の OID で報告されます。
信頼設定は、証明書に埋め込まれたシステム OID およびキー使用法 OID から派生します。有効な信頼設定を表すストリングの定数は、SignerTrustSettings クラスで定義されています。
配列を変更しても、証明書の信頼設定は変更されません。
IURIDereferencer 実装は、署名を検証しようとする前に提供する必要があります。
XML 署名は、SignedInfo エレメントの暗号署名、署名証明書、および SignedInfo エレメントの参照によって指定されるデータを検証することによって検証されます。これらの各エレメントの有効性は、
XML 署名の有効性は valid、invalid、または unknown です。全体のステータスは、署名ファイルの個々のコンポーネントの検証ステータスによって決まります。
IURIDereferencer 実装は、XML 署名ファイルの SignedInfo エレメントで指定されている URI を解決し、IDataInput インターフェイスを実装するオブジェクト (ByteArray など) で参照データを返します。
このインターフェイスには、
IURIDereferencer インターフェイスは、XMLSignatureValidator クラスと共に使用されます。
証明書検証処理が試行されたが、証明書の有効期間が現在の日付よりも前または後の日付だったために、失敗したことを示します。一部のオペレーティングシステムでは、現在の日付が証明書の有効期間よりも前の日付である場合、
証明書検証処理が試行されたが、証明書の信頼チェーンが無効なために失敗したことを示します。
証明書検証処理が試行されたが、失敗したことを示します。これは、一般的な失敗の状態を示しており、証明書の状態を詳しく特定できない場合に報告されます。
証明書がまだ有効になっていないことを示します。現在の日付が、証明書の notBefore 日時よりも前の日付です。
証明書検証処理が試行されたが、証明書の一般名がホストの完全修飾ドメイン名と一致していないために失敗したことを示します。
証明書検証処理が試行されたが、証明書が失効していたために失敗したことを示します。一部のオペレーティングシステムでは、証明書(またはそのルート証明書)がクライアントコンピューター上の信頼されていない証明書のリストに追加されたときに、
証明書の有効期限は切れておらず、失効のチェックに失敗せず、信頼できるルート証明書へのチェーンがあることを示します。
証明書に対する証明書検証処理がまだ実行されていないことを示します。
証明書検証処理が試行されたが、証明書がクライアントの信頼ストア内のルート証明書にチェーンされていないことを示します。一部のオペレーティングシステムでは、証明書がクライアントコンピューター上の信頼されていない証明書のリストに追加されたときに、