GSS-API の実装によっては、いくつかの動作が若干異なる場合もあります。ほとんどの場合、実装による違いはプログラムに最小限の影響しか与えません。どのような場合でも、実装に固有な動作 (Sun の実装も含む) に依存しなければ、移植性を最大限にすることができます。
Sun の実装に固有な GSS-API 関数は存在しません。
GSS-API の実装によっては、名前の出力可能な形式についての構文が異なる場合があります。移植性を最大限にしたいアプリケーションでは、名前を比較するときに、人が読める (つまり、出力可能な) 形式で比較するのではなく、gss_compare_name() を使用して一致するかどうかを内部形式で比較するべきです。
Sun の 実装の gss_display_name() は名前を次のように表示します。input_name 引数がユーザープリンシパルを指す場合、gss_display_name() は user_principal@realm を output_name_buffer として、gss_OID 値を output_name_type として戻します。Kerberos v5 が実際の機構である場合、gss_OID は 1.2.840.11354.1.2.2 になります。
gss_display_name() に指定した名前が gss_import_name() への呼び出しで作成されていた場合、GSS_C_NO_OID を名前型として指定すると、gss_display_name() は GSS_C_NO_OID を output_name_type パラメータ経由で戻します。
gss_display_name() 関数は、匿名の GSS-API プリンシパルを示すとき、文字列 <anonymous> を出力します。この名前に関連する名前型 OID は GSS_C_NT_ANONYMOUS
です。Sun の実装で有効な印刷可能な名前の中では、これ以外に < で始まり > で終わるものは存在しません。
Sun の実装では、gss_cred_t
、gss_ctx_id_t
、gss_name_t
のデータ型はポインタです。他の実装の中には、算術型として指定されるものもあります。
コンテキストの確立が失敗した場合、Sun の実装では「構築中」のコンテキストを自動的に削除しません。したがって、アプリケーションがこの事態を処理する、つまり、gss_delete_sec_context() でコンテキストを削除する必要があります。
Sun の実装では、格納されたデータ (内部名など) を、メモリー管理を通じて自動的に解放します。しかし、用心のため、データ要素が必要でなくなったときには、アプリケーションで適切な関数 (gss_release_name() など) を呼び出すべきです。
Sun の実装では、チャネルバインディングに含まれる情報を暗号化しません。したがって、プログラマは、この情報へ攻撃不可能であるとは考えるべきではありません。
Sun の実装では、コンテキストのエクスポートをサポートします。しかし、GSS-API の他の実装の中には、サポートしないものもあります。コンテキストのエクスポートで使用されるプロセス間トークンには、オリジナルのセキュリティコンテキストからの重要なデータ (暗号化鍵など) が含まれている可能性があります。GSS-API の Sun の実装では、プロセス間トークンを暗号化しません。したがって、セキュリティコンテキストをエクスポートするアプリケーションは、転送中のこのようなトークンをラップして保護する必要があります。
Sun の実装では、同じコンテキストに対する複数のインポートの試みを検出および拒否します。
GSS-API の Sun の実装では、gss_acquire_cred() による、GSS_C_INITIATE、GSS_C_ACCEPT、および GSS_C_BOTH の資格の獲得をサポートしています。
GSS-API の Sun の実装では、資格の有効期間の設定をサポートします。したがって、プログラマは gss_acquire_cred() や gss_add_cred() などの関数で、資格の有効期間に関連するパラメータを使用できます。
GSS-API の Sun の実装では、コンテキストの有効期間の設定をサポートします。したがって、プログラマは gss_init_sec_context() や gss_inquire_context() などの関数で、コンテキストの有効期間に関連するパラメータを使用できます。
GSS-API の Sun の実装では、実際の機構とは異なり、gss_wrap() で処理するメッセージの最大サイズに制限を課しません。アプリケーションは gss_wrap_size_limit() でメッセージの最大サイズを決定できます。
GSS-API の Sun の実装では、gss_wrap_size_limit() を呼び出すとき、無効な QOP 値を検出します。
GSS-API の Sun の実装では、関数が minor_status パラメータで戻すのは、機構に固有な情報だけです。他の実装では、戻されたマイナー状態コードの一部として実装に固有な戻り値が含まれることもあります。