|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.security.cert.CertPath
public abstract class CertPath
不変な証明書のシーケンス (証明書パス) です。
これはすべての CertPath
に共通なメソッドを定義する abstract クラスです。サブクラスでは、さまざまな種類の証明書 (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
をスローします。
並行アクセス
すべての CertPath
オブジェクトは、スレッドに対して安全でなければなりません。つまり、このクラスで定義されたメソッドは、悪影響を与えることなく、複数スレッドが並行して単一 CertPath
オブジェクト (または 1 つ以上) 上で呼び出すことができます。このことは CertPath.getCertificates
が返す List
についても当てはまります。
CertPath
オブジェクトは不変で、かつスレッドに対して安全でなければならないため、アクセスの同期の心配をすることなく、さまざまなコードにこのオブジェクトを渡すことができます。
CertificateFactory
,
CertPathBuilder
,
直列化された形式入れ子のクラスの概要 | |
---|---|
protected static class |
CertPath.CertPathRep
直列化の代替 CertPath クラスです。 |
コンストラクタの概要 | |
---|---|
protected |
CertPath(String type)
指定されたタイプの 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 オブジェクトに置き換えます。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
コンストラクタの詳細 |
---|
protected CertPath(String type)
CertPath
を作成します。
ほとんどのユーザは CertificateFactory
を使用して CertPath
を作成するため、このコンストラクタは保護されています。
type
- このパス内の Certificate
のタイプの標準名メソッドの詳細 |
---|
public String getType()
Certificate
のタイプを返します。これは、証明書パス内のすべての Certificate
に対する cert.getType()
で返される文字列と同じです。
Certificate
のタイプ (null にはならない)public abstract Iterator<String> getEncodings()
Iterator
を remove
メソッドで変更しようとすると、UnsupportedOperationException
がスローされます。
Iterator
public boolean equals(Object other)
CertPath
のタイプが等しく、証明書の List
が (つまり List
内の Certificate
が暗黙的に) 等しい場合、これらの CertPath
は等しいことになります。CertPath
は CertPath
でないオブジェクトと等しくなることはありません。
このアルゴリズムはこのメソッドに実装されています。オーバーライドするときは、ここで説明した動作が維持されるようにしなければなりません。
Object
内の equals
other
- この証明書パスと等しいかどうかが判定されるオブジェクト
Object.hashCode()
,
Hashtable
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()
となることが保証されます。
Object
内の hashCode
Object.equals(java.lang.Object)
,
Hashtable
public String toString()
Certificate
で toString
メソッドを呼び出します。
Object
内の toString
public abstract byte[] getEncoded() throws CertificateEncodingException
CertificateEncodingException
- 符号化エラーが発生した場合public abstract byte[] getEncoded(String encoding) throws CertificateEncodingException
encoding
- 使用する符号化名
CertificateEncodingException
- 符号化のエラーが発生した場合、あるいは指定した符号化がサポートされていない場合public abstract List<? extends Certificate> getCertificates()
List
は不変で、スレッドに対して安全でなければなりません。
Certificate
の不変な List
(空は可、null は不可)protected Object writeReplace() throws ObjectStreamException
CertPath
を CertPathRep
オブジェクトに置き換えます。
CertPathRep
ObjectStreamException
- この証明書パスを表す CertPathRep
を生成できなかった場合
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。