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