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 KeyInfoFactory
getInstance
(String mechanismType) 指定されたXML処理メカニズムおよび表現の型(例: 「DOM」)をサポートするKeyInfoFactory
を返します。static KeyInfoFactory
getInstance
(String mechanismType, String provider) 指定したプロバイダが提供する、要求されたXML処理メカニズムおよび表現型(例: 「DOM」)をサポートするKeyInfoFactory
を返します。static KeyInfoFactory
getInstance
(String mechanismType, Provider provider) 指定したプロバイダが提供する、要求されたXML処理メカニズムおよび表現型(例: 「DOM」)をサポートするKeyInfoFactory
を返します。final String
このKeyInfoFactory
がサポートするXML処理メカニズムおよび表現の型を返します(例: 「DOM」)。final Provider
このKeyInfoFactory
のプロバイダを返します。abstract URIDereferencer
RetrievalMethod
オブジェクト内でデフォルトの間接参照URIに使用されるURIDereferencer
への参照を返します。abstract boolean
isFeatureSupported
(String feature) 指定した機能がサポートされるかどうかを示します。abstract KeyInfo
newKeyInfo
(List<? extends XMLStructure> content) 指定されたキー情報の型のリストを格納するKeyInfo
を作成します。abstract KeyInfo
newKeyInfo
(List<? extends XMLStructure> 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<? extends XMLStructure> other) 指定したPGP公開キー識別子、およびオプションのキー・データ・パケットと外部要素のリストからPGPData
を作成します。abstract PGPData
newPGPData
(byte[] keyPacket, List<? extends XMLStructure> other) 指定したPGPキー・データ・パケット、およびオプションの外部要素のリストからPGPData
を作成します。abstract RetrievalMethod
newRetrievalMethod
(String uri) 指定されたURIからRetrievalMethod
を作成します。abstract RetrievalMethod
newRetrievalMethod
(String uri, String type, List<? extends Transform> 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
インスタンスを非整列化します。
-
コンストラクタの詳細
-
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.preferred
Security
プロパティを使用して、指定されたアルゴリズムの優先プロバイダの順序を決定します。 これは、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.preferred
Security
プロパティを使用して、指定されたアルゴリズムの優先プロバイダの順序を決定します。 これは、Security.getProviders()
によって返されるプロバイダの順序とは異なる場合があります。 - 戻り値:
- 新しい
KeyInfoFactory
- 例外:
NoSuchMechanismException
- DOMメカニズムのKeyInfoFactory
実装をサポートする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
指定された名前から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
- 非整列化の実行中に回復不可能な例外が発生した場合
-