public abstract class XMLSignatureFactory extends Object
XMLSignature オブジェクトを作成するため、または対応する XML 表現から XMLSignature オブジェクトを非整列化するためのファクトリ。
XMLSignatureFactory の各インスタンスは、特定の XML メカニズム型をサポートします。XMLSignatureFactory を作成するには、static getInstance メソッドの 1 つを呼び出し、目的の XML メカニズム型を渡します。次に例を示します。
XMLSignatureFactory factory = XMLSignatureFactory.getInstance("DOM");
このファクトリが生成するオブジェクトは DOM に基づいており、API の概要の「DOM メカニズム要件」セクションで定義されている DOM 相互運用性の要件に従う必要があります。標準のメカニズム型のリストについては、API の概要の「サービスプロバイダ」セクションを参照してください。
XMLSignatureFactory 実装は、Provider メカニズムを使用して登録およびロードされます。たとえば、DOM メカニズムをサポートするサービスプロバイダは Provider サブクラスで次のように指定されます。
put("XMLSignatureFactory.DOM", "org.example.DOMXMLSignatureFactory");
実装は、デフォルトのメカニズムタイプ DOM を最低限サポートする必要があります。
呼び出し側は同じ XMLSignatureFactory インスタンスを使用して、生成される特定の XMLSignature の XMLStructure を作成する必要があります。異なるプロバイダからの XMLStructure または異なるメカニズム型がともに使用される場合、動作は定義されていません。
また、このファクトリによって作成される XMLStructure には、XMLSignature に固有で再利用には対応していない状態が格納されます。
XMLSignatureFactory が作成されると、オブジェクトは適切なメソッドを呼び出してインスタンス化できます。たとえば、Reference インスタンスは、newReference メソッドの 1 つを呼び出すことで作成できます。
または、unmarshalXMLSignature メソッドを呼び出して XML コンテンツを格納するメカニズム固有の XMLValidateContext インスタンスを渡すことによって、既存の XML 表現から XMLSignature を作成できます。
DOMValidateContext context = new DOMValidateContext(key, signatureElement); XMLSignature signature = factory.unmarshalXMLSignature(context);各
XMLSignatureFactory は、そのファクトリ型用に必須の XMLValidateContext 型をサポートする必要がありますが、その他をサポートすることもできます。DOM XMLSignatureFactory は、DOMValidateContext オブジェクトをサポートする必要があります。
XMLSignature は、XMLSignature オブジェクトの sign メソッドを呼び出して、署名鍵および整列化パラメータを格納するメカニズム固有の XMLSignContext オブジェクトを渡すことによって、XML 表現に対して整列化し署名することもできます (DOMSignContext を参照)。次に例を示します。
DOMSignContext context = new DOMSignContext(privateKey, document);
signature.sign(context);
並行アクセス
このクラスの static メソッドは、スレッドセーフであることが保証されています。このクラスで定義されている static メソッドは、悪影響を与えることなく、複数スレッドが並行して呼び出すことができます。
しかしこのことは、このクラスで定義されている非 static メソッドには当てはまりません。特定のプロバイダで特に説明がないかぎり、単一の XMLSignatureFactory インスタンスに並行してアクセスする必要のある複数スレッドは、スレッド間で同期を取り、必要に応じてロックしなければいけません。異なる XMLSignatureFactory インスタンスを操作する複数スレッドは、同期化される必要はありません。
| 修飾子 | コンストラクタと説明 |
|---|---|
protected |
XMLSignatureFactory()
デフォルトのコンストラクタ、サブクラスによる呼び出し用。
|
| 修飾子と型 | メソッドと説明 |
|---|---|
static XMLSignatureFactory |
getInstance()
デフォルトの XML 処理メカニズムおよび表現型 ("DOM") をサポートする
XMLSignatureFactory を返します。 |
static XMLSignatureFactory |
getInstance(String mechanismType)
指定された XML 処理メカニズムおよび表現の型 (例: 「DOM」) をサポートする
XMLSignatureFactory を返します。 |
static XMLSignatureFactory |
getInstance(String mechanismType, Provider provider)
指定したプロバイダが提供する、要求された XML 処理メカニズムおよび表現型 (例:「DOM」) をサポートする
XMLSignatureFactory を返します。 |
static XMLSignatureFactory |
getInstance(String mechanismType, String provider)
指定したプロバイダが提供する、要求された XML 処理メカニズムおよび表現型 (例:「DOM」) をサポートする
XMLSignatureFactory を返します。 |
KeyInfoFactory |
getKeyInfoFactory()
KeyInfo オブジェクトを作成する KeyInfoFactory を返します。 |
String |
getMechanismType()
この
XMLSignatureFactory がサポートする XML 処理メカニズムおよび表現の型を返します (例: 「DOM」)。 |
Provider |
getProvider()
この
XMLSignatureFactory のプロバイダを返します。 |
abstract URIDereferencer |
getURIDereferencer()
Reference オブジェクト内でデフォルトの間接参照 URI に使用される URIDereferencer への参照を返します。 |
abstract boolean |
isFeatureSupported(String feature)
指定した機能がサポートされるかどうかを示します。
|
abstract CanonicalizationMethod |
newCanonicalizationMethod(String algorithm, C14NMethodParameterSpec params)
指定したアルゴリズム URI およびパラメータ用に
CanonicalizationMethod を作成します。 |
abstract CanonicalizationMethod |
newCanonicalizationMethod(String algorithm, XMLStructure params)
指定したアルゴリズム URI およびパラメータ用に
CanonicalizationMethod を作成します。 |
abstract DigestMethod |
newDigestMethod(String algorithm, DigestMethodParameterSpec params)
指定したアルゴリズム URI およびパラメータ用に
DigestMethod を作成します。 |
abstract Manifest |
newManifest(List references)
指定された
Reference のリストを格納する Manifest を作成します。 |
abstract Manifest |
newManifest(List references, String id)
指定された
Reference のリストとオプションの ID を格納する Manifest を作成します。 |
abstract Reference |
newReference(String uri, DigestMethod dm)
指定された URI およびダイジェストメソッドで
Reference を作成します。 |
abstract Reference |
newReference(String uri, DigestMethod dm, List appliedTransforms, Data result, List transforms, String type, String id)
指定したパラメータで
Reference を作成します。 |
abstract Reference |
newReference(String uri, DigestMethod dm, List transforms, String type, String id)
指定したパラメータで
Reference を作成します。 |
abstract Reference |
newReference(String uri, DigestMethod dm, List transforms, String type, String id, byte[] digestValue)
指定されたパラメータおよびあらかじめ計算されたダイジェスト値で
Reference を作成します。 |
abstract SignatureMethod |
newSignatureMethod(String algorithm, SignatureMethodParameterSpec params)
指定したアルゴリズム URI およびパラメータ用に
SignatureMethod を作成します。 |
abstract SignatureProperties |
newSignatureProperties(List properties, String id)
指定された
SignatureProperty のリストとオプションの ID を格納する SignatureProperties を作成します。 |
abstract SignatureProperty |
newSignatureProperty(List content, String target, String id)
指定した
XMLStructure、ターゲット URI、およびオプションの id のリストを格納する SignatureProperty を作成します。 |
abstract SignedInfo |
newSignedInfo(CanonicalizationMethod cm, SignatureMethod sm, List references)
指定した標準化メソッドおよび署名メソッド、1 つ以上の参照のリストを使用して
SignedInfo を作成します。 |
abstract SignedInfo |
newSignedInfo(CanonicalizationMethod cm, SignatureMethod sm, List references, String id)
指定したパラメータで
SignedInfo を作成します。 |
abstract Transform |
newTransform(String algorithm, TransformParameterSpec params)
指定したアルゴリズム URI およびパラメータ用に
Transform を作成します。 |
abstract Transform |
newTransform(String algorithm, XMLStructure params)
指定したアルゴリズム URI およびパラメータ用に
Transform を作成します。 |
abstract XMLObject |
newXMLObject(List content, String id, String mimeType, String encoding)
指定したパラメータから
XMLObject を作成します。 |
abstract XMLSignature |
newXMLSignature(SignedInfo si, KeyInfo ki)
XMLSignature を作成し、その内容を指定した SignedInfo オブジェクトおよび KeyInfo オブジェクトで初期化します。 |
abstract XMLSignature |
newXMLSignature(SignedInfo si, KeyInfo ki, List objects, String id, String signatureValueId)
指定したパラメータを使用して、
XMLSignature を作成して初期化します。 |
abstract XMLSignature |
unmarshalXMLSignature(XMLStructure xmlStructure)
メカニズム固有の
XMLStructure インスタンスからの新しい XMLSignature インスタンスを非整列化します。 |
abstract XMLSignature |
unmarshalXMLSignature(XMLValidateContext context)
メカニズム固有の
XMLValidateContext インスタンスからの新しい XMLSignature インスタンスを非整列化します。 |
public static XMLSignatureFactory getInstance(String mechanismType)
XMLSignatureFactory を返します。
このメソッドは標準 JCA プロバイダ検索メカニズムを使用して、目的のメカニズム型の XMLSignatureFactory 実装を検出およびインスタンス化します。登録済みのセキュリティー Provider のリストを、最優先の Provider からトラバースします。指定したメカニズムをサポートする最初の Provider からの新しい XMLSignatureFactory オブジェクトが返されます。
登録済みプロバイダのリストは、Security.getProviders() メソッド経由で取得できます。
mechanismType - XML 処理メカニズムおよび表現の型。標準のメカニズム型のリストについては、API の概要の「サービスプロバイダ」セクションを参照してください。XMLSignatureFactoryNullPointerException - mechanismType が null である場合NoSuchMechanismException - 指定したメカニズムの XMLSignatureFactory 実装をサポートする Provider が存在しない場合Providerpublic static XMLSignatureFactory getInstance(String mechanismType, Provider provider)
XMLSignatureFactory を返します。指定した Provider オブジェクトは、プロバイダリストに登録する必要はありません。mechanismType - XML 処理メカニズムおよび表現の型。標準のメカニズム型のリストについては、API の概要の「サービスプロバイダ」セクションを参照してください。provider - Provider オブジェクトXMLSignatureFactoryNullPointerException - provider または mechanismType が null の場合NoSuchMechanismException - 指定したメカニズム用の XMLSignatureFactory 実装が指定した Provider オブジェクトで使用できない場合Providerpublic static XMLSignatureFactory getInstance(String mechanismType, String provider) throws NoSuchProviderException
XMLSignatureFactory を返します。指定したプロバイダは、セキュリティープロバイダリストに登録する必要があります。
登録済みプロバイダのリストは、Security.getProviders() メソッド経由で取得できます。
mechanismType - XML 処理メカニズムおよび表現の型。標準のメカニズム型のリストについては、API の概要の「サービスプロバイダ」セクションを参照してください。provider - プロバイダ名の文字列名XMLSignatureFactoryNoSuchProviderException - 指定されたプロバイダがセキュリティープロバイダリストに登録されていない場合NullPointerException - provider または mechanismType が null の場合NoSuchMechanismException - 指定したメカニズム用の XMLSignatureFactory 実装が指定したプロバイダで使用できない場合Providerpublic static XMLSignatureFactory getInstance()
XMLSignatureFactory を返します。
このメソッドは標準 JCA プロバイダ検索メカニズムを使用して、デフォルトのメカニズム型の XMLSignatureFactory 実装を検出およびインスタンス化します。登録済みのセキュリティー Provider のリストを、最優先の Provider からトラバースします。DOM メカニズムをサポートする最初の Provider からの新しい XMLSignatureFactory オブジェクトが返されます。
登録済みプロバイダのリストは、Security.getProviders() メソッド経由で取得できます。
XMLSignatureFactoryNoSuchMechanismException - DOM メカニズムの XMLSignatureFactory 実装をサポートする Provider が存在しない場合Providerpublic final String getMechanismType()
XMLSignatureFactory がサポートする XML 処理メカニズムおよび表現の型を返します (例: 「DOM」)。XMLSignatureFactory がサポートする XML 処理メカニズム型public final Provider getProvider()
XMLSignatureFactory のプロバイダを返します。XMLSignatureFactory のプロバイダpublic abstract XMLSignature newXMLSignature(SignedInfo si, KeyInfo ki)
XMLSignature を作成し、その内容を指定した SignedInfo オブジェクトおよび KeyInfo オブジェクトで初期化します。si - 署名情報ki - 鍵情報。null も可XMLSignatureNullPointerException - si が null である場合public abstract XMLSignature newXMLSignature(SignedInfo si, KeyInfo ki, List objects, String id, String signatureValueId)
XMLSignature を作成して初期化します。si - 署名情報ki - 鍵情報。null も可objects - XMLObject のリスト。空または null も可id - Id。null も可signatureValueId - SignatureValue Id。null も可XMLSignatureNullPointerException - si が null である場合ClassCastException - どの objects も XMLObject 型ではない場合public abstract Reference newReference(String uri, DigestMethod dm)
Reference を作成します。uri - 参照 URI。null も可dm - ダイジェストメソッドReferenceIllegalArgumentException - uri が RFC 2396 に準拠していない場合NullPointerException - dm が null である場合public abstract Reference newReference(String uri, DigestMethod dm, List transforms, String type, String id)
Reference を作成します。uri - 参照 URI。null も可dm - ダイジェストメソッドtransforms - Transform のリスト。以後の変更から保護するために、このリストは防御的にコピーされる。null または空文字列も可。type - 参照型、URI として。null も可id - 参照 ID。null も可ReferenceClassCastException - どの transforms も Transform 型ではない場合IllegalArgumentException - uri が RFC 2396 に準拠していない場合NullPointerException - dm が null である場合public abstract Reference newReference(String uri, DigestMethod dm, List transforms, String type, String id, byte[] digestValue)
Reference を作成します。
このメソッドは、Reference のダイジェスト値が以前に計算されていた場合に便利です。たとえば、OASIS-DSS (Digital Signature Services) 仕様を参照してください。
uri - 参照 URI。null も可dm - ダイジェストメソッドtransforms - Transform のリスト。以後の変更から保護するために、このリストは防御的にコピーされる。null または空文字列も可。type - 参照型、URI として。null も可id - 参照 ID。null も可digestValue - ダイジェスト値。以後の変更から保護するために、この配列は複製される。ReferenceClassCastException - どの transforms も Transform 型ではない場合IllegalArgumentException - uri が RFC 2396 に準拠していない場合NullPointerException - dm または digestValue が null の場合public abstract Reference newReference(String uri, DigestMethod dm, List appliedTransforms, Data result, List transforms, String type, String id)
Reference を作成します。
このメソッドは、変換のリストがすでに Reference に対して適用されている場合に便利です。たとえば、OASIS-DSS (Digital Signature Services) 仕様を参照してください。
この参照を含む XMLSignature が生成される場合、指定した transforms (null でない場合) は指定した result に適用されます。Reference 要素の結果として得られる Transforms 要素は、appliedTransforms と transforms を連結したものに設定されます。
uri - 参照 URI。null も可dm - ダイジェストメソッドappliedTransforms - すでに適用された Transform のリスト。以後の変更から保護するために、このリストは防御的にコピーされる。リストには少なくとも 1 つのエントリが含まれている必要がある。result - appliedTransforms のシーケンスを処理した結果transforms - 署名を生成したときに適用される Transform のリスト。以後の変更から保護するために、このリストは防御的にコピーされる。null または空文字列も可。type - 参照型、URI として。null も可id - 参照 ID。null も可ReferenceClassCastException - (どちらかのリストの) 変換がどれも Transform 型ではない場合IllegalArgumentException - uri が RFC 2396 に準拠していない場合、または appliedTransforms が空の場合NullPointerException - dm、appliedTransforms、または result が null の場合public abstract SignedInfo newSignedInfo(CanonicalizationMethod cm, SignatureMethod sm, List references)
SignedInfo を作成します。cm - 標準化メソッドsm - 署名メソッドreferences - 1 つ以上の Reference のリスト。以後の変更から保護するために、このリストは防御的にコピーされる。SignedInfoClassCastException - どの参照も Reference 型でない場合IllegalArgumentException - references が空である場合NullPointerException - いずれかのパラメータが null の場合public abstract SignedInfo newSignedInfo(CanonicalizationMethod cm, SignatureMethod sm, List references, String id)
SignedInfo を作成します。cm - 標準化メソッドsm - 署名メソッドreferences - 1 つ以上の Reference のリスト。以後の変更から保護するために、このリストは防御的にコピーされる。id - Id。null も可SignedInfoClassCastException - どの参照も Reference 型でない場合IllegalArgumentException - references が空である場合NullPointerException - cm、sm、または references が null の場合public abstract XMLObject newXMLObject(List content, String id, String mimeType, String encoding)
XMLObject を作成します。content - XMLStructure のリスト。以後の変更から保護するために、このリストは防御的にコピーされる。null または空文字列も可。id - Id。null も可mimeType - MIME タイプ。null も可encoding - エンコーディング。null も可XMLObjectClassCastException - content に XMLStructure 型ではないエントリが含まれている場合public abstract Manifest newManifest(List references)
Reference のリストを格納する Manifest を作成します。references - 1 つ以上の Reference のリスト。以後の変更から保護するために、このリストは防御的にコピーされる。ManifestNullPointerException - references が null である場合IllegalArgumentException - references が空である場合ClassCastException - references に Reference 型ではないエントリが含まれている場合public abstract Manifest newManifest(List references, String id)
Reference のリストとオプションの ID を格納する Manifest を作成します。references - 1 つ以上の Reference のリスト。以後の変更から保護するために、このリストは防御的にコピーされる。id - Id。null も可ManifestNullPointerException - references が null である場合IllegalArgumentException - references が空である場合ClassCastException - references に Reference 型ではないエントリが含まれている場合public abstract SignatureProperty newSignatureProperty(List content, String target, String id)
XMLStructure、ターゲット URI、およびオプションの id のリストを格納する SignatureProperty を作成します。content - 1 つ以上の XMLStructure のリスト。以後の変更から保護するために、このリストは防御的にコピーされる。target - このプロパティーの適用先の Signature のターゲット URIid - Id。null も可SignaturePropertyNullPointerException - content または target が null の場合IllegalArgumentException - content が空である場合ClassCastException - content に XMLStructure 型ではないエントリが含まれている場合public abstract SignatureProperties newSignatureProperties(List properties, String id)
SignatureProperty のリストとオプションの ID を格納する SignatureProperties を作成します。properties - 1 つ以上の SignatureProperty のリスト。以後の変更から保護するために、このリストは防御的にコピーされる。id - Id。null も可SignaturePropertiesNullPointerException - properties が null である場合IllegalArgumentException - properties が空である場合ClassCastException - properties に SignatureProperty 型ではないエントリが含まれている場合public abstract DigestMethod newDigestMethod(String algorithm, DigestMethodParameterSpec params) throws NoSuchAlgorithmException, InvalidAlgorithmParameterException
DigestMethod を作成します。algorithm - ダイジェストアルゴリズムを識別する URIparams - アルゴリズム固有のダイジェストパラメータ。null も可DigestMethodInvalidAlgorithmParameterException - 指定されたパラメータが、要求されたアルゴリズムには不適切な場合NoSuchAlgorithmException - 指定されたアルゴリズムの実装が見つからない場合NullPointerException - algorithm が null である場合public abstract SignatureMethod newSignatureMethod(String algorithm, SignatureMethodParameterSpec params) throws NoSuchAlgorithmException, InvalidAlgorithmParameterException
SignatureMethod を作成します。algorithm - 署名アルゴリズムを識別する URIparams - アルゴリズム固有の署名パラメータ。null も可SignatureMethodInvalidAlgorithmParameterException - 指定されたパラメータが、要求されたアルゴリズムには不適切な場合NoSuchAlgorithmException - 指定されたアルゴリズムの実装が見つからない場合NullPointerException - algorithm が null である場合public abstract Transform newTransform(String algorithm, TransformParameterSpec params) throws NoSuchAlgorithmException, InvalidAlgorithmParameterException
Transform を作成します。algorithm - 変換アルゴリズムを識別する URIparams - アルゴリズム固有の変換パラメータ。null も可TransformInvalidAlgorithmParameterException - 指定されたパラメータが、要求されたアルゴリズムには不適切な場合NoSuchAlgorithmException - 指定されたアルゴリズムの実装が見つからない場合NullPointerException - algorithm が null である場合public abstract Transform newTransform(String algorithm, XMLStructure params) throws NoSuchAlgorithmException, InvalidAlgorithmParameterException
Transform を作成します。パラメータはメカニズム固有の XMLStructure として指定されます (例: DOMStructure)。このメソッドは、パラメータが XML 形式でありパラメータ指定のための標準クラスがない場合に便利です。algorithm - 変換アルゴリズムを識別する URIparams - パラメータの非整列化を開始するメカニズム固有の XML 構造。必須ではない場合またはオプションの場合は null も可TransformClassCastException - params の型がこの XMLSignatureFactory には不適切な場合InvalidAlgorithmParameterException - 指定されたパラメータが、要求されたアルゴリズムには不適切な場合NoSuchAlgorithmException - 指定されたアルゴリズムの実装が見つからない場合NullPointerException - algorithm が null である場合public abstract CanonicalizationMethod newCanonicalizationMethod(String algorithm, C14NMethodParameterSpec params) throws NoSuchAlgorithmException, InvalidAlgorithmParameterException
CanonicalizationMethod を作成します。algorithm - 標準化アルゴリズムを識別する URIparams - アルゴリズム固有の標準化パラメータ。null も可CanonicalizationMethodInvalidAlgorithmParameterException - 指定されたパラメータが、要求されたアルゴリズムには不適切な場合NoSuchAlgorithmException - 指定されたアルゴリズムの実装が見つからない場合NullPointerException - algorithm が null である場合public abstract CanonicalizationMethod newCanonicalizationMethod(String algorithm, XMLStructure params) throws NoSuchAlgorithmException, InvalidAlgorithmParameterException
CanonicalizationMethod を作成します。パラメータはメカニズム固有の XMLStructure として指定されます (例: DOMStructure)。このメソッドは、パラメータが XML 形式でありパラメータ指定のための標準クラスがない場合に便利です。algorithm - 標準化アルゴリズムを識別する URIparams - パラメータの非整列化を開始するメカニズム固有の XML 構造。必須ではない場合またはオプションの場合は null も可CanonicalizationMethodClassCastException - params の型がこの XMLSignatureFactory には不適切な場合InvalidAlgorithmParameterException - 指定されたパラメータが、要求されたアルゴリズムには不適切な場合NoSuchAlgorithmException - 指定されたアルゴリズムの実装が見つからない場合NullPointerException - algorithm が null である場合public final KeyInfoFactory getKeyInfoFactory()
KeyInfo オブジェクトを作成する KeyInfoFactory を返します。返された KeyInfoFactory は、この XMLSignatureFactory と同じメカニズム型およびプロバイダを持ちます。KeyInfoFactoryNoSuchMechanismException - 同じメカニズム型およびプロバイダを持つ KeyFactory 実装が利用可能でない場合public abstract XMLSignature unmarshalXMLSignature(XMLValidateContext context) throws MarshalException
XMLValidateContext インスタンスからの新しい XMLSignature インスタンスを非整列化します。context - 署名の非整列化を開始するメカニズム固有のコンテキストXMLSignatureNullPointerException - context が null である場合ClassCastException - context の型がこのファクトリには不適切な場合MarshalException - 非整列化の実行中に回復不可能な例外が発生した場合public abstract XMLSignature unmarshalXMLSignature(XMLStructure xmlStructure) throws MarshalException
XMLStructure インスタンスからの新しい XMLSignature インスタンスを非整列化します。このメソッドは、XMLSignature を非整列化するだけで検証しない場合に便利です。xmlStructure - 署名の非整列化を開始するメカニズム固有の XML 構造XMLSignatureNullPointerException - xmlStructure が null である場合ClassCastException - xmlStructure の型がこのファクトリには不適切な場合MarshalException - 非整列化の実行中に回復不可能な例外が発生した場合public abstract boolean isFeatureSupported(String feature)
feature - 機能名 (絶対 URI として)true、そうでない場合は falseNullPointerException - feature が null である場合public abstract URIDereferencer getURIDereferencer()
Reference オブジェクト内でデフォルトの間接参照 URI に使用される URIDereferencer への参照を返します。URIDereferencer への参照。null になることはない バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.