クラスKeyInfoFactory
KeyInfoオブジェクトを作成するため、または対応するXML表現からKeyInfoオブジェクトを非整列化するためのファクトリ。
KeyInfoFactoryの各インスタンスは、特定のXMLメカニズム型をサポートします。 KeyInfoFactoryを作成するには、static getInstanceメソッドのうちの1つを呼び出し、目的のXMLメカニズム型内で渡します。たとえば:
KeyInfoFactory factory = KeyInfoFactory.getInstance("DOM");
このファクトリが生成するオブジェクトは、「DOMのメカニズム要件」で定義されているDOM相互運用性の要件に基づいて作成されます。 標準メカニズムのタイプのリストは、「Javaセキュリティ標準アルゴリズム名仕様」のKeyInfoFactoryのセクションを参照してください。
KeyInfoFactory実装は、Providerメカニズムを使用して登録およびロードされます。 たとえば、DOMメカニズムをサポートするサービス・プロバイダはProviderサブクラスで次のように指定されます。
put("KeyInfoFactory.DOM", "org.example.DOMKeyInfoFactory");
また、このファクトリによって作成されるXMLStructureには、KeyInfoに固有で再利用には対応していない状態が格納されます。
実装は、デフォルトのメカニズム・タイプDOMを最低限サポートする必要があります。
呼出し側は同じKeyInfoFactoryインスタンスを使用して、特定のKeyInfoオブジェクトのXMLStructureを作成する必要があります。 異なるプロバイダからのXMLStructureまたは異なるメカニズム型がともに使用される場合、動作は定義されていません。
並行アクセス
このクラスのstaticメソッドは、スレッド・セーフであることが保証されています。 このクラスで定義されているstaticメソッドは、悪影響を与えることなく、複数スレッドが並行して呼び出すことができます。
しかしこのことは、このクラスで定義されている非staticメソッドには当てはまりません。 特定のプロバイダで特に説明がないかぎり、単一のKeyInfoFactoryインスタンスに並行してアクセスする必要のある複数スレッドは、スレッド間で同期を取り、必要に応じてロックしなければいけません。 異なるKeyInfoFactoryインスタンスを操作する複数スレッドは、同期化される必要はありません。
- 導入されたバージョン:
- 1.6
-
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明static KeyInfoFactoryデフォルトのXML処理メカニズムおよび表現型("DOM")をサポートするKeyInfoFactoryを返します。static KeyInfoFactorygetInstance(String mechanismType) 指定されたXML処理メカニズムおよび表現の型(例: 「DOM」)をサポートするKeyInfoFactoryを返します。static KeyInfoFactorygetInstance(String mechanismType, String provider) 指定したプロバイダが提供する、要求されたXML処理メカニズムおよび表現型(例: 「DOM」)をサポートするKeyInfoFactoryを返します。static KeyInfoFactorygetInstance(String mechanismType, Provider provider) 指定したプロバイダが提供する、要求されたXML処理メカニズムおよび表現型(例: 「DOM」)をサポートするKeyInfoFactoryを返します。final StringこのKeyInfoFactoryがサポートするXML処理メカニズムおよび表現の型を返します(例: 「DOM」)。final ProviderこのKeyInfoFactoryのプロバイダを返します。abstract URIDereferencerRetrievalMethodオブジェクト内でデフォルトの間接参照URIに使用されるURIDereferencerへの参照を返します。abstract booleanisFeatureSupported(String feature) 指定した機能がサポートされるかどうかを示します。abstract KeyInfonewKeyInfo(List<? extends XMLStructure> content) 指定されたキー情報の型のリストを格納するKeyInfoを作成します。abstract KeyInfonewKeyInfo(List<? extends XMLStructure> content, String id) 指定されたキー情報の型およびオプションの識別子のリストを格納するKeyInfoを作成します。abstract KeyNamenewKeyName(String name) 指定された名前からKeyNameを作成します。abstract KeyValuenewKeyValue(PublicKey key) 指定された公開キーからKeyValueを作成します。abstract PGPDatanewPGPData(byte[] keyId) 指定したPGP公開キー識別子からPGPDataを作成します。abstract PGPDatanewPGPData(byte[] keyId, byte[] keyPacket, List<? extends XMLStructure> other) 指定したPGP公開キー識別子、およびオプションのキー・データ・パケットと外部要素のリストからPGPDataを作成します。abstract PGPDatanewPGPData(byte[] keyPacket, List<? extends XMLStructure> other) 指定したPGPキー・データ・パケット、およびオプションの外部要素のリストからPGPDataを作成します。abstract RetrievalMethodnewRetrievalMethod(String uri) 指定されたURIからRetrievalMethodを作成します。abstract RetrievalMethodnewRetrievalMethod(String uri, String type, List<? extends Transform> transforms) 指定されたパラメータからRetrievalMethodを作成します。abstract X509DatanewX509Data(List<?> content) 指定したX.509コンテンツのリストを格納するX509Dataを作成します。abstract X509IssuerSerialnewX509IssuerSerial(String issuerName, BigInteger serialNumber) 指定したX.500発行者識別名およびシリアル番号からX509IssuerSerialを作成します。abstract KeyInfounmarshalKeyInfo(XMLStructure xmlStructure) メカニズム固有のXMLStructure(例:DOMStructure)インスタンスからの新しいKeyInfoインスタンスを非整列化します。
-
コンストラクタの詳細
-
KeyInfoFactory
protected KeyInfoFactory()デフォルトのコンストラクタ、サブクラスによる呼出し用。
-
-
メソッドの詳細
-
getInstance
public static KeyInfoFactory getInstance(String mechanismType) 指定されたXML処理メカニズムおよび表現の型(例: 「DOM」)をサポートするKeyInfoFactoryを返します。このメソッドは標準JCAプロバイダ検索メカニズムを使用して、目的のメカニズム型の
KeyInfoFactory実装を検出およびインスタンス化します。 登録済みのセキュリティProviderのリストを、最優先のProviderからトラバースします。 指定したメカニズムをサポートする最初のProviderからの新しいKeyInfoFactoryオブジェクトが返されます。登録済みプロバイダのリストは、
Security.getProviders()メソッド経由で取得できます。- 実装上のノート:
- JDKリファレンス実装では、さらに
jdk.security.provider.preferredSecurityプロパティを使用して、指定したアルゴリズムの優先プロバイダ順序を決定します。 これは、Security.getProviders()によって返されるプロバイダの順序とは異なる場合があります。 - パラメータ:
mechanismType- XML処理メカニズムおよび表現の型。 標準メカニズムのタイプのリストは、「Javaセキュリティ標準アルゴリズム名仕様」のKeyInfoFactoryのセクションを参照してください。- 戻り値:
- 新しい
KeyInfoFactory - スロー:
NullPointerException-mechanismTypeがnullである場合NoSuchMechanismException- 指定したメカニズムのKeyInfoFactory実装をサポートするProviderが存在しない場合- 関連項目:
-
getInstance
public static KeyInfoFactory getInstance(String mechanismType, Provider provider) 指定したプロバイダが提供する、要求されたXML処理メカニズムおよび表現型(例: 「DOM」)をサポートするKeyInfoFactoryを返します。 指定したProviderオブジェクトは、プロバイダ・リストに登録する必要はありません。- パラメータ:
mechanismType- XML処理メカニズムおよび表現の型。 標準メカニズムのタイプのリストは、「Javaセキュリティ標準アルゴリズム名仕様」のKeyInfoFactoryのセクションを参照してください。provider-Providerオブジェクト- 戻り値:
- 新しい
KeyInfoFactory - スロー:
NullPointerException-mechanismTypeまたはproviderがnullの場合NoSuchMechanismException- 指定したメカニズム用のKeyInfoFactory実装が指定したProviderオブジェクトで使用できない場合- 関連項目:
-
getInstance
public static KeyInfoFactory getInstance(String mechanismType, String provider) throws NoSuchProviderException 指定したプロバイダが提供する、要求されたXML処理メカニズムおよび表現型(例: 「DOM」)をサポートするKeyInfoFactoryを返します。 指定したプロバイダは、セキュリティ・プロバイダ・リストに登録する必要があります。登録済みプロバイダのリストは、
Security.getProviders()メソッド経由で取得できます。- パラメータ:
mechanismType- XML処理メカニズムおよび表現の型。 標準メカニズムのタイプのリストは、「Javaセキュリティ標準アルゴリズム名仕様」のKeyInfoFactoryのセクションを参照してください。provider- プロバイダ名の文字列名- 戻り値:
- 新しい
KeyInfoFactory - スロー:
NoSuchProviderException- 指定されたプロバイダがセキュリティ・プロバイダ・リストに登録されていない場合NullPointerException-mechanismTypeまたはproviderがnullの場合NoSuchMechanismException- 指定したメカニズム用のKeyInfoFactory実装が指定したプロバイダで使用できない場合- 関連項目:
-
getInstance
public static KeyInfoFactory getInstance()デフォルトのXML処理メカニズムおよび表現型("DOM")をサポートするKeyInfoFactoryを返します。このメソッドは標準JCAプロバイダ検索メカニズムを使用して、デフォルトのメカニズム型の
KeyInfoFactory実装を検出およびインスタンス化します。 登録済みのセキュリティProviderのリストを、最優先のProviderからトラバースします。 DOMメカニズムをサポートする最初のProviderからの新しいKeyInfoFactoryオブジェクトが返されます。登録済みプロバイダのリストは、
Security.getProviders()メソッド経由で取得できます。- 実装上のノート:
- JDKリファレンス実装では、さらに
jdk.security.provider.preferredSecurityプロパティを使用して、指定したアルゴリズムの優先プロバイダ順序を決定します。 これは、Security.getProviders()によって返されるプロバイダの順序とは異なる場合があります。 - 戻り値:
- 新しい
KeyInfoFactory - スロー:
NoSuchMechanismException- DOMメカニズムのKeyInfoFactory実装をサポートするProviderが存在しない場合- 関連項目:
-
getMechanismType
public final String getMechanismType()このKeyInfoFactoryがサポートするXML処理メカニズムおよび表現の型を返します(例: 「DOM」)。- 戻り値:
- この
KeyInfoFactoryがサポートするXML処理メカニズム型
-
getProvider
-
newKeyInfo
public abstract KeyInfo newKeyInfo(List<? extends XMLStructure> content) 指定されたキー情報の型のリストを格納するKeyInfoを作成します。- パラメータ:
content- キー情報の型を表現する1つ以上のXMLStructureのリスト。 以後の変更から保護するために、このリストは防御的にコピーされる。- 戻り値:
KeyInfo- スロー:
NullPointerException-contentがnullである場合IllegalArgumentException-contentが空である場合ClassCastException-contentにXMLStructure型ではないエントリが含まれている場合
-
newKeyInfo
public abstract KeyInfo newKeyInfo(List<? extends XMLStructure> content, String id) 指定されたキー情報の型およびオプションの識別子のリストを格納するKeyInfoを作成します。idパラメータはXMLID属性の値を表現し、ほかのXML構造からKeyInfoを参照する場合に便利です。- パラメータ:
content- キー情報の型を表現する1つ以上のXMLStructureのリスト。 以後の変更から保護するために、このリストは防御的にコピーされる。id- XMLIDの値。nullも可- 戻り値:
KeyInfo- スロー:
NullPointerException-contentがnullである場合IllegalArgumentException-contentが空である場合ClassCastException-contentにXMLStructure型ではないエントリが含まれている場合
-
newKeyName
指定された名前からKeyNameを作成します。- パラメータ:
name- キーを識別する名前- 戻り値:
KeyName- スロー:
NullPointerException-nameがnullである場合
-
newKeyValue
public abstract KeyValue newKeyValue(PublicKey key) throws KeyException 指定された公開キーからKeyValueを作成します。- パラメータ:
key- 公開キー- 戻り値:
KeyValue- スロー:
KeyException-keyのアルゴリズムがこのKeyInfoFactoryによって認識またはサポートされない場合NullPointerException-keyがnullである場合
-
newPGPData
public abstract PGPData newPGPData(byte[] keyId) 指定したPGP公開キー識別子からPGPDataを作成します。- パラメータ:
keyId- RFC 2440、セクション11.2で定義されているPGP公開キー識別子。 以後の変更から保護するために、この配列は複製される。- 戻り値:
PGPData- スロー:
NullPointerException-keyIdがnullである場合IllegalArgumentException- キー識別子の形式が正しくない場合
-
newPGPData
public abstract PGPData newPGPData(byte[] keyId, byte[] keyPacket, List<? extends XMLStructure> other) 指定したPGP公開キー識別子、およびオプションのキー・データ・パケットと外部要素のリストから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型ではないエントリが含まれている場合
-
newPGPData
public abstract PGPData newPGPData(byte[] keyPacket, List<? extends XMLStructure> other) 指定したPGPキー・データ・パケット、およびオプションの外部要素のリストからPGPDataを作成します。- パラメータ:
keyPacket- RFC 2440、セクション5.5で定義されているPGPキー・データ・パケット。 以後の変更から保護するために、この配列は複製される。other- 外部名前空間からの要素を表現するXMLStructureのリスト。 以後の変更から保護するために、このリストは防御的にコピーされる。nullまたは空文字列も可。- 戻り値:
PGPData- スロー:
NullPointerException-keyPacketがnullである場合IllegalArgumentException-keyPacketの形式が正しくない場合。keyPacketの場合、パケット・ヘッダーの形式が判定され、タグはキー・データの型であるか検査される。 パケット本体のコンテンツと形式は検査されない。ClassCastException-otherにXMLStructure型ではないエントリが含まれている場合
-
newRetrievalMethod
public abstract RetrievalMethod newRetrievalMethod(String uri) 指定されたURIからRetrievalMethodを作成します。- パラメータ:
uri- 取得されるKeyInfo情報を識別するURI- 戻り値:
RetrievalMethod- スロー:
NullPointerException-uriがnullである場合IllegalArgumentException-uriがRFC 2396に準拠していない場合
-
newRetrievalMethod
public abstract RetrievalMethod newRetrievalMethod(String uri, String type, List<? extends Transform> transforms) 指定されたパラメータからRetrievalMethodを作成します。- パラメータ:
uri- 取得されるKeyInfo情報を識別するURItype- 取得されるKeyInfo情報の型を識別するURI。nullも可transforms-Transformのリスト。 以後の変更から保護するために、このリストは防御的にコピーされる。nullまたは空文字列も可。- 戻り値:
RetrievalMethod- スロー:
NullPointerException-uriがnullである場合IllegalArgumentException-uriがRFC 2396に準拠していない場合ClassCastException-transformsにTransform型ではないエントリが含まれている場合
-
newX509Data
指定したX.509コンテンツのリストを格納する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に上記の有効な型のどれでもないエントリが含まれている場合
-
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またはserialNumberがnullの場合IllegalArgumentException- 発行者名がRFC 2253に準拠していない場合、または属性の型キーワードの1つが認識されない場合。
-
isFeatureSupported
public abstract boolean isFeatureSupported(String feature) 指定した機能がサポートされるかどうかを示します。- パラメータ:
feature- 機能名(絶対URIとして)- 戻り値:
- 指定した機能がサポートされる場合は
true、そうでない場合はfalse - スロー:
NullPointerException-featureがnullである場合
-
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-xmlStructureがnullである場合ClassCastException-xmlStructureの型がこのファクトリには不適切な場合MarshalException- 非整列化の実行中に回復不可能な例外が発生した場合
-