- すべての実装されたインタフェース:
Serializable
public abstract class CertPath extends Object implements Serializable
これはすべてのCertPath
に共通なメソッドを定義する抽象クラスです。 サブクラスでは、さまざまな種類の証明書(X.509、PGPなど)を処理できます。
すべてのCertPath
にはタイプ、Certificate
のリスト、サポートされる1つ以上の符号化があります。 CertPath
クラスは不変であるため、構築後に外部から目に見えるかたちでCertPath
を変更することはできません。 このことは、このクラスのすべてのpublicフィールドとメソッド、そしてサブクラスで追加またはオーバーライドされたpublicフィールドとメソッドに当てはまります。
タイプはString
で、証明書パスでCertificate
のタイプを特定します。 証明書パスcertPath
の各証明書cert
では、cert.getType().equals(certPath.getType())
はtrue
である必要があります。
Certificate
のリストは0個以上のCertificate
からなる順序付きのList
です。 このList
と、含まれるCertificate
は不変である必要があります。
それぞれのCertPath
オブジェクトは、ほかの相手に格納したり伝送したりするためにバイト配列に変換できるように、1つ以上の符号化をサポートしていなければいけません。 なるべくその符号化は、PKCS#7のように明確にドキュメント化されている標準にします。 CertPath
でサポートされている符号化のうちの1つを、デフォルトの符号化とします。 符号化を明示的に要求しない場合(たとえばgetEncoded()
メソッド)に、デフォルトの符号化が使用されます。
すべてのCertPath
オブジェクトはSerializable
でもあります。 直列化中にCertPath
オブジェクトは代替CertPathRep
オブジェクトに解釈処理されます。 これにより、基本的な実装にかかわらず、CertPath
オブジェクトを同等の表現に直列化できます。
CertPath
オブジェクトはCertificateFactory
で作成されますが、CertPathBuilder
のようなほかのクラスから返されることもあります。
規則では、X509Certificate
で構成されているX.509 CertPath
は、ターゲット証明書で始まり、トラスト・アンカーが発行した証明書で終わるように順序付けされています。 つまり、証明書の発行者は、その次に続く証明書の主体になります。 TrustAnchor
を表す証明書は、証明書パスに含まれません。 未検査のX.509 CertPath
はこの規則に従いません。 PKIX CertPathValidator
は、この規則の違反を検出することにより、証明書パスが無効になりCertPathValidatorException
がスローされるのを防ぎます。
Javaプラットフォームの実装は、すべて次の標準のCertPath
符号化をサポートする必要があります。
PKCS7
PkiPath
並行アクセス
すべてのCertPath
オブジェクトは、スレッドに対して安全である必要があります。 つまり、単一の(または複数の) CertPath
オブジェクト上で、このクラスに定義されたメソッドを複数のスレッドが同時に呼び出しても、悪影響はありません。 このことはCertPath.getCertificates
が返すList
についても当てはまります。
CertPath
オブジェクトは、不変かつスレッドに対して安全でなければならないので、アクセスの調整を心配することなく、オブジェクトをさまざまなコードに渡すことができます。 CertPath
オブジェクトとList
オブジェクトが不変なので、通常、スレッドに対して安全にすることは難しくありません。
- 導入されたバージョン:
- 1.4
- 関連項目:
CertificateFactory
,CertPathBuilder
, 直列化された形式
-
ネストされたクラスのサマリー
ネストされたクラス 修飾子と型 クラス 説明 protected static class
CertPath.CertPathRep
直列化の代替CertPath
クラスです。 -
コンストラクタのサマリー
-
メソッドのサマリー
修飾子と型 メソッド 説明 boolean
equals(Object other)
指定されたオブジェクトとこの証明書パスが等しいかどうかを比較します。abstract List<? extends Certificate>
getCertificates()
この証明書パス内の証明書のリストを返します。abstract byte[]
getEncoded()
デフォルトの符号化を使用して、この証明書パスの符号化された形式を返します。abstract byte[]
getEncoded(String encoding)
指定した符号化を使用して、この証明書パスの符号化された形式を返します。abstract Iterator<String>
getEncodings()
この証明書パスでサポートする符号化の繰返しを返します。String
getType()
この証明書パス内のCertificate
のタイプを返します。int
hashCode()
この証明書パスのハッシュ・コードを返します。String
toString()
この証明書パスの文字列表現を返します。protected Object
writeReplace()
直列化されるCertPath
をCertPathRep
オブジェクトに置き換えます。
-
コンストラクタの詳細
-
メソッドの詳細
-
getType
public String getType()この証明書パス内のCertificate
のタイプを返します。 これは、証明書パス内のすべてのCertificate
に対するcert.getType()
で返される文字列と同じです。- 戻り値:
- この証明書パス内の
Certificate
のタイプ(nullにはならない)
-
getEncodings
この証明書パスでサポートする符号化の繰返しを返します。 返されたIterator
をremove
メソッドで変更しようとすると、UnsupportedOperationException
がスローされます。- 戻り値:
- サポートされる符号化の名前(String)を反復する
Iterator
-
equals
public boolean equals(Object other)指定されたオブジェクトとこの証明書パスが等しいかどうかを比較します。 2つのCertPath
のタイプが等しく、証明書のList
が(つまりList
内のCertificate
が暗黙的に)等しい場合、これらのCertPathは等しいことになります。CertPath
はCertPath
でないオブジェクトと等しくなることはありません。このアルゴリズムはこのメソッドに実装されています。 オーバーライドするときは、ここで説明した動作が維持されるようにしなければいけません。
- オーバーライド:
equals
、クラス:Object
- パラメータ:
other
- この証明書パスと等しいかどうかが判定されるオブジェクト- 戻り値:
- 指定されたオブジェクトがこの証明書パスに等しい場合はtrue、そうでない場合はfalse
- 関連項目:
Object.hashCode()
、HashMap
-
hashCode
public int hashCode()この証明書パスのハッシュ・コードを返します。 証明書パスのハッシュ・コードは、次の計算の結果として定義されます。
これにより、hashCode = path.getType().hashCode(); hashCode = 31*hashCode + path.getCertificates().hashCode();
Object.hashCode
の一般規則によって要求されるように、任意の2つの証明書パスpath1
とpath2
でpath1.equals(path2)
であれば、path1.hashCode()==path2.hashCode()
となることが保証されます。- オーバーライド:
hashCode
、クラス:Object
- 戻り値:
- この証明書パスにおけるハッシュ・コード値
- 関連項目:
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
toString
public String toString()この証明書パスの文字列表現を返します。 パスの各Certificate
でtoString
メソッドを呼び出します。 -
getEncoded
public abstract byte[] getEncoded() throws CertificateEncodingExceptionデフォルトの符号化を使用して、この証明書パスの符号化された形式を返します。- 戻り値:
- 符号化されたバイト
- 例外:
CertificateEncodingException
- 符号化エラーが発生した場合
-
getEncoded
public abstract byte[] getEncoded(String encoding) throws CertificateEncodingException指定した符号化を使用して、この証明書パスの符号化された形式を返します。- パラメータ:
encoding
- 使用する符号化名- 戻り値:
- 符号化されたバイト
- 例外:
CertificateEncodingException
- 符号化エラーが発生した場合、または要求された符号化がサポートされていない場合
-
getCertificates
public abstract List<? extends Certificate> getCertificates()この証明書パス内の証明書のリストを返します。 返されるList
は不変で、スレッドに対して安全である必要があります。- 戻り値:
Certificate
の不変なList
(空は可、nullは不可)
-
writeReplace
protected Object writeReplace() throws ObjectStreamException直列化されるCertPath
をCertPathRep
オブジェクトに置き換えます。- 戻り値:
- 直列化される
CertPathRep
- 例外:
ObjectStreamException
- この証明書パスを表すCertPathRep
オブジェクトを作成できなかった場合
-