パッケージjavax.xml.crypto.dsig
XMLSignature、SignedInfo、CanonicalizationMethod、SignatureMethod、Reference、DigestMethod、XMLObject、Manifest、SignaturePropertiesおよびSignaturePropertyが含まれます。 KeyInfo型は、javax.xml.crypto.dsig.keyinfoサブパッケージで定義されます。 XMLSignatureFactoryは、XMLSignatureオブジェクトを最初から、またはDOMノードなどの既存XML表現から作成する抽象ファクトリです。 TransformServiceは、変換および標準化アルゴリズムの実装を作成およびプラグインするための、サービス・プロバイダ・インタフェースです。
このパッケージで特に重要なのはXMLSignatureクラスであり、これによりXMLデジタル署名の署名および検証が可能になります。
サービス・プロバイダ
サービス・プロバイダは、XMLSignatureFactoryおよびKeyInfoFactoryクラスの具体的な実装であり、XMLシグネチャとKeyInfo構造を解析、生成および検証するオブジェクトとアルゴリズムの作成を担当します。 XMLSignatureFactoryの固定実装は、XML署名に関するW3C勧告に規定されているように、必要なそれぞれのアルゴリズムをサポートしている必要があります。 この固定実装は、W3C勧告やほかの仕様に規定されているように、ほかのアルゴリズムをサポートできます。
XMLSignatureFactoryおよびKeyInfoFactoryの実装を登録およびロードするために、このAPIはJCAプロバイダ・モデル(the Provider classを参照してください)を利用します。
固定実装XMLSignatureFactoryまたはKeyInfoFactoryはそれぞれ、XML署名やKeyInfo構造を解析および生成するときに実装によって内部で使用されるXML処理メカニズムを識別する特定のXMLメカニズム・タイプをサポートしています。
サービス・プロバイダ実装SHOULDでは、基礎となるJCAエンジン・クラス(Signature、MessageDigest)を使用して暗号化操作を実行します。
XMLSignatureFactoryおよびKeyInfoFactoryクラスに加え、APIでは、変換アルゴリズムおよび正規化アルゴリズムのサービス・プロバイダ・インタフェースがサポートされています。 TransformServiceクラスを使用すると、特定のXMLメカニズム・タイプに対する特定の変換または正規化アルゴリズムの実装を開発およびプラグインできます。 TransformServiceクラスは、実装を登録およびロードするときに標準JCAプロバイダ・モデルを使用します。 各サービス・プロバイダ実装SHOULDは、TransformServiceクラスを使用して、生成または検証しているXML Signaturesの変換および正規化アルゴリズムをサポートするプロバイダを検索します。
DOMメカニズムの要件
相互運用性の問題を最小限にするために、DOMベースのXMLSignatureFactory、KeyInfoFactory、または TransformServiceを実装する場合は、次の要件に従う必要があります。
XMLSignatureFactoryのunmarshalXMLSignatureメソッドはDOMValidateContextタイプをサポートしている必要があります。 タイプがDOMValidateContextの場合、Signature型のElementが含まれている必要があります。 また、unmarshalXMLSignatureメソッドは渡されるDOMValidateContextのID/要素マッピングを生成できます。XMLSignatureFactoryによって生成されるXMLSignatureのsignメソッドはDOMSignContextタイプをサポートし、validateメソッドはDOMValidateContextタイプをサポートする必要があります。 この要件は、SignatureValueのvalidateメソッドとReferenceのvalidateメソッドにも適用されます。- 実装では、アプリケーションで拡張可能コンテンツ(任意の要素または混合コンテンツ)を指定するメカニズムとして
DOMStructureをサポートする必要があります。 - ユーザー指定の
URIDereferencerのdereferenceメソッドからNodeSetDataオブジェクトが返される場合、iteratorメソッドはorg.w3c.dom.Node型のオブジェクトに対する反復を返す必要があります。 - ユーザー指定の
URIDereferencerのdereferenceメソッドに渡されるURIReferenceオブジェクトは、DOMURIReference型である必要があります。また、XMLCryptoContextオブジェクトはDOMCryptoContextを実装する必要があります。 - 直前の2つの要件は、
XMLSignatureFactoryおよびKeyInfoFactoryのgetURIDereferencerメソッドによって返されるURIDereferencerにも当てはまります。 KeyInfoFactoryのunmarshalKeyInfoメソッドはDOMStructureタイプをサポートしている必要があります。 タイプがDOMStructureの場合、KeyInfo型のElementが含まれている必要があります。Transformのtransformメソッドは、DOMCryptoContextコンテキスト・パラメータ・タイプをサポートする必要があります。XMLSignatureFactoryのnewtransformおよびnewCanonicalizationMethodメソッドでは、DOMStructureパラメータ型がサポートされている必要があります。TransformServiceのinitおよびmarshalParamsメソッドでは、DOMStructureおよびDOMCryptoContext型がサポートされています。XMLSignatureFactoryのunmarshalXMLSignatureメソッドはDOMStructureタイプをサポートしている必要があります。 タイプがDOMStructureの場合、Signature型のElementが含まれている必要があります。KeyInfoのmarshalメソッドでは、DOMStructureおよびDOMCryptoContextパラメータ型がサポートされている必要があります。
DOM実装は、相互運用性に影響しない場合、DOM以外のXML解析APIを内部的に使用できます。 たとえば、XMLSignatureFactoryのDOM実装は、内部的にSAXパーサーを使用してデータを正規化することができます。
パッケージの仕様
- 導入されたバージョン:
- 1.6
-
クラス説明「W3C Recommendation for XML-Signature Syntax and Processing」で定義されているXML
CanonicalizationMethod要素の表現。「W3C Recommendation for XML-Signature Syntax and Processing」で定義されているXMLDigestMethod要素の表現。「W3C Recommendation for XML-Signature Syntax and Processing」で定義されているXMLManifest要素の表現。「W3C Recommendation for XML-Signature Syntax and Processing」で定義されているReference要素の表現。「W3C Recommendation for XML-Signature Syntax and Processing」で定義されているXMLSignatureMethod要素の表現。「W3C Recommendation for XML-Signature Syntax and Processing」で定義されているXMLSignatureProperties要素の表現。「W3C Recommendation for XML-Signature Syntax and Processing」で定義されているXMLSignatureProperty要素の表現。「W3C Recommendation for XML-Signature Syntax and Processing」で定義されているXMLSignedInfo要素の表現。「W3C Recommendation for XML-Signature Syntax and Processing」で定義されているXMLTransform要素の表現。変換アルゴリズムの実行中に例外条件が発生したことを示します。変換アルゴリズムおよび正規化アルゴリズム用のService Provider Interfaceです。「W3C Recommendation for XML-Signature Syntax and Processing」で定義されているXMLObject要素の表現。「W3C Recommendation for XML-Signature Syntax and Processing」で定義されているXMLSignature要素の表現。「W3C Recommendation for XML-Signature Syntax and Processing」で定義されているXMLSignatureValue要素の表現。XML署名の生成中または検証処理中に発生した例外条件を示します。ゼロからXMLSignatureオブジェクトを作成するため、または対応するXML表現からXMLSignatureオブジェクトを非整列化するためのファクトリ。XML署名の生成用のコンテキスト情報を格納します。XML署名の検証用のコンテキスト情報を格納します。