JavaTM Platform
Standard Ed. 6

javax.xml.crypto.dsig.keyinfo
クラス KeyInfoFactory

java.lang.Object
  上位を拡張 javax.xml.crypto.dsig.keyinfo.KeyInfoFactory

public abstract class KeyInfoFactory
extends Object

ゼロから KeyInfo オブジェクトを作成、または対応する XML 表現から KeyInfo オブジェクトを非整列化するためのファクトリ。  

KeyInfoFactory の各インスタンスは、特定の XML 機構型をサポートします。KeyInfoFactory を作成するには、static getInstance メソッドを呼び出し、目的の XML 機構型内で渡します。次に例を示します。

KeyInfoFactory factory = KeyInfoFactory.getInstance("DOM");
 

ファクトリが生成するオブジェクトは DOM に基づいており、API の概要の「DOM 機構要件」セクションで定義されている DOM 相互運用性の要件に従う必要があります。標準の機構型のリストは、API の概要の「サービスプロバイダ」セクションを参照してください。  

KeyInfoFactory 実装は、Provider 機構を使用して登録およびロードされます。たとえば、DOM 機構をサポートするサービスプロバイダは Provider サブクラスで次のように指定されます。

     put("KeyInfoFactory.DOM", "org.example.DOMKeyInfoFactory");
 
 

また、このファクトリによって作成される XMLStructure には、KeyInfo に固有で再利用には対応していない状態が格納されます。  

実装は、デフォルトの機構型である DOM を最低限サポートする必要があります。  

呼び出し側は同じ KeyInfoFactory インスタンスを使用して、特定の KeyInfo オブジェクトの XMLStructure を作成する必要があります。 異なるプロバイダからの XMLStructure または異なる機構がともに使用される場合、動作は定義されていません。  

並行アクセス  

このクラスの static メソッドは、スレッドセーフであることが保証されています。このクラスで定義されている static メソッドは、悪影響を与えることなく、複数スレッドが並行して呼び出すことができます。  

しかしこのことは、このクラスで定義されている非 static メソッドには当てはまりません。特定のプロバイダで特に説明がないかぎり、単一 KeyInfoFactory インスタンスに並行してアクセスする必要のある複数スレッドは、スレッド間で同期をとり、必要に応じてロックしなければなりません。異なる KeyInfoFactory インスタンスを操作する複数スレッド間では、同期をとる必要はありません。

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

コンストラクタの概要
protected KeyInfoFactory()
          サブクラスによって呼び出されるデフォルトのコンストラクタ。
 
メソッドの概要
static KeyInfoFactory getInstance()
          デフォルトの XML 処理機構および表現型 ("DOM") をサポートする KeyInfoFactory を返します。
static KeyInfoFactory getInstance(String mechanismType)
          指定された XML 処理機構および表現型 (例: "DOM") をサポートする KeyInfoFactory を返します。
static KeyInfoFactory getInstance(String mechanismType, Provider provider)
          指定したプロバイダが提供する、要求された XML 処理機構および表現型 (例: "DOM") をサポートする KeyInfoFactory を返します。
static KeyInfoFactory getInstance(String mechanismType, String provider)
          指定したプロバイダが提供する、要求された XML 処理機構および表現型 (例: "DOM") をサポートする KeyInfoFactory を返します。
 String getMechanismType()
          この KeyInfoFactory がサポートする XML 処理機構および表現の型を返します (例: "DOM")。
 Provider getProvider()
          この KeyInfoFactory のプロバイダを返します。
abstract  URIDereferencer getURIDereferencer()
          RetrievalMethod オブジェクト内でデフォルトの間接参照 URI に使用される URIDereferencer への参照を返します。
abstract  boolean isFeatureSupported(String feature)
          指定した機能がサポートされるかどうかを示します。
abstract  KeyInfo newKeyInfo(List content)
          指定された鍵情報の型のリストを格納する KeyInfo を作成します。
abstract  KeyInfo newKeyInfo(List content, String id)
          指定された鍵情報の型および省略可能な識別子のリストを格納する KeyInfo を作成します。
abstract  KeyName newKeyName(String name)
          指定された名前から KeyName を作成します。
abstract  KeyValue newKeyValue(PublicKey key)
          指定された公開鍵から KeyValue を作成します。
abstract  PGPData newPGPData(byte[] keyId)
          指定した PGP 公開鍵識別子から PGPData を作成します。
abstract  PGPData newPGPData(byte[] keyId, byte[] keyPacket, List other)
          指定した PGP 公開鍵識別子、および省略可能な鍵データパケットと外部要素のリストからの PGPDataを作成します。
abstract  PGPData newPGPData(byte[] keyPacket, List other)
          指定した PGP 鍵データパケット、および省略可能な外部要素のリストからの PGPData を作成します。
abstract  RetrievalMethod newRetrievalMethod(String uri)
          指定された URI から RetrievalMethod を作成します。
abstract  RetrievalMethod newRetrievalMethod(String uri, String type, List transforms)
          指定されたパラメータから RetrievalMethod を作成します。
abstract  X509Data newX509Data(List content)
          指定した X.509 コンテンツのリストを格納する X509Data を作成します。
abstract  X509IssuerSerial newX509IssuerSerial(String issuerName, BigInteger serialNumber)
          指定した X.500 発行者識別名およびシリアル番号から X509IssuerSerial を作成します。
abstract  KeyInfo unmarshalKeyInfo(XMLStructure xmlStructure)
          機構固有の XMLStructure (例: DOMStructure) インスタンスからの新しい KeyInfo インスタンスを非整列化します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

KeyInfoFactory

protected KeyInfoFactory()
サブクラスによって呼び出されるデフォルトのコンストラクタ。

メソッドの詳細

getInstance

public static KeyInfoFactory getInstance(String mechanismType)
指定された XML 処理機構および表現型 (例: "DOM") をサポートする KeyInfoFactory を返します。  

このメソッドは標準 JCA プロバイダ検索機構を使用して、目的の機構型の KeyInfoFactory 実装を検出およびインスタンス化します。登録済みのセキュリティー Provider のリストを、最優先の Provider からたどります。指定した機構をサポートする最初の Provider からの新しい KeyInfoFactory オブジェクトが返されます。  

登録済みプロバイダのリストは、Security.getProviders() メソッド経由で取得できます。

パラメータ:
mechanismType - XML 処理機構および表現の型。 標準の機構型のリストについては、API の概要の 「サービスプロバイダ」セクションを 参照してください。
戻り値:
新しい KeyInfoFactory
例外:
NullPointerException - mechanismTypenull の場合
NoSuchMechanismException - 指定した機構用の KeyInfoFactory 実装を サポートする Provider がない場合
関連項目:
Provider

getInstance

public static KeyInfoFactory getInstance(String mechanismType,
                                         Provider provider)
指定したプロバイダが提供する、要求された XML 処理機構および表現型 (例: "DOM") をサポートする KeyInfoFactory を返します。指定した Provider オブジェクトは、プロバイダーリストに登録する必要はありません。

パラメータ:
mechanismType - XML 処理機構および表現の型。 標準の機構型のリストについては、API の概要の 「サービスプロバイダ」セクションを 参照してください。
provider - Provider オブジェクト
戻り値:
新しい KeyInfoFactory
例外:
NullPointerException - mechanismType または providernull の場合
NoSuchMechanismException - 指定した機構用の KeyInfoFactory 実装が指定した Provider オブジェクトで使用できない場合
関連項目:
Provider

getInstance

public static KeyInfoFactory getInstance(String mechanismType,
                                         String provider)
                                  throws NoSuchProviderException
指定したプロバイダが提供する、要求された XML 処理機構および表現型 (例: "DOM") をサポートする KeyInfoFactory を返します。指定したプロバイダは、セキュリティープロバイダリストに登録する必要があります。  

登録済みプロバイダのリストは、Security.getProviders() メソッド経由で取得できます。

パラメータ:
mechanismType - XML 処理機構および表現の型。 標準の機構型のリストについては、API の概要の 「サービスプロバイダ」セクションを 参照してください。
provider - プロバイダ名の文字列
戻り値:
新しい KeyInfoFactory
例外:
NoSuchProviderException - 指定されたプロバイダが セキュリティープロバイダリストに登録されていない場合
NullPointerException - mechanismType または providernull の場合
NoSuchMechanismException - 指定した機構用の KeyInfoFactory 実装が指定した プロバイダで使用できない場合
関連項目:
Provider

getInstance

public static KeyInfoFactory getInstance()
デフォルトの XML 処理機構および表現型 ("DOM") をサポートする KeyInfoFactory を返します。  

このメソッドは標準 JCA プロバイダ検索機構を使用して、デフォルトの機構型の KeyInfoFactory 実装を検出およびインスタンス化します。登録済みのセキュリティー Provider のリストを、最優先の Provider からたどります。DOM 機構をサポートする最初の Provider からの新しい KeyInfoFactory オブジェクトが返されます。  

登録済みプロバイダのリストは、Security.getProviders() メソッド経由で取得できます。

戻り値:
新しい KeyInfoFactory
例外:
NoSuchMechanismException - DOM 機構用の KeyInfoFactory 実装を サポートする Provider がない場合
関連項目:
Provider

getMechanismType

public final String getMechanismType()
この KeyInfoFactory がサポートする XML 処理機構および表現の型を返します (例: "DOM")。

戻り値:
この KeyInfoFactory がサポートする XML 処理機構型

getProvider

public final Provider getProvider()
この KeyInfoFactory のプロバイダを返します。

戻り値:
この KeyInfoFactory のプロバイダ

newKeyInfo

public abstract KeyInfo newKeyInfo(List content)
指定された鍵情報の型のリストを格納する KeyInfo を作成します。

パラメータ:
content - 鍵情報の型を表現する 1 つ以上の XMLStructure。以後の変更から保護するために、 リストは防御的にコピーされます。
戻り値:
KeyInfo
例外:
NullPointerException - contentnull の場合
IllegalArgumentException - content が空の場合
ClassCastException - content に型 XMLStructure でないエントリが含まれる場合

newKeyInfo

public abstract KeyInfo newKeyInfo(List content,
                                   String id)
指定された鍵情報の型および省略可能な識別子のリストを格納する KeyInfo を作成します。id パラメータは XML ID 属性の値を表現し、ほかの XML 構造から KeyInfo を参照する場合に便利です。

パラメータ:
content - 鍵情報の型を表現する 1 つ以上の XMLStructure。以後の変更から保護するために、 リストは防御的にコピーされます。
id - XML ID の値。null も可
戻り値:
KeyInfo
例外:
NullPointerException - contentnull の場合
IllegalArgumentException - content が空の場合
ClassCastException - content に型 XMLStructure でないエントリが含まれる場合

newKeyName

public abstract KeyName newKeyName(String name)
指定された名前から KeyName を作成します。

パラメータ:
name - 鍵を識別する名前
戻り値:
KeyName
例外:
NullPointerException - namenull の場合

newKeyValue

public abstract KeyValue newKeyValue(PublicKey key)
                              throws KeyException
指定された公開鍵から KeyValue を作成します。

パラメータ:
key - 公開鍵
戻り値:
KeyValue
例外:
KeyException - key のアルゴリズムが この KeyInfoFactory によって認識またはサポートされない場合
NullPointerException - keynull の場合

newPGPData

public abstract PGPData newPGPData(byte[] keyId)
指定した PGP 公開鍵識別子から PGPData を作成します。

パラメータ:
keyId - RFC 2440、セクション 11.2 で定義されている PGP 公開鍵識別子。 以後の変更から保護するために、この配列は複製されます。
戻り値:
PGPData
例外:
NullPointerException - keyIdnull の場合
IllegalArgumentException - 鍵識別子が 正しい形式でない場合

newPGPData

public abstract PGPData newPGPData(byte[] keyId,
                                   byte[] keyPacket,
                                   List other)
指定した PGP 公開鍵識別子、および省略可能な鍵データパケットと外部要素のリストからの PGPDataを作成します。

パラメータ:
keyId - RFC 2440、セクション 11.2 で定義されている PGP 公開鍵識別子。 以後の変更から保護するために、この配列は複製されます。
keyPacket - RFC 2440、セクション 11.2 で定義されている PGP 鍵データパケット。 以後の変更から保護するために、この配列は複製されます。 null も可
other - 外部名前空間からの要素を表現する XMLStructure のリスト。以後の変更から保護するために、 リストは防御的にコピーされます。null または空文字列も可
戻り値:
PGPData
例外:
NullPointerException - keyIdnull の場合
IllegalArgumentException - keyId または keyPacket が正しくない形式の場合。 keyPacket の場合、パケットヘッダーの形式が 判定され、タグは鍵データの型であるか検査されます。 パケット本体のコンテンツと形式は検査されません。
ClassCastException - other に型 XMLStructure でないエントリが含まれる場合

newPGPData

public abstract PGPData newPGPData(byte[] keyPacket,
                                   List other)
指定した PGP 鍵データパケット、および省略可能な外部要素のリストからの PGPData を作成します。

パラメータ:
keyPacket - RFC 2440、セクション 5.5 で定義されている PGP 鍵データパケット。 以後の変更から保護するために、この配列は複製されます。
other - 外部名前空間からの要素を表現する XMLStructure のリスト。以後の変更から保護するために、 リストは防御的にコピーされます。null または空文字列も可
戻り値:
PGPData
例外:
NullPointerException - keyPacketnull の場合
IllegalArgumentException - keyPacket が 正しくない形式の場合。keyPacket の場合、パケットヘッダーの形式が 判定され、タグは鍵データの型であるか検査されます。 パケット本体のコンテンツと形式は検査されません。
ClassCastException - other に型 XMLStructure でないエントリが含まれる場合

newRetrievalMethod

public abstract RetrievalMethod newRetrievalMethod(String uri)
指定された URI から RetrievalMethod を作成します。

パラメータ:
uri - 取得する KeyInfo 情報を識別する URI
戻り値:
RetrievalMethod
例外:
NullPointerException - urinull の場合
IllegalArgumentException - uri が RFC 2396 準拠ではない場合

newRetrievalMethod

public abstract RetrievalMethod newRetrievalMethod(String uri,
                                                   String type,
                                                   List transforms)
指定されたパラメータから RetrievalMethod を作成します。

パラメータ:
uri - 取得する KeyInfo 情報を識別する URI
type - 取得する KeyInfo 情報を識別する URI。null も可
transforms - Transform のリスト。以後の変更から保護するために、 このリストは防御的にコピーされます。 null または空文字列も可
戻り値:
RetrievalMethod
例外:
NullPointerException - urinull の場合
IllegalArgumentException - uri が RFC 2396 準拠ではない場合
ClassCastException - transforms に型 Transform でないエントリが含まれる場合

newX509Data

public abstract X509Data newX509Data(List content)
指定した X.509 コンテンツのリストを格納する X509Data を作成します。

パラメータ:
content - 1 つ以上の X.509 コンテンツ型のリスト。有効な型は、 String (被認証者名)、byte[] (被認証者の鍵識別子)、 X509CertificateX509CRL、 またはXMLStructure (外部名前空間からの X509IssuerSerial オブジェクトまたは要素)。被認証者名は RFC 2253 String 形式の識別名です。実装は、 RFC 2253 で定義されている属性の型キーワード (CN、L、ST、 O、OU、C、STREET、DC および UID) をサポートする必要があります。実装は、追加のキーワードをサポートすることも できます。以後の変更から保護するために、 リストは防御的にコピーされます。
戻り値:
X509Data
例外:
NullPointerException - contentnull の場合
IllegalArgumentException - content が空の場合、または 被認証者名が RFC 2253 準拠でないまたは属性の型キーワードの 1 つが 認識されない場合
ClassCastException - content に上記の 有効な型の 1 つでないエントリが含まれている場合

newX509IssuerSerial

public abstract X509IssuerSerial newX509IssuerSerial(String issuerName,
                                                     BigInteger serialNumber)
指定した X.500 発行者識別名およびシリアル番号から X509IssuerSerial を作成します。

パラメータ:
issuerName - RFC 2253 String 形式の 発行者の識別名。実装は、RFC 2253 で定義されている属性の型キーワード (CN、L、ST、O、OU、C、STREET、DC および UID) をサポートする必要があります。 実装は、追加のキーワードをサポートすることもできます。
serialNumber - シリアル番号
戻り値:
X509IssuerSerial
例外:
NullPointerException - issuerName または serialNumbernull の場合
IllegalArgumentException - 発行者名が RFC 2253 準拠でない場合、 または属性の型キーワードが認識されない場合

isFeatureSupported

public abstract boolean isFeatureSupported(String feature)
指定した機能がサポートされるかどうかを示します。

パラメータ:
feature - 機能名 (絶対 URI として)
戻り値:
機能がサポートされる場合は true。 そうでない場合は false
例外:
NullPointerException - featurenull の場合

getURIDereferencer

public abstract URIDereferencer getURIDereferencer()
RetrievalMethod オブジェクト内でデフォルトの間接参照 URI に使用される URIDereferencer への参照を返します。

戻り値:
デフォルトの URIDereferencer への参照

unmarshalKeyInfo

public abstract KeyInfo unmarshalKeyInfo(XMLStructure xmlStructure)
                                  throws MarshalException
機構固有の XMLStructure (例: DOMStructure) インスタンスからの新しい KeyInfo インスタンスを非整列化します。

パラメータ:
xmlStructure - keyinfo の非整列化を開始する 機構固有の XML 構造
戻り値:
KeyInfo
例外:
NullPointerException - xmlStructurenull の場合
ClassCastException - xmlStructure の型が このファクトリには不適切な場合
MarshalException - 非整列化中に回復不能な例外が 発生した場合

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。