JavaTM Platform
Standard Ed. 6

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


public interface GSSContext

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

呼び出し側がデフォルトの GSSManager インスタンスを使用してコンテキストをインスタンス化する場合は、Kerberos v5 GSS-API 機構を使用してコンテキストが確立されます。Kerberos v5 機構は、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)
          起動側の資格を受け入れ側に公開しないように要求します。
 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

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

initSecContext

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

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 - inMsg 内のオフセット。この位置からトークンが開始する
len - トークンの長さ
戻り値:
ピアに送信されるトークンを含む byte[] null の場合は、トークンが生成されないことを示す
例外:
GSSException - 次のメジャーエラーコードを 含む。 GSSException.DEFECTIVE_TOKENGSSException.BAD_MICGSSException.NO_CREDGSSException.CREDENTIALS_EXPIREDGSSException.BAD_BINDINGSGSSException.OLD_TOKENGSSException.DUPLICATE_TOKENGSSException.BAD_MECHGSSException.FAILURE

acceptSecContext

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

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_EXPIREDGSSException.BAD_QOPGSSException.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_EXPIREDGSSException.BAD_QOPGSSException.FAILURE

wrap

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

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

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

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

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

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

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

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

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

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

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

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

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

戻り値:
エクスポートされたコンテキストを含む byte[]
例外:
GSSException - 次のメジャーエラーコードを 含む。 GSSException.UNAVAILABLEGSSException.CONTEXT_EXPIREDGSSException.NO_CONTEXTGSSException.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.isDuplicateTokenMessageProp.isOldTokenMessageProp.isUnseqTokenMessageProp.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 から true が返されたあとでなければいけません。このメソッドが true を返す場合は、getIntegStatetrue を返します。

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

getIntegState

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

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

getLifetime

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

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

getSrcName

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

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

getTargName

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

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

getMech

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

戻り値:
使用されている機構の 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

JavaTM Platform
Standard Ed. 6

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

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。