JavaTM 2
Platform
Std. Ed. v1.4.0

org.ietf.jgss
インタフェース GSSContext


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 インタフェースの使用法を示しています。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];

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

    while (!context.isEstablished()) {

        byte[] 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);

     byte []tok = context.wrap(appMsg, 0, appMsg.length, mProp);

     sendToken(tok);

     // 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)
          コンテキストの受け入れ側によって呼び出されるメソッドです。
 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)
          ストリームを使用して、指定されたメッセージの暗号化 MIC を含むトークンを返します。
 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)
          コンテキストの起動側によって呼び出されるメソッドです。
 int initSecContext(InputStream inStream, OutputStream outStream)
          コンテキストの起動側によって呼び出されるメソッドです。
 boolean isEstablished()
          コンテキストを確立する前に、コンテキストの状態を確認するときに使用します。
 boolean isInitiator()
          このピアがコンテキストの起動側であるかどうかを検査します。
 boolean isProtReady()
          このコンテキストでメッセージごとの操作をすぐに開始できるかどうかを検査します。
 boolean isTransferable()
          export メソッドを使用して、このコンテキストをほかのプロセスに転送できるかどうかを検査します。
 void requestAnonymity(boolean state)
          起動側の ID が受け入れ側に公開されないように要求します。
 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)
          ストリームを使用して、コンテキストの相手側のピアで wrap メソッドによって生成されたトークンを処理します。
 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)
          ストリームを使用して、トークンパラメータに含まれる暗号化 MIC を、指定されたメッセージに対して検査します。
 byte[] wrap(byte[] inBuf, int offset, int len, MessageProp msgProp)
          確立されたセキュリティコンテキストに対してメッセージごとのセキュリティサービスを適用します。
 void wrap(InputStream inStream, OutputStream outStream, MessageProp msgProp)
          ストリームを使用して、確立されたセキュリティコンテキストにメッセージごとのセキュリティサービスを適用します。
 

フィールドの詳細

DEFAULT_LIFETIME

public static final int DEFAULT_LIFETIME
コンテキストのデフォルトの寿命を表す寿命定数です。この値は 0 に設定されます。

関連項目:
定数フィールド値

INDEFINITE_LIFETIME

public static final int INDEFINITE_LIFETIME
コンテキストの寿命が無期限であることを表す寿命定数です。この値は、Java の最大整数値 Integer.MAX_VALUE に設定する必要があります。

関連項目:
定数フィールド値
メソッドの詳細

initSecContext

public 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_TOKENGSSException.BAD_MICGSSException.NO_CREDGSSException.CREDENTIALS_EXPIREDGSSException.BAD_BINDINGSGSSException.OLD_TOKENGSSException.DUPLICATE_TOKENGSSException.BAD_NAMETYPEGSSException.BAD_MECHGSSException.FAILURE を含む

initSecContext

public int initSecContext(InputStream inStream,
                          OutputStream outStream)
                   throws GSSException
コンテキストの起動側によって呼び出されるメソッドです。コンテキストの作成を開始し、ピアの acceptSecContext メソッドによって生成されたトークンをストリームを使用して処理します。アプリケーションは、このメソッドから OutpuStream に書き出された出力トークンを処理するために、ピアの acceptSecContext 呼び出しに送信する必要があります。通常は、この処理を確実に行うために、OutputStream 上で flush メソッドを呼び出して、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_TOKENGSSException.BAD_MICGSSException.NO_CREDGSSException.CREDENTIALS_EXPIREDGSSException.BAD_BINDINGSGSSException.OLD_TOKENGSSException.DUPLICATE_TOKENGSSException.BAD_NAMETYPEGSSException.BAD_MECHGSSException.FAILURE を含む

acceptSecContext

public 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_TOKENGSSException.BAD_MICGSSException.NO_CREDGSSException.CREDENTIALS_EXPIREDGSSException.BAD_BINDINGSGSSException.OLD_TOKENGSSException.DUPLICATE_TOKENGSSException.BAD_MECHGSSException.FAILURE を含む

acceptSecContext

public void acceptSecContext(InputStream inStream,
                             OutputStream outStream)
                      throws GSSException
コンテキストの受け入れ側によって呼び出されるメソッドです。ストリームを使用してピアから受信したトークンを処理します。アプリケーションは、このメソッドから OutpuStream に書き出された出力トークンを処理するために、ピアの initSecContext メソッドに送信する必要があります。通常は、この処理を確実に行うために、OutputStream 上で flush メソッドを呼び出して、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_TOKENGSSException.BAD_MICGSSException.NO_CREDGSSException.CREDENTIALS_EXPIREDGSSException.BAD_BINDINGSGSSException.OLD_TOKENGSSException.DUPLICATE_TOKENGSSException.BAD_MECHGSSException.FAILURE を含む

isEstablished

public boolean isEstablished()
コンテキストを確立する前に、コンテキストの状態を確認するときに使用します。

戻り値:
このコンテキストが呼び出し側で完全に確立され、ピアからトークンを受信する必要がない場合は、true

dispose

public void dispose()
             throws GSSException
コンテキストオブジェクトに格納されているシステム資源と暗号化情報をすべて解放し、そのコンテキストを無効にします。

例外:
GSSException - メジャーエラーコード GSSException.FAILURE を含む

getWrapSizeLimit

public 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_EXPIREDGSSException.BAD_QOPGSSException.FAILURE を含む

wrap

public 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_EXPIREDGSSException.BAD_QOPGSSException.FAILURE を含む

wrap

public void wrap(InputStream inStream,
                 OutputStream outStream,
                 MessageProp msgProp)
          throws GSSException
ストリームを使用して、確立されたセキュリティコンテキストにメッセージごとのセキュリティサービスを適用します。このメソッドは、アプリケーションが提供するデータとそれに対する暗号化 MIC を含むトークンを返します。このデータは、機密性 (プライバシ) が要求された場合、暗号化されます。このメソッドは、byte 配列に基づいた wrap メソッドと等価です。

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

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

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

パラメータ:
inStream - 保護されるアプリケーションデータを含む InputStream。InStream 内の利用できるデータがすべて使用される
outStream - 保護されたメッセージを書き出す OutputStream
msgProp - MessageProp のインスタンス。目標 QOP とプライバシ状態を設定するためにアプリケーションが使用する。デフォルトの QOP を要求する場合は、目標 QOP を 0 に設定する。このメソッドから復帰すると、このオブジェクトには配下の機構によってメッセージに適用された実際のプライバシ状態が格納される
例外:
GSSException - メジャーエラーコード GSSException.CONTEXT_EXPIREDGSSException.BAD_QOPGSSException.FAILURE を含む

unwrap

public 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_TOKENGSSException.BAD_MICGSSException.CONTEXT_EXPIREDGSSException.FAILURE を含む

unwrap

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

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

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

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

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

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

getMIC

public 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 に設定するか、msgPropnull を渡す
戻り値:
ピアに送信されるトークンを含む byte[]
例外:
GSSException - メジャーエラーコード GSSException.CONTEXT_EXPIREDGSSException.BAD_QOPGSSException.FAILURE を含む

getMIC

public void getMIC(InputStream inStream,
                   OutputStream outStream,
                   MessageProp msgProp)
            throws GSSException
ストリームを使用して、指定されたメッセージの暗号化 MIC を含むトークンを返します。このトークンは、ピアアプリケーションに転送されます。ラップを使用した場合は、ユーザメッセージをカプセル化したトークンが返されますが、このメソッドでは、メッセージの MIC だけを含む出力トークンが返されます。このメソッドは、byte 配列に基づいた getMIC メソッドと等価です。プライバシは、ラップを呼び出したときにだけ適用されます。

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

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

verifyMIC

public 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 - inMsg 内のオフセット。この位置からトークンが開始する
tokLen - トークンの長さ
inMsg - 暗号化 MIC の検査の対象となるアプリケーションメッセージ
msgOffset - inMsg 内のオフセット。この位置からメッセージが開始する
msgLen - メッセージの長さ
msgProp - このメソッドから復帰すると、このオブジェクトには、適用された QOP、およびトークンの補足情報 (重複している、古い、順序が正しくない、ギャップのあとに着信したかどうか) が格納される
例外:
GSSException - メジャーエラーコード GSSException.DEFECTIVE_TOKENGSSException.BAD_MICGSSException.CONTEXT_EXPIREDGSSException.FAILURE を含む

verifyMIC

public void verifyMIC(InputStream tokStream,
                      InputStream msgStream,
                      MessageProp msgProp)
               throws GSSException
ストリームを使用して、トークンパラメータに含まれる暗号化 MIC を、指定されたメッセージに対して検査します。このメソッドは、byte 配列に基づいた verifyMIC メソッドと等価です。MessageProp オブジェクトは、アプリケーションによってインスタンス化されます。このオブジェクトは、メッセージに適用された保護の強さを示す QOP、およびメッセージの状態に関するその他の補足情報を呼び出し側に返すために、配下の機構によって使用されます。

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

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

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

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

export

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

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

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

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

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

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

戻り値:
エクスポートされたコンテキストを含む byte[]
例外:
GSSException - メジャーエラーコード GSSException.UNAVAILABLEGSSException.CONTEXT_EXPIREDGSSException.NO_CONTEXTGSSException.FAILURE を含む
関連項目:
GSSManager.createContext(byte[])

requestMutualAuth

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

GSS-API 機構によっては、相互認証がサポートされていないことがあります。また、GSS-API 機構は相互認証を必要としないが、アプリケーションが必要とする場合もあります。このため、この要求が受け付けられたかどうかを、アプリケーションで getMutualAuthState メソッドを使用して確認する必要があります。

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

requestReplayDet

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

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

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

requestSequenceDet

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

GSS-API 機構によっては、シーケンスチェックがサポートされていないことがあります。また、GSS-API 機構はシーケンスチェックを必要としないが、アプリケーションが必要とする場合もあります。このため、この要求が受け付けられたかどうかを、アプリケーションで getSequenceDetState メソッドを使用して確認する必要があります。シーケンスチェックが有効になっている場合、MessageProp.isDuplicateTokenMessageProp.isOldTokenMessageProp.isUnseqToken、および MessageProp.isGapToken メソッドは、unwrap または verifyMIC メソッドに渡される MessageProp オブジェクトに対して有効な結果を返します。

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

requestCredDeleg

public void requestCredDeleg(boolean state)
                      throws GSSException
コンテキストが確立しているときに、起動側の資格が受け入れ側に委譲されるように要求します。この要求は、コンテキストの起動側から、initSecContext を最初に呼び出す前に行う必要があります。GSS-API 機構によっては、資格の委譲がサポートされていないことがあります。このため、この要求が受け付けられたかどうかを、アプリケーションで getCredDelegState メソッドを使用して確認する必要があります。資格の委譲を使用できない場合、GSS-API 機構がその要求を受け付け、委譲は行われません。通常は、サービスが要求されなかった場合でも、そのサービスは有効になりますが、この場合は例外です。

パラメータ:
state - 資格を委譲するかどうかを示す boolean 値
例外:
GSSException - メジャーエラーコード GSSException.FAILURE を含む
関連項目:
getCredDelegState()

requestAnonymity

public void requestAnonymity(boolean state)
                      throws GSSException
起動側の ID が受け入れ側に公開されないように要求します。この要求は、コンテキストの起動側から、initSecContext を最初に呼び出す前に行う必要があります。GSS-API 機構によっては、起動側の匿名がサポートされていないことがあります。このため、アプリケーションで getAnonymityState メソッドを使ってこの要求が受け付けられたかどうかをチェックする必要があります。このため、この要求が受け付けられたかどうかを、アプリケーションで getAnonymityState メソッドを使用して確認する必要があります。。

パラメータ:
state - 起動側が受け入れ側に匿名主体として認証されるかどうかを示す boolean 値
例外:
GSSException - メジャーエラーコード GSSException.FAILURE を含む
関連項目:
getAnonymityState()

requestConf

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

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

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

requestInteg

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

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

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

requestLifetime

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

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

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

setChannelBinding

public void setChannelBinding(ChannelBinding cb)
                       throws GSSException
コンテキストが確立しているときにチャネルバインディングが使用されるように設定します。このメソッドは、コンテキストの起動側および受け入れ側から呼び出すことができます。ただし、コンテキストの確立を開始する前に呼び出す必要があります。つまり、起動側から呼び出すときは、initSecContext を最初に呼び出す前に行う必要があります。受け入れ側から呼び出すときは、acceptSecContext を最初に呼び出す前に行う必要があります。

パラメータ:
cb - 使用するチャネルバインディング
例外:
GSSException - メジャーエラーコード GSSException.FAILURE を含む

getCredDelegState

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

戻り値:
委譲が有効な場合は true、そうでない場合は false
関連項目:
requestCredDeleg(boolean)

getMutualAuthState

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

戻り値:
相互認証が有効な場合は true、そうでない場合は false
関連項目:
requestMutualAuth(boolean)

getReplayDetState

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

戻り値:
リプレイ検出が有効な場合は true、そうでない場合は false
関連項目:
requestReplayDet(boolean)

getSequenceDetState

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

戻り値:
シーケンスチェックが有効な場合は true、そうでない場合は false
関連項目:
requestSequenceDet(boolean)

getAnonymityState

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

戻り値:
コンテキストの起動側が匿名として認証されている場合は true、そうでない場合は false
関連項目:
requestAnonymity(boolean)

isTransferable

public boolean isTransferable()
                       throws GSSException
export メソッドを使用して、このコンテキストをほかのプロセスに転送できるかどうかを検査します。この呼び出しは、完全に確立されたコンテキストでだけ有効です。

戻り値:
このコンテキストをエクスポートできる場合は true、そうでない場合は false
例外:
GSSException - メジャーエラーコード GSSException.FAILURE を含む

isProtReady

public boolean isProtReady()
このコンテキストでメッセージごとの操作をすぐに開始できるかどうかを検査します。一部の機構では、コンテキストが完全に確立される前に、メッセージごとの操作を使用できます。

戻り値:
現在のコンテキスト確立段階で wrapunwrapgetMICverifyMIC などのメソッドを使用できる場合は true、そうでない場合は false

getConfState

public boolean getConfState()
このコンテキストでデータの機密性を利用できるかどうかを検査します。このメソッドは、コンテキストの起動側および受け入れ側から呼び出すことができます。ただし、isProtReady または isEstablished から true が返されたあとでなければなりません。このメソッドが true を返した場合は、getIntegStatetrue を返します。

戻り値:
機密性サービスを利用できる場合は true、そうでない場合は false
関連項目:
requestConf(boolean)

getIntegState

public boolean getIntegState()
このコンテキストでデータの完全性を利用できるかどうかを検査します。このメソッドは、コンテキストの起動側および受け入れ側から呼び出すことができます。ただし、isProtReady または isEstablished から true が返されたあとでなければなりません。getConfState が true を返した場合は、このメソッドも true を返します。

戻り値:
完全性サービスを利用できる場合は true、そうでない場合は false
関連項目:
requestInteg(boolean)

getLifetime

public int getLifetime()
このコンテキストの残りの寿命を検査します。このメソッドは、コンテキストの起動側および受け入れ側から呼び出すことができます。ただし、isEstablished から true が返されたあとでなければなりません。

戻り値:
残りの寿命 (秒単位)
関連項目:
requestLifetime(int)

getSrcName

public GSSName getSrcName()
                   throws GSSException
コンテキストの起動側の名前を返します。この呼び出しは、isProtReady または isEstablished から true が返されたあとでのみ有効になります。

戻り値:
GSSName。コンテキストの起動側の名前を含む MN
例外:
GSSException - メジャーエラーコード GSSException.FAILURE を含む
関連項目:
GSSName

getTargName

public GSSName getTargName()
                    throws GSSException
コンテキストの受け入れ側の名前を返します。この呼び出しは、isProtReady または isEstablished から true が返されたあとでのみ有効になります。

戻り値:
GSSName。コンテキストの受け入れ側の名前を含む MN
例外:
GSSException - メジャーエラーコード GSSException.FAILURE を含む

getMech

public Oid getMech()
            throws GSSException
このコンテキストに使用されている機構を検査します。このメソッドは、コンテキストが完全に確立される前に呼び出すことができます。ただし、GSS-API 機構のネゴシエーションが完了したあとでこのメソッドを呼び出すと、返される機構が変わることがあります。

戻り値:
使用されている機構の OID
例外:
GSSException - メジャーエラーコード GSSException.FAILURE を含む

getDelegCred

public GSSCredential getDelegCred()
                           throws GSSException
コンテキストの起動側からコンテキストの受け入れ側に委譲された資格を取得します。このメソッドは、コンテキストの受け入れ側から、コンテキストが完全に確立されたあとで呼び出す必要があります。呼び出し側で委譲された資格があるかどうかを確認するには、メソッド getCredDelegState を使用します。

戻り値:
起動側から委譲された資格が含まれる GSSCredential。委譲された資格がない場合は null
例外:
GSSException - メジャーエラーコード GSSException.FAILURE を含む

isInitiator

public boolean isInitiator()
                    throws GSSException
このピアがコンテキストの起動側であるかどうかを検査します。このメソッドは、コンテキストの起動側および受け入れ側から呼び出すことができます。

戻り値:
コンテキストの起動側である場合は true、コンテキストの受け入れ側である場合は false
例外:
GSSException - メジャーエラーコード GSSException.FAILURE を含む

JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.