- java.lang.Object
 - 
- javax.xml.crypto.dsig.keyinfo.KeyInfoFactory
 
 
- 
public abstract class KeyInfoFactory extends Object
ゼロからKeyInfoオブジェクトを作成するため、または対応するXML表現からKeyInfoオブジェクトを非整列化するためのファクトリ。KeyInfoFactoryの各インスタンスは、特定のXMLメカニズム型をサポートします。KeyInfoFactoryを作成するには、staticgetInstanceメソッドのうちの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
 
 
- 
- 
コンストラクタのサマリー
コンストラクタ 修飾子 コンストラクタ 説明 protectedKeyInfoFactory()デフォルトのコンストラクタ、サブクラスによる呼出し用。 
- 
メソッドのサマリー
修飾子と型 メソッド 説明 static KeyInfoFactorygetInstance()デフォルトの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を返します。StringgetMechanismType()このKeyInfoFactoryがサポートするXML処理メカニズムおよび表現の型を返します(例: 「DOM」)。ProvidergetProvider()このKeyInfoFactoryのプロバイダを返します。abstract URIDereferencergetURIDereferencer()RetrievalMethodオブジェクト内でデフォルトの間接参照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インスタンスを非整列化します。 
 - 
 
- 
- 
メソッドの詳細
- 
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が存在しない場合- 関連項目:
 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オブジェクトで使用できない場合- 関連項目:
 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実装が指定したプロバイダで使用できない場合- 関連項目:
 Provider
 
- 
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が存在しない場合- 関連項目:
 Provider
 
- 
getMechanismType
public final String getMechanismType()
このKeyInfoFactoryがサポートするXML処理メカニズムおよび表現の型を返します(例: 「DOM」)。- 戻り値:
 - この
KeyInfoFactoryがサポートするXML処理メカニズム型 
 
- 
getProvider
public final Provider getProvider()
このKeyInfoFactoryのプロバイダを返します。- 戻り値:
 - この
KeyInfoFactoryのプロバイダ 
 
- 
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
public abstract KeyName newKeyName(String name)
指定された名前から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
public abstract X509Data newX509Data(List<?> content)
指定した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- 非整列化の実行中に回復不可能な例外が発生した場合
 
 - 
 
 -