パッケージ 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型の要素
を含む必要があります。 また、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
型の要素
を含む必要があります。Transform
のtransform
メソッドはDOMCryptoContext
コンテキスト・パラメータ型をサポートする必要があります。XMLSignatureFactory
のnewtransform
およびnewCanonicalizationMethod
メソッドでは、DOMStructure
パラメータ型がサポートされている必要があります。TransformService
のinit
およびmarshalParams
メソッドでは、DOMStructure
およびDOMCryptoContext
型がサポートされています。XMLSignatureFactory
のunmarshalXMLSignature
メソッドはDOMStructure
タイプをサポートしている必要があります。 型がDOMStructure
の場合は、Signature
型の要素
を含む必要があります。KeyInfo
のmarshal
メソッドでは、DOMStructure
およびDOMCryptoContext
パラメータ型がサポートされている必要があります。
DOM実装は、相互運用性に影響しない場合、DOM以外のXML解析APIを内部的に使用できます。 たとえば、XMLSignatureFactory
のDOM実装は、内部的にSAXパーサーを使用してデータを正規化することができます。
パッケージの仕様
- 導入されたバージョン:
- 1.6
-
-
クラスのサマリー クラス 説明 TransformService 変換アルゴリズムおよび正規化アルゴリズム用のService Provider Interfaceです。XMLSignatureFactory ゼロからXMLSignature
オブジェクトを作成するため、または対応するXML表現からXMLSignature
オブジェクトを非整列化するためのファクトリ。 -
例外のサマリー 例外 説明 TransformException 変換アルゴリズムの実行中に例外条件が発生したことを示します。XMLSignatureException XML署名の生成中または検証処理中に発生した例外条件を示します。