モジュール java.xml.crypto

パッケージ javax.xml.crypto.dsig

XMLデジタル署名の生成および検証用のクラスです。 このパッケージには、W3C XMLデジタル署名仕様で定義された主要な要素を表現するクラスXMLSignatureSignedInfoCanonicalizationMethodSignatureMethodReferenceDigestMethodXMLObjectManifestSignaturePropertiesおよび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エンジン・クラス(SignatureMessageDigest)を使用して暗号化操作を実行します。

XMLSignatureFactoryおよびKeyInfoFactoryクラスに加え、APIでは、変換アルゴリズムおよび正規化アルゴリズムのサービス・プロバイダ・インタフェースがサポートされています。 TransformServiceクラスを使用すると、特定のXMLメカニズム・タイプ用の固有の変換または正規化アルゴリズムの実装を開発およびプラグインできます。 TransformServiceクラスは、実装を登録およびロードするときに標準JCAプロバイダ・モデルを使用します。 各サービス・プロバイダ実装SHOULDは、TransformServiceクラスを使用して、生成または検証しているXML Signaturesの変換および正規化アルゴリズムをサポートするプロバイダを検索します。

DOMメカニズムの要件

相互運用性の問題を最小限にするために、DOMベースのXMLSignatureFactoryKeyInfoFactory、または TransformServiceを実装する場合は、次の要件に従う必要があります。
  1. XMLSignatureFactoryunmarshalXMLSignatureメソッドはDOMValidateContextタイプをサポートしている必要があります。 型がDOMValidateContextの場合は、Signature型の要素を含む必要があります。 また、unmarshalXMLSignatureメソッドは渡されるDOMValidateContextのID/要素マッピングを生成できます。
  2. XMLSignatureFactoryによって生成されるXMLSignaturesignメソッドはDOMSignContextタイプをサポートし、validateメソッドはDOMValidateContextタイプをサポートする必要があります。 この要件は、 SignatureValuevalidateメソッドとReferencevalidateメソッドにも適用されます。
  3. 実装は、アプリケーションが拡張可能なコンテンツ(任意の要素または混合コンテンツ)を指定するためのメカニズムとして、DOMStructureをサポートする必要があります。
  4. ユーザー指定の URIDereferencerdereferenceメソッドからNodeSetDataオブジェクトが返される場合、iteratorメソッドは org.w3c.dom.Node型のオブジェクトに対する反復を返す必要があります。
  5. ユーザー指定のURIDereferencerdereferenceメソッドに渡されたURIReferenceオブジェクトは型 DOMURIReferenceであり、XMLCryptoContextオブジェクトは DOMCryptoContextを実装する必要があります。
  6. 直前の2つの要件は、 XMLSignatureFactoryおよびKeyInfoFactorygetURIDereferencerメソッドによって返されるURIDereferencerにも当てはまります。
  7. KeyInfoFactoryunmarshalKeyInfoメソッドはDOMStructureタイプをサポートしている必要があります。 型がDOMStructureの場合は、KeyInfo型の要素を含む必要があります。
  8. TransformtransformメソッドはDOMCryptoContextコンテキスト・パラメータ型をサポートする必要があります。
  9. XMLSignatureFactorynewtransformおよびnewCanonicalizationMethodメソッドでは、DOMStructureパラメータ型がサポートされている必要があります。
  10. TransformServiceinitおよびmarshalParamsメソッドでは、DOMStructureおよびDOMCryptoContext型がサポートされています。
  11. XMLSignatureFactoryunmarshalXMLSignatureメソッドはDOMStructureタイプをサポートしている必要があります。 型がDOMStructureの場合は、Signature型の要素を含む必要があります。
  12. KeyInfomarshalメソッドでは、DOMStructureおよびDOMCryptoContextパラメータ型がサポートされている必要があります。

DOM実装は、相互運用性に影響しない場合、DOM以外のXML解析APIを内部的に使用できます。 たとえば、XMLSignatureFactoryのDOM実装は、内部的にSAXパーサーを使用してデータを正規化することができます。

パッケージの仕様

導入されたバージョン:
1.6