モジュール java.base
パッケージ java.security.cert

クラスTrustAnchor

java.lang.Object
java.security.cert.TrustAnchor

public class TrustAnchor
extends Object
トラスト・アンカー、またはもっとも信頼できる証明書発行局(CA)です。

このクラスは、X.509証明書パスの検証で信頼できるアンカーとして使用される「もっとも信頼できるCA」を表します。 もっとも信頼できるCAには、CAの公開キー、CAの名前、およびこのキーを使って検証されるパスのセットに適用される制約が含まれます。 これらのパラメータは、信頼できるX509Certificateの形式で、または個別のパラメータとして指定できます。

並行アクセス

すべてのTrustAnchorオブジェクトは、不変で、スレッドに対して安全である必要があります。 つまり、単一の(または複数の) TrustAnchorオブジェクト上で、このクラスに定義されたメソッドを複数のスレッドが同時に呼び出しても、悪影響はありません。 TrustAnchorオブジェクトは、不変かつスレッドに対して安全でなければならないので、アクセスの調整を心配することなく、オブジェクトをさまざまなコードに渡すことができます。 このことは、このクラスのすべてのpublicフィールドとメソッド、そしてサブクラスで追加またはオーバーライドされたpublicフィールドとメソッドに当てはまります。

導入されたバージョン:
1.4
関連項目:
PKIXParameters(Set), PKIXBuilderParameters(Set, CertSelector)
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ 説明
    TrustAnchor​(String caName, PublicKey pubKey, byte[] nameConstraints)
    識別名と公開キーとでもっとも信頼できるCAが指定されているTrustAnchorのインスタンスを作成します。
    TrustAnchor​(X509Certificate trustedCert, byte[] nameConstraints)
    指定したX509Certificateと名前制約(オプション)でTrustAnchorのインスタンスを作成します。名前制約は、X.509証明書パスの妥当性を検査するときの制約を追加するために使用されます。
    TrustAnchor​(X500Principal caPrincipal, PublicKey pubKey, byte[] nameConstraints)
    X500Principalと公開キーとでもっとも信頼できるCAが指定されているTrustAnchorのインスタンスを作成します。
  • メソッドのサマリー

    修飾子と型 メソッド 説明
    X500Principal getCA()
    もっとも信頼できるCAのX500Principalとしての名前を返します。
    String getCAName()
    RFC 2253 String形式による、もっとも信頼できるCAの名前を返します。
    PublicKey getCAPublicKey()
    もっとも信頼できるCAの公開キーを返します。
    byte[] getNameConstraints()
    名前制約のパラメータを返します。
    X509Certificate getTrustedCert()
    もっとも信頼できるCA証明書を返します。
    String toString()
    TrustAnchorを説明する書式付き文字列を返します。

    クラス java.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • コンストラクタの詳細

    • TrustAnchor

      public TrustAnchor​(X509Certificate trustedCert, byte[] nameConstraints)
      指定したX509Certificateと名前制約(オプション)でTrustAnchorのインスタンスを作成します。名前制約は、X.509証明書パスの妥当性を検査するときの制約を追加するために使用されます。

      名前制約はバイト配列で指定されます。 このバイト配列には、RFC 5280とX.509で定義されているNameConstraints構造体にあるような名前制約のDER符号化形式が含まれなければいけません。 この構造体のASN.1定義は次のとおりです。

      
        NameConstraints ::= SEQUENCE {
             permittedSubtrees       [0]     GeneralSubtrees OPTIONAL,
             excludedSubtrees        [1]     GeneralSubtrees OPTIONAL }
      
        GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree
      
        GeneralSubtree ::= SEQUENCE {
             base                    GeneralName,
             minimum         [0]     BaseDistance DEFAULT 0,
             maximum         [1]     BaseDistance OPTIONAL }
      
        BaseDistance ::= INTEGER (0..MAX)
      
        GeneralName ::= CHOICE {
             otherName                       [0]     OtherName,
             rfc822Name                      [1]     IA5String,
             dNSName                         [2]     IA5String,
             x400Address                     [3]     ORAddress,
             directoryName                   [4]     Name,
             ediPartyName                    [5]     EDIPartyName,
             uniformResourceIdentifier       [6]     IA5String,
             iPAddress                       [7]     OCTET STRING,
             registeredID                    [8]     OBJECT IDENTIFIER}
       

      以後の変更から保護するために、提供される名前制約のバイト配列は複製されています。

      パラメータ:
      trustedCert - 信頼されたX509Certificate
      nameConstraints - 名前制約をチェックするために使用されるNameConstraints拡張情報をASN.1 DERで符号化した値を含むバイト配列。 拡張情報の値だけが含まれ、OIDやクリティカルの程度を表すフラグは含まれない。 このパラメータを無視するにはnullを指定する
      例外:
      IllegalArgumentException - 名前制約が復号化できない場合
      NullPointerException - 指定されたX509Certificatenullである場合
    • TrustAnchor

      public TrustAnchor​(X500Principal caPrincipal, PublicKey pubKey, byte[] nameConstraints)
      X500Principalと公開キーとでもっとも信頼できるCAが指定されているTrustAnchorのインスタンスを作成します。 名前制約はオプションのパラメータで、X.509証明書パスの妥当性を検査するときの制約を追加するために使用されます。

      名前制約はバイト配列で指定されます。 このバイト配列には、RFC 5280とX.509で定義されているNameConstraints構造体にあるような、名前制約のDER符号化形式が含まれています。 この構造体のASN.1表記については、TrustAnchor(X509Certificate trustedCert, byte[] nameConstraints) のドキュメントを参照してください。

      以後の変更から保護するために、ここで提供されている名前制約のバイト配列は複製されています。

      パラメータ:
      caPrincipal - もっとも信頼できるCAのX500Principalとしての名前
      pubKey - もっとも信頼できるCAの公開キー
      nameConstraints - 名前制約をチェックするために使用されるNameConstraints拡張情報をASN.1 DERで符号化した値を含むバイト配列。 拡張情報の値だけが含まれ、OIDやクリティカルの程度を表すフラグは含まれない。 このパラメータを無視するにはnullを指定する
      例外:
      NullPointerException - 指定されたcaPrincipalパラメータかpubKeyパラメータがnullの場合
      導入されたバージョン:
      1.5
    • TrustAnchor

      public TrustAnchor​(String caName, PublicKey pubKey, byte[] nameConstraints)
      識別名と公開キーとでもっとも信頼できるCAが指定されているTrustAnchorのインスタンスを作成します。 名前制約はオプションのパラメータで、X.509証明書パスの妥当性を検査するときの制約を追加するために使用されます。

      名前制約はバイト配列で指定されます。 このバイト配列には、RFC 5280とX.509で定義されているNameConstraints構造体にあるような、名前制約のDER符号化形式が含まれています。 この構造体のASN.1表記については、TrustAnchor(X509Certificate trustedCert, byte[] nameConstraints) のドキュメントを参照してください。

      以後の変更から保護するために、ここで提供されている名前制約のバイト配列は複製されています。

      パラメータ:
      caName - RFC 2253 String形式による、もっとも信頼できるCAのX.500識別名
      pubKey - もっとも信頼できるCAの公開キー
      nameConstraints - 名前制約をチェックするために使用されるNameConstraints拡張情報をASN.1 DERで符号化した値を含むバイト配列。 拡張情報の値だけが含まれ、OIDやクリティカルの程度を表すフラグは含まれない。 このパラメータを無視するにはnullを指定する
      例外:
      IllegalArgumentException - 指定されたcaNameパラメータが空である(caName.length() == 0)か、形式が正しくないか、または名前制約を復号化できない場合
      NullPointerException - 指定されたcaNameパラメータかpubKeyパラメータがnullの場合
  • メソッドの詳細

    • getTrustedCert

      public final X509Certificate getTrustedCert()
      もっとも信頼できるCA証明書を返します。
      戻り値:
      信頼できるX509Certificate。トラスト・アンカーが信頼できる証明書として指定されていない場合はnull
    • getCA

      public final X500Principal getCA()
      もっとも信頼できるCAのX500Principalとしての名前を返します。
      戻り値:
      もっとも信頼できるCAのX.500識別名。トラスト・アンカーが信頼できる公開キーと名前またはX500Principalのペアとして指定されていない場合はnull
      導入されたバージョン:
      1.5
    • getCAName

      public final String getCAName()
      RFC 2253 String形式による、もっとも信頼できるCAの名前を返します。
      戻り値:
      もっとも信頼できるCAのX.500識別名。トラスト・アンカーが信頼できる公開キーと名前またはX500Principalのペアとして指定されていない場合はnull
    • getCAPublicKey

      public final PublicKey getCAPublicKey()
      もっとも信頼できるCAの公開キーを返します。
      戻り値:
      もっとも信頼できるCAの公開キー。トラスト・アンカーが信頼できる公開キーと名前またはX500Principalのペアとして指定されていない場合はnull
    • getNameConstraints

      public final byte[] getNameConstraints()
      名前制約のパラメータを返します。 指定した名前制約は、このトラスト・アンカーと関連付けられており、X.509証明書パスの妥当性を検査するときの制約を追加するために使用されます。

      名前制約はバイト配列で返されます。 このバイト配列には、RFC 5280とX.509で定義されているNameConstraints構造体にあるような、名前制約のDER符号化形式が含まれています。 この構造体のASN.1表記については、TrustAnchor(X509Certificate trustedCert, byte[] nameConstraints) のドキュメントを参照してください。

      以降の変更から保護するために、返されるバイト配列の複製が作成されます。

      戻り値:
      名前制約をチェックするために使用されるNameConstraints拡張情報をASN.1 DERで符号化した値を含むバイト配列。設定されていない場合はnull
    • toString

      public String toString()
      TrustAnchorを説明する書式付き文字列を返します。
      オーバーライド:
      toString 、クラス:  Object
      戻り値:
      TrustAnchorを説明する書式付き文字列