public abstract class KeyInfoFactory extends Object
KeyInfo オブジェクトを作成するため、または対応する XML 表現から KeyInfo オブジェクトを非整列化するためのファクトリ。
KeyInfoFactory の各インスタンスは、特定の XML メカニズム型をサポートします。KeyInfoFactory を作成するには、static getInstance メソッドのうちの 1 つを呼び出し、目的の 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 インスタンスを操作する複数スレッドは、同期化される必要はありません。
| 修飾子 | コンストラクタと説明 |
|---|---|
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)
|
public static KeyInfoFactory getInstance(String mechanismType)
KeyInfoFactory を返します。
このメソッドは標準 JCA プロバイダ検索メカニズムを使用して、目的のメカニズム型の KeyInfoFactory 実装を検出およびインスタンス化します。登録済みのセキュリティー Provider のリストを、最優先の Provider からトラバースします。指定したメカニズムをサポートする最初の Provider からの新しい KeyInfoFactory オブジェクトが返されます。
登録済みプロバイダのリストは、Security.getProviders() メソッド経由で取得できます。
mechanismType - XML 処理メカニズムおよび表現の型。標準のメカニズム型のリストについては、API の概要の「サービスプロバイダ」セクションを参照してください。KeyInfoFactoryNullPointerException - mechanismType が null である場合NoSuchMechanismException - 指定したメカニズムの KeyInfoFactory 実装をサポートする Provider が存在しない場合Providerpublic static KeyInfoFactory getInstance(String mechanismType, Provider provider)
KeyInfoFactory を返します。指定した Provider オブジェクトは、プロバイダリストに登録する必要はありません。mechanismType - XML 処理メカニズムおよび表現の型。標準のメカニズム型のリストについては、API の概要の「サービスプロバイダ」セクションを参照してください。provider - Provider オブジェクトKeyInfoFactoryNullPointerException - mechanismType または provider が null の場合NoSuchMechanismException - 指定したメカニズム用の KeyInfoFactory 実装が指定した Provider オブジェクトで使用できない場合Providerpublic static KeyInfoFactory getInstance(String mechanismType, String provider) throws NoSuchProviderException
KeyInfoFactory を返します。指定したプロバイダは、セキュリティープロバイダリストに登録する必要があります。
登録済みプロバイダのリストは、Security.getProviders() メソッド経由で取得できます。
mechanismType - XML 処理メカニズムおよび表現の型。標準のメカニズム型のリストについては、API の概要の「サービスプロバイダ」セクションを参照してください。provider - プロバイダ名の文字列名KeyInfoFactoryNoSuchProviderException - 指定されたプロバイダがセキュリティープロバイダリストに登録されていない場合NullPointerException - mechanismType または provider が null の場合NoSuchMechanismException - 指定したメカニズム用の KeyInfoFactory 実装が指定したプロバイダで使用できない場合Providerpublic static KeyInfoFactory getInstance()
KeyInfoFactory を返します。
このメソッドは標準 JCA プロバイダ検索メカニズムを使用して、デフォルトのメカニズム型の KeyInfoFactory 実装を検出およびインスタンス化します。登録済みのセキュリティー Provider のリストを、最優先の Provider からトラバースします。DOM メカニズムをサポートする最初の Provider からの新しい KeyInfoFactory オブジェクトが返されます。
登録済みプロバイダのリストは、Security.getProviders() メソッド経由で取得できます。
KeyInfoFactoryNoSuchMechanismException - DOM メカニズムの KeyInfoFactory 実装をサポートする Provider が存在しない場合Providerpublic final String getMechanismType()
KeyInfoFactory がサポートする XML 処理メカニズムおよび表現の型を返します (例: 「DOM」)。KeyInfoFactory がサポートする XML 処理メカニズム型public final Provider getProvider()
KeyInfoFactory のプロバイダを返します。KeyInfoFactory のプロバイダpublic abstract KeyInfo newKeyInfo(List content)
KeyInfo を作成します。content - 鍵情報の型を表現する 1 つ以上の XMLStructure のリスト。以後の変更から保護するために、このリストは防御的にコピーされる。KeyInfoNullPointerException - content が null である場合IllegalArgumentException - content が空である場合ClassCastException - content に XMLStructure 型ではないエントリが含まれている場合public abstract KeyInfo newKeyInfo(List content, String id)
KeyInfo を作成します。id パラメータは XML ID 属性の値を表現し、ほかの XML 構造から KeyInfo を参照する場合に便利です。content - 鍵情報の型を表現する 1 つ以上の XMLStructure のリスト。以後の変更から保護するために、このリストは防御的にコピーされる。id - XML ID の値。null も可KeyInfoNullPointerException - content が null である場合IllegalArgumentException - content が空である場合ClassCastException - content に XMLStructure 型ではないエントリが含まれている場合public abstract KeyName newKeyName(String name)
KeyName を作成します。name - 鍵を識別する名前KeyNameNullPointerException - name が null である場合public abstract KeyValue newKeyValue(PublicKey key) throws KeyException
KeyValue を作成します。key - 公開鍵KeyValueKeyException - key のアルゴリズムがこの KeyInfoFactory によって認識またはサポートされない場合NullPointerException - key が null である場合public abstract PGPData newPGPData(byte[] keyId)
PGPData を作成します。keyId - RFC 2440、セクション 11.2 で定義されている PGP 公開鍵識別子。以後の変更から保護するために、この配列は複製される。PGPDataNullPointerException - keyId が null である場合IllegalArgumentException - 鍵識別子の形式が正しくない場合public abstract PGPData newPGPData(byte[] keyId, byte[] keyPacket, List other)
PGPData を作成します。keyId - RFC 2440、セクション 11.2 で定義されている PGP 公開鍵識別子。以後の変更から保護するために、この配列は複製される。keyPacket - RFC 2440、セクション 5.5 で定義されている PGP 鍵データパケット。以後の変更から保護するために、この配列は複製される。null も可。other - 外部名前空間からの要素を表現する XMLStructure のリスト。以後の変更から保護するために、このリストは防御的にコピーされる。null または空文字列も可。PGPDataNullPointerException - keyId が null である場合IllegalArgumentException - keyId または keyPacket の形式が正しくない場合。keyPacket の場合、パケットヘッダーの形式が判定され、タグは鍵データの型であるか検査される。パケット本体のコンテンツと形式は検査されない。ClassCastException - other に XMLStructure 型ではないエントリが含まれている場合public abstract PGPData newPGPData(byte[] keyPacket, List other)
PGPData を作成します。keyPacket - RFC 2440、セクション 5.5 で定義されている PGP 鍵データパケット。以後の変更から保護するために、この配列は複製される。other - 外部名前空間からの要素を表現する XMLStructure のリスト。以後の変更から保護するために、このリストは防御的にコピーされる。null または空文字列も可。PGPDataNullPointerException - keyPacket が null である場合IllegalArgumentException - keyPacket の形式が正しくない場合。keyPacket の場合、パケットヘッダーの形式が判定され、タグは鍵データの型であるか検査される。パケット本体のコンテンツと形式は検査されない。ClassCastException - other に XMLStructure 型ではないエントリが含まれている場合public abstract RetrievalMethod newRetrievalMethod(String uri)
RetrievalMethod を作成します。uri - 取得される KeyInfo 情報を識別する URIRetrievalMethodNullPointerException - uri が null である場合IllegalArgumentException - uri が RFC 2396 に準拠していない場合public abstract RetrievalMethod newRetrievalMethod(String uri, String type, List transforms)
RetrievalMethod を作成します。uri - 取得される KeyInfo 情報を識別する URItype - 取得される KeyInfo 情報の型を識別する URI。null も可transforms - Transform のリスト。以後の変更から保護するために、このリストは防御的にコピーされる。null または空文字列も可。RetrievalMethodNullPointerException - uri が null である場合IllegalArgumentException - uri が RFC 2396 に準拠していない場合ClassCastException - transforms に Transform 型ではないエントリが含まれている場合public abstract X509Data newX509Data(List content)
X509Data を作成します。content - 1 つ以上の X.509 コンテンツ型のリスト。有効な型は、String (被認証者名)、byte[] (被認証者の鍵識別子)、X509Certificate、X509CRL、または XMLStructure (X509IssuerSerial オブジェクトまたは外部名前空間からの要素) です。被認証者名は RFC 2253 String 形式の識別名である。実装は、RFC 2253 で定義されている属性の型キーワード (CN、L、ST、O、OU、C、STREET、DC、および UID) をサポートする必要がある。実装は、追加のキーワードをサポートすることもできる。以後の変更から保護するために、このリストは防御的にコピーされる。X509DataNullPointerException - content が null である場合IllegalArgumentException - content が空の場合、被認証者名が RFC 2253 に準拠していない場合、または属性の型キーワードの 1 つが認識されない場合。ClassCastException - content に上記の有効な型のどれでもないエントリが含まれている場合public abstract X509IssuerSerial newX509IssuerSerial(String issuerName, BigInteger serialNumber)
X509IssuerSerial を作成します。issuerName - RFC 2253 String 形式の発行者の識別名。実装は、RFC 2253 で定義されている属性の型キーワード (CN、L、ST、O、OU、C、STREET、DC、および UID) をサポートする必要がある。実装は、追加のキーワードをサポートすることもできる。serialNumber - シリアル番号X509IssuerSerialNullPointerException - issuerName または serialNumber が null の場合IllegalArgumentException - 発行者名が RFC 2253 に準拠していない場合、または属性の型キーワードの 1 つが認識されない場合。public abstract boolean isFeatureSupported(String feature)
feature - 機能名 (絶対 URI として)true、そうでない場合は falseNullPointerException - feature が null である場合public abstract URIDereferencer getURIDereferencer()
RetrievalMethod オブジェクト内でデフォルトの間接参照 URI に使用される URIDereferencer への参照を返します。URIDereferencer への参照public abstract KeyInfo unmarshalKeyInfo(XMLStructure xmlStructure) throws MarshalException
xmlStructure - keyinfo の非整列化を開始するメカニズム固有の XML 構造KeyInfoNullPointerException - xmlStructure が null である場合ClassCastException - xmlStructure の型がこのファクトリには不適切な場合MarshalException - 非整列化の実行中に回復不可能な例外が発生した場合 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.