モジュール java.security.jgss
パッケージ org.ietf.jgss

インタフェースGSSContext

既知のすべてのサブインタフェース:
ExtendedGSSContext

public interface GSSContext
このインタフェースは、GSS-APIのセキュリティ・コンテキストをカプセル化し、そのコンテキストで利用できるセキュリティ・サービスを提供します。 セキュリティ・コンテキストは、ローカルに取得した資格を使用してピア間に確立されます。 1組のピア間には、同じ資格または異なる資格を使用する複数のコンテキストが同時に存在する場合があります。 GSS-APIは、ピア間のセキュリティ・コンテキストによって生成されるトークンを転送するときに、配下の転送プロトコルには依存せず、その呼出し側アプリケーションに依存します。

呼出し側がデフォルトのGSSManagerインスタンスを使用してコンテキストをインスタンス化する場合は、Kerberos v5 GSS-APIメカニズムを使用してコンテキストが確立されます。 このメカニズムは、OID「1.2.840.113554.1.2.2」として識別され、RFC 1964に定義されています。

コンテキストの確立処理が開始される前に、確立されるコンテキストの特性を起動側が要求する場合があります。 呼出し側が要求した特性が、配下のメカニズムによってサポートされていないことがあります。 コンテキストが確立すると、呼出し側はさまざまなクエリー・メソッドを使用して、そのコンテキストから提供された実際の特性やサービスを確認できます。 デフォルトのGSSManagerインスタンスから提供されるKerberos v5 GSS-APIメカニズムを使用しているときは、すべてのオプション・サービスをローカルに利用できます。 たとえば、相互認証、資格の委譲、機密性と整合性の保護、メッセージごとのリプレイ検出や順序付けなどを利用できます。 GSS-APIでは、メッセージの機密性を保護するには、メッセージの整合性を保護する必要があります。

コンテキストが確立するまで、起動側によるinitSecContext呼出しと受入れ側によるacceptSecContext呼出しが繰り返されます。このループは、コンテキストが確立すると終了します。 このループの処理中に、initSecContextおよびacceptSecContextメソッドがトークンを生成し、アプリケーションはそのトークンをピアに送信します。 場合によっては、ピアはacceptSecContextまたはinitSecContextに対して適切なトークンを入力として渡します。

コンテキストが完全に確立する前でも、isProtReadyメソッドを呼び出して、wrapおよびgetMICによるメッセージごとの操作にコンテキストを使用できるかどうかを確認できます。 この方法を使えば、完全に確立される前のコンテキストに対してメッセージごとの操作を使用できます。

コンテキストの確立が完了したあと、つまりisProtReadyメソッドからtrueが返されたあとには、確立されたコンテキストの実際の特性やサービスを確認するためにクエリー・ルーチンを呼び出せます。 また、wrapおよびgetMICのメッセージごとのメソッドを使用して、アプリケーションが提供するデータに対して暗号化操作を行うこともできます。

コンテキストが不要になったら、disposeを呼び出して、そのコンテキストが使用しているシステム・リソースをすべて解放する必要があります。

セキュリティ・コンテキストは通常、処理するトークンに関する順序付けとリプレイ検出情報を保持しています。 このため、トークンがこのコンテキストに渡されて処理される順序が重要になります。 また、このインタフェース内のメソッドは同期化されません。 複数のスレッド間でGSSContextを共有するときは、なんらかのアプリケーション・レベルの同期化を行う必要があります。

GSS-APIコンテキストを使用するときのセキュリティ制限は、GSS-APIメカニズム・プロバイダによって異なります。 これらの制限については、各メカニズム・プロバイダのドキュメントを参照してください。 これらのセキュリティ制限をメカニズム層で検査する場合は、アプリケーションに適切な権限が付与されている必要があります。

GSSContextのストリーム・ベースのメソッドは、Java SE 11では非推奨です。 これらのメソッドも(第11項を参照してください。)の次の理由で「RFC 8353: 一般的なセキュリティ・サービスAPIバージョン2: Javaバインディング更新」から削除されました: RFC 5653の5.15項で説明されているように、入力および出力ストリームを使用するGSSContextのオーバーロードされたメソッドは、ライブラリではなくアプリケーションで定義されるワイヤー・プロトコルとして、この更新で削除されます。 また、トークンの自己フレーミング(ここで、終了を判別できません)がない場合、またはライブラリにトークン・フォーマット(たとえば、別のGSSライブラリと通信するブリッジとして)の知識が含まれていない場合にこれらのメソッドを正しく実装することもできません。 これらのメソッドには、initSecContext(InputStream, OutputStream)acceptSecContext(InputStream, OutputStream)wrap(InputStream, OutputStream, MessageProp)unwrap(InputStream, OutputStream, MessageProp)getMIC(InputStream, OutputStream, MessageProp)およびverifyMIC(InputStream, InputStream, MessageProp)があります。

次に示すコード例は、起動側ピアのGSSContextインタフェースの使用法を示しています。 GSSContextオブジェクトに対して、オブジェクトのインスタンス化、指定するフラグの設定、コンテキストの確立、実際のコンテキスト・フラグの照会、アプリケーション・データに対するメッセージごとの操作、コンテキストの最終検出などを行っています。

    // Create a context using default credentials
    // and the implementation specific default mechanism
    GSSManager manager = ...
    GSSName targetName = ...
    GSSContext context = manager.createContext(targetName, null, null,
                                           GSSContext.INDEFINITE_LIFETIME);

    // set desired context options prior to context establishment
    context.requestConf(true);
    context.requestMutualAuth(true);
    context.requestReplayDet(true);
    context.requestSequenceDet(true);

    // establish a context between peers

    byte[] inToken = new byte[0];
    byte[] outToken;

    // Loop while there still is a token to be processed

    while (!context.isEstablished()) {

        outToken = context.initSecContext(inToken, 0, inToken.length);

        // send the output token if generated
        if (outToken != null) {
            sendToken(outToken);
        }

        if (!context.isEstablished()) {
            inToken = readToken();
        }
    }

     // display context information
     System.out.println("Remaining lifetime in seconds = "
                                          + context.getLifetime());
     System.out.println("Context mechanism = " + context.getMech());
     System.out.println("Initiator = " + context.getSrcName());
     System.out.println("Acceptor = " + context.getTargName());

     if (context.getConfState()) {
         System.out.println("Confidentiality (i.e., privacy) is available");
     }

     if (context.getIntegState()) {
         System.out.println("Integrity is available");
     }

     // perform wrap on an application supplied message, appMsg,
     // using QOP = 0, and requesting privacy service
     byte[] appMsg = ...

     MessageProp mProp = new MessageProp(0, true);

     outToken = context.wrap(appMsg, 0, appMsg.length, mProp);

     sendToken(outToken);

     // perform unwrap on an incoming application message, and check
     // its privacy state and supplementary information
     inToken = readToken();

     mProp = new MessageProp(0, true);

     appMsg = context.unwrap(inToken, 0, inToken.length, mProp);

     System.out.println("Was it encrypted? " + mProp.getPrivacy());
     System.out.println("Duplicate Token? " + mProp.isDuplicateToken());
     System.out.println("Old Token? " + mProp.isOldToken());
     System.out.println("Unsequenced Token? " + mProp.isUnseqToken());
     System.out.println("Gap Token? " + mProp.isGapToken());

     // the application determines if the privacy state and supplementary
     // information are acceptable

     // release the local-end of the context
     context.dispose();

 

導入されたバージョン:
1.4
  • フィールドのサマリー

    フィールド
    修飾子と型 フィールド 説明
    static int DEFAULT_LIFETIME
    コンテキストのデフォルトの寿命を表す寿命定数です。
    static int INDEFINITE_LIFETIME
    コンテキストの寿命が無期限であることを表す寿命定数です。
  • メソッドのサマリー

    修飾子と型 メソッド 説明
    byte[] acceptSecContext​(byte[] inToken, int offset, int len)
    ピアからトークンが着信したときに、コンテキストの受け入れ側によって呼び出されます。
    void acceptSecContext​(InputStream inStream, OutputStream outStream)
    非推奨。
    ストリーム・ベースのメソッドはRFC 8353から削除されました。
    void dispose()
    コンテキスト・オブジェクトに格納されているシステム資源と暗号化情報をすべて解放し、そのコンテキストを無効にします。
    byte[] export()
    このコンテキストをエクスポートして、別のプロセスがインポートできるようにします。
    boolean getAnonymityState()
    コンテキストの起動側がコンテキストの受け入れ側に匿名として認証されているかどうかを判定します。
    boolean getConfState()
    このコンテキストでデータの機密性を利用できるかどうかを検査します。
    boolean getCredDelegState()
    このコンテキストで資格の委譲が有効になっているかどうかを判定します。
    GSSCredential getDelegCred()
    コンテキストの起動側からコンテキストの受け入れ側に委譲された資格を取得します。
    boolean getIntegState()
    このコンテキストでデータの整合性を利用できるかどうかを検査します。
    int getLifetime()
    このコンテキストの残りの寿命を検査します。
    Oid getMech()
    このコンテキストに使用されているメカニズムを検査します。
    byte[] getMIC​(byte[] inMsg, int offset, int len, MessageProp msgProp)
    指定されたメッセージの暗号化MIC (メッセージ整合性コード)を含むトークンを返します。このトークンは、ピア・アプリケーションに転送されます。
    void getMIC​(InputStream inStream, OutputStream outStream, MessageProp msgProp)
    非推奨。
    ストリーム・ベースのメソッドはRFC 8353から削除されました。
    boolean getMutualAuthState()
    このコンテキストで相互認証が有効になっているかどうかを判定します。
    boolean getReplayDetState()
    このコンテキストのメッセージごとのセキュリティ・サービスでリプレイ検出が有効になっているかどうかを判定します。
    boolean getSequenceDetState()
    このコンテキストのメッセージごとのセキュリティ・サービスでシーケンス・チェックが有効になっているかどうかを判定します。
    GSSName getSrcName()
    コンテキストの起動側の名前を返します。
    GSSName getTargName()
    コンテキストの受け入れ側の名前を返します。
    int getWrapSizeLimit​(int qop, boolean confReq, int maxTokenSize)
    wrapに渡すことができるメッセージ・サイズの制限を決めるときに使用します。
    byte[] initSecContext​(byte[] inputBuf, int offset, int len)
    コンテキストの起動側によって呼び出されます。コンテキストの作成処理を開始し、ピアのacceptSecContextメソッドによって生成されたトークンを処理します。
    int initSecContext​(InputStream inStream, OutputStream outStream)
    非推奨。
    ストリーム・ベースのメソッドはRFC 8353から削除されました。
    boolean isEstablished()
    コンテキストを確立する前に、コンテキストの状態を確認するときに使用します。
    boolean isInitiator()
    このピアがコンテキストの起動側であるかどうかを検査します。
    boolean isProtReady()
    このコンテキストでメッセージごとの操作をすぐに開始できるかどうかを検査します。
    boolean isTransferable()
    exportメソッドを使用して、このコンテキストをほかのプロセスに転送できるかどうかを検査します。
    void requestAnonymity​(boolean state)
    起動側の資格を受け入れ側に公開しないように要求します。
    void requestConf​(boolean state)
    wrapメソッドでデータの機密性を有効にするように要求します。
    void requestCredDeleg​(boolean state)
    コンテキストの確立の際に起動側の資格を受け入れ側に委譲するように要求します。
    void requestInteg​(boolean state)
    wrapメソッドとgetMICメソッドでデータの整合性を有効にするように要求します。
    void requestLifetime​(int lifetime)
    コンテキストの寿命を秒単位で要求します。
    void requestMutualAuth​(boolean state)
    コンテキストが確立しているときに、相互認証が行われるように要求します。
    void requestReplayDet​(boolean state)
    コンテキストが確立したあとで、メッセージごとのセキュリティ・サービスのリプレイ検出が有効になるように要求します。
    void requestSequenceDet​(boolean state)
    コンテキストが確立したあとで、メッセージごとのセキュリティ・サービスのシーケンス・チェックが有効になるように要求します。
    void setChannelBinding​(ChannelBinding cb)
    コンテキストが確立しているときにチャネル・バインディングが使用されるように設定します。
    byte[] unwrap​(byte[] inBuf, int offset, int len, MessageProp msgProp)
    コンテキストの相手側でwrapメソッドによって生成されたトークンを処理するために使用します。
    void unwrap​(InputStream inStream, OutputStream outStream, MessageProp msgProp)
    非推奨。
    ストリーム・ベースのメソッドはRFC 8353から削除されました。
    void verifyMIC​(byte[] inToken, int tokOffset, int tokLen, byte[] inMsg, int msgOffset, int msgLen, MessageProp msgProp)
    トークン・パラメータに含まれる暗号化MICを、指定されたメッセージに対して検査します。
    void verifyMIC​(InputStream tokStream, InputStream msgStream, MessageProp msgProp)
    非推奨。
    ストリーム・ベースのメソッドはRFC 8353から削除されました。
    byte[] wrap​(byte[] inBuf, int offset, int len, MessageProp msgProp)
    確立されたセキュリティ・コンテキストに対してメッセージごとのセキュリティ・サービスを適用します。
    void wrap​(InputStream inStream, OutputStream outStream, MessageProp msgProp)
    非推奨。
    ストリーム・ベースのメソッドはRFC 8353から削除されました。
  • フィールド詳細

    • DEFAULT_LIFETIME

      static final int DEFAULT_LIFETIME
      コンテキストのデフォルトの寿命を表す寿命定数です。 この値は0に設定されます。
      関連項目:
      定数フィールド値
    • INDEFINITE_LIFETIME

      static final int INDEFINITE_LIFETIME
      コンテキストの寿命が無期限であることを表す寿命定数です。 この値は、Javaの最大整数値Integer.MAX_VALUEに設定する必要があります。
      関連項目:
      定数フィールド値
  • メソッドの詳細

    • initSecContext

      byte[] initSecContext​(byte[] inputBuf, int offset, int len) throws GSSException
      コンテキストの起動側によって呼び出されます。コンテキストの作成処理を開始し、ピアのacceptSecContextメソッドによって生成されたトークンを処理します。 このメソッドから返される出力トークンは、ピアのacceptSecContextメソッドで処理するためにアプリケーションからピアに送信する必要があります。 コンテキストのこちら側でコンテキストの確立処理が完了したかどうかは、isEstablishedを呼び出して確認できます。 isEstablishedから戻り値falseが返された場合は、initSecContextにさらにトークンを提供する必要があることを示しています。 コンテキストの確立が完了したら、利用可能なコンテキスト・オプションをgetメソッドを使用して照会できます。

      initSecContextメソッドからピアのトークンが返され、isEstablishedからもtrueが返されることがあります。 この場合、トークンはピアに送信する必要がありますが、コンテキストの相手側はその時点で完全に確立されています。

      一部のメカニズム・プロバイダでは、セキュリティ・コンテキストを起動するアクセス権が呼出し側に付与されている必要があります。 アクセス権の確認に失敗した場合、このメソッドからSecurityExceptionがスローされます。

      パラメータ:
      inputBuf - ピアによって生成されたトークン。 最初の呼出しでは、ピアから受信されているトークンがないため、このパラメータは無視される
      offset - inputBuf内のオフセット。この位置からトークンが開始する。
      len - トークンの長さ。
      戻り値:
      ピアに送信されるトークンを含むbyte[]。nullの場合は、トークンが生成されないことを示す。
      例外:
      GSSException - 次のメジャー・エラー・コードを含む。GSSException.DEFECTIVE_TOKEN, GSSException.BAD_MIC, GSSException.NO_CRED, GSSException.CREDENTIALS_EXPIRED, GSSException.BAD_BINDINGS, GSSException.OLD_TOKEN, GSSException.DUPLICATE_TOKEN, GSSException.BAD_NAMETYPE, GSSException.BAD_MECH, GSSException.FAILURE
    • initSecContext

      @Deprecated(since="11")int initSecContext​(InputStream inStream, OutputStream outStream) throws GSSException
      非推奨。
      ストリーム・ベースのメソッドはRFC 8353から削除されました。 代わりにinitSecContext(byte[], int, int)を使用してください。
      コンテキストの起動側によって呼び出され、コンテキストの作成処理を開始し、ピアのacceptSecContextメソッドによって生成されたトークンをストリームを使用して処理します。 このメソッドからOutpuStreamに書き出された出力トークンは、ピアのacceptSecContext呼出しで処理してもらうためにアプリケーションからピアに送信する必要があります。 通常は、この処理を確実に行うために、OutputStreamflushメソッドを呼び出して2つのピア間の接続をカプセル化します。 トークンがOutputStreamに書き出されたかどうかは、このメソッドの戻り値から判断できます。 戻り値0は、トークンが書き出されなかったことを示します。 コンテキストのこちら側でコンテキストの確立処理が完了したかどうかは、isEstablishedを呼び出して確認できます。 isEstablishedから戻り値falseが返された場合は、initSecContextにさらにトークンを提供する必要があることを示しています。 コンテキストの確立が完了したら、利用可能なコンテキスト・オプションをgetメソッドを使用して照会できます。

      initSecContextメソッドからピアのトークンが返され、isEstablishedからもtrueが返されることがあります。 この場合、トークンはピアに送信する必要がありますが、コンテキストの相手側はその時点で完全に確立されています。

      GSS-APIの認証トークンには、開始トークンと終了トークンが定義されています。 このメソッドが呼び出されるたびに、これらのトークンが1つずつ読み取られます。トークンの一部しか読み取られなかった場合、そのストリームはブロックされる場合があります。 他のすべての点では、このメソッドはbyte配列をベースにしたinitSecContextと等価です。

      一部のメカニズム・プロバイダでは、セキュリティ・コンテキストを起動するアクセス権が呼出し側に付与されている必要があります。 アクセス権の確認に失敗した場合、このメソッドからSecurityExceptionがスローされます。

      次のコード例は、このメソッドの使用方法を示しています。

           InputStream is ...
           OutputStream os ...
           GSSContext context ...
      
           // Loop while there is still a token to be processed
      
           while (!context.isEstablished()) {
      
               context.initSecContext(is, os);
      
               // send output token if generated
               os.flush();
           }
       

      パラメータ:
      inStream - ピアによって生成されたトークンを含むInputStream。 最初の呼出しでは、ピアからトークンを受信しないため、このパラメータは無視されるか、またはその時点のピアから受信する。
      outStream - 出力トークンが書き込まれるOutputStream。 コンテキスト確立の最終段階では、書き出されるバイトがないこともある。
      戻り値:
      ピアに送信するトークンの一部としてOutputStreamに書き出されるバイト数。 値0は、トークンを送信する必要がないことを示す。
      例外:
      GSSException - 次のメジャー・エラー・コードを含む。GSSException.DEFECTIVE_TOKEN, GSSException.BAD_MIC, GSSException.NO_CRED, GSSException.CREDENTIALS_EXPIRED, GSSException.BAD_BINDINGS, GSSException.OLD_TOKEN, GSSException.DUPLICATE_TOKEN, GSSException.BAD_NAMETYPE, GSSException.BAD_MECH, GSSException.FAILURE
    • acceptSecContext

      byte[] acceptSecContext​(byte[] inToken, int offset, int len) throws GSSException
      ピアからトークンが着信したときに、コンテキストの受け入れ側によって呼び出されます。 アプリケーションは、このメソッドから返された出力トークンを処理するために、ピアのinitSecContextメソッドに送信する必要があります。

      アプリケーションは、isEstablishedを呼び出すことにより、このピアでコンテキストの確立処理が完了したかどうかを確認できます。 isEstablishedから戻り値falseが返された場合は、このメソッドにさらにトークンを提供する必要があることを示しています。 コンテキストの確立が完了したら、利用可能なコンテキスト・オプションをgetメソッドを使用して照会できます。

      acceptSecContextからピアのトークンが返され、isEstablishedからもtrueが返されることがあります。 この場合、トークンはピアに送信する必要がありますが、コンテキストの相手側はその時点で完全に確立されています。

      一部のメカニズム・プロバイダでは、セキュリティ・コンテキストを受け入れるアクセス権が呼出し側に付与されている必要があります。 アクセス権の確認に失敗した場合、このメソッドからSecurityExceptionがスローされます。

      次のコード例は、このメソッドの使用方法を示しています。

           byte[] inToken;
           byte[] outToken;
           GSSContext context ...
      
           // Loop while there is still a token to be processed
      
           while (!context.isEstablished()) {
               inToken = readToken();
               outToken = context.acceptSecContext(inToken, 0,
                                                   inToken.length);
               // send output token if generated
               if (outToken != null)
                   sendToken(outToken);
           }
       

      パラメータ:
      inToken - ピアによって生成されたトークン。
      offset - inToken内のオフセット。この位置からトークンが開始する。
      len - トークンの長さ。
      戻り値:
      ピアに送信されるトークンを含むbyte[]。nullの場合は、トークンが生成されないことを示す。
      例外:
      GSSException - 次のメジャー・エラー・コードを含む。GSSException.DEFECTIVE_TOKEN, GSSException.BAD_MIC, GSSException.NO_CRED, GSSException.CREDENTIALS_EXPIRED, GSSException.BAD_BINDINGS, GSSException.OLD_TOKEN, GSSException.DUPLICATE_TOKEN, GSSException.BAD_MECH, GSSException.FAILURE
    • acceptSecContext

      @Deprecated(since="11")void acceptSecContext​(InputStream inStream, OutputStream outStream) throws GSSException
      非推奨。
      ストリーム・ベースのメソッドはRFC 8353から削除されました。 代わりにacceptSecContext(byte[], int, int)を使用してください。
      コンテキストの受け入れ側によって呼び出されるメソッドです。 このメソッドからOutputStreamに書き出された出力トークンは、ピアのinitSecContextメソッドで処理するためにアプリケーションからピアに送信する必要があります。 通常は、この処理を確実に行うために、OutputStreamflushメソッドを呼び出して2つのピア間の接続をカプセル化します。 コンテキストのこちら側でコンテキストの確立処理が完了したかどうかは、isEstablishedを呼び出して確認できます。 isEstablishedから戻り値falseが返された場合は、acceptSecContextにさらにトークンを提供する必要があることを示しています。 コンテキストの確立が完了したら、利用可能なコンテキスト・オプションをgetメソッドを使用して照会できます。

      acceptSecContextからピアのトークンが返され、isEstablishedからもtrueが返されることがあります。 この場合、トークンはピアに送信する必要がありますが、コンテキストの相手側はその時点で完全に確立されています。

      GSS-APIの認証トークンには、開始トークンと終了トークンが定義されています。 このメソッドが呼び出されるたびに、これらのトークンが1つずつ読み取られます。トークンの一部しか読み取られなかった場合、そのストリームはブロックされる場合があります。 他のすべての点では、このメソッドはbyte配列をベースにしたacceptSecContextと等価です。

      一部のメカニズム・プロバイダでは、セキュリティ・コンテキストを受け入れるアクセス権が呼出し側に付与されている必要があります。 アクセス権の確認に失敗した場合、このメソッドからSecurityExceptionがスローされます。

      次のコード例は、このメソッドの使用方法を示しています。

           InputStream is ...
           OutputStream os ...
           GSSContext context ...
      
           // Loop while there is still a token to be processed
      
           while (!context.isEstablished()) {
      
               context.acceptSecContext(is, os);
      
               // send output token if generated
               os.flush();
           }
       

      パラメータ:
      inStream - ピアによって生成されたトークンを含むInputStream。
      outStream - 出力トークンが書き込まれるOutputStream。 コンテキスト確立の最終段階では、書き出されるバイトがないこともある。
      例外:
      GSSException - 次のメジャー・エラー・コードを含む。GSSException.DEFECTIVE_TOKEN, GSSException.BAD_MIC, GSSException.NO_CRED, GSSException.CREDENTIALS_EXPIRED, GSSException.BAD_BINDINGS, GSSException.OLD_TOKEN, GSSException.DUPLICATE_TOKEN, GSSException.BAD_MECH, GSSException.FAILURE
    • isEstablished

      boolean isEstablished()
      コンテキストを確立する前に、コンテキストの状態を確認するときに使用します。
      戻り値:
      このコンテキストが呼出し側で完全に確立され、ピアからトークンを受信する必要がない場合は、true
    • dispose

      void dispose() throws GSSException
      コンテキスト・オブジェクトに格納されているシステム資源と暗号化情報をすべて解放し、そのコンテキストを無効にします。
      例外:
      GSSException - 次のメジャー・エラー・コードを含む。GSSException.FAILURE
    • getWrapSizeLimit

      int getWrapSizeLimit​(int qop, boolean confReq, int maxTokenSize) throws GSSException
      wrapに渡すことができるメッセージ・サイズの制限を決めるときに使用します。 このメソッドは、最大メッセージ・サイズを返します。同じconfReqおよびqopパラメータが指定されたwrapメソッドにこれを渡すと、maxTokenSizeバイト以下の出力トークンが生成されます。

      アプリケーションでこのメソッドを使用する場合は、最大メッセージ・サイズを使用するプロトコルを介して通信することを前提としています。 このメソッドを使用すれば、メッセージを断片化してから保護を適用できます。

      GSS-API実装では、getWrapSizeLimitを呼び出したときに、無効なQOP値を検出するように推奨しています。ただし、必須ではありません。 このルーチンでは、最大メッセージ・サイズのみが保証され、メッセージ保護用に特定のQOP値を利用できるかどうかについては保証されません。

      パラメータ:
      qop - ラップに要求する保護レベル。
      confReq - ラップにプライバシを要求する場合は、true。要求しない場合は、false
      maxTokenSize - ラップによって生成されるトークンの最大サイズ(目標)。
      戻り値:
      指定された出力トークン・サイズに対する、入力トークンの最大サイズ
      例外:
      GSSException - 次のメジャー・エラー・コードを含む。GSSException.CONTEXT_EXPIRED, GSSException.BAD_QOP, GSSException.FAILURE
    • wrap

      byte[] wrap​(byte[] inBuf, int offset, int len, MessageProp msgProp) throws GSSException
      確立されたセキュリティ・コンテキストに対してメッセージごとのセキュリティ・サービスを適用します。 このメソッドは、アプリケーションが提供するデータとそれに対する暗号化MICを含むトークンを返します。 このデータは、機密性(プライバシ)が要求された場合に暗号化されます。

      MessagePropオブジェクトは、アプリケーションによってインスタンス化されます。このオブジェクトを使用して、暗号化アルゴリズムを選択するためのQOP値や、オプションでメッセージを暗号化するためのプライバシ・サービスを指定します。 この呼出しで使用される配下のメカニズムでは、このプライバシ・サービスを提供できない場合があります。 その場合は、配下のメカニズムが提供する実際のプライバシ・サービスが、このMessagePropオブジェクトに設定されます。呼出し側は、復帰したらすぐにプライバシ・サービスを照会する必要があります。 配下のメカニズムが要求されたQOPを提供できない場合は、BAD_QOPコードが設定されたGSSExceptionがスローされます。

      アプリケーション・レベルのプロトコルには、ラップによって生成されたトークンを使用して「セキュア・フレーミング」を提供するものがあるため、実装では長さ0のメッセージのラップをサポートする必要があります。

      アプリケーションは、このトークンをピアに送信します。

      パラメータ:
      inBuf - 保護されるアプリケーション・データ。
      offset - inBuf内のオフセット。この位置からデータが開始する。
      len - データの長さ
      msgProp - MessagePropのインスタンス。目標のQOPとプライバシ状態を設定するためにアプリケーションが使用する。 デフォルトのQOPを要求する場合は、目標QOPとして0を設定する。 このメソッドから戻ったとき、このオブジェクトには、基になるメカニズムによってメッセージに適用された実際のプライバシ状態が含まれます。
      戻り値:
      ピアに送信されるトークンを含むbyte[]。
      例外:
      GSSException - 次のメジャー・エラー・コードを含む。GSSException.CONTEXT_EXPIRED, GSSException.BAD_QOP, GSSException.FAILURE
    • wrap

      @Deprecated(since="11")void wrap​(InputStream inStream, OutputStream outStream, MessageProp msgProp) throws GSSException
      非推奨。
      ストリーム・ベースのメソッドはRFC 8353から削除されました。 代わりにwrap(byte[], int, int, MessageProp)を使用してください。
      ストリームを使用して、確立されたセキュリティ・コンテキストにメッセージごとのセキュリティ・サービスを適用します。 このメソッドは、アプリケーションが提供するデータとそれに対する暗号化MICを含むトークンを返します。 このデータは、機密性(プライバシ)が要求された場合に暗号化されます。 このメソッドは、byte配列をベースにしたwrapメソッドと等価です。

      アプリケーションは、このトークンをピアに送信します。 通常は、この処理を確実に行うために、OutputStreamflushメソッドを呼び出して2つのピア間の接続をカプセル化します。

      MessagePropオブジェクトは、アプリケーションによってインスタンス化されます。このオブジェクトを使用して、暗号化アルゴリズムを選択するためのQOP値や、オプションでメッセージを暗号化するためのプライバシ・サービスを指定します。 この呼出しで使用される配下のメカニズムでは、このプライバシ・サービスを提供できない場合があります。 その場合は、配下のメカニズムが提供する実際のプライバシ・サービスが、このMessagePropオブジェクトに設定されます。呼出し側は、復帰したらすぐにプライバシ・サービスを照会する必要があります。 配下のメカニズムが要求されたQOPを提供できない場合は、BAD_QOPコードが設定されたGSSExceptionがスローされます。

      アプリケーション・レベルのプロトコルには、ラップによって生成されたトークンを使用して「セキュア・フレーミング」を提供するものがあるため、実装では長さ0のメッセージのラップをサポートする必要があります。

      パラメータ:
      inStream - 保護されるアプリケーション・データを含むInputStream。 InStream内で利用できるデータがすべて使用される。
      outStream - 保護されたメッセージを書き出すOutputStream。
      msgProp - MessagePropのインスタンス。目標のQOPとプライバシ状態を設定するためにアプリケーションが使用する。 デフォルトのQOPを要求する場合は、目標QOPとして0を設定する。 このメソッドから戻ったとき、このオブジェクトには、基になるメカニズムによってメッセージに適用された実際のプライバシ状態が含まれます。
      例外:
      GSSException - 次のメジャー・エラー・コードを含む。GSSException.CONTEXT_EXPIRED, GSSException.BAD_QOP, GSSException.FAILURE
    • unwrap

      byte[] unwrap​(byte[] inBuf, int offset, int len, MessageProp msgProp) throws GSSException
      コンテキストの相手側でwrapメソッドによって生成されたトークンを処理するために使用します。 このメソッドは、ピア・アプリケーションからそのラップ呼出しに渡されたメッセージを返し、同時にそのメッセージに埋め込まれたMICを検査します。

      MessagePropオブジェクトは、アプリケーションによってインスタンス化されます。このオブジェクトは、QOP、メッセージに機密性が適用されているかどうか、およびメッセージの状態に関するその他の補足情報を呼出し側に返すために、配下のメカニズムによって使用されます。

      アプリケーション・レベルのプロトコルには、ラップによって生成されたトークンを使用して「セキュア・フレーミング」を提供するものがあるため、実装では長さ0のメッセージのラップおよびラップ解除をサポートする必要があります。

      パラメータ:
      inBuf - ピアから受信したラップ・トークンを含むbyte配列。
      offset - トークンが開始するオフセット。
      len - トークンの長さ
      msgProp - このメソッドから戻る際、このオブジェクトには、適用されたQOP、メッセージのプライバシ状態、およびトークンの補足情報(重複している、古い、順序が正しくない、ギャップのあとに着信したかどうか)が格納される。
      戻り値:
      入力トークンからラップ解除されたメッセージを含むbyte[]。
      例外:
      GSSException - 次のメジャー・エラー・コードを含む。GSSException.DEFECTIVE_TOKEN, GSSException.BAD_MIC, GSSException.CONTEXT_EXPIRED, GSSException.FAILURE
    • unwrap

      @Deprecated(since="11")void unwrap​(InputStream inStream, OutputStream outStream, MessageProp msgProp) throws GSSException
      非推奨。
      ストリーム・ベースのメソッドはRFC 8353から削除されました。 代わりにunwrap(byte[], int, int, MessageProp)を使用してください。
      ストリームを使用して、コンテキストの相手側のピアでwrapメソッドによって生成されたトークンを処理します。 このメソッドは、ピア・アプリケーションからそのラップ呼出しに渡されたメッセージを返し、同時にそのメッセージに埋め込まれたMICを検査します。

      MessagePropオブジェクトは、アプリケーションによってインスタンス化されます。このオブジェクトは、QOP、メッセージに機密性が適用されているかどうか、およびメッセージの状態に関するその他の補足情報を呼出し側に返すために、配下のメカニズムによって使用されます。

      アプリケーション・レベルのプロトコルには、ラップによって生成されたトークンを使用して「セキュア・フレーミング」を提供するものがあるため、実装では長さ0のメッセージのラップおよびラップ解除をサポートする必要があります。

      このメソッドが読み取る入力トークンの形式は、使用する配下のメカニズムの仕様に定義されています。 このメソッドが呼び出されるたびに、これらのトークンが1つずつ読み込まれます。 このメカニズムのトークンに明確な開始と終了が定義されている場合、トークンの一部しか読み込まれなかったときは、このメソッドはInputStreamをブロックする場合があります。 開始トークンと終了トークンが定義されていない場合は、使用できるすべてのバイトがそのトークンの一部と見なされます。

      入力ストリームのブロックが発生することがある点を除けば、このメソッドはbyte配列をベースにしたunwrapメソッドと等価です。

      パラメータ:
      inStream - ピアによって生成されたラップ・トークンを含むInputStream。
      outStream - アプリケーション・メッセージを書き出すOutputStream。
      msgProp - このメソッドから戻る際、このオブジェクトには、適用されたQOP、メッセージのプライバシ状態、およびトークンの補足情報(重複している、古い、順序が正しくない、ギャップのあとに着信したかどうか)が格納される。
      例外:
      GSSException - 次のメジャー・エラー・コードを含む。GSSException.DEFECTIVE_TOKEN, GSSException.BAD_MIC, GSSException.CONTEXT_EXPIRED, GSSException.FAILURE
    • getMIC

      byte[] getMIC​(byte[] inMsg, int offset, int len, MessageProp msgProp) throws GSSException
      指定されたメッセージの暗号化MIC (メッセージ整合性コード)を含むトークンを返します。このトークンは、ピア・アプリケーションに転送されます。 ラップを使用した場合は、ユーザー・メッセージをカプセル化したトークンが返されますが、このメソッドでは、メッセージのMICのみを含む出力トークンが返されます。

      プライバシは、ラップを呼び出したときにだけ適用されます。

      アプリケーション・レベルのプロトコルには、getMICによって生成されたトークンを使用して「セキュア・フレーミング」を提供するものがあるため、実装では長さ0のメッセージから派生したMICをサポートする必要があります。

      パラメータ:
      inMsg - MICの生成の対象となるメッセージ。
      offset - inMsg内のオフセット。この位置からメッセージが開始する。
      len - メッセージの長さ
      msgProp - MessagePropのインスタンス。目標QOPを設定するためにアプリケーションが使用する。 デフォルトのQOPを要求する場合は、msgPropで目標QOPを0に設定する。 デフォルトのQOPを要求するもう1つの方法としては、msgPropnullを渡す方法がある。
      戻り値:
      ピアに送信されるトークンを含むbyte[]。
      例外:
      GSSException - 次のメジャー・エラー・コードを含む。GSSException.CONTEXT_EXPIRED, GSSException.BAD_QOP, GSSException.FAILURE
    • getMIC

      @Deprecated(since="11")void getMIC​(InputStream inStream, OutputStream outStream, MessageProp msgProp) throws GSSException
      非推奨。
      ストリーム・ベースのメソッドはRFC 8353から削除されました。 代わりにgetMIC(byte[], int, int, MessageProp)を使用してください。
      ストリームを使用して、指定されたメッセージの暗号化MICを含むトークンを返します。このトークンは、ピア・アプリケーションに転送されます。 ラップを使用した場合はユーザー・メッセージをカプセル化したトークンが返されますが、このメソッドではメッセージのMICのみを含む出力トークンが返されます。 このメソッドは、byte配列をベースにしたgetMICメソッドと等価です。 プライバシは、ラップを呼び出したときにだけ適用されます。

      アプリケーション・レベルのプロトコルには、getMICによって生成されたトークンを使用して「セキュア・フレーミング」を提供するものがあるため、実装では長さ0のメッセージから派生したMICをサポートする必要があります。

      パラメータ:
      inStream - MICの生成の対象となるメッセージを含むInputStream。 InStream内で利用できるデータがすべて使用される。
      outStream - 出力トークンを書き出すOutputStream。
      msgProp - MessagePropのインスタンス。目標QOPを設定するためにアプリケーションが使用する。 デフォルトのQOPを要求する場合は、msgPropで目標QOPを0に設定する。 デフォルトのQOPを要求するもう1つの方法としては、msgPropnullを渡す方法がある。
      例外:
      GSSException - 次のメジャー・エラー・コードを含む。GSSException.CONTEXT_EXPIRED, GSSException.BAD_QOP, GSSException.FAILURE
    • verifyMIC

      void verifyMIC​(byte[] inToken, int tokOffset, int tokLen, byte[] inMsg, int msgOffset, int msgLen, MessageProp msgProp) throws GSSException
      トークン・パラメータに含まれる暗号化MICを、指定されたメッセージに対して検査します。

      MessagePropオブジェクトは、アプリケーションによってインスタンス化されます。このオブジェクトは、メッセージに適用された保護の強さを示すQOP、およびメッセージの状態に関するその他の補足情報を呼出し側に返すために、配下のメカニズムによって使用されます。

      アプリケーション・レベルのプロトコルには、getMICによって生成されたトークンを使用して「セキュア・フレーミング」を提供するものがあるため、実装では長さ0のメッセージに対するMICを計算および検査する必要があります。

      パラメータ:
      inToken - ピアのgetMICメソッドによって生成されたトークン。
      tokOffset - inToken内のオフセット。この位置からトークンが開始する。
      tokLen - トークンの長さ。
      inMsg - 暗号化MICの検査の対象となるアプリケーション・メッセージ。
      msgOffset - inMsg内のオフセット。この位置からメッセージが開始する。
      msgLen - メッセージの長さ。
      msgProp - このメソッドから戻る際、このオブジェクトには、適用されたQOP、およびトークンの補足情報(重複している、古い、順序が正しくない、ギャップのあとに着信したかどうか)が格納される。
      例外:
      GSSException - 次のメジャー・エラー・コードを含む。GSSException.DEFECTIVE_TOKEN GSSException.BAD_MIC GSSException.CONTEXT_EXPIRED GSSException.FAILURE
    • verifyMIC

      @Deprecated(since="11")void verifyMIC​(InputStream tokStream, InputStream msgStream, MessageProp msgProp) throws GSSException
      非推奨。
      ストリーム・ベースのメソッドはRFC 8353から削除されました。 代わりにverifyMIC(byte[], int, int, byte[], int, int, MessageProp)を使用してください。
      ストリームを使用して、トークン・パラメータに含まれる指定されたメッセージの暗号化MICを検証します。 このメソッドは、byte配列をベースにしたverifyMICメソッドと等価です。 MessagePropオブジェクトは、アプリケーションによってインスタンス化されます。このオブジェクトは、メッセージに適用された保護の強さを示すQOP、およびメッセージの状態に関するその他の補足情報を呼出し側に返すために、配下のメカニズムによって使用されます。

      アプリケーション・レベルのプロトコルには、getMICによって生成されたトークンを使用して「セキュア・フレーミング」を提供するものがあるため、実装では長さ0のメッセージに対するMICを計算および検査する必要があります。

      このメソッドが読み取る入力トークンの形式は、使用する配下のメカニズムの仕様に定義されています。 このメソッドが呼び出されるたびに、これらのトークンが1つずつ読み込まれます。 このメカニズムのトークンに明確な開始と終了が定義されている場合、トークンの一部しか読み込まれなかったときは、このメソッドはInputStreamをブロックする場合があります。 開始トークンと終了トークンが定義されていない場合は、使用できるすべてのバイトがそのトークンの一部と見なされます。

      入力ストリームのブロックが発生することがある点を除けば、このメソッドはbyte配列をベースにしたverifyMICメソッドと等価です。

      パラメータ:
      tokStream - ピアのgetMICメソッドによって生成されたトークンを含むInputStream。
      msgStream - 暗号化MICの検査の対象となるアプリケーション・メッセージを含むInputStream。 msgStream内で利用できるデータがすべて使用される。
      msgProp - このメソッドから戻る際、このオブジェクトには、適用されたQOP、およびトークンの補足情報(重複している、古い、順序が正しくない、ギャップのあとに着信したかどうか)が格納される。
      例外:
      GSSException - 次のメジャー・エラー・コードを含む。GSSException.DEFECTIVE_TOKEN GSSException.BAD_MIC GSSException.CONTEXT_EXPIRED GSSException.FAILURE
    • export

      byte[] export() throws GSSException
      このコンテキストをエクスポートして、別のプロセスがインポートできるようにします。 このメソッドを使用すれば、複数のプロセス間でコンテキストを共有できます。 このルーチンは通常、コンテキストの受入れ側で使用されます。単一プロセスが着信接続要求を受信し、それらの要求に対するセキュリティ・コンテキストを受け入れます。次に、確立されたコンテキストを他のいくつかのプロセスに渡して、メッセージを交換します。

      このメソッドは、セキュリティ・コンテキストを非アクティブ化し、プロセス間トークンを作成します。このプロセス間トークンを別のプロセスのGSSManager.createContextに渡すと、そのプロセスでそのコンテキストが再アクティブ化されます。 特定のコンテキストのインスタンス化は、1回につき1つしかアクティブ化できません。このため、コンテキストのエクスポート側でエクスポートしたセキュリティ・コンテキストにアクセスしようとすると、失敗します。

      この実装では、プロセス間トークンをインポートするプロセスが、ローカル・セキュリティ・ポリシーまたは実装の設定によって制限されることがあります。 たとえば、同じアカウントで動作するプロセス間にだけコンテキストが渡されたり、同じプロセス・グループのプロセス間にだけ渡されたりします。

      プロセス間トークンには、機密情報(暗号化キーなど)が含まれていることがあります。 これらの機密情報は、できるだけプロセス間トークンに含めないようにするか、トークンを暗号化してからアプリケーションに返してください。ただし、標準的なGSS-APIの実装では、こうした対応を適用できないことがあります。 このため、アプリケーションでプロセス間トークンを使用する場合は、セキュリティに十分に配慮し、信頼できるプロセスに転送してください。

      セキュリティ・コンテキストのプロセス間転送を実装がサポートすることは必須ではありません。 isTransferableメソッドを呼び出せば、コンテキスト・オブジェクトを転送できるかどうかを確認できます。

      エクスポートできないコンテキストに対してこのメソッドを呼び出すと、エラー・コードGSSException.UNAVAILABLEを含む例外がスローされます。

      戻り値:
      エクスポートされたコンテキストを含むbyte[]
      例外:
      GSSException - 次のメジャー・エラー・コードを含む。GSSException.UNAVAILABLE, GSSException.CONTEXT_EXPIRED, GSSException.NO_CONTEXT, GSSException.FAILURE
      関連項目:
      GSSManager.createContext(byte[])
    • requestMutualAuth

      void requestMutualAuth​(boolean state) throws GSSException
      コンテキストが確立しているときに、相互認証が行われるように要求します。 この要求は、コンテキストの起動側からのみ行うことができ、initSecContextを最初に呼び出すより前に行う必要があります。

      すべてのメカニズムが相互認証をサポートしているわけではありません。また、アプリケーションは相互認証を必要としていなくても、いずれかのメカニズムが相互認証を必要としている場合もあります。 そのため、この要求が受け付けられたかどうかを確認するため、アプリケーションでgetMutualAuthStateメソッドを使用する必要があります。

      パラメータ:
      state - 相互認証を使用するかどうかを示すboolean値。
      例外:
      GSSException - 次のメジャー・エラー・コードを含む。GSSException.FAILURE
      関連項目:
      getMutualAuthState()
    • requestReplayDet

      void requestReplayDet​(boolean state) throws GSSException
      コンテキストが確立したあとで、メッセージごとのセキュリティ・サービスのリプレイ検出が有効になるように要求します。 この要求は、コンテキストの起動側からのみ行うことができ、initSecContextを最初に呼び出すより前に行う必要があります。 コンテキストが確立している間は、リプレイ検出はオプションではなく、配下のメカニズムの機能になります。

      認証メカニズムによってはリプレイ検出がサポートされていないことがあります。また、アプリケーションはリプレイ検出を必要としていなくても、いずれかのメカニズムがリプレイ検出を必要としている場合もあります。 そのため、この要求が受け付けられたかどうかを確認するため、アプリケーションでgetReplayDetStateメソッドを使用する必要があります。 リプレイ検出が有効になっている場合、MessageProp.isDuplicateTokenメソッドとMessageProp.isOldTokenメソッドは、unwrapメソッドまたはverifyMICメソッドに渡されるMessagePropオブジェクトの有効な結果を返します。

      パラメータ:
      state - 確立したコンテキストに対してリプレイ検出を有効にするかどうかを示すboolean値。
      例外:
      GSSException - 次のメジャー・エラー・コードを含む。GSSException.FAILURE
      関連項目:
      getReplayDetState()
    • requestSequenceDet

      void requestSequenceDet​(boolean state) throws GSSException
      コンテキストが確立したあとで、メッセージごとのセキュリティ・サービスのシーケンス・チェックが有効になるように要求します。 この要求は、コンテキストの起動側からのみ行うことができ、initSecContextを最初に呼び出すより前に行う必要があります。 コンテキストの確立中、シーケンス・チェックはオプションではなく、配下のメカニズムの機能になります。

      また、アプリケーションはシーケンス・チェックを必要としていなくても、認証メカニズムがシーケンス・チェックを必要としている場合もあります。 そのため、このリクエストが受け付けられたかどうかを確認するため、アプリケーションでgetSequenceDetStateメソッドを使用する必要があります。 シーケンス・チェックが有効になっている場合、MessageProp.isDuplicateTokenメソッド、MessageProp.isOldTokenメソッド、MessageProp.isUnseqTokenメソッド、およびMessageProp.isGapTokenメソッドは、unwrapメソッドまたはverifyMICメソッドに渡されるMessagePropオブジェクトに対して有効な結果を返します。

      パラメータ:
      state - 確立されたコンテキストに対してシーケンス・チェックを有効にするかどうかを示すboolean値。
      例外:
      GSSException - 次のメジャー・エラー・コードを含む。GSSException.FAILURE
      関連項目:
      getSequenceDetState()
    • requestCredDeleg

      void requestCredDeleg​(boolean state) throws GSSException
      コンテキストの確立の際に起動側の資格を受け入れ側に委譲するように要求します。 この要求は、コンテキストの起動側からのみ行うことができ、initSecContextを最初に呼び出すより前に行う必要があります。 認証メカニズムによっては、資格の委譲がサポートされていないことがあります。 そのため、委譲を必要とするアプリケーションは、リクエストが受け付けられたかどうかを確認するためにgetCredDelegStateメソッドを使用する必要があります。 委譲を使用してはならないとアプリケーションから示された場合、メカニズムはその要求を受け、委譲は行われません。 これは一般規則に対する例外で、あるサービスが要求されなくてもメカニズムがそのサービスを有効にすることがあるということです。
      パラメータ:
      state - 資格を委譲するかどうかを示すboolean値。
      例外:
      GSSException - 次のメジャー・エラー・コードを含む。GSSException.FAILURE
      関連項目:
      getCredDelegState()
    • requestAnonymity

      void requestAnonymity​(boolean state) throws GSSException
      起動側の資格を受け入れ側に公開しないように要求します。 この要求は、コンテキストの起動側からのみ行うことができ、initSecContextを最初に呼び出すより前に行う必要があります。 認証メカニズムによっては、起動側の匿名がサポートされていないことがあります。 そのため、アプリケーションはgetAnonymityStateメソッドを使用して、この要求が受け付けられたかどうかを確認するようにしてください。
      パラメータ:
      state - 起動側が受け入れ側に匿名主体として認証されるかどうかを示すboolean値。
      例外:
      GSSException - 次のメジャー・エラー・コードを含む。GSSException.FAILURE
      関連項目:
      getAnonymityState()
    • requestConf

      void requestConf​(boolean state) throws GSSException
      wrapメソッドでデータの機密性を有効にするように要求します。 この要求は、コンテキストの起動側からのみ行うことができ、initSecContextを最初に呼び出すより前に行う必要があります。 認証メカニズムによっては、機密性をサポートしていないものや、アプリケーションから要求されない場合でも機密性を有効にするものがあります。 要求が受け付けられたかどうかを確認するには、アプリケーションでgetConfStateメソッドを使用します。 機密性が有効な場合に限り、wrapメソッドに渡されたMessagePropオブジェクトに含まれるプライバシ・リクエストを認証メカニズムが受け付けます。

      機密性を有効にすると、整合性も自動的に有効になります。

      パラメータ:
      state - 機密性を有効にするかどうかを示すboolean値。
      例外:
      GSSException - 次のメジャー・エラー・コードを含む。GSSException.FAILURE
      関連項目:
      getConfState(), getIntegState(), requestInteg(boolean), MessageProp
    • requestInteg

      void requestInteg​(boolean state) throws GSSException
      wrapメソッドとgetMICメソッドでデータの整合性を有効にするように要求します。 この要求は、コンテキストの起動側からのみ行うことができ、initSecContextを最初に呼び出すより前に行う必要があります。 認証メカニズムによっては整合性がサポートされていないことがあります。また、アプリケーションが整合性を要求しなくても、他のメカニズムが整合性を有効にする場合もあります。 要求が受け付けられたかどうかを確認するには、アプリケーションでgetIntegStateメソッドを使用します。

      整合性を無効にすると、機密性も自動的に無効になります。

      パラメータ:
      state - 整合性を有効にするかどうかを示すboolean値。
      例外:
      GSSException - 次のメジャー・エラー・コードを含む。GSSException.FAILURE
      関連項目:
      getIntegState()
    • requestLifetime

      void requestLifetime​(int lifetime) throws GSSException
      コンテキストの寿命を秒単位で要求します。 このメソッドの呼出しは、コンテキストの起動側から、initSecContextを最初に呼び出す前に行う必要があります。

      コンテキストの実際の寿命は配下のメカニズムの機能によって異なるため、アプリケーションでgetLifetimeメソッドを呼び出して確認する必要があります。

      パラメータ:
      lifetime - コンテキストに指定する寿命(秒単位)。 無期限の寿命をリクエストする場合はINDEFINITE_LIFETIMEを使用し、デフォルトの寿命をリクエストする場合はDEFAULT_LIFETIMEを使用する。
      例外:
      GSSException - 次のメジャー・エラー・コードを含む。GSSException.FAILURE
      関連項目:
      getLifetime()
    • setChannelBinding

      void setChannelBinding​(ChannelBinding cb) throws GSSException
      コンテキストが確立しているときにチャネル・バインディングが使用されるように設定します。 このメソッドは、コンテキストの起動側および受入れ側のどちらからでも呼び出すことができます。ただし、コンテキストの確立を開始する前に呼び出す必要があります。 つまり、起動側から呼び出すときは、initSecContextの最初の呼出し前に行う必要があります。受入れ側から呼び出すときは、acceptSecContextの最初の呼出し前に行う必要があります。
      パラメータ:
      cb - 使用するチャネル・バインディング。
      例外:
      GSSException - 次のメジャー・エラー・コードを含む。GSSException.FAILURE
    • getCredDelegState

      boolean getCredDelegState()
      このコンテキストで資格の委譲が有効になっているかどうかを判定します。 このメソッドは、コンテキストの起動側および呼出し側から呼び出すことができます。 ただし、コンテキストの確立が完了してから呼び出してください。 起動側が資格の委譲を無効にするようにリクエストした場合、requestCredDelegメソッドはそのリクエストを受け付け、その時点から起動側に対してfalseを返します。
      戻り値:
      委譲が有効な場合はtrue、そうでない場合はfalse
      関連項目:
      requestCredDeleg(boolean)
    • getMutualAuthState

      boolean getMutualAuthState()
      このコンテキストで相互認証が有効になっているかどうかを判定します。 このメソッドは、コンテキストの起動側および呼出し側から呼び出すことができます。 ただし、コンテキストの確立が完了してから呼び出してください。 相互認証を要求した起動側は、コンテキストの確立が完了したあとでこのメソッドを呼び出し、要求が受け付けられなかった場合はそのコンテキストを破棄できます。
      戻り値:
      相互認証が有効な場合はtrue、そうでない場合はfalse
      関連項目:
      requestMutualAuth(boolean)
    • getReplayDetState

      boolean getReplayDetState()
      このコンテキストのメッセージごとのセキュリティ・サービスでリプレイ検出が有効になっているかどうかを判定します。 このメソッドは、コンテキストの起動側および呼出し側から呼び出すことができます。 ただし、コンテキストの確立が完了してから呼び出してください。 リプレイ検出を要求した起動側は、コンテキストの確立が完了したあとでこのメソッドを呼び出し、要求が受け付けられなかった場合はそのコンテキストを破棄できます。
      戻り値:
      リプレイ検出が有効な場合はtrue、そうでない場合はfalse
      関連項目:
      requestReplayDet(boolean)
    • getSequenceDetState

      boolean getSequenceDetState()
      このコンテキストのメッセージごとのセキュリティ・サービスでシーケンス・チェックが有効になっているかどうかを判定します。 このメソッドは、コンテキストの起動側および呼出し側から呼び出すことができます。 ただし、コンテキストの確立が完了してから呼び出してください。 シーケンス・チェックを要求した起動側は、コンテキストの確立が完了したあとでこのメソッドを呼び出し、要求が受け付けられなかった場合はそのコンテキストを破棄できます。
      戻り値:
      シーケンス・チェックが有効な場合はtrue、そうでない場合はfalse
      関連項目:
      requestSequenceDet(boolean)
    • getAnonymityState

      boolean getAnonymityState()
      コンテキストの起動側がコンテキストの受け入れ側に匿名として認証されているかどうかを判定します。 このメソッドは、コンテキストの起動側および呼出し側から、任意のタイミングで呼び出すことができます。 起動側からこのメソッドを呼び出した場合は、initSecContextによってその時点までに生成されたコンテキスト確立トークンのいずれかに、起動側のIDが公開されているかどうかが検査されます。 匿名としての認証が必要な場合は、initSecContextを呼び出してからこのメソッドを呼び出し、生成されたトークンをピアに送信するか、そのコンテキストを中止するかを決定する必要があります。 受け入れ側からこのメソッドを呼び出した場合は、acceptSecContextによってその時点まで処理されたトークンのいずれかに、起動側のIDが公開されているかどうかが検査されます。
      戻り値:
      コンテキストの起動側が匿名として認証されている場合はtrue、そうでない場合はfalse
      関連項目:
      requestAnonymity(boolean)
    • isTransferable

      boolean isTransferable() throws GSSException
      exportメソッドを使用して、このコンテキストをほかのプロセスに転送できるかどうかを検査します。 この呼出しは、完全に確立されたコンテキストでだけ有効です。
      戻り値:
      このコンテキストをエクスポートできる場合はtrue、そうでない場合はfalse
      例外:
      GSSException - 次のメジャー・エラー・コードを含む。GSSException.FAILURE
    • isProtReady

      boolean isProtReady()
      このコンテキストでメッセージごとの操作をすぐに開始できるかどうかを検査します。 一部のメカニズムでは、コンテキストが完全に確立される前に、メッセージごとの操作を使用できます。
      戻り値:
      現在のコンテキスト確立段階でwrapunwrapgetMICverifyMICなどのメソッドを使用できる場合はtrue、そうでない場合はfalse。
    • getConfState

      boolean getConfState()
      このコンテキストでデータの機密性を利用できるかどうかを検査します。 このメソッドは、コンテキストの起動側と受入れ側のどちらからでも呼び出すことができます。ただし、isProtReadyまたはisEstablishedの1つからtrueが返された後である必要があります。 このメソッドがtrueを返す場合は、getIntegStateもtrueを返します。
      戻り値:
      機密性サービスを利用できる場合はtrue、そうでない場合はfalse
      関連項目:
      requestConf(boolean)
    • getIntegState

      boolean getIntegState()
      このコンテキストでデータの整合性を利用できるかどうかを検査します。 このメソッドは、コンテキストの起動側と受入れ側のどちらからでも呼び出すことができます。ただし、isProtReadyまたはisEstablishedの1つからtrueが返された後である必要があります。 getConfStateがtrueを返す場合は、このメソッドは常にtrueを返します。
      戻り値:
      整合性サービスを利用できる場合はtrue、そうでない場合はfalse
      関連項目:
      requestInteg(boolean)
    • getLifetime

      int getLifetime()
      このコンテキストの残りの寿命を検査します。 このメソッドは、コンテキストの起動側と受入れ側のどちらからでも呼び出すことができます。ただし、正しい結果を得るためには、isEstablishedからtrueが返された後である必要があります。
      戻り値:
      残りの寿命(秒単位)
      関連項目:
      requestLifetime(int)
    • getSrcName

      GSSName getSrcName() throws GSSException
      コンテキストの起動側の名前を返します。 この呼出しは、isProtReadyまたはisEstablishedtrueを返したあとでのみ有効です。
      戻り値:
      GSSName。コンテキストの起動側の名前を含むMN
      例外:
      GSSException - 次のメジャー・エラー・コードを含む。GSSException.FAILURE
      関連項目:
      GSSName
    • getTargName

      GSSName getTargName() throws GSSException
      コンテキストの受け入れ側の名前を返します。 この呼出しは、isProtReadyまたはisEstablishedtrueを返したあとでのみ有効です。
      戻り値:
      GSSName。コンテキストの受け入れ側の名前を含むMN
      例外:
      GSSException - 次のメジャー・エラー・コードを含む。GSSException.FAILURE
    • getMech

      Oid getMech() throws GSSException
      このコンテキストに使用されているメカニズムを検査します。 このメソッドは、コンテキストが完全に確立される前に呼び出すことができます。ただし、メカニズムのネゴシエーションが完了した後でこのメソッドを呼び出すと、返されるメカニズムが変わることがあります。
      戻り値:
      使用されているメカニズムのOID
      例外:
      GSSException - 次のメジャー・エラー・コードを含む。GSSException.FAILURE
    • getDelegCred

      GSSCredential getDelegCred() throws GSSException
      コンテキストの起動側からコンテキストの受け入れ側に委譲された資格を取得します。 このメソッドは、コンテキストの受け入れ側からのみ、コンテキストが完全に確立されたあとで呼び出す必要があります。 委譲された資格があるかどうかを呼出し側で確認するには、getCredDelegStateメソッドを使用します。
      戻り値:
      起動側から委譲された資格が含まれるGSSCredential。委譲された資格がない場合はnull
      例外:
      GSSException - 次のメジャー・エラー・コードを含む。GSSException.FAILURE
    • isInitiator

      boolean isInitiator() throws GSSException
      このピアがコンテキストの起動側であるかどうかを検査します。 このメソッドは、コンテキストの起動側および受け入れ側から呼び出すことができます。
      戻り値:
      コンテキストの起動側である場合はtrue、コンテキストの受け入れ側である場合はfalse
      例外:
      GSSException - 次のメジャー・エラー・コードを含む。GSSException.FAILURE