-
- 既知のすべてのサブインタフェース:
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インタフェースの使用法を示しています。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 intDEFAULT_LIFETIMEコンテキストのデフォルトの寿命を表す寿命定数です。static intINDEFINITE_LIFETIMEコンテキストの寿命が無期限であることを表す寿命定数です。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 抽象メソッド 修飾子と型 メソッド 説明 byte[]acceptSecContext(byte[] inToken, int offset, int len)ピアからトークンが着信したときに、コンテキストの受け入れ側によって呼び出されます。voidacceptSecContext(InputStream inStream, OutputStream outStream)コンテキストの受け入れ側によって呼び出されるメソッドです。voiddispose()コンテキスト・オブジェクトに格納されているシステム資源と暗号化情報をすべて解放し、そのコンテキストを無効にします。byte[]export()このコンテキストをエクスポートして、別のプロセスがインポートできるようにします。booleangetAnonymityState()コンテキストの起動側がコンテキストの受け入れ側に匿名として認証されているかどうかを判定します。booleangetConfState()このコンテキストでデータの機密性を利用できるかどうかを検査します。booleangetCredDelegState()このコンテキストで資格の委譲が有効になっているかどうかを判定します。GSSCredentialgetDelegCred()コンテキストの起動側からコンテキストの受け入れ側に委譲された資格を取得します。booleangetIntegState()このコンテキストでデータの整合性を利用できるかどうかを検査します。intgetLifetime()このコンテキストの残りの寿命を検査します。OidgetMech()このコンテキストに使用されているメカニズムを検査します。byte[]getMIC(byte[] inMsg, int offset, int len, MessageProp msgProp)指定されたメッセージの暗号化MIC (メッセージ整合性コード)を含むトークンを返します。このトークンは、ピア・アプリケーションに転送されます。voidgetMIC(InputStream inStream, OutputStream outStream, MessageProp msgProp)ストリームを使用して、指定されたメッセージの暗号化MICを含むトークンを返します。このトークンは、ピア・アプリケーションに転送されます。booleangetMutualAuthState()このコンテキストで相互認証が有効になっているかどうかを判定します。booleangetReplayDetState()このコンテキストのメッセージごとのセキュリティ・サービスでリプレイ検出が有効になっているかどうかを判定します。booleangetSequenceDetState()このコンテキストのメッセージごとのセキュリティ・サービスでシーケンス・チェックが有効になっているかどうかを判定します。GSSNamegetSrcName()コンテキストの起動側の名前を返します。GSSNamegetTargName()コンテキストの受け入れ側の名前を返します。intgetWrapSizeLimit(int qop, boolean confReq, int maxTokenSize)wrapに渡すことができるメッセージ・サイズの制限を決めるときに使用します。byte[]initSecContext(byte[] inputBuf, int offset, int len)コンテキストの起動側によって呼び出されます。コンテキストの作成処理を開始し、ピアのacceptSecContextメソッドによって生成されたトークンを処理します。intinitSecContext(InputStream inStream, OutputStream outStream)コンテキストの起動側によって呼び出され、コンテキストの作成処理を開始し、ピアのacceptSecContextメソッドによって生成されたトークンをストリームを使用して処理します。booleanisEstablished()コンテキストを確立する前に、コンテキストの状態を確認するときに使用します。booleanisInitiator()このピアがコンテキストの起動側であるかどうかを検査します。booleanisProtReady()このコンテキストでメッセージごとの操作をすぐに開始できるかどうかを検査します。booleanisTransferable()exportメソッドを使用して、このコンテキストをほかのプロセスに転送できるかどうかを検査します。voidrequestAnonymity(boolean state)起動側の資格を受け入れ側に公開しないように要求します。voidrequestConf(boolean state)wrapメソッドでデータの機密性を有効にするように要求します。voidrequestCredDeleg(boolean state)コンテキストの確立の際に起動側の資格を受け入れ側に委譲するように要求します。voidrequestInteg(boolean state)wrapメソッドとgetMICメソッドでデータの整合性を有効にするように要求します。voidrequestLifetime(int lifetime)コンテキストの寿命を秒単位で要求します。voidrequestMutualAuth(boolean state)コンテキストが確立しているときに、相互認証が行われるように要求します。voidrequestReplayDet(boolean state)コンテキストが確立したあとで、メッセージごとのセキュリティ・サービスのリプレイ検出が有効になるように要求します。voidrequestSequenceDet(boolean state)コンテキストが確立したあとで、メッセージごとのセキュリティ・サービスのシーケンス・チェックが有効になるように要求します。voidsetChannelBinding(ChannelBinding cb)コンテキストが確立しているときにチャネル・バインディングが使用されるように設定します。byte[]unwrap(byte[] inBuf, int offset, int len, MessageProp msgProp)コンテキストの相手側でwrapメソッドによって生成されたトークンを処理するために使用します。voidunwrap(InputStream inStream, OutputStream outStream, MessageProp msgProp)ストリームを使用して、コンテキストの相手側のピアでwrapメソッドによって生成されたトークンを処理します。voidverifyMIC(byte[] inToken, int tokOffset, int tokLen, byte[] inMsg, int msgOffset, int msgLen, MessageProp msgProp)トークン・パラメータに含まれる暗号化MICを、指定されたメッセージに対して検査します。voidverifyMIC(InputStream tokStream, InputStream msgStream, MessageProp msgProp)ストリームを使用して、トークン・パラメータに含まれる指定されたメッセージの暗号化MICを検証します。byte[]wrap(byte[] inBuf, int offset, int len, MessageProp msgProp)確立されたセキュリティ・コンテキストに対してメッセージごとのセキュリティ・サービスを適用します。voidwrap(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_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
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_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
void acceptSecContext(InputStream inStream, OutputStream outStream) throws GSSException
コンテキストの受け入れ側によって呼び出されるメソッドです。 このメソッドからOutputStreamに書き出された出力トークンは、ピアの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_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 GSSExceptionwrapに渡すことができるメッセージ・サイズの制限を決めるときに使用します。 このメソッドは、最大メッセージ・サイズを返します。同じ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
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_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
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_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つの方法としては、msgPropにnullを渡す方法がある。- 戻り値:
- ピアに送信されるトークンを含むbyte[]。
- 例外:
GSSException- 次のメジャー・エラー・コードを含む。GSSException.CONTEXT_EXPIRED,GSSException.BAD_QOP,GSSException.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に設定する。 デフォルトのQOPを要求するもう1つの方法としては、msgPropにnullを渡す方法がある。- 例外:
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_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.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 GSSExceptionwrapメソッドでデータの機密性を有効にするように要求します。 この要求は、コンテキストの起動側からのみ行うことができ、initSecContextを最初に呼び出すより前に行う必要があります。 認証メカニズムによっては、機密性をサポートしていないものや、アプリケーションから要求されない場合でも機密性を有効にするものがあります。 要求が受け付けられたかどうかを確認するには、アプリケーションでgetConfStateメソッドを使用します。 機密性が有効な場合に限り、wrapメソッドに渡されたMessagePropオブジェクトに含まれるプライバシ・リクエストを認証メカニズムが受け付けます。機密性を有効にすると、整合性も自動的に有効になります。
- パラメータ:
state- 機密性を有効にするかどうかを示すboolean値。- 例外:
GSSException- 次のメジャー・エラー・コードを含む。GSSException.FAILURE- 関連項目:
getConfState(),getIntegState(),requestInteg(boolean),MessageProp
-
requestInteg
void requestInteg(boolean state) throws GSSExceptionwrapメソッドと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 GSSExceptionexportメソッドを使用して、このコンテキストをほかのプロセスに転送できるかどうかを検査します。 この呼出しは、完全に確立されたコンテキストでだけ有効です。- 戻り値:
- このコンテキストをエクスポートできる場合はtrue、そうでない場合はfalse
- 例外:
GSSException- 次のメジャー・エラー・コードを含む。GSSException.FAILURE
-
isProtReady
boolean isProtReady()
このコンテキストでメッセージごとの操作をすぐに開始できるかどうかを検査します。 一部のメカニズムでは、コンテキストが完全に確立される前に、メッセージごとの操作を使用できます。- 戻り値:
- 現在のコンテキスト確立段階で
wrap、unwrap、getMIC、verifyMICなどのメソッドを使用できる場合は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または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
このコンテキストに使用されているメカニズムを検査します。 このメソッドは、コンテキストが完全に確立される前に呼び出すことができます。ただし、メカニズムのネゴシエーションが完了した後でこのメソッドを呼び出すと、返されるメカニズムが変わることがあります。- 戻り値:
- 使用されているメカニズムの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
-
-