Network Working Group                                             J. Wray
Request for Comments: 2744                                Iris Associates
Obsoletes: 1509                                              January 2000
Category: Standards Track
        
          Generic Security Service API Version 2 : C-bindings
        

Status of this Memo

このメモの位置付け

This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.

この文書は、インターネットコミュニティのためのインターネット標準トラックプロトコルを指定し、改善のための議論と提案を要求します。このプロトコルの標準化状態と状態への「インターネット公式プロトコル標準」(STD 1)の最新版を参照してください。このメモの配布は無制限です。

Copyright Notice

著作権表示

Copyright (C) The Internet Society (2000). All Rights Reserved.

著作権(C)インターネット協会(2000)。全著作権所有。

Abstract

抽象

This document specifies C language bindings for Version 2, Update 1 of the Generic Security Service Application Program Interface (GSS-API), which is described at a language-independent conceptual level in RFC-2743 [GSSAPI]. It obsoletes RFC-1509, making specific incremental changes in response to implementation experience and liaison requests. It is intended, therefore, that this memo or a successor version thereof will become the basis for subsequent progression of the GSS-API specification on the standards track.

この文書では、[GSSAPI] RFC-2743で言語非依存の概念レベルで説明されているバージョン2のためのC言語バインディング、汎用セキュリティサービスアプリケーションプログラムインタフェース(GSSAPI)の更新1を指定します。これは、実装経験とリエゾン要求に応じて特定の増分変更を行う、RFC-1509を廃止します。このメモまたは後継バージョンは、その標準化トラックにGSS-API仕様のその後の進行の基礎となること、そのため、意図しています。

The Generic Security Service Application Programming Interface provides security services to its callers, and is intended for implementation atop a variety of underlying cryptographic mechanisms. Typically, GSS-API callers will be application protocols into which security enhancements are integrated through invocation of services provided by the GSS-API. The GSS-API allows a caller application to authenticate a principal identity associated with a peer application, to delegate rights to a peer, and to apply security services such as confidentiality and integrity on a per-message basis.

一般的なセキュリティサービスアプリケーションプログラミングインタフェースは、その発信者に対してセキュリティサービスを提供し、基礎となる暗号化機構の様々な上に実装するためのものです。一般的に、GSS-APIの呼び出し側は、セキュリティの強化は、GSS-APIが提供するサービスの呼び出しによって集積されたアプリケーションプロトコルになります。 GSS-APIは、呼び出し元のアプリケーションは、ピアアプリケーションに関連付けられている主なアイデンティティを認証するために、ピアへの権限を委任すると、メッセージごとに、このような機密性と完全性などのセキュリティサービスを適用することができます。

1. Introduction
1. はじめに

The Generic Security Service Application Programming Interface [GSSAPI] provides security services to calling applications. It allows a communicating application to authenticate the user associated with another application, to delegate rights to another application, and to apply security services such as confidentiality and integrity on a per-message basis.

一般的なセキュリティサービスアプリケーションプログラミングインターフェイス[GSSAPI]は呼び出し元のアプリケーションにセキュリティサービスを提供します。これは、他のアプリケーションへの権限を委任すると、メッセージごとに機密性と整合性などのセキュリティサービスを適用するために、別のアプリケーションに関連付けられているユーザを認証するための通信アプリケーションを可能にします。

There are four stages to using the GSS-API:

GSS-APIを使用して4つの段階があります。

a) The application acquires a set of credentials with which it may prove its identity to other processes. The application's credentials vouch for its global identity, which may or may not be related to any local username under which it may be running.

a)のアプリケーションは、それが他のプロセスにその身元を証明する可能性があるとの一連の資格情報を取得します。アプリケーションの資格情報は、または、それが実行されてその下で任意のローカルユーザ名に関連してもしなくてもよいグローバルアイデンティティ、を保証します。

b) A pair of communicating applications establish a joint security context using their credentials. The security context is a pair of GSS-API data structures that contain shared state information, which is required in order that per-message security services may be provided. Examples of state that might be shared between applications as part of a security context are cryptographic keys, and message sequence numbers. As part of the establishment of a security context, the context initiator is authenticated to the responder, and may require that the responder is authenticated in turn. The initiator may optionally give the responder the right to initiate further security contexts, acting as an agent or delegate of the initiator. This transfer of rights is termed delegation, and is achieved by creating a set of credentials, similar to those used by the initiating application, but which may be used by the responder.

b)は、通信アプリケーションのペアは、それらの資格情報を使用してジョイントセキュリティコンテキストを確立します。セキュリティコンテキストは、メッセージごとのセキュリティサービスを提供することができるようにするために必要とされる共有状態情報を含むGSS-APIデータ構造の対です。セキュリティコンテキストの一部として、アプリケーション間で共有される可能性のある状態の例は、暗号化キー、およびメッセージのシーケンス番号です。セキュリティコンテキストの確立の一部として、コンテキストイニシエータはレスポンダに認証され、応答者が順番に認証されることを要求することができます。開始剤は、必要に応じて、イニシエータのエージェントまたは代理人として働く、レスポンダをさらにセキュリティコンテキストを開始する権利を与えることができます。権利のこの転送は、委任と呼ばれ、開始アプリケーションで使用されるものと同様の資格情報のセットを作成することによって達成されますが、応答者によって使用されることができます。

To establish and maintain the shared information that makes up the security context, certain GSS-API calls will return a token data structure, which is an opaque data type that may contain cryptographically protected data. The caller of such a GSS-API routine is responsible for transferring the token to the peer application, encapsulated if necessary in an application-application protocol. On receipt of such a token, the peer application should pass it to a corresponding GSS-API routine which will decode the token and extract the information, updating the security context state information accordingly.

セキュリティコンテキストを構成する共有情報を確立し、維持するために、特定のGSS-APIの呼び出しは、暗号で保護されたデータを含むことが不透明なデータ型であるトークンのデータ構造を、返します。そのようなGSS-APIルーチンの呼び出し元は、必要に応じてアプリケーション・アプリケーション・プロトコルでカプセル化されたピアアプリケーションにトークンを転送する責任があります。そのようなトークンを受信すると、ピア・アプリケーションは、それに応じてセキュリティコンテキスト状態情報を更新し、トークンを復号し、情報を抽出し、対応するGSS-APIルーチンに渡すべきです。

c) Per-message services are invoked to apply either:

C)メッセージごとのサービスのいずれかを適用するために呼び出されます。

integrity and data origin authentication, or confidentiality, integrity and data origin authentication to application data, which are treated by GSS-API as arbitrary octet-strings. An application transmitting a message that it wishes to protect will call the appropriate GSS-API routine (gss_get_mic or gss_wrap) to apply protection, specifying the appropriate security context, and send the resulting token to the receiving application. The receiver will pass the received token (and, in the case of data protected by gss_get_mic, the accompanying message-data) to the corresponding decoding routine (gss_verify_mic or gss_unwrap) to remove the protection and validate the data.

任意のオクテット文字列としてGSS-APIによって処理されているアプリケーションデータに整合性とデータ発信元認証、あるいは機密性、完全性、データ発信元認証。それが保護したいというメッセージを送信するアプリケーションは、適切なセキュリティコンテキストを指定し、保護を適用するために、適切なGSS-APIルーチン(はgss_get_micかはgss_wrap)を呼び出し、受信側アプリケーションに結果のトークンを送信します。受信機は、保護を解除し、データを検証するために、対応する復号ルーチン(又は側はgss_verify_micはgss_unwrap)に受信したトークン(および、はgss_get_mic、添付メッセージデータによって保護されたデータの場合)を通過します。

d) At the completion of a communications session (which may extend across several transport connections), each application calls a GSS-API routine to delete the security context. Multiple contexts may also be used (either successively or simultaneously) within a single communications association, at the option of the applications.

D)は、いくつかのトランスポート接続を横切って延びることができる通信セッション()が完了した時点で、各アプリケーションは、セキュリティコンテキストを削除するGSS-APIルーチンを呼び出します。複数のコンテキストは、アプリケーションの選択により、単一の通信アソシエーション内(いずれかの連続的または同時に)使用することができます。

2. GSS-API Routines
2. GSS-APIルーチン
      This section lists the routines that make up the GSS-API, and
      offers a brief description of the purpose of each routine.
      Detailed descriptions of each routine are listed in alphabetical
      order in section 5.
        

Table 2-1 GSS-API Credential-management Routines

表2-1 GSS-API資格管理ルーチン

   Routine                Section              Function
   -------                -------              --------
   gss_acquire_cred           5.2  Assume a global identity; Obtain
                                   a GSS-API credential handle for
                                   pre-existing credentials.
   gss_add_cred               5.3  Construct credentials
                                   incrementally
   gss_inquire_cred           5.21 Obtain information about a
                                   credential
   gss_inquire_cred_by_mech   5.22 Obtain per-mechanism information
                                   about a credential.
   gss_release_cred           5.27 Discard a credential handle.
        

Table 2-2 GSS-API Context-Level Routines

表2-2 GSS-APIコンテキスト・レベルのルーチン

   Routine                 Section              Function
   -------                 -------              --------
   gss_init_sec_context       5.19 Initiate a security context with
                                   a peer application
   gss_accept_sec_context     5.1  Accept a security context
                                   initiated by a
                                   peer application
   gss_delete_sec_context     5.9  Discard a security context
   gss_process_context_token  5.25 Process a token on a security
                                   context from a peer application
   gss_context_time           5.7  Determine for how long a context
                                   will remain valid
   gss_inquire_context        5.20 Obtain information about a
                                   security context
   gss_wrap_size_limit        5.34 Determine token-size limit for
                                   gss_wrap on a context
   gss_export_sec_context     5.14 Transfer a security context to
                                   another process
   gss_import_sec_context     5.17 Import a transferred context
        

Table 2-3 GSS-API Per-message Routines

表2-3 GSS-APIごとのメッセージルーチン

   Routine                 Section              Function
   -------                 -------              --------
   gss_get_mic                5.15 Calculate a cryptographic message
                                   integrity code (MIC) for a
                                   message; integrity service
   gss_verify_mic             5.32 Check a MIC against a message;
                                   verify integrity of a received
                                   message
   gss_wrap                   5.33 Attach a MIC to a message, and
                                   optionally encrypt the message
                                   content;
                                   confidentiality service
   gss_unwrap                 5.31 Verify a message with attached
                                   MIC, and decrypt message content
                                   if necessary.
        

Table 2-4 GSS-API Name manipulation Routines

表2-4 GSS-API名前操作ルーチン

   Routine                 Section              Function
   -------                 -------              --------
   gss_import_name            5.16 Convert a contiguous string name
                                   to internal-form
   gss_display_name           5.10 Convert internal-form name to
                                   text
   gss_compare_name           5.6  Compare two internal-form names
        

gss_release_name 5.28 Discard an internal-form name gss_inquire_names_for_mech 5.24 List the name-types supported by the specified mechanism gss_inquire_mechs_for_name 5.23 List mechanisms that support the specified name-type gss_canonicalize_name 5.5 Convert an internal name to an MN gss_export_name 5.13 Convert an MN to export form gss_duplicate_name 5.12 Create a copy of an internal name

5.28をgss_release_name指定されたメカニズムでサポートされている名前、種類が指定された名前型gss_canonicalize_name 5.5をサポートする5.23リストメカニズムは、MNに内部名を変換しgss_inquire_mechs_for_name内部形式名gss_inquire_names_for_mech 5.24リストを破棄し、フォームをエクスポートするMNに変換5.13をgss_export_name 5.12をgss_duplicate_name内部名のコピーを作成します。

Table 2-5 GSS-API Miscellaneous Routines

表2-5 GSS-APIその他のルーチン

   Routine                Section              Function
   -------                -------              --------
   gss_add_oid_set_member    5.4  Add an object identifier to
                                  a set
   gss_display_status        5.11 Convert a GSS-API status code
                                  to text
   gss_indicate_mechs        5.18 Determine available underlying
                                  authentication mechanisms
   gss_release_buffer        5.26 Discard a buffer
   gss_release_oid_set       5.29 Discard a set of object
                                  identifiers
   gss_create_empty_oid_set  5.8  Create a set containing no
                                  object identifiers
   gss_test_oid_set_member   5.30 Determines whether an object
                                       identifier is a member of a set.
        

Individual GSS-API implementations may augment these routines by providing additional mechanism-specific routines if required functionality is not available from the generic forms. Applications are encouraged to use the generic routines wherever possible on portability grounds.

個々のGSS-APIの実装では、必要な機能は、一般的なフォームから利用できない場合は、追加の機構固有のルーチンを提供することにより、これらのルーチンを強化することがあります。アプリケーションは、可能な限り移植性を理由に、一般的なルーチンを使用することをお勧めします。

3. Data Types and Calling Conventions
3.データ型と呼び出し規約

The following conventions are used by the GSS-API C-language bindings:

次の規則は、GSS-APIのC言語バインディングで使用されます。

3.1. Integer types
3.1. 整数タイプ

GSS-API uses the following integer data type:

GSS-APIは次の整数データ型を使用しています。

OM_uint32 32-bit unsigned integer

OM_uint32と同じ32ビット符号なし整数

Where guaranteed minimum bit-count is important, this portable data type is used by the GSS-API routine definitions. Individual GSS-API implementations will include appropriate typedef definitions to map this type onto a built-in data type. If the platform supports the X/Open xom.h header file, the OM_uint32 definition contained therein should be used; the GSS-API header file in Appendix A contains logic that will detect the prior inclusion of xom.h, and will not attempt to re-declare OM_uint32. If the X/Open header file is not available on the platform, the GSS-API implementation should use the smallest natural unsigned integer type that provides at least 32 bits of precision.

最低保証ビット数が重要である場合は、このポータブルデータ型は、GSS-APIルーチン定義で使用されます。個々のGSS-APIの実装には、組み込みのデータ型にこのタイプをマップするために、適切なtypedefで定義が含まれます。プラットフォームは、X / Openのxom.hヘッダファイルをサポートしている場合、そこに含まれるOM_uint32と同じ定義を用いるべきです。付録AのGSS-APIのヘッダファイルはxom.hの前に含めることを検出し、再宣言OM_uint32と同じにしようとしませんロジックが含まれています。 X / Openのヘッダファイルは、プラットフォーム上で使用できない場合、GSS-APIの実装では、精度の少なくとも32ビットを提供する最小の自然符号なし整数型を使用する必要があります。

3.2. String and similar data
3.2. 文字列と同様のデータ

Many of the GSS-API routines take arguments and return values that describe contiguous octet-strings. All such data is passed between the GSS-API and the caller using the gss_buffer_t data type. This data type is a pointer to a buffer descriptor, which consists of a length field that contains the total number of bytes in the datum, and a value field which contains a pointer to the actual datum:

GSS-APIルーチンの多くは、連続したオクテット文字列を記述する引数と戻り値を取ります。すべてのそのようなデータは、GSS-APIとgss_buffer_tデータ型を使用して、発信者の間で渡されます。このデータタイプは、基準の総バイト数、および実際のデータへのポインタを含む値フィールドを含む長さフィールドから成るバッファディスクリプタへのポインタです。

   typedef struct gss_buffer_desc_struct {
      size_t    length;
      void      *value;
   } gss_buffer_desc, *gss_buffer_t;
        

Storage for data returned to the application by a GSS-API routine using the gss_buffer_t conventions is allocated by the GSS-API routine. The application may free this storage by invoking the gss_release_buffer routine. Allocation of the gss_buffer_desc object is always the responsibility of the application; unused gss_buffer_desc objects may be initialized to the value GSS_C_EMPTY_BUFFER.

gss_buffer_t規則を使用してGSS-APIルーチンによってアプリケーションに返されたデータのストレージは、GSS-APIルーチンによって割り当てられます。アプリケーションはgss_release_bufferルーチンを呼び出すことにより、このストレージを解放することがあります。れるgss_buffer_descオブジェクトの割り当ては、常にアプリケーションの責任です。未使用れるgss_buffer_descオブジェクトは値GSS_C_EMPTY_BUFFERに初期化することができます。

3.2.1. Opaque data types
3.2.1. 不透明なデータ型

Certain multiple-word data items are considered opaque data types at the GSS-API, because their internal structure has no significance either to the GSS-API or to the caller. Examples of such opaque data types are the input_token parameter to gss_init_sec_context (which is opaque to the caller), and the input_message parameter to gss_wrap (which is opaque to the GSS-API). Opaque data is passed between the GSS-API and the application using the gss_buffer_t datatype.

その内部構造は、GSS-APIにまたは発信者のいずれかに意味はありませんので、特定の複数のワードのデータ項目は、GSS-APIで不透明なデータ型と見なされます。不透明なデータ型の例は、(発呼者に対して不透明である)もしGSS_Init_sec_contextする入力トークンパラメータ、及び(GSS-APIに不透明である)はgss_wrapするinput_messageパラメータです。不透明なデータは、GSS-APIとgss_buffer_tデータ型を使用して、アプリケーション間で渡されます。

3.2.2. Character strings
3.2.2. 文字列

Certain multiple-word data items may be regarded as simple ISO Latin-1 character strings. Examples are the printable strings passed to gss_import_name via the input_name_buffer parameter. Some GSS-API routines also return character strings. All such character strings are passed between the application and the GSS-API implementation using the gss_buffer_t datatype, which is a pointer to a gss_buffer_desc object.

特定の複数のワードのデータ項目は、単純なISO Latin-1の文字列とみなすことができます。例としては、input_name_bufferパラメータによってgss_import_nameに渡された印刷可能な文字列です。いくつかのGSS-APIルーチンも、文字列を返します。このようなすべての文字列は、アプリケーションとれるgss_buffer_descオブジェクトへのポインタですgss_buffer_tデータ型を使用して、GSS-APIの実装間で渡されます。

When a gss_buffer_desc object describes a printable string, the length field of the gss_buffer_desc should only count printable characters within the string. In particular, a trailing NUL character should NOT be included in the length count, nor should either the GSS-API implementation or the application assume the presence of an uncounted trailing NUL.

れるgss_buffer_descオブジェクトが印刷可能な文字列を記述する場合、れるgss_buffer_descの長さフィールドは、文字列内の印刷可能な文字をカウントする必要があります。具体的には、末尾のNUL文字は長さ数に含めるべきではない、またGSS-APIの実装またはアプリケーションは無数の末尾のNULの存在を前提としなければなりません。

3.3. Object Identifiers
3.3. オブジェクト識別子

Certain GSS-API procedures take parameters of the type gss_OID, or Object identifier. This is a type containing ISO-defined tree-structured values, and is used by the GSS-API caller to select an underlying security mechanism and to specify namespaces. A value of type gss_OID has the following structure:

特定のGSS-API手順はタイプ次に、gss_OID、またはオブジェクト識別子のパラメータを取ります。これは、ISO-定義されたツリー構造の値を含む型であり、基本的なセキュリティメカニズムを選択し、名前空間を指定するには、GSS-APIの呼び出し側によって使用されています。タイプ次に、gss_OIDの値は、以下の構造を有します:

   typedef struct gss_OID_desc_struct {
      OM_uint32   length;
      void        *elements;
   } gss_OID_desc, *gss_OID;
        

The elements field of this structure points to the first byte of an octet string containing the ASN.1 BER encoding of the value portion of the normal BER TLV encoding of the gss_OID. The length field contains the number of bytes in this value. For example, the gss_OID value corresponding to {iso(1) identified-organization(3) icd-ecma(12) member-company(2) dec(1011) cryptoAlgorithms(7) DASS(5)}, meaning the DASS X.509 authentication mechanism, has a length field of 7 and an elements field pointing to seven octets containing the following octal values: 53,14,2,207,163,7,5. GSS-API implementations should provide constant gss_OID values to allow applications to request any supported mechanism, although applications are encouraged on portability grounds to accept the default mechanism. gss_OID values should also be provided to allow applications to specify particular name types (see section 3.10). Applications should treat gss_OID_desc values returned by GSS-API routines as read-only. In particular, the application should not attempt to deallocate them with free(). The gss_OID_desc datatype is equivalent to the X/Open OM_object_identifier datatype[XOM].

この構造の要素フィールドは、次に、gss_OIDの通常のBER TLVエンコーディングの値部分のASN.1のBER符号化を含むオクテット文字列の最初のバイトを指します。長さフィールドは、この値のバイト数を含んでいます。例えば、に対応次に、gss_OID値{ISO(1)同定された組織(3)ICD-ECMA(12)会員会社(2)12(1011)cryptoAlgorithms(7)DASS(5)}、DASS Xを意味53,14,2,207,163,7,5:509認証機構は、7の長さフィールドと、次の進値を含む7つのオクテットを指す要素フィールドを有します。アプリケーションがデフォルトのメカニズムを受け入れるように可搬性を理由に奨励されているが、GSS-APIの実装では、アプリケーションがサポートされている任意のメカニズムを要求することを可能にするために、一定次に、gss_OID値を提供する必要があります。次に、gss_OID値は、アプリケーションが特定の名前のタイプ(セクション3.10を参照)を指定することを可能にするために提供されるべきです。アプリケーションは、読み取り専用としてGSS-APIルーチンによって返さgss_OID_desc値を扱う必要があります。具体的には、アプリケーションは無料でそれらを解放するべきではありません()。 gss_OID_descデータ型は、X / Open OM_object_identifierデータ型[XOM]と等価です。

3.4. Object Identifier Sets
3.4. オブジェクト識別子セット

Certain GSS-API procedures take parameters of the type gss_OID_set. This type represents one or more object identifiers (section 2.3). A gss_OID_set object has the following structure:

特定のGSS-API手順はタイプたgss_OID_setのパラメータを取ります。このタイプは、1つ以上のオブジェクト識別子(セクション2.3)を表します。たgss_OID_setオブジェクトには、以下の構造を有します:

   typedef struct gss_OID_set_desc_struct {
      size_t    count;
      gss_OID   elements;
   } gss_OID_set_desc, *gss_OID_set;
        

The count field contains the number of OIDs within the set. The elements field is a pointer to an array of gss_OID_desc objects, each of which describes a single OID. gss_OID_set values are used to name the available mechanisms supported by the GSS-API, to request the use of specific mechanisms, and to indicate which mechanisms a given credential supports.

カウント・フィールドは、セット内のOIDの数が含まれています。要素フィールドは、単一のOIDを記述する各々がgss_OID_descオブジェクトの配列へのポインタです。たgss_OID_setの値は、GSS-APIによってサポートされる利用可能なメカニズムの名前を特定のメカニズムの使用を要求するために、どの機構所定の資格サポートを示すために使用されます。

All OID sets returned to the application by GSS-API are dynamic objects (the gss_OID_set_desc, the "elements" array of the set, and the "elements" array of each member OID are all dynamically allocated), and this storage must be deallocated by the application using the gss_release_oid_set() routine.

すべてのOIDセットは、動的オブジェクト(gss_OID_set_desc、セットの「要素」アレイ、および各メンバーOIDの「要素」配列は全て、動的に割り当てられている)であり、この記憶によって割り当て解除されなければならないGSS-APIにより、アプリケーションに返さgss_release_oid_set()ルーチンを使用してアプリケーション。

3.5. Credentials
3.5. 資格情報

A credential handle is a caller-opaque atomic datum that identifies a GSS-API credential data structure. It is represented by the caller-opaque type gss_cred_id_t, which should be implemented as a pointer or arithmetic type. If a pointer implementation is chosen, care must be taken to ensure that two gss_cred_id_t values may be compared with the == operator.

信任状ハンドルは、GSS-API資格証明データ構造を識別する発信者不透明な原子基準です。これは、ポインタまたは算術型として実装されなければならない発信者不透明型gss_cred_id_t、で表されます。ポインタの実装が選択された場合、注意は、二つgss_cred_id_t値が==演算子と比較することができることを確実にするために注意しなければなりません。

GSS-API credentials can contain mechanism-specific principal authentication data for multiple mechanisms. A GSS-API credential is composed of a set of credential-elements, each of which is applicable to a single mechanism. A credential may contain at most one credential-element for each supported mechanism. A credential-element identifies the data needed by a single mechanism to authenticate a single principal, and conceptually contains two credential-references that describe the actual mechanism-specific authentication data, one to be used by GSS-API for initiating contexts, and one to be used for accepting contexts. For mechanisms that do not distinguish between acceptor and initiator credentials, both references would point to the same underlying mechanism-specific authentication data.

GSS-API資格は複数のメカニズムのためのメカニズム - 特定のプリンシパルの認証データを含むことができます。 GSS-API資格は単一のメカニズムにも適用可能であるこれらの各々は、信任状要素の集合から構成されています。信任状は、サポートされる各機構のために最大1つの資格要素を含んでいてもよいです。信任状要素は、単一のプリンシパルを認証するための単一のメカニズムが必要とするデータを識別し、概念的に実際の機構固有の認証データを記述する2資格、参照が含まれ、コンテキストを開始するためのGSS-APIによって使用される1つ、および1つのコンテキストを受け入れるために使用すること。アクセプターおよびイニシエータの資格情報を区別しないメカニズムのため、両方の参照は、同じ基本メカニズム固有の認証データを指すことになります。

Credentials describe a set of mechanism-specific principals, and give their holder the ability to act as any of those principals. All principal identities asserted by a single GSS-API credential should belong to the same entity, although enforcement of this property is an implementation-specific matter. The GSS-API does not make the actual credentials available to applications; instead a credential handle is used to identify a particular credential, held internally by GSS-API. The combination of GSS-API credential handle and mechanism identifies the principal whose identity will be asserted by the credential when used with that mechanism.

資格情報は、機構固有のプリンシパルのセットを記述し、その所有者にこれらの主体のいずれかとして作用する能力を与えます。このプロパティの執行は実装固有の問題ではあるが、単一のGSS-API認証情報によってアサートすべての主要なアイデンティティは、同じエンティティに属している必要があります。 GSS-APIは、アプリケーションへの実際の資格情報を使用可能にしません。代わりに、証明書ハンドルは、GSS-APIによって内部的に開催された特定の資格を識別するために使用されます。 GSS-API証明書ハンドルとメカニズムの組み合わせは、そのアイデンティティ、その機構を使用する場合の資格によってアサートされるプリンシパルを識別します。

The gss_init_sec_context and gss_accept_sec_context routines allow the value GSS_C_NO_CREDENTIAL to be specified as their credential handle parameter. This special credential-handle indicates a desire by the application to act as a default principal. While individual GSS-API implementations are free to determine such default behavior as appropriate to the mechanism, the following default behavior by these routines is recommended for portability:

gss_init_sec_contextとのgss_accept_sec_contextルーチンは値GSS_C_NO_CREDENTIALが自分の証明書ハンドルをパラメータとして指定することができます。この特別な資格・ハンドルは、デフォルトのプリンシパルとして動作するアプリケーションによって意欲を示しています。個々のGSS-APIの実装はメカニズムに適宜なデフォルトの動作を決定するのは自由ですが、これらのルーチンによって、次のデフォルトの動作では、移植性のために推奨されます。

gss_init_sec_context

gss_init_sec_context

1) If there is only a single principal capable of initiating security contexts for the chosen mechanism that the application is authorized to act on behalf of, then that principal shall be used, otherwise

1)アプリケーションは、その主体が使用されるものを代表して行動することを許可されている選択された機構のためのセキュリティコンテキストを開始することができる単一のプリンシパルがそれ以外の場合は、存在する場合

2) If the platform maintains a concept of a default network-identity for the chosen mechanism, and if the application is authorized to act on behalf of that identity for the purpose of initiating security contexts, then the principal corresponding to that identity shall be used, otherwise

2)プラットフォームは、選択されたメカニズムのデフォルトのネットワーク・アイデンティティの概念を維持し、アプリケーションがセキュリティコンテキストを開始するために、そのアイデンティティを代表して行動することが許可されている場合は、そのIDに対応するプリンシパルが使用されなければならない場合には、 そうでなければ

3) If the platform maintains a concept of a default local identity, and provides a means to map local identities into network-identities for the chosen mechanism, and if the application is authorized to act on behalf of the network-identity image of the default local identity for the purpose of initiating security contexts using the chosen mechanism, then the principal corresponding to that identity shall be used, otherwise

3)プラットフォームは、デフォルトのローカルアイデンティティーの概念を維持し、選ばれたメカニズムのためのネットワーク・アイデンティティにローカルアイデンティティをマッピングするための手段を提供し、アプリケーションは、デフォルトのネットワーク・アイデンティティのイメージを代表して行動することを許可されている場合場合選択されたメカニズムを使用して、セキュリティコンテキストを開始するためにローカルID、そのIDに対応する主は、そうでなければ、使用しなければなりません

4) A user-configurable default identity should be used.

4)ユーザ設定可能デフォルトのIDを使用する必要があります。

gss_accept_sec_context

場合gss_accept_sec_context

1) If there is only a single authorized principal identity capable of accepting security contexts for the chosen mechanism, then that principal shall be used, otherwise

選択されたメカニズムのためのセキュリティコンテキストを受け入れることができる唯一の認可プリンシパルアイデンティティが存在する場合は1)、その主は、そうでなければ、使用しなければなりません

2) If the mechanism can determine the identity of the target principal by examining the context-establishment token, and if the accepting application is authorized to act as that principal for the purpose of accepting security contexts using the chosen mechanism, then that principal identity shall be used, otherwise

2)メカニズムは、コンテキスト確立トークンを調べることによって、ターゲット・プリンシパルのアイデンティティを決定することができる場合、及び受付アプリケーションは、プリンシパルアイデンティティが旨次いで、選択された機構を使用して、セキュリティコンテキストを受け入れるためにその主体として作用することを許可された場合そうでない場合は、使用すること

3) If the mechanism supports context acceptance by any principal, and if mutual authentication was not requested, any principal that the application is authorized to accept security contexts under using the chosen mechanism may be used, otherwise

3)それ以外の場合は、場合機構は、任意のプリンシパルによってコンテキスト受け入れをサポートし、相互認証が要求されなかった場合、アプリケーションは、選択された機構を使用して、下にセキュリティコンテキストを受け入れることを許可されていることを任意のプリンシパルを使用することができます

4)A user-configurable default identity shall be used.

4)ユーザ設定可能デフォルトのIDを使用しなければなりません。

The purpose of the above rules is to allow security contexts to be established by both initiator and acceptor using the default behavior wherever possible. Applications requesting default behavior are likely to be more portable across mechanisms and platforms than ones that use gss_acquire_cred to request a specific identity.

上記の規則の目的は、セキュリティコンテキストは、可能な限りデフォルトの動作を使用して、イニシエータとアクセプタの両方によって確立できるようにすることです。デフォルトの動作を要求するアプリケーションは、特定の識別情報を要求するためには、gss_acquire_cred使用したものよりメカニズムとプラットフォーム間での移植性である可能性が高いです。

3.6. Contexts
3.6. コンテキスト

The gss_ctx_id_t data type contains a caller-opaque atomic value that identifies one end of a GSS-API security context. It should be implemented as a pointer or arithmetic type. If a pointer type is chosen, care should be taken to ensure that two gss_ctx_id_t values may be compared with the == operator.

gss_ctx_id_tデータ型はGSS-APIセキュリティコンテキストの一端を識別する発信者不透明な原子値を含みます。これは、ポインタまたは算術型として実装されなければなりません。ポインタの種類が選択される場合、注意は、二つgss_ctx_id_t値が==演算子と比較することができることを確実にするために注意しなければなりません。

The security context holds state information about each end of a peer communication, including cryptographic state information.

セキュリティコンテキストは、暗号状態情報を含むピア通信の各端部についての状態情報を保持しています。

3.7. Authentication tokens
3.7. 認証トークン

A token is a caller-opaque type that GSS-API uses to maintain synchronization between the context data structures at each end of a GSS-API security context. The token is a cryptographically protected octet-string, generated by the underlying mechanism at one end of a GSS-API security context for use by the peer mechanism at the other end. Encapsulation (if required) and transfer of the token are the responsibility of the peer applications. A token is passed between the GSS-API and the application using the gss_buffer_t conventions.

トークンは、GSS-APIはGSS-APIセキュリティコンテキストの各端部にコンテキスト・データ構造体との間の同期を維持するために使用する発信者不透明なタイプです。トークンは、もう一方の端にピア機構による使用のためにGSS-APIセキュリティコンテキストの一端に根本的なメカニズムによって発生暗号で保護オクテットストリングです。カプセル化(必要な場合)、およびトークンの転送は、ピアアプリケーションの責任です。トークンは、GSS-APIとgss_buffer_t規則を使用して、アプリケーション間で渡されます。

3.8. Interprocess tokens
3.8. プロセス間トークン

Certain GSS-API routines are intended to transfer data between processes in multi-process programs. These routines use a caller-opaque octet-string, generated by the GSS-API in one process for use by the GSS-API in another process. The calling application is responsible for transferring such tokens between processes in an OS-specific manner. Note that, while GSS-API implementors are encouraged to avoid placing sensitive information within interprocess tokens, or to cryptographically protect them, many implementations will be unable to avoid placing key material or other sensitive data within them. It is the application's responsibility to ensure that interprocess tokens are protected in transit, and transferred only to processes that are trustworthy. An interprocess token is passed between the GSS-API and the application using the gss_buffer_t conventions.

特定のGSS-APIルーチンは、マルチプロセスプログラム内のプロセス間でデータを転送することを意図しています。これらのルーチンは、別のプロセスでGSS-APIで使用するための1つのプロセスでGSS-APIによって生成され、発信者-不透明なオクテット文字列を、使用しています。呼び出すアプリケーションは、OS固有の方法でプロセス間で、このようなトークンを転送するための責任があります。 GSS-APIの実装者は、プロセス間トークン内の機密情報を置くことを避けるために、またはそれらを保護、暗号することが奨励されている一方で、なお、多くの実装は、その中にキーマテリアルやその他の機密データを配置しないようにすることができません。プロセス間トークンが輸送中に保護され、唯一の信頼できるプロセスに転送されることを保証するために、アプリケーションの責任です。プロセス間トークンは、GSS-APIとgss_buffer_t規則を使用して、アプリケーション間で渡されます。

3.9. Status values
3.9. ステータス値

Every GSS-API routine returns two distinct values to report status information to the caller: GSS status codes and Mechanism status codes.

GSSステータスコードとメカニズムの状態コード:すべてのGSS-APIルーチンは、呼び出し元に、ステータス情報を報告するための2つの別個の値を返します。

3.9.1. GSS status codes
3.9.1. GSSステータスコード

GSS-API routines return GSS status codes as their OM_uint32 function value. These codes indicate errors that are independent of the underlying mechanism(s) used to provide the security service. The errors that can be indicated via a GSS status code are either generic API routine errors (errors that are defined in the GSS-API specification) or calling errors (errors that are specific to these language bindings).

GSS-APIルーチンは、そのOM_uint32と同じ関数値としてGSSステータスコードを返します。これらのコードは、セキュリティサービスを提供するために使用される基礎となるメカニズム(S)から独立しているエラーを示します。 GSSステータスコードを経由して示すことができるのエラーは、汎用APIルーチンエラー(GSS-API仕様で定義されたエラー)やエラー(これらの言語バインディングに固有のエラー)を呼び出すのどちらかです。

A GSS status code can indicate a single fatal generic API error from the routine and a single calling error. In addition, supplementary status information may be indicated via the setting of bits in the supplementary info field of a GSS status code.

GSSステータスコードは、ルーチンと、単一の呼び出しエラーから単一の致命的な汎用APIエラーを示すことができます。加えて、補足のステータス情報は、GSSステータスコードの補足情報フィールド内のビットの設定を介して示すことができます。

These errors are encoded into the 32-bit GSS status code as follows:

次のようにこれらのエラーは、32ビットGSSステータスコードに符号化されます。

      MSB                                                        LSB
      |------------------------------------------------------------|
      |  Calling Error | Routine Error  |    Supplementary Info    |
      |------------------------------------------------------------|
   Bit 31            24 23            16 15                       0
        

Hence if a GSS-API routine returns a GSS status code whose upper 16 bits contain a non-zero value, the call failed. If the calling error field is non-zero, the invoking application's call of the routine was erroneous. Calling errors are defined in table 5-1. If the routine error field is non-zero, the routine failed for one of the routine-specific reasons listed below in table 5-2. Whether or not the upper 16 bits indicate a failure or a success, the routine may indicate additional information by setting bits in the supplementary info field of the status code. The meaning of individual bits is listed below in table 5-3.

GSS-APIルーチンは、その上位16ビットの非ゼロ値を含むGSSステータスコードを返すしたがって場合、呼び出しは失敗しました。呼び出しエラーフィールドがゼロでない場合、ルーチンの呼び出し元のアプリケーションの呼び出しが誤っていました。呼び出しエラーが表5-1で定義されています。ルーチンエラーフィールドがゼロでない場合、ルーチンが表5-2に、下記のルーチン固有のいずれかの理由で失敗しました。上位16ビットが失敗または成功を示すかどうかにかかわらず、ルーチンは、ステータスコードの補足情報フィールド内のビットを設定することによって、追加情報を示す場合があります。各ビットの意味は、表5-3に、以下に記載されています。

Table 3-1 Calling Errors

表3-1の呼び出しエラー

   Name                   Value in field           Meaning
   ----                   --------------           -------
   GSS_S_CALL_INACCESSIBLE_READ  1       A required input parameter
                                         could not be read
   GSS_S_CALL_INACCESSIBLE_WRITE 2       A required output parameter
                                          could not be written.
   GSS_S_CALL_BAD_STRUCTURE      3       A parameter was malformed
        

Table 3-2 Routine Errors

表3-2ルーチンエラー

   Name                   Value in field           Meaning
   ----                   --------------           -------
   GSS_S_BAD_MECH                1       An unsupported mechanism
                                         was requested
   GSS_S_BAD_NAME                2       An invalid name was
                                         supplied
   GSS_S_BAD_NAMETYPE            3       A supplied name was of an
                                         unsupported type
   GSS_S_BAD_BINDINGS            4       Incorrect channel bindings
                                         were supplied
   GSS_S_BAD_STATUS              5       An invalid status code was
                                         supplied
   GSS_S_BAD_MIC GSS_S_BAD_SIG   6       A token had an invalid MIC
   GSS_S_NO_CRED                 7       No credentials were
                                         supplied, or the
                                         credentials were
                                         unavailable or
                                         inaccessible.
   GSS_S_NO_CONTEXT              8       No context has been
                                         established
   GSS_S_DEFECTIVE_TOKEN         9       A token was invalid
   GSS_S_DEFECTIVE_CREDENTIAL   10       A credential was invalid
   GSS_S_CREDENTIALS_EXPIRED    11       The referenced credentials
                                         have expired
   GSS_S_CONTEXT_EXPIRED        12       The context has expired
   GSS_S_FAILURE                13       Miscellaneous failure (see
                                         text)
   GSS_S_BAD_QOP                14       The quality-of-protection
                                         requested could not be
                                         provided
   GSS_S_UNAUTHORIZED           15       The operation is forbidden
                                         by local security policy
   GSS_S_UNAVAILABLE            16       The operation or option is
                                         unavailable
   GSS_S_DUPLICATE_ELEMENT      17       The requested credential
                                         element already exists
   GSS_S_NAME_NOT_MN            18       The provided name was not a
                                         mechanism name
        

Table 3-3 Supplementary Status Bits

表3-3補足ステータスビット

   Name                   Bit Number           Meaning
   ----                   ----------           -------
   GSS_S_CONTINUE_NEEDED   0 (LSB)   Returned only by
                                     gss_init_sec_context or
                                     gss_accept_sec_context. The
                                     routine must be called again
                                     to complete its function.
                                     See routine documentation for
                                     detailed description
   GSS_S_DUPLICATE_TOKEN   1         The token was a duplicate of
                                     an earlier token
   GSS_S_OLD_TOKEN         2         The token's validity period
                                     has expired
   GSS_S_UNSEQ_TOKEN       3         A later token has already been
                                     processed
   GSS_S_GAP_TOKEN         4         An expected per-message token
                                     was not received
        

The routine documentation also uses the name GSS_S_COMPLETE, which is a zero value, to indicate an absence of any API errors or supplementary information bits.

ルーチンドキュメントは、任意のAPIエラーまたは補足情報ビットが存在しないことを示すために、ゼロ値である名前GSS_S_COMPLETEを使用します。

All GSS_S_xxx symbols equate to complete OM_uint32 status codes, rather than to bitfield values. For example, the actual value of the symbol GSS_S_BAD_NAMETYPE (value 3 in the routine error field) is 3<<16. The macros GSS_CALLING_ERROR(), GSS_ROUTINE_ERROR() and GSS_SUPPLEMENTARY_INFO() are provided, each of which takes a GSS status code and removes all but the relevant field. For example, the value obtained by applying GSS_ROUTINE_ERROR to a status code removes the calling errors and supplementary info fields, leaving only the routine errors field. The values delivered by these macros may be directly compared with a GSS_S_xxx symbol of the appropriate type. The macro GSS_ERROR() is also provided, which when applied to a GSS status code returns a non-zero value if the status code indicated a calling or routine error, and a zero value otherwise. All macros defined by GSS-API evaluate their argument(s) exactly once.

すべてのGSS_S_xxxシンボルは、OM_uint32と同じステータスコードを完了することはなく、値をビットフィールドに等しいです。例えば、シンボルGSS_S_BAD_NAMETYPE(ルーチンエラーフィールドの値3)の実際の値は3 << 16です。マクロはGSS_CALLING_ERROR()、GSS_ROUTINE_ERROR()とGSS_SUPPLEMENTARY_INFO()GSS状態コードを受け取り、関連するフィールドが、すべてを削除それぞれが、設けられています。たとえば、ステータスコードにGSS_ROUTINE_ERRORを適用して得られた値は、ルーチンエラーフィールドだけを残して、呼び出し元のエラーと補足情報フィールドを削除します。これらのマクロによって送達値が適切な型のGSS_S_xxxシンボルと直接比較することができます。ステータスコードが、呼び出しまたはルーチンエラーを示し、ゼロ値そうでない場合、マクロGSS_ERROR()GSSステータスコードに適用された場合にも、提供され、非ゼロ値を返します。 GSS-APIで定義されたすべてのマクロが正確に一度その引数を評価します。

A GSS-API implementation may choose to signal calling errors in a platform-specific manner instead of, or in addition to the routine value; routine errors and supplementary info should be returned via major status values only.

GSS-APIの実装は、プラットフォーム固有の方法に代えて、又はルーチンの値に加えて呼び出すエラーを通知することを選択することができます。ルーチンエラーと補足情報は唯一の主要なステータス値を経由して返されるべきです。

The GSS major status code GSS_S_FAILURE is used to indicate that the underlying mechanism detected an error for which no specific GSS status code is defined. The mechanism-specific status code will provide more details about the error.

GSS主要なステータスコードGSS_S_FAILUREは、基礎となるメカニズムは、特別GSSステータスコードが定義されていないエラーを検出したことを示すために使用されます。機構固有のステータスコードは、エラーの詳細を提供します。

3.9.2. Mechanism-specific status codes
3.9.2. 機構固有のステータスコード

GSS-API routines return a minor_status parameter, which is used to indicate specialized errors from the underlying security mechanism. This parameter may contain a single mechanism-specific error, indicated by a OM_uint32 value.

GSS-APIルーチンは、基盤となるセキュリティメカニズムから専門的なエラーを示すために使用されるminor_statusパラメータを返します。このパラメータは、OM_uint32と同じ値で示される、単一機構固有のエラーを含んでいてもよいです。

The minor_status parameter will always be set by a GSS-API routine, even if it returns a calling error or one of the generic API errors indicated above as fatal, although most other output parameters may remain unset in such cases. However, output parameters that are expected to return pointers to storage allocated by a routine must always be set by the routine, even in the event of an error, although in such cases the GSS-API routine may elect to set the returned parameter value to NULL to indicate that no storage was actually allocated. Any length field associated with such pointers (as in a gss_buffer_desc structure) should also be set to zero in such cases.

他のほとんどの出力パラメータは、このような場合には未設定のままかもしれないがminor_statusパラメータは常に、それが呼び出しエラーまたは致命的なエラーとして上記に示した一般的なAPIのエラーのいずれかを返す場合でも、GSS-APIルーチンによって設定されます。このような場合にはGSS-APIルーチンがに返されるパラメータ値を設定することを選択することができるものの、ルーチンによって割り当てられたストレージへのポインタを返すことが期待されている出力パラメータは常に、でも、エラーが発生した場合には、ルーチンによって設定されなければなりませんNULLは、ストレージが実際に割り当てられなかったことを示します。 (れるgss_buffer_desc構造の場合のように)そのようなポインタに関連付けられた任意の長さフィールドは、このような場合にはゼロに設定されるべきです。

3.10. Names
3.10. 名

A name is used to identify a person or entity. GSS-API authenticates the relationship between a name and the entity claiming the name.

名前は、個人または団体を識別するために使用されます。 GSS-APIは、名前や名前を主張するエンティティ間の関係を認証します。

Since different authentication mechanisms may employ different namespaces for identifying their principals, GSSAPI's naming support is necessarily complex in multi-mechanism environments (or even in some single-mechanism environments where the underlying mechanism supports multiple namespaces).

異なる認証メカニズムは、その主体を識別するために異なる名前空間を使用することができるので、GSSAPIの命名サポートマルチ機構環境で必ずしも複雑である(あるいは基礎となる機構は、複数の名前空間をサポートするいくつかの単一機構環境で)。

Two distinct representations are defined for names:

二つの異なる表現は、名前のために定義されています。

An internal form. This is the GSS-API "native" format for names, represented by the implementation-specific gss_name_t type. It is opaque to GSS-API callers. A single gss_name_t object may contain multiple names from different namespaces, but all names should refer to the same entity. An example of such an internal name would be the name returned from a call to the gss_inquire_cred routine, when applied to a credential containing credential elements for multiple authentication mechanisms employing different namespaces. This gss_name_t object will contain a distinct name for the entity for each authentication mechanism.

内部形式。これは、実装固有のgss_name_t型で表現名のGSS-API「ネイティブ」形式です。これは、GSS-APIの呼び出し側に不透明です。単一gss_name_tオブジェクトは異なる名前空間から複数の名前を含んでいてもよいが、すべての名前は、同じ実体を参照するべきです。このような内部名の例は、異なる名前空間を使用する複数の認証メカニズムの資格要素を含む信任状に適用gss_inquire_credルーチンへの呼び出しから返された名前であろう。このgss_name_tオブジェクトは、各認証機構のためのエンティティのための個別の名前が含まれます。

For GSS-API implementations supporting multiple namespaces, objects of type gss_name_t must contain sufficient information to determine the namespace to which each primitive name belongs.

GSS-APIの実装は、複数の名前空間をサポートするため、型gss_name_tのオブジェクトは、各プリミティブの名前が属する名前空間を決定するために十分な情報を含まなければなりません。

Mechanism-specific contiguous octet-string forms. A format capable of containing a single name (from a single namespace). Contiguous string names are always accompanied by an object identifier specifying the namespace to which the name belongs, and their format is dependent on the authentication mechanism that employs the name. Many, but not all, contiguous string names will be printable, and may therefore be used by GSS-API applications for communication with their users.

機構固有の連続したオクテット文字列形式。 (単一の名前空間からの)単一の名前を含むことができるフォーマット。連続した文字列名は必ず名前が属する名前空間を指定するオブジェクト識別子を伴う、およびそのフォーマットは名前を採用した認証メカニズムに依存しています。多くの、すべてではなく、連続した文字列名が印刷可能になるため、そのユーザとの通信のためのGSS-APIアプリケーションで使用することができます。

Routines (gss_import_name and gss_display_name) are provided to convert names between contiguous string representations and the internal gss_name_t type. gss_import_name may support multiple syntaxes for each supported namespace, allowing users the freedom to choose a preferred name representation. gss_display_name should use an implementation-chosen printable syntax for each supported name-type.

ルーチン(gss_import_nameとgss_display_name)は隣接文字列表現と内部gss_name_t型との間の名を変換するために設けられています。 gss_import_nameは、ユーザーの自由が優先名表現を選択することができ、サポートされている各名前空間に対して複数の構文をサポートすることができます。 gss_display_nameはサポートされている各名前型の実装が選択した印刷可能な構文を使用する必要があります。

If an application calls gss_display_name(), passing the internal name resulting from a call to gss_import_name(), there is no guarantee the the resulting contiguous string name will be the same as the original imported string name. Nor do name-space identifiers necessarily survive unchanged after a journey through the internal name-form. An example of this might be a mechanism that authenticates X.500 names, but provides an algorithmic mapping of Internet DNS names into X.500. That mechanism's implementation of gss_import_name() might, when presented with a DNS name, generate an internal name that contained both the original DNS name and the equivalent X.500 name. Alternatively, it might only store the X.500 name. In the latter case, gss_display_name() would most likely generate a printable X.500 name, rather than the original DNS name.

アプリケーションは、gss_display_name()、(gss_import_nameの呼び出しに起因する内部名を渡す)を呼び出した場合、結果として得られる連続した文字列の名前は、元のインポート文字列名と同じである保証はありません。 NOR名前空間識別子は、必ずしも内部名形式を旅した後、そのまま存続します。この例は、X.500名を認証しますが、X.500にインターネットDNS名のアルゴリズムのマッピングを提供するメカニズムであるかもしれません。 gss_import_nameのメカニズムの実装()は、DNS名で提示されたとき、元のDNS名と同等のX.500名の両方を含んでいた内部名を生成するかもしれません。また、それだけでX.500名を保存することがあります。後者の場合には、gss_display_name()は、最も可能性の高い印刷可能なX.500名ではなく、元のDNS名を生成します。

The process of authentication delivers to the context acceptor an internal name. Since this name has been authenticated by a single mechanism, it contains only a single name (even if the internal name presented by the context initiator to gss_init_sec_context had multiple components). Such names are termed internal mechanism names, or "MN"s and the names emitted by gss_accept_sec_context() are always of this type. Since some applications may require MNs without wanting to incur the overhead of an authentication operation, a second function, gss_canonicalize_name(), is provided to convert a general internal name into an MN.

認証のプロセスは、内部名アクセプタコンテキストに提供します。この名前は単一のメカニズムによって認証されているので、それは(もしGSS_Init_sec_contextコンテキストイニシエータによって提示内部名は、複数のコンポーネントを有していたとしても)単一の名前を含んでいます。そのような名前は、内部機構の名前、または「MN」Sと呼ばれ、場合gss_accept_sec_contextによって放出された名前は()このタイプの常にあります。一部のアプリケーションは、認証操作のオーバーヘッドを被ることを望むことなく、MNのを必要とするかもしれないので、第二の機能、gss_canonicalize_name()は、MNへの一般的な内部名を変換するために設けられています。

Comparison of internal-form names may be accomplished via the gss_compare_name() routine, which returns true if the two names being compared refer to the same entity. This removes the need for the application program to understand the syntaxes of the various printable names that a given GSS-API implementation may support. Since GSS-API assumes that all primitive names contained within a given internal name refer to the same entity, gss_compare_name() can return true if the two names have at least one primitive name in common. If the implementation embodies knowledge of equivalence relationships between names taken from different namespaces, this knowledge may also allow successful comparison of internal names containing no overlapping primitive elements.

内部フォーム名の比較は、比較される2つの名前が同じエンティティを参照する場合にtrueを返しgss_compare_name()ルーチンを介して達成することができます。これは、指定されたGSS-APIの実装がサポートすることが可能で、様々な印刷可能な名前の構文を理解するためのアプリケーションプログラムの必要性を取り除きます。 GSS-APIは、与えられた内部名に含まれるすべてのプリミティブの名前が同じエンティティを参照することを前提としていますので2名が少なくとも1つの共通の原始的な名前を持っている場合、gss_compare_name()がtrueを返すことができます。実装が異なる名前空間から取られた名前の間の等価関係の知識を体現している場合、この知識はまた、重複プリミティブ要素を含まない内部名の成功の比較を可能にすることができます。

When used in large access control lists, the overhead of invoking gss_import_name() and gss_compare_name() on each name from the ACL may be prohibitive. As an alternative way of supporting this case, GSS-API defines a special form of the contiguous string name which may be compared directly (e.g. with memcmp()). Contiguous names suitable for comparison are generated by the gss_export_name() routine, which requires an MN as input. Exported names may be re-imported by the gss_import_name() routine, and the resulting internal name will also be an MN. The gss_OID constant GSS_C_NT_EXPORT_NAME indentifies the "export name" type, and the value of this constant is given in Appendix A. Structurally, an exported name object consists of a header containing an OID identifying the mechanism that authenticated the name, and a trailer containing the name itself, where the syntax of the trailer is defined by the individual mechanism specification. The precise format of an export name is defined in the language-independent GSS-API specification [GSSAPI].

大きなアクセス制御リストで使用される場合、ACLから各名前にgss_import_name()とgss_compare_name()を呼び出しのオーバーヘッドが法外であってもよいです。このような場合をサポートする別の方法として、GSS-APIを直接比較することができる連続した文字列の名前の特別な形式を定義する(例えば、memcmp有します())。比較のために好適な連続名が入力としてMNが必要gss_export_name()ルーチンによって生成されます。エクスポートされた名前はgss_import_name()ルーチンによって再インポートすることができ、得られた内部名もMNあろう。次に、gss_OID定数GSS_C_NT_EXPORT_NAMEは「エクスポート名」タイプをindentifies、この定数の値は、付録A.構造的に与えられて、エクスポートされた名前のオブジェクトは、名前を認証メカニズムを特定するOIDを含むヘッダから成り、及びトレーラーを含みますトレーラーの構文は、個々のメカニズムの仕様によって定義され、自身の名前を入力します。エクスポート名の正確なフォーマットは、言語に依存しないGSSAPI仕様[GSSAPI]で定義されています。

Note that the results obtained by using gss_compare_name() will in general be different from those obtained by invoking gss_canonicalize_name() and gss_export_name(), and then comparing the exported names. The first series of operation determines whether two (unauthenticated) names identify the same principal; the second whether a particular mechanism would authenticate them as the same principal. These two operations will in general give the same results only for MNs.

gss_compare_nameを用いて得られた結果は、()一般的にgss_canonicalize_name()とgss_export_name()を呼び出し、その後、エクスポート名を比較して得られたものとは異なるであろうことに留意されたいです。動作の最初のシリーズは、2つ(認証されていない)の名前が同じ主体を識別するかどうかを判定する。第2の特定のメカニズムは同じ主体としてそれらを認証するかどうか。これらの2つの操作が一般的でのみのMNのために同じ結果が得られます。

The gss_name_t datatype should be implemented as a pointer type. To allow the compiler to aid the application programmer by performing type-checking, the use of (void *) is discouraged. A pointer to an implementation-defined type is the preferred choice.

gss_name_tデータ型はポインタ型として実装されなければなりません。コンパイラは型チェックを行うことによって、アプリケーション・プログラマーを支援できるようにするには、(ボイド*)の使用が推奨されていません。実装定義型へのポインタは、好ましい選択です。

Storage is allocated by routines that return gss_name_t values. A procedure, gss_release_name, is provided to free storage associated with an internal-form name.

ストレージはgss_name_t値を返すルーチンによって割り当てられています。手順は、gss_release_name、内部フォーム名に関連付けられた空きストレージに提供されます。

3.11. Channel Bindings
3.11. チャネルバインディング

GSS-API supports the use of user-specified tags to identify a given context to the peer application. These tags are intended to be used to identify the particular communications channel that carries the context. Channel bindings are communicated to the GSS-API using the following structure:

GSS-APIは、ピアアプリケーションに指定されたコンテキストを識別するために、ユーザーが指定したタグの使用をサポートしています。これらのタグは、コンテキストを運ぶ特定の通信チャネルを識別するために使用されることが意図されます。チャネルバインディングは、次の構造を使用して、GSS-APIに伝達されます。

   typedef struct gss_channel_bindings_struct {
      OM_uint32       initiator_addrtype;
      gss_buffer_desc initiator_address;
      OM_uint32       acceptor_addrtype;
      gss_buffer_desc acceptor_address;
      gss_buffer_desc application_data;
   } *gss_channel_bindings_t;
        

The initiator_addrtype and acceptor_addrtype fields denote the type of addresses contained in the initiator_address and acceptor_address buffers. The address type should be one of the following:

initiator_addrtypeとacceptor_addrtypeのフィールドがinitiator_addressとacceptor_addressのバッファに含まれるアドレスの種類を表します。アドレスタイプは、次のいずれかでなければなりません。

GSS_C_AF_UNSPEC Unspecified address type GSS_C_AF_LOCAL Host-local address type GSS_C_AF_INET Internet address type (e.g. IP) GSS_C_AF_IMPLINK ARPAnet IMP address type GSS_C_AF_PUP pup protocols (eg BSP) address type GSS_C_AF_CHAOS MIT CHAOS protocol address type GSS_C_AF_NS XEROX NS address type GSS_C_AF_NBS nbs address type GSS_C_AF_ECMA ECMA address type GSS_C_AF_DATAKIT datakit protocols address type GSS_C_AF_CCITT CCITT protocols GSS_C_AF_SNA IBM SNA address type GSS_C_AF_DECnet DECnet address type GSS_C_AF_DLI Direct data link interface address type GSS_C_AF_LAT LAT address type GSS_C_AF_HYLINK NSC Hyperchannel address type GSS_C_AF_APPLETALK AppleTalk address type GSS_C_AF_BSC BISYNC 2780/3780 address type GSS_C_AF_DSS Distributed system services address type GSS_C_AF_OSI OSI TP4 address type GSS_C_AF_X25 X.25 GSS_C_AF_NULLADDR No address specified

GSS_C_AF_UNSPEC未指定アドレスタイプGSS_C_AF_LOCALホストローカルアドレスのタイプGSS_C_AF_INETインターネットアドレスのタイプ(例えばIP)GSS_C_AF_IMPLINKのARPAnet IMPアドレスタイプGSS_C_AF_PUP子犬のプロトコル(例えばBSP)アドレスタイプGSS_C_AF_CHAOS MIT CHAOSプロトコルアドレスタイプGSS_C_AF_NS XEROX NSアドレスタイプGSS_C_AF_NBSは、アドレスタイプGSS_C_AF_ECMA ECMAアドレスをNBS入力GSS_C_AF_DATAKIT datakitプロトコルアドレスタイプGSS_C_AF_CCITT CCITTがGSS_C_AF_SNA IBM SNAアドレスタイプGSS_C_AF_DECnetのDECnetアドレスタイプGSS_C_AF_DLI直接データリンクインターフェイスアドレスタイプGSS_C_AF_LAT LATアドレスタイプGSS_C_AF_HYLINK NSC HyperchannelアドレスタイプGSS_C_AF_APPLETALK AppleTalkアドレスの種類GSS_C_AF_BSC BISYNC 3780分の2780のアドレスタイプGSS_C_AF_DSS分散型システムサービスのアドレスをプロトコルGSS_C_AF_OSI OSI TP4アドレスタイプGSS_C_AF_X25 X.25 GSS_C_AF_NULLADDRに指定されませアドレスを入力していません

Note that these symbols name address families rather than specific addressing formats. For address families that contain several alternative address forms, the initiator_address and acceptor_address fields must contain sufficient information to determine which address form is used. When not otherwise specified, addresses should be specified in network byte-order (that is, native byte-ordering for the address family).

なお、これらのシンボル名のアドレスファミリではなく、特定のアドレス指定の形式。複数の代替アドレス形式が含まれているアドレスファミリについて、initiator_addressとacceptor_addressのフィールドが使用されているアドレスの形式を決定するのに十分な情報を含まなければなりません。特に指定しない場合、アドレスは、ネットワークバイト順(つまり、アドレスファミリのネイティブバイト順です)で指定する必要があります。

Conceptually, the GSS-API concatenates the initiator_addrtype, initiator_address, acceptor_addrtype, acceptor_address and application_data to form an octet string. The mechanism calculates a MIC over this octet string, and binds the MIC to the context establishment token emitted by gss_init_sec_context. The same bindings are presented by the context acceptor to gss_accept_sec_context, and a MIC is calculated in the same way. The calculated MIC is compared with that found in the token, and if the MICs differ, gss_accept_sec_context will return a GSS_S_BAD_BINDINGS error, and the context will not be established. Some mechanisms may include the actual channel binding data in the token (rather than just a MIC); applications should therefore not use confidential data as channel-binding components.

概念的には、GSS-APIは、オクテット文字列を形成するためにinitiator_addrtype、initiator_address、acceptor_addrtypeの、acceptor_addressのとapplication_dataを連結します。機構は、このオクテットストリング上MICを計算し、そして場合gss_init_sec_contextによって放出されたコンテキスト確立トークンにMICを結合します。同じバインディングは場合gss_accept_sec_contextコンテキストアクセプタによって提示され、MICが同じ方法で計算されます。計算MICは、トークンに見出されるものと比較して、MIC値が異なる場合、場合gss_accept_sec_contextはGSS_S_BAD_BINDINGSエラーを返し、コンテキストが確立されません。いくつかのメカニズムは、トークン(だけでなくMIC)内のデータを結合実際のチャネルを含むことができます。アプリケーションは、したがって、チャネル結合成分などの機密データを使用しないでください。

Individual mechanisms may impose additional constraints on addresses and address types that may appear in channel bindings. For example, a mechanism may verify that the initiator_address field of the channel bindings presented to gss_init_sec_context contains the correct network address of the host system. Portable applications should therefore ensure that they either provide correct information for the address fields, or omit addressing information, specifying GSS_C_AF_NULLADDR as the address-types.

個々のメカニズムは、チャネルバインディングに表示される場合がありますアドレスとアドレス型に追加の制約を課すことができます。例えば、機構は、もしGSS_Init_sec_contextするたチャネルバインディングのinitiator_addressフィールドは、ホストシステムの正しいネットワークアドレスが含まれていることを確認することができます。ポータブルアプリケーションでは、したがって、アドレスの種類としてGSS_C_AF_NULLADDRを指定して、彼らはどちらかのアドレスフィールドに正しい情報を提供していることを確認、またはアドレス情報を省略しなければなりません。

3.12. Optional parameters
3.12. オプションのパラメータ

Various parameters are described as optional. This means that they follow a convention whereby a default value may be requested. The following conventions are used for omitted parameters. These conventions apply only to those parameters that are explicitly documented as optional.

各種パラメータは、オプションとして記載されています。これは、彼らがデフォルトの値が要求されるおそれが慣例に従うことを意味します。次の表記は省略パラメータに使用されています。これらの規則は、明示的にのみ、オプションとして文書化されているそれらのパラメータに適用されます。

3.12.1. gss_buffer_t types
3.12.1. gss_buffer_t種類

Specify GSS_C_NO_BUFFER as a value. For an input parameter this signifies that default behavior is requested, while for an output parameter it indicates that the information that would be returned via the parameter is not required by the application.

値としてGSS_C_NO_BUFFERを指定します。出力パラメータのために、それはパラメータ経由で返される情報は、アプリケーションが必要とされていないことを示している入力パラメータについては、これは、デフォルトの動作が要求されていることを意味します。

3.12.2. Integer types (input)
3.12.2. 整数型(入力)

Individual parameter documentation lists values to be used to indicate default actions.

個々のパラメータのドキュメントには、デフォルトのアクションを示すために使用される値を示しています。

3.12.3. Integer types (output)
3.12.3. 整数型(出力)

Specify NULL as the value for the pointer.

ポインタの値としてNULLを指定します。

3.12.4. Pointer types
3.12.4. ポインタ型

Specify NULL as the value.

値としてNULLを指定します。

3.12.5. Object IDs
3.12.5. オブジェクトID

Specify GSS_C_NO_OID as the value.

値としてGSS_C_NO_OIDを指定します。

3.12.6. Object ID Sets
3.12.6. オブジェクトIDセット

Specify GSS_C_NO_OID_SET as the value.

値としてGSS_C_NO_OID_SETを指定します。

3.12.7. Channel Bindings
3.12.7. チャネルバインディング

Specify GSS_C_NO_CHANNEL_BINDINGS to indicate that channel bindings are not to be used.

チャネルバインディングを使用すべきでないことを示すためにGSS_C_NO_CHANNEL_BINDINGSを指定します。

4. Additional Controls
4.その他のコントロール

This section discusses the optional services that a context initiator may request of the GSS-API at context establishment. Each of these services is requested by setting a flag in the req_flags input parameter to gss_init_sec_context.

このセクションでは、コンテキスト起動コンテキスト確立時GSS-APIを要求することができる任意のサービスについて説明します。これらのサービスのそれぞれは、もしGSS_Init_sec_contextするreq_flagsを使用入力パラメータにフラグを設定することによって要求されます。

The optional services currently defined are:

現在定義されているオプションのサービスは以下のとおりです。

Delegation - The (usually temporary) transfer of rights from initiator to acceptor, enabling the acceptor to authenticate itself as an agent of the initiator.

委任 - アクセプターへのイニシエータからの権利の(通常は一時的な)転送、アクセプターを有効にするには、開始剤のエージェントとして自分自身を認証します。

Mutual Authentication - In addition to the initiator authenticating its identity to the context acceptor, the context acceptor should also authenticate itself to the initiator.

相互認証 - コンテキストの受け入れにその身元を認証開始剤に加えて、コンテキストアクセプタもイニシエータに自身を認証する必要があります。

Replay detection - In addition to providing message integrity services, gss_get_mic and gss_wrap should include message numbering information to enable gss_verify_mic and gss_unwrap to detect if a message has been duplicated.

リプレイの検出 - メッセージの整合性サービスを提供するだけでなく、はgss_get_micとはgss_wrapははgss_verify_mic有効にし、メッセージが複製されたかどうかを検出するためにはgss_unwrapするメッセージ番号の情報を含める必要があります。

Out-of-sequence detection - In addition to providing message integrity services, gss_get_mic and gss_wrap should include message sequencing information to enable gss_verify_mic and gss_unwrap to detect if a message has been received out of sequence.

アウト・オブ・シーケンス検出 - メッセージの整合性サービスを提供することに加えて、はgss_get_micとはgss_wrapははgss_verify_mic有効にし、メッセージが順序で受信されたかどうかを検出するためにはgss_unwrapするメッセージシーケンス情報を含める必要があります。

Anonymous authentication - The establishment of the security context should not reveal the initiator's identity to the context acceptor.

匿名認証 - セキュリティコンテキストの確立は、コンテキストアクセプターへのイニシエータの身元を明らかにしてはいけません。

Any currently undefined bits within such flag arguments should be ignored by GSS-API implementations when presented by an application, and should be set to zero when returned to the application by the GSS-API implementation.

このようなフラグ引数内の任意の現在定義されていないビットは、アプリケーションによって提示されるときにGSS-APIの実装によって無視されるべきであり、GSS-APIの実装によってアプリケーションに戻ったときにゼロに設定されるべきです。

Some mechanisms may not support all optional services, and some mechanisms may only support some services in conjunction with others. Both gss_init_sec_context and gss_accept_sec_context inform the applications which services will be available from the context when the establishment phase is complete, via the ret_flags output parameter. In general, if the security mechanism is capable of providing a requested service, it should do so, even if additional services must be enabled in order to provide the requested service. If the mechanism is incapable of providing a requested service, it should proceed without the service, leaving the application to abort the context establishment process if it considers the requested service to be mandatory.

いくつかのメカニズムは、すべてのオプションのサービスをサポートしていない可能性、およびいくつかのメカニズムが唯一他の人と一緒にいくつかのサービスをサポートすることができます。どちらの場合gss_init_sec_contextとはのret_flags出力パラメータを経由して、確立フェーズが完了すると、サービスがコンテキストから利用できるようにするアプリケーションを知らせる場合gss_accept_sec_context。セキュリティ・メカニズムは、要求されたサービスを提供することが可能である場合、一般的に、それは付加的なサービスが要求されたサービスを提供するために有効にする必要がある場合でも、そうする必要があります。メカニズムは、要求されたサービスを提供することができない場合、それは必須であることを要求されたサービスを考慮した場合、コンテキスト確立プロセスを中止するようにアプリケーションを残して、サービスずに進める必要があります。

Some mechanisms may specify that support for some services is optional, and that implementors of the mechanism need not provide it. This is most commonly true of the confidentiality service, often because of legal restrictions on the use of data-encryption, but may apply to any of the services. Such mechanisms are required to send at least one token from acceptor to initiator during context establishment when the initiator indicates a desire to use such a service, so that the initiating GSS-API can correctly indicate whether the service is supported by the acceptor's GSS-API.

いくつかのメカニズムは、いくつかのサービスのサポートは任意であり、機構の実装者はそれを提供する必要はないということを指定してもよいです。これは、しばしば、データの暗号化の使用に関する法的規制のため、機密性サービスの最も一般的に真であるが、サービスのいずれにも適用することができます。このようなメカニズムは、開始GSS-APIは、サービスがアクセプターのGSS-APIによってサポートされているかどうかを正確に示すことができるように、イニシエータが、そのようなサービスを利用したいと示している場合、コンテキスト確立時イニシエータするアクセプターから少なくとも1つのトークンを送信するために必要とされています。

4.1. Delegation
4.1. 代表団

The GSS-API allows delegation to be controlled by the initiating application via a boolean parameter to gss_init_sec_context(), the routine that establishes a security context. Some mechanisms do not support delegation, and for such mechanisms attempts by an application to enable delegation are ignored.

GSS-APIは、もしGSS_Init_sec_contextするブールパラメータ()、セキュリティコンテキストを確立ルーチンを経​​て代表団を開始するアプリケーションによって制御することができます。いくつかのメカニズムは、委任をサポートしていませんし、そのようなメカニズムのための委任を有効にするアプリケーションによって試みは無視されます。

The acceptor of a security context for which the initiator enabled delegation will receive (via the delegated_cred_handle parameter of gss_accept_sec_context) a credential handle that contains the delegated identity, and this credential handle may be used to initiate subsequent GSS-API security contexts as an agent or delegate of the initiator. If the original initiator's identity is "A" and the delegate's identity is "B", then, depending on the underlying mechanism, the identity embodied by the delegated credential may be either "A" or "B acting for A".

イニシエータ有効委任は(場合gss_accept_sec_contextのdelegated_cred_handleパラメータを介して)委任アイデンティティを含んでいる証明書ハンドルを受け取り、この資格ハンドルは薬剤として後続のGSS-APIのセキュリティコンテキストを開始するために使用することができるため、セキュリティコンテキストの受容体またはイニシエータのデリゲート。元のイニシエータのIDが「A」であり、代理人のIDが「B」である場合、次に、基礎となるメカニズムに依存して、委任証明書によって具体アイデンティティは「A」または「Aのために作用するB」のいずれであってもよいです。

For many mechanisms that support delegation, a simple boolean does not provide enough control. Examples of additional aspects of delegation control that a mechanism might provide to an application are duration of delegation, network addresses from which delegation is valid, and constraints on the tasks that may be performed by a delegate. Such controls are presently outside the scope of the GSS-API. GSS-API implementations supporting mechanisms offering additional controls should provide extension routines that allow these controls to be exercised (perhaps by modifying the initiator's GSS-API credential prior to its use in establishing a context). However, the simple delegation control provided by GSS-API should always be able to over-ride other mechanism-specific delegation controls - If the application instructs gss_init_sec_context() that delegation is not desired, then the implementation must not permit delegation to occur. This is an exception to the general rule that a mechanism may enable services even if they are not requested - delegation may only be provided at the explicit request of the application.

委任をサポートする多くのメカニズムについて、簡単なブールは十分なコントロールを提供していません。メカニズムは、アプリケーションに提供するかもしれない委任コントロールの追加の態様の例としては、デリゲートによって行うことができるタスクの委任の期間、代表団が有効であるから、ネットワークアドレス、および制約です。このような制御は、GSS-APIの範囲外で、現在です。追加のコントロールを提供するメカニズムをサポートするGSS-APIの実装は、これらのコントロールは、(おそらく前コンテキストの確立におけるその使用開始のGSS-API資格を変更することによって)行使されることを可能にする拡張ルーチンを提供すべきです。ただし、GSS-APIによって提供される単純な委任コントロールは、常にオーバー乗り、他の機構固有の委任コントロールすることができるはず - アプリケーションは、場合gss_init_sec_context()が代表団が望まれていないに指示した場合、実装は、代表団が発生することを許可してはいけません。代表団は唯一のアプリケーションの明示的な要求に提供することができる - これは、彼らが要求されていない場合でも、メカニズムがサービスを可能にする一般的な規則の例外です。

4.2. Mutual authentication
4.2. 相互認証

Usually, a context acceptor will require that a context initiator authenticate itself so that the acceptor may make an access-control decision prior to performing a service for the initiator. In some cases, the initiator may also request that the acceptor authenticate itself. GSS-API allows the initiating application to request this mutual authentication service by setting a flag when calling gss_init_sec_context.

通常、コンテキストアクセプターは、アクセプターが前イニシエータのサービスを実行するアクセス制御決定を行うことができるようにコンテキストの起動は、自分自身を認証することを要求します。いくつかのケースでは、イニシエータはまた、アクセプターが自身を認証することを要求することができます。 GSS-APIは、開始アプリケーションを呼び出すときにgss_init_sec_contextフラグを設定することにより、この相互認証サービスを要求することができます。

The initiating application is informed as to whether or not the context acceptor has authenticated itself. Note that some mechanisms may not support mutual authentication, and other mechanisms may always perform mutual authentication, whether or not the initiating application requests it. In particular, mutual authentication my be required by some mechanisms in order to support replay or out-of-sequence message detection, and for such mechanisms a request for either of these services will automatically enable mutual authentication.

開始アプリケーションは、コンテキストアクセプターは、それ自体を認証したか否かを知らされます。いくつかのメカニズムが相互認証をサポートしていない可能性がありますし、他のメカニズムは、常に開始、アプリケーションがそれを要求したかどうかにかかわらず、相互認証を行うことができます。具体的には、相互認証は、リプレイやアウトオブシーケンスメッセージの検出をサポートするために、いくつかのメカニズムによって必要とされ、私の、そして、そのようなメカニズムのために、これらのサービスのいずれかの要求は、自動的に相互認証を有効にします。

4.3. Replay and out-of-sequence detection
4.3. リプレイとシーケンス外の検出

The GSS-API may provide detection of mis-ordered message once a security context has been established. Protection may be applied to messages by either application, by calling either gss_get_mic or gss_wrap, and verified by the peer application by calling gss_verify_mic or gss_unwrap.

セキュリティコンテキストが確立された後、GSS-APIは、誤発注メッセージの検出を提供することができます。保護はgss_verify_micかはgss_unwrap呼び出しによってはgss_get_micかはgss_wrapのいずれかを呼び出すことにより、いずれかのアプリケーションによってメッセージに適用し、ピアアプリケーションによって検証することができます。

gss_get_mic calculates a cryptographic MIC over an application message, and returns that MIC in a token. The application should pass both the token and the message to the peer application, which presents them to gss_verify_mic.

gss_get_micは、アプリケーション・メッセージ上の暗号化MICを計算し、トークンにそのMICを返します。アプリケーションは、トークンとはgss_verify_micするためにそれらを提示するピアアプリケーション、メッセージの両方を通過させなければなりません。

gss_wrap calculates a cryptographic MIC of an application message, and places both the MIC and the message inside a single token. The Application should pass the token to the peer application, which presents it to gss_unwrap to extract the message and verify the MIC.

gss_wrapは、アプリケーション・メッセージの暗号化MICを算出し、MIC及び単一のトークン内のメッセージの両方を配置します。アプリケーションは、メッセージを抽出し、MICを検証するためにはgss_unwrapするために提示するピアアプリケーションにトークンを渡す必要があります。

Either pair of routines may be capable of detecting out-of-sequence message delivery, or duplication of messages. Details of such mis-ordered messages are indicated through supplementary status bits in the major status code returned by gss_verify_mic or gss_unwrap. The relevant supplementary bits are:

ルーチンのいずれかのペアがアウトオブシーケンスメッセージのメッセージ配信、または重複を検出することができます。このような誤順序付けメッセージの詳細は、側はgss_verify_mic又ははgss_unwrapによって返される主要なステータスコードで補足ステータスビットを介して示されています。関連する補足ビットは以下のとおりです。

GSS_S_DUPLICATE_TOKEN - The token is a duplicate of one that has already been received and processed. Only contexts that claim to provide replay detection may set this bit. GSS_S_OLD_TOKEN - The token is too old to determine whether or not it is a duplicate. Contexts supporting out-of-sequence detection but not replay detection should always set this bit if GSS_S_UNSEQ_TOKEN is set; contexts that support replay detection should only set this bit if the token is so old that it cannot be checked for duplication. GSS_S_UNSEQ_TOKEN - A later token has already been processed. GSS_S_GAP_TOKEN - An earlier token has not yet been received.

GSS_S_DUPLICATE_TOKENは - トークンは、すでに受信され、処理された1の複製です。リプレイ検出を提供すると主張するだけのコンテキストは、このビットを設定することができます。 GSS_S_OLD_TOKENは - トークンは、それが重複しているかどうかを判断するために古すぎます。コンテキストシーケンス外の検出をサポートしているが、GSS_S_UNSEQ_TOKENが設定されている場合、検出は、常にこのビットを設定する必要がリプレイではありません。トークンは、それは重複をチェックすることができないほど古い場合リプレイ検出をサポートしてコンテキストにのみ、このビットを設定する必要があります。 GSS_S_UNSEQ_TOKEN - 後続のトークンがすでに処理されています。 GSS_S_GAP_TOKEN - 以前のトークンがまだ受信されていません。

A mechanism need not maintain a list of all tokens that have been processed in order to support these status codes. A typical mechanism might retain information about only the most recent "N" tokens processed, allowing it to distinguish duplicates and missing tokens within the most recent "N" messages; the receipt of a token older than the most recent "N" would result in a GSS_S_OLD_TOKEN status.

メカニズムは、これらのステータスコードをサポートするために処理されたすべてのトークンのリストを維持する必要はありません。典型的なメカニズムは、それが最新の「N」のメッセージ内の重複や不足しているトークンを区別することができ、処理されただけで、最新の「N」のトークンについての情報を保持可能性があります。最新の「N」よりも古いトークンの受信はGSS_S_OLD_TOKENのステータスになるでしょう。

4.4. Anonymous Authentication
4.4. 匿名認証

In certain situations, an application may wish to initiate the authentication process to authenticate a peer, without revealing its own identity. As an example, consider an application providing access to a database containing medical information, and offering unrestricted access to the service. A client of such a service might wish to authenticate the service (in order to establish trust in any information retrieved from it), but might not wish the service to be able to obtain the client's identity (perhaps due to privacy concerns about the specific inquiries, or perhaps simply to avoid being placed on mailing-lists).

特定の状況では、アプリケーションは、独自のアイデンティティを明らかにせずに、ピアを認証するための認証プロセスを開始することを望むかもしれません。例として、アプリケーションが医療情報を含むデータベースへのアクセスを提供し、サービスへの無制限のアクセスを提供することを検討してください。そのようなサービスのクライアントが(それから取り出された情報の信頼を確立するために)サービスを認証したいかもしれないが、具体的なお問い合わせについてプライバシーの問題に起因するかもしれない(クライアントの識別情報を取得できるようにするサービスを希望しない場合があります、あるいはおそらく単純)メーリングリストに置かれないようにします。

In normal use of the GSS-API, the initiator's identity is made available to the acceptor as a result of the context establishment process. However, context initiators may request that their identity not be revealed to the context acceptor. Many mechanisms do not support anonymous authentication, and for such mechanisms the request will not be honored. An authentication token will be still be generated, but the application is always informed if a requested service is unavailable, and has the option to abort context establishment if anonymity is valued above the other security services that would require a context to be established.

GSS-APIの通常の使用では、イニシエータのアイデンティティは、コンテキスト確立プロセスの結果として、受け入れ側に利用できるようになります。しかし、コンテキストイニシエータは、彼らのアイデンティティをコンテキスト受け入れ側に知らせないことを要求することができます。多くのメカニズムが匿名認証をサポートしていませんし、そのような機構のための要求は受け入れられません。認証トークンがまだ生成されますが、アプリケーションが常に要求されたサービスが利用できない、と匿名性を確立するためにコンテキストを必要とする他のセキュリティ・サービスの上に高く評価されている場合、コンテキストの確立を中止するオプションを持っている場合に通知されます。

In addition to informing the application that a context is established anonymously (via the ret_flags outputs from gss_init_sec_context and gss_accept_sec_context), the optional src_name output from gss_accept_sec_context and gss_inquire_context will, for such contexts, return a reserved internal-form name, defined by the implementation.

コンテキストが(場合gss_init_sec_contextおよび場合gss_accept_sec_contextからのret_flags出力を介して)匿名で確立されているアプリケーションに通知することに加えて、場合gss_accept_sec_contextとgss_inquire_contextから任意src_name出力は、そのような状況のために、実装によって定義された予約済み内部フォーム名を返します。

When presented to gss_display_name, this reserved internal-form name will result in a printable name that is syntactically distinguishable from any valid principal name supported by the implementation, associated with a name-type object identifier with the value GSS_C_NT_ANONYMOUS, whose value us given in Appendix A. The printable form of an anonymous name should be chosen such that it implies anonymity, since this name may appear in, for example, audit logs. For example, the string "<anonymous>" might be a good choice, if no valid printable names supported by the implementation can begin with "<" and end with ">".

gss_display_nameするために提示された場合、この予約内部フォーム名は、その値米国付録に与えられた値GSS_C_NT_ANONYMOUSと名前型のオブジェクト識別子に関連付けられ、実装によってサポートされている任意の有効なプリンシパル名と構文的に区別可能な印刷可能な名前になります匿名の名前のA.印刷可能な形式は、この名前は、例えば、監査ログが表示されるかもしれないので、それは、匿名性を暗示するように選択されるべきです。実装でサポートされている有効な印刷可能な名前がで始めることができない場合たとえば、文字列が「<匿名>」、良い選択かもしれません「<」で終わります「>」。

4.5. Confidentiality
4.5. 機密性

If a context supports the confidentiality service, gss_wrap may be used to encrypt application messages. Messages are selectively encrypted, under the control of the conf_req_flag input parameter to gss_wrap.

コンテキストは、機密性サービスをサポートしている場合、はgss_wrapは、アプリケーションメッセージを暗号化するために使用することができます。メッセージは、選択的にGSS_Wrapするconf_req_flag入力パラメータの制御下で、暗号化されます。

4.6. Inter-process context transfer
4.6. プロセス間のコンテキスト転送

GSS-API V2 provides routines (gss_export_sec_context and gss_import_sec_context) which allow a security context to be transferred between processes on a single machine. The most common use for such a feature is a client-server design where the server is implemented as a single process that accepts incoming security contexts, which then launches child processes to deal with the data on these contexts. In such a design, the child processes must have access to the security context data structure created within the parent by its call to gss_accept_sec_context so that they can use per-message protection services and delete the security context when the communication session ends.

GSS-API V2は、セキュリティコンテキストが単一のマシン上のプロセス間で転送されることを可能にするルーチン(gss_export_sec_contextとgss_import_sec_context)を提供します。このような特徴のための最も一般的な用途は、サーバは、その後、これらのコンテキスト上のデータを扱うための子プロセスを起動し、着信のセキュリティコンテキストを受け入れ、単一のプロセスとして実装されているクライアント - サーバ設計です。このような設計では、子プロセスは、彼らがメッセージごとの保護サービスを使用し、通信セッションが終了したときにセキュリティコンテキストを削除することができるように、場合gss_accept_sec_contextするために、その呼び出しによって、親の中に作成されたセキュリティコンテキストデータ構造へのアクセスを持っている必要があります。

Since the security context data structure is expected to contain sequencing information, it is impractical in general to share a context between processes. Thus GSS-API provides a call (gss_export_sec_context) that the process which currently owns the context can call to declare that it has no intention to use the context subsequently, and to create an inter-process token containing information needed by the adopting process to successfully import the context. After successful completion of gss_export_sec_context, the original security context is made inaccessible to the calling process by GSS-API, and any context handles referring to this context are no longer valid. The originating process transfers the inter-process token to the adopting process, which passes it to gss_import_sec_context, and a fresh gss_ctx_id_t is created such that it is functionally identical to the original context.

セキュリティコンテキストデータ構造をシーケンシング情報を含むことが予想されるので、プロセス間でコンテキストを共有することが一般的に実用的ではありません。したがって、GSS-APIは、現在のコンテキストを所有しているプロセスは、それがその後のコンテキストを使用する意思がないことを宣言するために呼び出すことができ、かつ成功裏に採用するプロセスが必要とする情報を含むプロセス間トークンを作成することを呼び出し(gss_export_sec_context)を提供しますコンテキストをインポートします。 gss_export_sec_contextが正常に完了した後、元のセキュリティコンテキストは、GSS-APIによって、呼び出し元のプロセスにアクセスできないようにしており、任意のコンテキストは、このコンテキストを参照ハンドルはもはや有効ではありません。元のプロセスは、それがgss_import_sec_contextに進む採用プロセスにプロセス間トークンを転送し、そして新鮮gss_ctx_id_tは、それが元のコンテキストと機能的に同一であるように作成されます。

The inter-process token may contain sensitive data from the original security context (including cryptographic keys). Applications using inter-process tokens to transfer security contexts must take appropriate steps to protect these tokens in transit.

プロセス間トークンは、(暗号鍵を含む)を元のセキュリティコンテキストから機密データを含むことができます。セキュリティコンテキストを転送するプロセス間トークンを使用するアプリケーションは、輸送中にこれらのトークンを保護するための適切な措置を講じなければなりません。

Implementations are not required to support the inter-process transfer of security contexts. The ability to transfer a security context is indicated when the context is created, by gss_init_sec_context or gss_accept_sec_context setting the GSS_C_TRANS_FLAG bit in their ret_flags parameter.

実装は、セキュリティコンテキストのプロセス間転送をサポートする必要はありません。コンテキストが作成されるときにセキュリティコンテキストを転送する能力は、それらのret_flagsパラメータでGSS_C_TRANS_FLAGビットをセットにgss_init_sec_contextまたは場合gss_accept_sec_contextによって、示されています。

4.7. The use of incomplete contexts
4.7. 不完全なコンテキストの使用

Some mechanisms may allow the per-message services to be used before the context establishment process is complete. For example, a mechanism may include sufficient information in its initial context-level token for the context acceptor to immediately decode messages protected with gss_wrap or gss_get_mic. For such a mechanism, the initiating application need not wait until subsequent context-level tokens have been sent and received before invoking the per-message protection services.

コンテキスト確立プロセスが完了する前に、いくつかのメカニズムは、メッセージごとのサービスを使用できるようにすることができます。例えば、機構は直ちにはgss_wrap又ははgss_get_micで保護されたメッセージを復号するコンテキスト受け入れのためにその初期コンテキストレベルトークンに十分な情報を含んでもよいです。その後のコンテキスト・レベルのトークンが送信され、メッセージごとの保護サービスを呼び出す前に受信されるまで、このような仕組みのため、開始アプリケーションが待つ必要がありません。

The ability of a context to provide per-message services in advance of complete context establishment is indicated by the setting of the GSS_C_PROT_READY_FLAG bit in the ret_flags parameter from gss_init_sec_context and gss_accept_sec_context. Applications wishing to use per-message protection services on partially-established contexts should check this flag before attempting to invoke gss_wrap or gss_get_mic.

完全なコンテキストの確立に先立って、メッセージごとのサービスを提供するコンテキストの能力は場合gss_init_sec_context及び場合gss_accept_sec_contextからのret_flagsパラメータのGSS_C_PROT_READY_FLAGビットの設定によって示されます。部分的に確立されたコンテキストにメッセージごとの保護サービスを使用したいアプリケーションは、はgss_wrapかはgss_get_micを起動しようとする前に、このフラグをチェックする必要があります。

5. GSS-API Routine Descriptions
5. GSS-APIルーチンの説明

In addition to the explicit major status codes documented here, the code GSS_S_FAILURE may be returned by any routine, indicating an implementation-specific or mechanism-specific error condition, further details of which are reported via the minor_status parameter.

ここで説明明示的な主要なステータスコードに加えて、コードGSS_S_FAILUREは、さらに詳細がminor_statusパラメータで報告され、実装固有または機構固有のエラー状態を示す、任意のルーチンによって返されてもよいです。

5.1. gss_accept_sec_context
5.1. 場合gss_accept_sec_context

OM_uint32 gss_accept_sec_context ( OM_uint32 *minor_status, gss_ctx_id_t *context_handle, const gss_cred_id_t acceptor_cred_handle, const gss_buffer_t input_token_buffer, const gss_channel_bindings_t input_chan_bindings, const gss_name_t *src_name, gss_OID *mech_type, gss_buffer_t output_token, OM_uint32 *ret_flags, OM_uint32 *time_rec, gss_cred_id_t *delegated_cred_handle)

OM_uint32と同じ場合gss_accept_sec_context(OM_uint32と同じ* minor_status、gss_ctx_id_t * context_handle、CONST gss_cred_id_tのacceptor_cred_handle、CONST gss_buffer_tのinput_token_buffer、CONST gss_channel_bindings_tのinput_chan_bindings、CONST gss_name_t * src_name、次に、gss_OID *メカニズム種別、gss_buffer_tたoutput_token、OM_uint32と同じ*のret_flags、OM_uint32と同じ* time_rec、gss_cred_id_t * delegated_cred_handle)

Purpose:

目的:

Allows a remotely initiated security context between the application and a remote peer to be established. The routine may return a output_token which should be transferred to the peer application, where the peer application will present it to gss_init_sec_context. If no token need be sent, gss_accept_sec_context will indicate this by setting the length field of the output_token argument to zero. To complete the context establishment, one or more reply tokens may be required from the peer application; if so, gss_accept_sec_context will return a status flag of GSS_S_CONTINUE_NEEDED, in which case it should be called again when the reply token is received from the peer application, passing the token to gss_accept_sec_context via the input_token parameters.

アプリケーションとリモートピアとの間のリモート開始セキュリティコンテキストが確立されることを可能にします。ルーチンは、ピアアプリケーションは、もしGSS_Init_sec_contextするためにそれを提示するピアアプリケーションに転送されるべきたoutput_tokenを返すことができます。何のトークンが送信される必要がない場合は、場合gss_accept_sec_contextはゼロに引数たoutput_tokenの長さフィールドを設定することで、これを示します。コンテキスト確立を完了するために、一つ以上の応答トークンは、ピアアプリケーションから要求されてもよいです。もしそうであれば、場合gss_accept_sec_contextは入力トークンパラメータを介し場合gss_accept_sec_contextするトークンを渡し、応答トークンは、ピアアプリケーションから受信されたときに再び呼び出されるべき場合には、GSS_S_CONTINUE_NEEDEDのステータスフラグを返します。

Portable applications should be constructed to use the token length and return status to determine whether a token needs to be sent or waited for. Thus a typical portable caller should always invoke gss_accept_sec_context within a loop:

ポータブルアプリケーションは、トークンの長さを使用して、トークンが送信または待つする必要があるかどうかを判断するためにステータスを返すように構成されるべきです。このように、一般的なポータブル呼び出し側は常にループ内のgss_accept_sec_context呼び出す必要があります:

gss_ctx_id_t context_hdl = GSS_C_NO_CONTEXT;

gss_ctx_id_t context_hdl = GSS_C_NO_CONTEXT。

   do {
     receive_token_from_peer(input_token);
     maj_stat = gss_accept_sec_context(&min_stat,
                                       &context_hdl,
                                       cred_hdl,
                                       input_token,
                                       input_bindings,
                                       &client_name,
                                       &mech_type,
                                       output_token,
                                       &ret_flags,
                                       &time_rec,
                                       &deleg_cred);
     if (GSS_ERROR(maj_stat)) {
       report_error(maj_stat, min_stat);
     };
     if (output_token->length != 0) {
       send_token_to_peer(output_token);
        
       gss_release_buffer(&min_stat, output_token);
     };
     if (GSS_ERROR(maj_stat)) {
       if (context_hdl != GSS_C_NO_CONTEXT)
         gss_delete_sec_context(&min_stat,
                                &context_hdl,
                                GSS_C_NO_BUFFER);
       break;
     };
   } while (maj_stat & GSS_S_CONTINUE_NEEDED);
        

Whenever the routine returns a major status that includes the value GSS_S_CONTINUE_NEEDED, the context is not fully established and the following restrictions apply to the output parameters:

ルーチンが値GSS_S_CONTINUE_NEEDEDを含んで主要な地位を返すたびに、コンテキストが完全に確立されておらず、以下の制限が出力パラメータに適用されます。

The value returned via the time_rec parameter is undefined Unless the accompanying ret_flags parameter contains the bit GSS_C_PROT_READY_FLAG, indicating that per-message services may be applied in advance of a successful completion status, the value returned via the mech_type parameter may be undefined until the routine returns a major status value of GSS_S_COMPLETE.

添付のret_flagsパラメータは、メッセージごとのサービスが正常に完了ステータスの前に適用され得ることを示し、ビットGSS_C_PROT_READY_FLAGが含まれていない限りtime_recパラメータを介して返される値は不定であり、値はメカニズム種別のパラメータを介して返され、ルーチンが戻るまで不定することができますGSS_S_COMPLETEの主要なステータス値。

The values of the GSS_C_DELEG_FLAG, GSS_C_MUTUAL_FLAG,GSS_C_REPLAY_FLAG, GSS_C_SEQUENCE_FLAG, GSS_C_CONF_FLAG,GSS_C_INTEG_FLAG and GSS_C_ANON_FLAG bits returned via the ret_flags parameter should contain the values that the implementation expects would be valid if context establishment were to succeed.

ret_flagsパラメータを介して返さGSS_C_DELEG_FLAG、GSS_C_MUTUAL_FLAG、GSS_C_REPLAY_FLAG、GSS_C_SEQUENCE_FLAG、GSS_C_CONF_FLAG、GSS_C_INTEG_FLAGとGSS_C_ANON_FLAGビットの値は、実装は、コンテキストの確立が成功した場合、有効になります期待していた値が含まれている必要があります。

The values of the GSS_C_PROT_READY_FLAG and GSS_C_TRANS_FLAG bits within ret_flags should indicate the actual state at the time gss_accept_sec_context returns, whether or not the context is fully established.

ret_flags内GSS_C_PROT_READY_FLAGとGSS_C_TRANS_FLAGビットの値はコンテキストが完全に確立されているか否かを、戻り場合gss_accept_sec_context時の実際の状態を示すべきです。

Although this requires that GSS-API implementations set the GSS_C_PROT_READY_FLAG in the final ret_flags returned to a caller (i.e. when accompanied by a GSS_S_COMPLETE status code), applications should not rely on this behavior as the flag was not defined in Version 1 of the GSS-API. Instead, applications should be prepared to use per-message services after a successful context establishment, according to the GSS_C_INTEG_FLAG and GSS_C_CONF_FLAG values.

これは、最終のret_flagsにGSS_C_PROT_READY_FLAGを設定GSS-APIの実装は、発信者(すなわちGSS_S_COMPLETEステータスコードを伴う場合)に戻りフラグがGSS-のバージョン1で定義されていなかったとして、アプリケーションはこの動作に依存すべきではないことが必要ですが、 API。代わりに、アプリケーションはGSS_C_INTEG_FLAGとGSS_C_CONF_FLAG値に応じて、成功したコンテキスト確立した後、メッセージごとのサービスを使用するために準備する必要があります。

All other bits within the ret_flags argument should be set to zero. While the routine returns GSS_S_CONTINUE_NEEDED, the values returned via the ret_flags argument indicate the services that the implementation expects to be available from the established context.

ret_flags引数内の他のすべてのビットはゼロに設定する必要があります。戻っGSS_S_CONTINUE_NEEDEDながら、のret_flags引数を経由して返される値は、実装が確立されたコンテキストから利用できるようにする予定のサービスを示しています。

If the initial call of gss_accept_sec_context() fails, the implementation should not create a context object, and should leave the value of the context_handle parameter set to GSS_C_NO_CONTEXT to indicate this. In the event of a failure on a subsequent call, the implementation is permitted to delete the "half-built" security context (in which case it should set the context_handle parameter to GSS_C_NO_CONTEXT), but the preferred behavior is to leave the security context (and the context_handle parameter) untouched for the application to delete (using gss_delete_sec_context).

gss_accept_sec_contextの最初の()の呼び出しが失敗した場合、実装は、コンテキストオブジェクトを作成してはならない、とこれを示すためにGSS_C_NO_CONTEXTに設定context_handleパラメータの値のままにする必要があります。その後の呼び出しに障害が発生した場合、実装は、「半構築された」セキュリティコンテキストを(その場合、それはGSS_C_NO_CONTEXTにcontext_handleパラメータを設定する必要があります)を削除することが許されるが、好ましい振る舞いは(セキュリティコンテキストを残すことですおよびアプリケーションのため手付かずcontext_handleパラメータ)()gss_delete_sec_contextを使用して削除します。

During context establishment, the informational status bits GSS_S_OLD_TOKEN and GSS_S_DUPLICATE_TOKEN indicate fatal errors, and GSS-API mechanisms should always return them in association with a routine error of GSS_S_FAILURE. This requirement for pairing did not exist in version 1 of the GSS-API specification, so applications that wish to run over version 1 implementations must special-case these codes.

コンテキストが確立しているときに、情報のステータスビットGSS_S_OLD_TOKENとGSS_S_DUPLICATE_TOKENは致命的なエラーを示し、GSS-APIメカニズムは、常にGSS_S_FAILUREのルーチンのエラーに関連して、それらを返す必要があります。ペアリングのためのこの要件は、バージョンの上に1つの実装しなければならない特殊なケースこれらのコードを実行したいアプリケーションので、GSS-API仕様のバージョン1には存在しませんでした。

Parameters:

パラメーター:

context_handle gss_ctx_id_t, read/modify context handle for new context. Supply GSS_C_NO_CONTEXT for first call; use value returned in subsequent calls. Once gss_accept_sec_context() has returned a value via this parameter, resources have been assigned to the corresponding context, and must be freed by the application after use with a call to gss_delete_sec_context().

context_handle gss_ctx_id_t、読み取り/新しいコンテキストのコンテキストハンドルを変更します。最初の呼び出しのための供給GSS_C_NO_CONTEXT。その後の呼び出しで返された値を使用します。場合gss_accept_sec_context()は、このパラメータで値を返した後は、リソースが対応するコンテキストに割り当てられている、と)(gss_delete_sec_contextを呼び出して使用した後にアプリケーションによって解放されなければなりません。

acceptor_cred_handle gss_cred_id_t, read Credential handle claimed by context acceptor. Specify GSS_C_NO_CREDENTIAL to accept the context as a default principal. If GSS_C_NO_CREDENTIAL is specified, but no default acceptor principal is defined, GSS_S_NO_CRED will be returned.

acceptor_cred_handle gss_cred_id_t、コンテキストの受け入れ側が主張する資格ハンドルをお読みください。デフォルトのプリンシパルとしてコンテキストを受け入れるためにGSS_C_NO_CREDENTIALを指定します。 GSS_C_NO_CREDENTIALが指定されていますが、デフォルトのアクセプタプリンシパルが定義されていない場合、GSS_S_NO_CREDが返されます。

input_token_buffer buffer, opaque, read token obtained from remote application.

バッファinput_token_buffer、不透明、トークンリモートアプリケーションから得られる読取。

input_chan_bindings channel bindings, read, optional Application-specified bindings. Allows application to securely bind channel identification information to the security context. If channel bindings are not used, specify GSS_C_NO_CHANNEL_BINDINGS.

チャネルバインディングinput_chan_bindings、オプションのアプリケーションが指定したバインディングをお読みください。アプリケーションが確実にセキュリティコンテキストにチャネル識別情報を結合することを可能にします。チャネルバインディングが使用されていない場合は、GSS_C_NO_CHANNEL_BINDINGSを指定します。

src_name gss_name_t, modify, optional Authenticated name of context initiator. After use, this name should be deallocated by passing it to gss_release_name(). If not required, specify NULL.

src_name gss_name_t、修正、コンテキストイニシエータのオプションの認証名。使用後は、この名前は()をgss_release_nameするためにそれを渡すことによって割り当てを解除する必要があります。必要でない場合は、NULLを指定します。

mech_type Object ID, modify, optional Security mechanism used. The returned OID value will be a pointer into static storage, and should be treated as read-only by the caller (in particular, it does not need to be freed). If not required, specify NULL.

たmech_typeオブジェクトID、変更、使用されるオプションのセキュリティメカニズム。返されたOID値は、静的ストレージへのポインタになり、読み取り専用呼び出し元によって(特に、それが解放される必要がない)として扱われるべきです。必要でない場合は、NULLを指定します。

output_token buffer, opaque, modify Token to be passed to peer application. If the length field of the returned token buffer is 0, then no token need be passed to the peer application. If a non-zero length field is returned, the associated storage must be freed after use by the application with a call to gss_release_buffer().

たoutput_tokenバッファ、不透明、アプリケーションをピアに渡されるトークンを変更します。返されたトークンバッファの長さフィールドが0であれば、いかなるトークンは、ピアアプリケーションに渡される必要はありません。非ゼロの長さフィールドが返された場合、関連するストレージ)(gss_release_bufferを呼び出してアプリケーションが使用後に解放されなければなりません。

ret_flags bit-mask, modify, optional Contains various independent flags, each of which indicates that the context supports a specific service option. If not needed, specify NULL. Symbolic names are provided for each flag, and the symbolic names corresponding to the required flags should be logically-ANDed with the ret_flags value to test whether a given option is supported by the context. The flags are: GSS_C_DELEG_FLAG True - Delegated credentials are available via the delegated_cred_handle parameter False - No credentials were delegated GSS_C_MUTUAL_FLAG True - Remote peer asked for mutual authentication False - Remote peer did not ask for mutual authentication GSS_C_REPLAY_FLAG True - replay of protected messages will be detected False - replayed messages will not be detected GSS_C_SEQUENCE_FLAG True - out-of-sequence protected messages will be detected False - out-of-sequence messages will not be detected GSS_C_CONF_FLAG True - Confidentiality service may be invoked by calling the gss_wrap routine False - No confidentiality service (via gss_wrap) available. gss_wrap will provide message encapsulation, data-origin authentication and integrity services only. GSS_C_INTEG_FLAG True - Integrity service may be invoked by calling either gss_get_mic or gss_wrap routines. False - Per-message integrity service unavailable. GSS_C_ANON_FLAG True - The initiator does not wish to be authenticated; the src_name parameter (if requested) contains an anonymous internal name. False - The initiator has been authenticated normally. GSS_C_PROT_READY_FLAG True - Protection services (as specified by the states of the GSS_C_CONF_FLAG and GSS_C_INTEG_FLAG) are available if the accompanying major status return value is either GSS_S_COMPLETE or GSS_S_CONTINUE_NEEDED. False - Protection services (as specified by the states of the GSS_C_CONF_FLAG and GSS_C_INTEG_FLAG) are available only if the accompanying major status return value is GSS_S_COMPLETE. GSS_C_TRANS_FLAG True - The resultant security context may be transferred to other processes via a call to gss_export_sec_context(). False - The security context is not transferable. All other bits should be set to zero.

ret_flagsビットマスク、変更、オプションは、コンテキストが特定のサービスオプションをサポートしていることを示し、それぞれが、様々な独立のフラグが含まれています。必要でない場合は、NULLを指定します。シンボル名は、各フラグのために提供され、そして必要なフラグに対応する記号名は、指定されたオプションは、コンテキストによってサポートされているかどうかをテストするためのret_flags値と論理的にAND演算されるべきです。フラグは次のとおりです。GSS_C_DELEG_FLAGトゥルー - 委譲された資格はFalseをdelegated_cred_handleパラメータを経由して利用可能です - いいえ、資格情報がGSS_C_MUTUAL_FLAG真を委任しなかった - リモートピアがFalseの相互認証を要請 - リモートピアは、相互認証GSS_C_REPLAY_FLAG真を求めていなかった - 保護されたメッセージのリプレイが検出されます偽 - シーケンス外の保護されたメッセージはFalseに検出されます - - メッセージがGSS_C_CONF_FLAG真に検出されません外のシーケンス - いいえ、機密性 - 機密性サービスははgss_wrapルーチンはFalseを呼び出すことによって呼び出すことができ、メッセージがGSS_C_SEQUENCE_FLAG真検出されません再生(はgss_wrap経由)サービスを利用できます。 gss_wrapは、メッセージのカプセル化、データ起点認証と整合性サービスだけを提供します。 GSS_C_INTEG_FLAGトゥルー - Integrityサービスははgss_get_micかはgss_wrapのいずれかのルーチンを呼び出すことによって呼び出すことができます。 FALSE - メッセージごとの整合性サービス利用できません。 GSS_C_ANON_FLAG真 - イニシエータが認証されることを望んでいません。 src_nameパラメータは、(要求された場合)、匿名の内部名が含まれています。偽 - イニシエータが正常に認証されました。 GSS_C_PROT_READY_FLAGトゥルー - 添付の主要なステータス戻り値がGSS_S_COMPLETEまたはGSS_S_CONTINUE_NEEDEDのいずれかである場合には保護サービスは、(GSS_C_CONF_FLAGとGSS_C_INTEG_FLAGの状態によって指定される)可能です。偽 - (ようGSS_C_CONF_FLAGとGSS_C_INTEG_FLAGの状態で指定された)保護サービスは、添付の主要なステータス戻り値がGSS_S_COMPLETEである場合にのみ使用可能です。 GSS_C_TRANS_FLAGトゥルー - 結果のセキュリティコンテキストは)(gss_export_sec_contextの呼び出しを介して他のプロセスに転送することができます。偽 - セキュリティコンテキストは譲渡することはできません。他のすべてのビットはゼロに設定する必要があります。

time_rec Integer, modify, optional number of seconds for which the context will remain valid. Specify NULL if not required.

time_rec整数は、変更、秒のオプションの数は、対象のコンテキストが有効なままになります。必要でない場合は、NULLを指定します。

delegated_cred_handle gss_cred_id_t, modify, optional credential handle for credentials received from context initiator. Only valid if deleg_flag in ret_flags is true, in which case an explicit credential handle (i.e. not GSS_C_NO_CREDENTIAL) will be returned; if deleg_flag is false, gss_accept_context() will set this parameter to GSS_C_NO_CREDENTIAL. If a credential handle is returned, the associated resources must be released by the application after use with a call to gss_release_cred(). Specify NULL if not required.

delegated_cred_handle gss_cred_id_t、修正、コンテキストイニシエータから受信した資格証明書のためのオプションの証明書ハンドル。のみのret_flagsでdeleg_flagは、明示的な証明書ハンドル(すなわちないGSS_C_NO_CREDENTIAL)が返される場合には、真有効であれば、 deleg_flagがfalseの場合、gss_accept_context()GSS_C_NO_CREDENTIALにこのパラメータを設定します。証明書ハンドルが返された場合は、関連するリソースは)(gss_release_credの呼び出しで使用した後、アプリケーションによって解放されなければなりません。必要でない場合は、NULLを指定します。

minor_status Integer, modify Mechanism specific status code.

minor_status整数は、メカニズムの特定のステータスコードを変更します。

GSS_S_CONTINUE_NEEDED Indicates that a token from the peer application is required to complete the context, and that gss_accept_sec_context must be called again with that token.

GSS_S_CONTINUE_NEEDEDピアアプリケーションからのトークンがコンテキストを完了するために必要とされていることを示し、その場合gss_accept_sec_contextは、そのトークンを再び呼び出さなければなりません。

GSS_S_DEFECTIVE_TOKEN Indicates that consistency checks performed on the input_token failed.

GSS_S_DEFECTIVE_TOKENは入力トークン上で実行整合性チェックが失敗したことを示します。

GSS_S_DEFECTIVE_CREDENTIAL Indicates that consistency checks performed on the credential failed.

GSS_S_DEFECTIVE_CREDENTIALは資格で実行整合性チェックが失敗したことを示します。

GSS_S_NO_CRED The supplied credentials were not valid for context acceptance, or the credential handle did not reference any credentials.

GSS_S_NO_CREDザ・資格情報は、コンテキストの受け入れのために有効ではありませんでした供給、または証明書ハンドルは、任意の資格情報を参照していませんでした。

GSS_S_CREDENTIALS_EXPIRED The referenced credentials have expired.

参照された資格情報の有効期限が切れていGSS_S_CREDENTIALS_EXPIRED。

GSS_S_BAD_BINDINGS The input_token contains different channel bindings to those specified via the input_chan_bindings parameter.

入力トークンがinput_chan_bindingsパラメータで指定されたものとは異なるチャネルバインディングが含まれていGSS_S_BAD_BINDINGS。

GSS_S_NO_CONTEXT Indicates that the supplied context handle did not refer to a valid context.

GSS_S_NO_CONTEXTは、付属のコンテキストハンドルが有効なコンテキストを参照していなかったことを示します。

GSS_S_BAD_SIG The input_token contains an invalid MIC.

入力トークンをGSS_S_BAD_SIGすると、無効なMICが含まれています。

GSS_S_OLD_TOKEN The input_token was too old. This is a fatal error during context establishment.

GSS_S_OLD_TOKENザ・入力トークンが古すぎました。これは、コンテキストが確立しているときに致命的なエラーです。

GSS_S_DUPLICATE_TOKEN The input_token is valid, but is a duplicate of a token already processed. This is a fatal error during context establishment.

入力トークンをGSS_S_DUPLICATE_TOKEN有効ですが、既に処理されたトークンの複製です。これは、コンテキストが確立しているときに致命的なエラーです。

GSS_S_BAD_MECH The received token specified a mechanism that is not supported by the implementation or the provided credential.

GSS_S_BAD_MECHザトークン実装または提供される資格情報でサポートされていないメカニズムを指定しました。

5.2. gss_acquire_cred
5.2. gss_acquire_cred

OM_uint32 gss_acquire_cred ( OM_uint32 *minor_status, const gss_name_t desired_name, OM_uint32 time_req, const gss_OID_set desired_mechs, gss_cred_usage_t cred_usage, gss_cred_id_t *output_cred_handle, gss_OID_set *actual_mechs, OM_uint32 *time_rec)

OM_uint32と同じは、gss_acquire_cred(OM_uint32と同じ* minor_status、CONST gss_name_tのたdesired_name、OM_uint32と同じのtime_req、CONSTたgss_OID_set desired_mechs、gss_cred_usage_t cred_usage、gss_cred_id_t * output_cred_handle、たgss_OID_set * actual_mechs、OM_uint32と同じ*のtime_rec)

Purpose:

目的:

Allows an application to acquire a handle for a pre-existing credential by name. GSS-API implementations must impose a local access-control policy on callers of this routine to prevent unauthorized callers from acquiring credentials to which they are not entitled. This routine is not intended to provide a "login to the network" function, as such a function would involve the creation of new credentials rather than merely acquiring a handle to existing credentials. Such functions, if required, should be defined in implementation-specific extensions to the API.

アプリケーションは、名前によって既存の資格情報のハンドルを取得することができます。 GSS-APIの実装は、それらが資格を与えていないために資格を取得する権限のない発信者を防ぐために、このルーチンの呼び出し元にローカルアクセス制御ポリシーを課す必要があります。このルーチンは、そのような機能は、単に既存の資格情報へのハンドルを取得するのではなく、新しい資格情報の作成を伴うだろうとして、機能「ネットワークへのログイン」を提供するものではありません。このような機能は、必要であれば、APIの実装固有の拡張で定義されるべきです。

If desired_name is GSS_C_NO_NAME, the call is interpreted as a request for a credential handle that will invoke default behavior when passed to gss_init_sec_context() (if cred_usage is GSS_C_INITIATE or GSS_C_BOTH) or gss_accept_sec_context() (if cred_usage is GSS_C_ACCEPT or GSS_C_BOTH).

たdesired_nameがGSS_C_NO_NAMEある場合、または場合gss_accept_sec_context((cred_usageがGSS_C_INITIATEかGSS_C_BOTHの場合)(cred_usageがGSS_C_ACCEPTかGSS_C_BOTHであれば)、コール)はgss_init_sec_context()をするために渡されたときのデフォルトの動作を起動する証明書ハンドルのための要求として解釈されます。

Mechanisms should honor the desired_mechs parameter, and return a credential that is suitable to use only with the requested mechanisms. An exception to this is the case where one underlying credential element can be shared by multiple mechanisms; in this case it is permissible for an implementation to indicate all mechanisms with which the credential element may be used. If desired_mechs is an empty set, behavior is undefined.

メカニズムはdesired_mechsパラメータを尊重し、要求されたメカニズムでのみ使用するのに適している資格を返す必要があります。これに対する例外は、一つ下層の資格要素が複数の機構で共有することができる場合です。この場合には資格要素が使用されると、すべてのメカニズムを示すために実装するための許容されます。 desired_mechsが空集合である場合、動作は未定義です。

This routine is expected to be used primarily by context acceptors, since implementations are likely to provide mechanism-specific ways of obtaining GSS-API initiator credentials from the system login process. Some implementations may therefore not support the acquisition of GSS_C_INITIATE or GSS_C_BOTH credentials via gss_acquire_cred for any name other than GSS_C_NO_NAME, or a name produced by applying either gss_inquire_cred to a valid credential, or gss_inquire_context to an active context.

実装は、システム・ログイン・プロセスからのGSS-APIのイニシエータの資格を取得する機構固有の方法を提供する可能性があるので、このルーチンは、コンテキスト・アクセプターによって主に使用されることが予想されます。適用して製造GSS_C_NO_NAME以外の名前、または名前のためには、gss_acquire_credを介していくつかの実装は、したがってGSS_C_INITIATE又はGSS_C_BOTH資格情報の取得をサポートしないかもしれないいずれかのアクティブなコンテキストに有効な資格証明、またはgss_inquire_contextにgss_inquire_cred。

If credential acquisition is time-consuming for a mechanism, the mechanism may choose to delay the actual acquisition until the credential is required (e.g. by gss_init_sec_context or gss_accept_sec_context). Such mechanism-specific implementation decisions should be invisible to the calling application; thus a call of gss_inquire_cred immediately following the call of gss_acquire_cred must return valid credential data, and may therefore incur the overhead of a deferred credential acquisition.

資格取得機構のための時間がかかる場合には資格が必要になるまで、機構は、(例えば、場合gss_init_sec_contextまたは場合gss_accept_sec_contextによって)実際の取得を遅らせることを選択してもよいです。このような機構固有の実装の決定は、呼び出し元のアプリケーションには見えなければなりません。これは、gss_acquire_credのgss_inquire_cred直後のコールの呼び出しは、有効な資格情報データを返す必要があり、そのため延期資格取得のオーバーヘッドが発生する場合があります。

Parameters:

パラメーター:

desired_name gss_name_t, read Name of principal whose credential should be acquired

たdesired_nameのgss_name_t、資格取得すべき元本の名前を読みます

time_req Integer, read, optional number of seconds that credentials should remain valid. Specify GSS_C_INDEFINITE to request that the credentials have the maximum permitted lifetime.

time_req整数、読み、証明書が有効でなければならない秒のオプションの数。資格情報が最大許容寿命を持っていることを要求するGSS_C_INDEFINITEを指定します。

desired_mechs Set of Object IDs, read, optional set of underlying security mechanisms that may be used. GSS_C_NO_OID_SET may be used to obtain an implementation-specific default.

オブジェクトIDのセットdesired_mechs、読み、使用することができる基本的なセキュリティ・メカニズムのオプションセット。 GSS_C_NO_OID_SETは、実装固有のデフォルトを得るために使用することができます。

cred_usage gss_cred_usage_t, read GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts. GSS_C_INITIATE - Credentials will only be used to initiate security contexts. GSS_C_ACCEPT - Credentials will only be used to accept security contexts.

cred_usage gss_cred_usage_t、GSS_C_BOTHを読む - 資格情報は、セキュリティコンテキストを開始するか、受け入れるために使用することができます。 GSS_C_INITIATE - 資格情報はセキュリティコンテキストを開始するために使用されます。 GSS_C_ACCEPT - 資格情報はセキュリティコンテキストを受け入れるために使用されます。

output_cred_handle gss_cred_id_t, modify The returned credential handle. Resources associated with this credential handle must be released by the application after use with a call to gss_release_cred().

output_cred_handle gss_cred_id_tは、返された証明書ハンドルを変更します。この資格ハンドルに関連付けられたリソースがgss_release_credを呼び出して使用後にアプリケーションによって解放されなければなりません()。

actual_mechs Set of Object IDs, modify, optional The set of mechanisms for which the credential is valid. Storage associated with the returned OID-set must be released by the application after use with a call to gss_release_oid_set(). Specify NULL if not required.

オブジェクトID、変更、資格が有効であるメカニズムのオプションセットのセットactual_mechs。返されたOIDセットに関連付けられているストレージがgss_release_oid_setを呼び出して使用後にアプリケーションによって解放されなければなりません()。必要でない場合は、NULLを指定します。

time_rec Integer, modify, optional Actual number of seconds for which the returned credentials will remain valid. If the implementation does not support expiration of credentials, the value GSS_C_INDEFINITE will be returned. Specify NULL if not required

time_rec整数は、変更、秒のオプションの実際の数はこれのために返される資格情報が有効なままになります。実装は資格証明書の有効期限をサポートしていない場合は、値GSS_C_INDEFINITEが返されます。必要でない場合は、NULLを指定

minor_status Integer, modify Mechanism specific status code.

minor_status整数は、メカニズムの特定のステータスコードを変更します。

Function value: GSS status code

関数値:GSSステータスコード

GSS_S_COMPLETE Successful completion

GSS_S_COMPLETE成功した完了

GSS_S_BAD_MECH Unavailable mechanism requested

要求されたGSS_S_BAD_MECH利用できない仕組み

GSS_S_BAD_NAMETYPE Type contained within desired_name parameter is not supported

たdesired_nameパラメータ内に含まれるGSS_S_BAD_NAMETYPEタイプがサポートされていません。

GSS_S_BAD_NAME Value supplied for desired_name parameter is ill formed.

GSS_S_BAD_NAME値は病気に形成されたdesired_nameパラメータに供給しました。

GSS_S_CREDENTIALS_EXPIRED The credentials could not be acquired Because they have expired.

彼らは有効期限が切れているのでGSS_S_CREDENTIALS_EXPIRED資格情報を取得することができませんでした。

GSS_S_NO_CRED No credentials were found for the specified name.

GSS_S_NO_CRED資格情報は、指定された名前が見つかりませんでした。

5.3. gss_add_cred
5.3. gss_add_cred

OM_uint32 gss_add_cred ( OM_uint32 *minor_status, const gss_cred_id_t input_cred_handle, const gss_name_t desired_name, const gss_OID desired_mech, gss_cred_usage_t cred_usage, OM_uint32 initiator_time_req, OM_uint32 acceptor_time_req, gss_cred_id_t *output_cred_handle, gss_OID_set *actual_mechs, OM_uint32 *initiator_time_rec, OM_uint32 *acceptor_time_rec)

OM_uint32と同じで(OM_uint32と同じ* minor_status、CONST gss_cred_id_tのinput_cred_handle、CONST gss_name_tのたdesired_nameを、CONST次に、gss_OID desired_mech、gss_cred_usage_t cred_usage、OM_uint32と同じinitiator_time_req、OM_uint32と同じacceptor_time_req、gss_cred_id_t * output_cred_handle、たgss_OID_set * actual_mechs、OM_uint32と同じ* initiator_time_rec、OM_uint32と同じ* acceptor_time_rec)gss_add_cred

Purpose:

目的:

Adds a credential-element to a credential. The credential-element is identified by the name of the principal to which it refers. GSS-API implementations must impose a local access-control policy on callers of this routine to prevent unauthorized callers from acquiring credential-elements to which they are not entitled. This routine is not intended to provide a "login to the network" function, as such a function would involve the creation of new mechanism-specific authentication data, rather than merely acquiring a GSS-API handle to existing data. Such functions, if required, should be defined in implementation-specific extensions to the API.

資格への資格要素を追加します。信任状要素は、それが参照するプリンシパルの名前で識別されます。 GSS-APIの実装は、彼らが権利をされていないに資格要素を取得からの不正発信者を防ぐために、このルーチンの呼び出し元にローカルアクセス制御ポリシーを課す必要があります。このルーチンは、そのような機能は、単に既存のデータへのGSS-APIのハンドルを取得するのではなく、新しいメカニズム固有の認証データの作成を伴うだろうとして、機能「ネットワークへのログイン」を提供するものではありません。このような機能は、必要であれば、APIの実装固有の拡張で定義されるべきです。

If desired_name is GSS_C_NO_NAME, the call is interpreted as a request to add a credential element that will invoke default behavior when passed to gss_init_sec_context() (if cred_usage is GSS_C_INITIATE or GSS_C_BOTH) or gss_accept_sec_context() (if cred_usage is GSS_C_ACCEPT or GSS_C_BOTH).

たdesired_nameがGSS_C_NO_NAMEある場合(cred_usageがGSS_C_ACCEPTかGSS_C_BOTHであれば)、コールは)((cred_usageがGSS_C_INITIATEかGSS_C_BOTHの場合)gss_init_sec_context()をするために渡されたときのデフォルトの動作を起動する資格要素を追加するための要求として解釈または場合gss_accept_sec_contextされます。

This routine is expected to be used primarily by context acceptors, since implementations are likely to provide mechanism-specific ways of obtaining GSS-API initiator credentials from the system login process. Some implementations may therefore not support the acquisition of GSS_C_INITIATE or GSS_C_BOTH credentials via gss_acquire_cred for any name other than GSS_C_NO_NAME, or a name produced by applying either gss_inquire_cred to a valid credential, or gss_inquire_context to an active context.

実装は、システム・ログイン・プロセスからのGSS-APIのイニシエータの資格を取得する機構固有の方法を提供する可能性があるので、このルーチンは、コンテキスト・アクセプターによって主に使用されることが予想されます。適用して製造GSS_C_NO_NAME以外の名前、または名前のためには、gss_acquire_credを介していくつかの実装は、したがってGSS_C_INITIATE又はGSS_C_BOTH資格情報の取得をサポートしないかもしれないいずれかのアクティブなコンテキストに有効な資格証明、またはgss_inquire_contextにgss_inquire_cred。

If credential acquisition is time-consuming for a mechanism, the mechanism may choose to delay the actual acquisition until the credential is required (e.g. by gss_init_sec_context or gss_accept_sec_context). Such mechanism-specific implementation decisions should be invisible to the calling application; thus a call of gss_inquire_cred immediately following the call of gss_add_cred must return valid credential data, and may therefore incur the overhead of a deferred credential acquisition.

資格取得機構のための時間がかかる場合には資格が必要になるまで、機構は、(例えば、場合gss_init_sec_contextまたは場合gss_accept_sec_contextによって)実際の取得を遅らせることを選択してもよいです。このような機構固有の実装の決定は、呼び出し元のアプリケーションには見えなければなりません。これgss_add_credのgss_inquire_cred直後のコールの呼び出しは、有効な資格情報データを返す必要があり、そのため延期資格取得のオーバーヘッドが発生する場合があります。

This routine can be used to either compose a new credential containing all credential-elements of the original in addition to the newly-acquire credential-element, or to add the new credential-element to an existing credential. If NULL is specified for the output_cred_handle parameter argument, the new credential-element will be added to the credential identified by input_cred_handle; if a valid pointer is specified for the output_cred_handle parameter, a new credential handle will be created.

このルーチンは、新たに取得資格要素に加えて、元の全資格要素を含む新しい証明書を構成する、または既存の資格に新しい資格要素を追加するためのいずれかに使用することができます。 NULLがoutput_cred_handleパラメータ引数に指定されている場合は、新しい資格要素がinput_cred_handleで識別資格に追加されます。有効なポインタがoutput_cred_handleパラメータに指定されている場合、新しい資格ハンドルが作成されます。

If GSS_C_NO_CREDENTIAL is specified as the input_cred_handle, gss_add_cred will compose a credential (and set the output_cred_handle parameter accordingly) based on default behavior. That is, the call will have the same effect as if the application had first made a call to gss_acquire_cred(), specifying the same usage and passing GSS_C_NO_NAME as the desired_name parameter to obtain an explicit credential handle embodying default behavior, passed this credential handle to gss_add_cred(), and finally called gss_release_cred() on the first credential handle.

GSS_C_NO_CREDENTIALをinput_cred_handleとして指定されている場合、デフォルトの動作に基づいて証明書を構成する(それに応じてoutput_cred_handleパラメータを設定)しますgss_add_cred。これは、アプリケーションが最初に(は、gss_acquire_credするための呼び出しをしていたかのように呼び出しが同じ使用を指定すると、デフォルトの動作を具体化した明示的な資格ハンドルを取得するたdesired_nameパラメータとしてGSS_C_NO_NAMEを渡し、)と同じ効果を持つことになり、である、この証明書ハンドルを渡しますgss_add_cred()、そして最後にgss_release_credと呼ばれる()最初の資格ハンドルに。

If GSS_C_NO_CREDENTIAL is specified as the input_cred_handle parameter, a non-NULL output_cred_handle must be supplied.

GSS_C_NO_CREDENTIALがinput_cred_handleパラメータとして指定されている場合は、非NULL output_cred_handleを供給する必要があります。

Parameters:

パラメーター:

minor_status Integer, modify Mechanism specific status code.

minor_status整数は、メカニズムの特定のステータスコードを変更します。

input_cred_handle gss_cred_id_t, read, optional The credential to which a credential-element will be added. If GSS_C_NO_CREDENTIAL is specified, the routine will compose the new credential based on default behavior (see description above). Note that, while the credential-handle is not modified by gss_add_cred(), the underlying credential will be modified if output_credential_handle is NULL.

input_cred_handle gss_cred_id_t、読み取り、任意資格要素が追加されるまで資格。 GSS_C_NO_CREDENTIALが指定されている場合、ルーチンはデフォルトの動作に基づいて新しい資格を構成します(上記の説明を参照してください)。 NULL output_credential_handleある場合信任状ハンドル)は(gss_add_cred、基礎となる資格を変更することによって変更されないが、なお。

desired_name gss_name_t, read. Name of principal whose credential should be acquired.

たdesired_nameのgss_name_t、お読みください。資格取得すべき元本の名前。

desired_mech Object ID, read Underlying security mechanism with which the credential may be used.

desired_mechオブジェクトID、資格情報を使用することができると基本セキュリティメカニズムを読み取ります。

cred_usage gss_cred_usage_t, read GSS_C_BOTH - Credential may be used either to initiate or accept security contexts. GSS_C_INITIATE - Credential will only be used to initiate security contexts. GSS_C_ACCEPT - Credential will only be used to accept security contexts.

cred_usage gss_cred_usage_tは、GSS_C_BOTHを読む - 資格は、セキュリティコンテキストを開始するか、受け入れるために使用することができます。 GSS_C_INITIATE - 資格は、セキュリティコンテキストを開始するために使用されます。 GSS_C_ACCEPT - 資格は、セキュリティコンテキストを受け入れるために使用されます。

initiator_time_req Integer, read, optional number of seconds that the credential should remain valid for initiating security contexts. This argument is ignored if the composed credentials are of type GSS_C_ACCEPT. Specify GSS_C_INDEFINITE to request that the credentials have the maximum permitted initiator lifetime.

整数initiator_time_req、資格がセキュリティコンテキストを開始するための有効なままにしてください秒のオプションの番号を読み取ります。構成の資格情報がタイプGSS_C_ACCEPTである場合、この引数は無視されます。資格情報が最大許容イニシエータの寿命を持っていることを要求するGSS_C_INDEFINITEを指定します。

acceptor_time_req Integer, read, optional number of seconds that the credential should remain valid for accepting security contexts. This argument is ignored if the composed credentials are of type GSS_C_INITIATE.

整数acceptor_time_req、資格がセキュリティコンテキストを受け入れるための有効なままにしてください秒のオプションの番号を読み取ります。構成の資格情報がタイプGSS_C_INITIATEである場合、この引数は無視されます。

                     Specify GSS_C_INDEFINITE to request that the
                     credentials have the maximum permitted initiator
                     lifetime.
        

output_cred_handle gss_cred_id_t, modify, optional The returned credential handle, containing the new credential-element and all the credential-elements from input_cred_handle. If a valid pointer to a gss_cred_id_t is supplied for this parameter, gss_add_cred creates a new credential handle containing all credential-elements from the input_cred_handle and the newly acquired credential-element; if NULL is specified for this parameter, the newly acquired credential-element will be added to the credential identified by input_cred_handle.

output_cred_handle gss_cred_id_t、修正、省略可能では新しい資格要素とinput_cred_handleからすべての資格要素を含む、証明書ハンドルを戻しました。 gss_cred_id_tへの有効なポインタがこのパラメータに指定されている場合、input_cred_handleと新たに取得した資格要素からすべての資格要素を含む新しい資格ハンドルを作成しますgss_add_cred。 NULLがこのパラメータに指定されている場合は、新たに取得した資格要素がinput_cred_handleで識別資格に追加されます。

                      The resources associated with any credential
                      handle returned via this parameter must be
                      released by the application after use with a
                      call to gss_release_cred().
        

actual_mechs Set of Object IDs, modify, optional The complete set of mechanisms for which the new credential is valid. Storage for the returned OID-set must be freed by the application after use with a call to gss_release_oid_set(). Specify NULL if not required.

オブジェクトIDのセットactual_mechs、変更、新しい資格が有効であるメカニズムのオプションの完全なセット。返されたOIDセットのストレージはgss_release_oid_setを呼び出して使用した後にアプリケーションによって解放されなければなりません()。必要でない場合は、NULLを指定します。

initiator_time_rec Integer, modify, optional Actual number of seconds for which the returned credentials will remain valid for initiating contexts using the specified mechanism. If the implementation or mechanism does not support expiration of credentials, the value GSS_C_INDEFINITE will be returned. Specify NULL if not required

initiator_time_rec整数は、変更、秒のオプションの実際の数はこれのために返される資格情報は、指定されたメカニズムを使用してコンテキストを開始するための有効なままになります。実装やメカニズムは、資格証明書の有効期限をサポートしていない場合は、値GSS_C_INDEFINITEが返されます。必要でない場合は、NULLを指定

acceptor_time_rec Integer, modify, optional Actual number of seconds for which the returned credentials will remain valid for accepting security contexts using the specified mechanism. If the implementation or mechanism does not support expiration of credentials, the value GSS_C_INDEFINITE will be returned. Specify NULL if not required

acceptor_time_rec整数は、変更、秒のオプションの実際の数はこれのために返される資格情報は、指定されたメカニズムを使用してセキュリティコンテキストを受け入れるための有効なままになります。実装やメカニズムは、資格証明書の有効期限をサポートしていない場合は、値GSS_C_INDEFINITEが返されます。必要でない場合は、NULLを指定

Function value: GSS status code

関数値:GSSステータスコード

GSS_S_COMPLETE Successful completion

GSS_S_COMPLETE成功した完了

GSS_S_BAD_MECH Unavailable mechanism requested

要求されたGSS_S_BAD_MECH利用できない仕組み

GSS_S_BAD_NAMETYPE Type contained within desired_name parameter is not supported

たdesired_nameパラメータ内に含まれるGSS_S_BAD_NAMETYPEタイプがサポートされていません。

GSS_S_BAD_NAME Value supplied for desired_name parameter is ill-formed.

たdesired_nameパラメータが悪い形成されるためGSS_S_BAD_NAME値を供給しました。

GSS_S_DUPLICATE_ELEMENT The credential already contains an element for the requested mechanism with overlapping usage and validity period.

GSS_S_DUPLICATE_ELEMENTは資格がすでに使用量と有効期間が重複する要求されたメカニズムのための要素が含まれています。

GSS_S_CREDENTIALS_EXPIRED The required credentials could not be added because they have expired.

彼らは有効期限が切れているためGSS_S_CREDENTIALS_EXPIRED必要な資格情報を追加することができませんでした。

GSS_S_NO_CRED No credentials were found for the specified name.

GSS_S_NO_CRED資格情報は、指定された名前が見つかりませんでした。

5.4. gss_add_oid_set_member
5.4. gss_add_oid_set_member

OM_uint32 gss_add_oid_set_member ( OM_uint32 *minor_status, const gss_OID member_oid, gss_OID_set *oid_set)

OM_uint32と同じgss_add_oid_set_member(OM_uint32と同じ* minor_status、constの次に、gss_OID member_oid、たgss_OID_set *のoid_set)

Purpose:

目的:

Add an Object Identifier to an Object Identifier set. This routine is intended for use in conjunction with gss_create_empty_oid_set when constructing a set of mechanism OIDs for input to gss_acquire_cred. The oid_set parameter must refer to an OID-set that was created by GSS-API (e.g. a set returned by gss_create_empty_oid_set()). GSS-API creates a copy of the member_oid and inserts this copy into the set, expanding the storage allocated to the OID-set's elements array if necessary. The routine may add the new member OID anywhere within the elements array, and implementations should verify that the new member_oid is not already contained within the elements array; if the member_oid is already present, the oid_set should remain unchanged.

オブジェクト識別子セットにオブジェクト識別子を追加します。 gss_acquire_credに入力するためのメカニズムOIDのセットを構築する際に、このルーチンはgss_create_empty_oid_setと一緒に使用するためのものです。 oid_setパラメータはGSS-APIによって作成されたOIDセットを参照しなければならない(gss_create_empty_oid_setによって返さ例えばセット())。 GSS-APIはmember_oidのコピーを作成し、必要に応じてOIDセットの要素アレイに割り当てられたストレージを拡張し、セットにこのコピーを挿入します。ルーチンはどこ素子アレイ内の新しいメンバーOIDを追加すること、および実装は、新しいmember_oidがすでに要素アレイ内に含まれていないことを確認すべきです。 member_oidがすでに存在する場合、oid_setは変わらないはずです。

Parameters:

パラメーター:

minor_status Integer, modify Mechanism specific status code

minor_status整数は、メカニズムの特定のステータスコードを変更します

member_oid Object ID, read The object identifier to copied into the set.

member_oidオブジェクトID、セットにコピーするオブジェクト識別子を読み取ります。

oid_set Set of Object ID, modify The set in which the object identifier should be inserted.

オブジェクトIDのセットoid_set、オブジェクト識別子が挿入されるべきセットを変更します。

Function value: GSS status code

関数値:GSSステータスコード

GSS_S_COMPLETE Successful completion

GSS_S_COMPLETE成功した完了

5.5. gss_canonicalize_name
5.5. gss_canonicalize_name

OM_uint32 gss_canonicalize_name ( OM_uint32 *minor_status, const gss_name_t input_name, const gss_OID mech_type, gss_name_t *output_name)

OM_uint32と同じgss_canonicalize_name(OM_uint32と同じ* minor_status、constのgss_name_tのinput_name、CONST次に、gss_OIDたmech_type、gss_name_t * output_name)

Purpose:

目的:

Generate a canonical mechanism name (MN) from an arbitrary internal name. The mechanism name is the name that would be returned to a context acceptor on successful authentication of a context where the initiator used the input_name in a successful call to gss_acquire_cred, specifying an OID set containing <mech_type> as its only member, followed by a call to gss_init_sec_context, specifying <mech_type> as the authentication mechanism.

任意の内部名から標準的なメカニズム名(MN)を生成します。機構名は、コールが続く、イニシエータは、その唯一のメンバーとして<メカニズム種別>含むOIDセットを指定し、は、gss_acquire_credする呼び出しが成功でinput_nameを使用するコンテキストの認証成功にコンテキストアクセプターに返される名前であります認証機構として<メカニズム種別>を指定して、もしGSS_Init_sec_contextします。

Parameters:

パラメーター:

minor_status Integer, modify Mechanism specific status code

minor_status整数は、メカニズムの特定のステータスコードを変更します

input_name gss_name_t, read The name for which a canonical form is desired

input_name gss_name_tは、標準形式が望まれるの名前を読み取ります

mech_type Object ID, read The authentication mechanism for which the canonical form of the name is desired. The desired mechanism must be specified explicitly; no default is provided.

メカニズム種別オブジェクトID、名前の正規形が所望される認証メカニズムを読み取ります。目的の機構は、明示的に指定する必要があります。デフォルトは提供されません。

output_name gss_name_t, modify The resultant canonical name. Storage associated with this name must be freed by the application after use with a call to gss_release_name().

gss_name_t output_name、結果の正規名を変更します。この名前に関連付けられているストレージがgss_release_nameを呼び出して使用した後にアプリケーションによって解放されなければなりません()。

Function value: GSS status code

関数値:GSSステータスコード

GSS_S_COMPLETE Successful completion.

GSS_S_COMPLETE成功した完了。

GSS_S_BAD_MECH The identified mechanism is not supported.

GSS_S_BAD_MECHザ・識別メカニズムがサポートされていません。

GSS_S_BAD_NAMETYPE The provided internal name contains no elements that could be processed by the specified mechanism.

設けられた内部名が指定されたメカニズムによって処理され得る要素が含まれていないGSS_S_BAD_NAMETYPE。

GSS_S_BAD_NAME The provided internal name was ill-formed.

GSS_S_BAD_NAMEザ・は病気に形成された内部名を提供します。

5.6. gss_compare_name
5.6. gss_compare_name

OM_uint32 gss_compare_name ( OM_uint32 *minor_status, const gss_name_t name1, const gss_name_t name2, int *name_equal)

OM_uint32と同じgss_compare_name(OM_uint32と同じ* minor_status、constのgss_name_t名1、constのgss_name_t名前2、INT * name_equal)

Purpose:

目的:

Allows an application to compare two internal-form names to determine whether they refer to the same entity.

アプリケーションは、それらが同じエンティティを参照するかどうかを決定するために2つの内部フォーム名とを比較することを可能にします。

If either name presented to gss_compare_name denotes an anonymous principal, the routines should indicate that the two names do not refer to the same identity.

gss_compare_nameに提示いずれかの名前が匿名プリンシパルを示した場合、ルーチンは、2つの名前は同じIDを参照していないことを示す必要があります。

Parameters:

パラメーター:

minor_status Integer, modify Mechanism specific status code.

minor_status整数は、メカニズムの特定のステータスコードを変更します。

name1 gss_name_t, read internal-form name

gss_name_t NAME1、内部形式の名前を読んで

name2 gss_name_t, read internal-form name

gss_name_t名2、内部形式の名前を読んで

name_equal boolean, modify non-zero - names refer to same entity zero - names refer to different entities (strictly, the names are not known to refer to the same identity).

name_equalブール、非ゼロを変更する - 名前が同じエンティティにゼロを参照してください - 名前が異なるエンティティを参照してください(厳密には、名前が同じIDを参照することが知られていません)。

Function value: GSS status code

関数値:GSSステータスコード

GSS_S_COMPLETE Successful completion

GSS_S_COMPLETE成功した完了

GSS_S_BAD_NAMETYPE The two names were of incomparable types.

比類のないタイプであった二つの名前をGSS_S_BAD_NAMETYPE。

GSS_S_BAD_NAME One or both of name1 or name2 was ill-formed.

GSS_S_BAD_NAMEつまたはNAME1またはname2のの両方が悪い形成されました。

5.7. gss_context_time
5.7. gss_context_time

OM_uint32 gss_context_time ( OM_uint32 *minor_status, const gss_ctx_id_t context_handle, OM_uint32 *time_rec)

OM_uint32と同じgss_context_time(OM_uint32と同じ* minor_status、constのgss_ctx_id_tのcontext_handle、OM_uint32と同じ*のtime_rec)

Purpose:

目的:

Determines the number of seconds for which the specified context will remain valid.

指定されたコンテキストが有効なままなるの秒数を決定します。

Parameters:

パラメーター:

minor_status Integer, modify Implementation specific status code.

minor_status整数は、実装固有のステータスコードを変更します。

context_handle gss_ctx_id_t, read Identifies the context to be interrogated.

context_handle gss_ctx_id_tは、コンテキストが尋問される識別をお読みください。

time_rec Integer, modify Number of seconds that the context will remain valid. If the context has already expired, zero will be returned.

time_rec整数は、コンテキストが有効であり続ける秒数を変更します。コンテキストがすでに有効期限が切れている場合、ゼロが返されます。

Function value: GSS status code

関数値:GSSステータスコード

GSS_S_COMPLETE Successful completion

GSS_S_COMPLETE成功した完了

GSS_S_CONTEXT_EXPIRED The context has already expired

GSS_S_CONTEXT_EXPIREDコンテキストがすでに期限切れ

GSS_S_NO_CONTEXT The context_handle parameter did not identify a valid context

GSS_S_NO_CONTEXT context_handleパラメータが有効なコンテキストを識別しませんでした

5.8. gss_create_empty_oid_set
5.8. gss_create_empty_oid_set

OM_uint32 gss_create_empty_oid_set ( OM_uint32 *minor_status, gss_OID_set *oid_set)

OM_uint32と同じgss_create_empty_oid_set(OM_uint32と同じ* minor_status、たgss_OID_set * oid_set)

Purpose:

目的:

Create an object-identifier set containing no object identifiers, to which members may be subsequently added using the gss_add_oid_set_member() routine. These routines are intended to be used to construct sets of mechanism object identifiers, for input to gss_acquire_cred.

いかなるオブジェクト識別子を含まないオブジェクト識別子セットを作成し、どのメンバーがその後gss_add_oid_set_member()ルーチンを使用して添加することができます。これらのルーチンは、入力は、gss_acquire_credするため、機構のオブジェクト識別子のセットを構築するために使用されることが意図されます。

Parameters:

パラメーター:

minor_status Integer, modify Mechanism specific status code

minor_status整数は、メカニズムの特定のステータスコードを変更します

oid_set Set of Object IDs, modify The empty object identifier set. The routine will allocate the gss_OID_set_desc object, which the application must free after use with a call to gss_release_oid_set().

オブジェクトIDのoid_setセットは、空のオブジェクト識別子のセットを変更します。ルーチンは、アプリケーションがgss_release_oid_setを呼び出して使用後に解放しなければなりませんgss_OID_set_descオブジェクトを割り当てます()。

Function value: GSS status code

関数値:GSSステータスコード

GSS_S_COMPLETE Successful completion

GSS_S_COMPLETE成功した完了

5.9. gss_delete_sec_context
5.9. gss_delete_sec_context

OM_uint32 gss_delete_sec_context ( OM_uint32 *minor_status, gss_ctx_id_t *context_handle, gss_buffer_t output_token)

OM_uint32と同じgss_delete_sec_context(OM_uint32と同じ* minor_status、gss_ctx_id_t * context_handle、gss_buffer_tのoutput_token)

Purpose:

目的:

Delete a security context. gss_delete_sec_context will delete the local data structures associated with the specified security context, and may generate an output_token, which when passed to the peer gss_process_context_token will instruct it to do likewise. If no token is required by the mechanism, the GSS-API should set the length field of the output_token (if provided) to zero. No further security services may be obtained using the context specified by context_handle.

セキュリティコンテキストを削除します。 gss_delete_sec_contextは、指定されたセキュリティコンテキストに関連付けられたローカルデータ構造を削除し、ピアgss_process_context_tokenに渡されたとき、それは同様に行うことを指示しますたoutput_tokenを生成することができます。何トークンが機構によって必要とされていない場合は(提供される場合)、GSS-APIはゼロたoutput_tokenの長さフィールドを設定しなければなりません。これ以上のセキュリティサービスは、context_handleで指定されたコンテキストを使用して取得することはできません。

In addition to deleting established security contexts, gss_delete_sec_context must also be able to delete "half-built" security contexts resulting from an incomplete sequence of gss_init_sec_context()/gss_accept_sec_context() calls.

確立されたセキュリティコンテキストを削除することに加えて、gss_delete_sec_contextも場合gss_init_sec_context()/場合gss_accept_sec_context()コールの不完全な配列に起因する「半組み込み」セキュリティコンテキストを削除することができなければなりません。

The output_token parameter is retained for compatibility with version 1 of the GSS-API. It is recommended that both peer applications invoke gss_delete_sec_context passing the value GSS_C_NO_BUFFER for the output_token parameter, indicating that no token is required, and that gss_delete_sec_context should simply delete local context data structures. If the application does pass a valid buffer to gss_delete_sec_context, mechanisms are encouraged to return a zero-length token, indicating that no peer action is necessary, and that no token should be transferred by the application.

たoutput_tokenパラメータはGSS-APIのバージョン1との互換性のために残されています。両方のピアアプリケーションがないトークンが必要とされないことを示したoutput_tokenパラメータの値GSS_C_NO_BUFFERを通過gss_delete_sec_context呼び出すことが推奨され、そのgss_delete_sec_contextは単にローカルコンテキストデータ構造を削除する必要があります。アプリケーションはgss_delete_sec_contextする有効なバッファを通過した場合、機構は全くピア・アクションは必要ありません、そして何トークンがアプリケーションによって転送されるべきではないことがあることを示す、長さゼロのトークンを返すために奨励されます。

Parameters:

パラメーター:

minor_status Integer, modify Mechanism specific status code.

minor_status整数は、メカニズムの特定のステータスコードを変更します。

context_handle gss_ctx_id_t, modify context handle identifying context to delete. After deleting the context, the GSS-API will set this context handle to GSS_C_NO_CONTEXT.

context_handle gss_ctx_id_t、削除するコンテキストを特定するコンテキストハンドルを変更します。コンテキストを削除した後、GSS-APIはGSS_C_NO_CONTEXTに、このコンテキスト・ハンドルを設定します。

output_token buffer, opaque, modify, optional token to be sent to remote application to instruct it to also delete the context. It is recommended that applications specify GSS_C_NO_BUFFER for this parameter, requesting local deletion only. If a buffer parameter is provided by the application, the mechanism may return a token in it; mechanisms that implement only local deletion should set the length field of this token to zero to indicate to the application that no token is to be sent to the peer.

たoutput_tokenバッファ、不透明、変更、オプションのトークンは、コンテキストを削除するように指示するリモートアプリケーションに送信されます。アプリケーションがローカルのみ削除を要求、このパラメータにGSS_C_NO_BUFFERを指定することをお勧めします。バッファパラメータは、アプリケーションによって提供されている場合、機構は、その中にトークンを返すことができます。のみローカル削除を実装するメカニズムはないトークンがピアに送信されるべきではないアプリケーションに示すためにゼロにこのトークンの長さフィールドを設定しなければなりません。

Function value: GSS status code

関数値:GSSステータスコード

GSS_S_COMPLETE Successful completion

GSS_S_COMPLETE成功した完了

GSS_S_NO_CONTEXT No valid context was supplied

GSS_S_NO_CONTEXTんが、有効なコンテキストが提供されませんでした。

5.10.gss_display_name
5.10.gss_display_name

OM_uint32 gss_display_name ( OM_uint32 *minor_status, const gss_name_t input_name, gss_buffer_t output_name_buffer, gss_OID *output_name_type)

OM_uint32と同じgss_display_name(OM_uint32と同じ* minor_status、constのgss_name_t input_name、gss_buffer_t output_name_buffer、次に、gss_OID * output_name_type)

Purpose:

目的:

Allows an application to obtain a textual representation of an opaque internal-form name for display purposes. The syntax of a printable name is defined by the GSS-API implementation.

アプリケーションは、表示目的のために不透明な内部フォーム名のテキスト表現を得ることができます。印刷可能な名前の構文は、GSS-APIの実装によって定義されます。

If input_name denotes an anonymous principal, the implementation should return the gss_OID value GSS_C_NT_ANONYMOUS as the output_name_type, and a textual name that is syntactically distinct from all valid supported printable names in output_name_buffer.

input_nameが匿名プリンシパルを示した場合、実装はoutput_name_type、およびoutput_name_buffer内のすべての有効なサポート印刷可能な名前から構文的に区別されるテキスト名として次に、gss_OID値GSS_C_NT_ANONYMOUSを返す必要があります。

If input_name was created by a call to gss_import_name, specifying GSS_C_NO_OID as the name-type, implementations that employ lazy conversion between name types may return GSS_C_NO_OID via the output_name_type parameter.

input_nameが名前型としてGSS_C_NO_OIDを指定し、gss_import_nameの呼び出しによって作成された場合、名前タイプ間の遅延変換を用いる実装はoutput_name_typeパラメータ介しGSS_C_NO_OIDを返すことができます。

Parameters:

パラメーター:

minor_status Integer, modify Mechanism specific status code.

minor_status整数は、メカニズムの特定のステータスコードを変更します。

input_name gss_name_t, read name to be displayed

input_name gss_name_t、表示される名前を読んで

output_name_buffer buffer, character-string, modify buffer to receive textual name string. The application must free storage associated with this name after use with a call to gss_release_buffer().

output_name_bufferバッファ、文字列は、テキスト形式の名前の文字列を受け取るためのバッファを変更します。アプリケーションはgss_release_bufferを呼び出して使用した後、この名前に関連付けられたストレージを解放しなければなりません()。

output_name_type Object ID, modify, optional The type of the returned name. The returned gss_OID will be a pointer into static storage, and should be treated as read-only by the caller (in particular, the application should not attempt to free it). Specify NULL if not required.

オプションで、返された名前の種類を、IDをオブジェクト変更output_name_type。返さ次に、gss_OIDは、静的ストレージへのポインタになり、読み取り専用呼び出し元によって(特に、アプリケーションがそれを解放することを試みるべきではない)として扱われるべきです。必要でない場合は、NULLを指定します。

Function value: GSS status code

関数値:GSSステータスコード

GSS_S_COMPLETE Successful completion

GSS_S_COMPLETE成功した完了

GSS_S_BAD_NAME input_name was ill-formed

GSS_S_BAD_NAMEのinput_nameは病気に形成されました

5.11.gss_display_status
5.11.gss_display_status

OM_uint32 gss_display_status ( OM_uint32 *minor_status, OM_uint32 status_value, int status_type, const gss_OID mech_type, OM_uint32 *message_context, gss_buffer_t status_string)

OM_uint32と同じgss_display_status(OM_uint32と同じ* minor_status、OM_uint32と同じSTATUS_VALUE、int型status_type、constの次に、gss_OIDたmech_type、OM_uint32と同じ*のmessage_context、gss_buffer_t status_string)

Purpose:

目的:

Allows an application to obtain a textual representation of a GSS-API status code, for display to the user or for logging purposes. Since some status values may indicate multiple conditions, applications may need to call gss_display_status multiple times, each call generating a single text string. The message_context parameter is used by gss_display_status to store state information about which error messages have already been extracted from a given status_value; message_context must be initialized to 0 by the application prior to the first call, and gss_display_status will return a non-zero value in this parameter if there are further messages to extract.

ユーザーに表示するためか、ログ記録の目的のために、アプリケーションはGSS-API状態コードのテキスト表現を得ることができます。いくつかのステータス値は、複数の条件を示している可能性がありますので、アプリケーションは複数回、単一のテキスト文字列を生成し、各コールをgss_display_status呼び出す必要があります。 message_contextパラメータは、エラーメッセージが既に所与STATUS_VALUEから抽出されたかについての状態情報を格納するためにgss_display_statusによって使用されます。 message_contextは、最初の呼び出しの前に適用することにより0に初期化する必要があり、そして抽出する更なるメッセージがある場合gss_display_statusは、このパラメータにゼロ以外の値を返します。

The message_context parameter contains all state information required by gss_display_status in order to extract further messages from the status_value; even when a non-zero value is returned in this parameter, the application is not required to call gss_display_status again unless subsequent messages are desired. The following code extracts all messages from a given status code and prints them to stderr:

message_contextパラメータはSTATUS_VALUEからのさらなるメッセージを抽出するためにgss_display_statusに必要なすべての状態情報が含まれています。非ゼロ値がこのパラメータに返された場合でも、アプリケーションは後続のメッセージが望まれない限りgss_display_status再度呼び出すために必要とされません。次のコードは、指定されたステータスコードからのすべてのメッセージを抽出し、stderrにそれらを出力します。

   OM_uint32 message_context;
   OM_uint32 status_code;
   OM_uint32 maj_status;
   OM_uint32 min_status;
   gss_buffer_desc status_string;
        

...

。。。

message_context = 0;

message_context = 0;

do {

行う {

maj_status = gss_display_status ( &min_status, status_code, GSS_C_GSS_CODE, GSS_C_NO_OID, &message_context, &status_string)

maj_status = gss_display_status(&min_status、STATUS_CODE、GSS_C_GSS_CODE、GSS_C_NO_OID、&message_context、&status_string)

fprintf(stderr, "%.*s\n", (int)status_string.length,

関数fprintf(stderrに、 "%。* sの\ nを"、(int型)status_string.length、

(char *)status_string.value);

(CHAR *)status_string.value)。

gss_release_buffer(&min_status, &status_string);

gss_release_buffer(&min_status、&status_string)。

} while (message_context != 0);

}(= 0 message_context!)しながら、

Parameters:

パラメーター:

minor_status Integer, modify Mechanism specific status code.

minor_status整数は、メカニズムの特定のステータスコードを変更します。

status_value Integer, read Status value to be converted

整数をSTATUS_VALUE、変換するステータス値を読みます

status_type Integer, read GSS_C_GSS_CODE - status_value is a GSS status code

status_type整数、GSS_C_GSS_CODEを読む - STATUS_VALUEはGSSステータスコードです

GSS_C_MECH_CODE - status_value is a mechanism status code

GSS_C_MECH_CODE - STATUS_VALUE機構ステータスコードです

mech_type Object ID, read, optional Underlying mechanism (used to interpret a minor status value) Supply GSS_C_NO_OID to obtain the system default.

たmech_typeオブジェクトID、読み、システムのデフォルトを取得するために(マイナーステータス値を解釈するために使用)、オプションの基本的なメカニズムサプライGSS_C_NO_OID。

message_context Integer, read/modify Should be initialized to zero by the application prior to the first call. On return from gss_display_status(), a non-zero status_value parameter indicates that additional messages may be extracted from the status code via subsequent calls to gss_display_status(), passing the same status_value, status_type, mech_type, and message_context parameters.

message_context整数は、読み取り/最初の呼び出しの前にアプリケーションによってゼロに初期化する必要があります変更します。 gss_display_status()から戻ったとき、非ゼロSTATUS_VALUEパラメータは、追加のメッセージが同じSTATUS_VALUE、status_type、メカニズム種別、及びmessage_contextパラメータを渡し、)(gss_display_statusする後続の呼び出しを介して、ステータスコードから抽出することができることを示しています。

status_string buffer, character string, modify textual interpretation of the status_value. Storage associated with this parameter must be freed by the application after use with a call to gss_release_buffer().

バッファ、文字列をstatus_string、STATUS_VALUEのテキストの解釈を変更します。このパラメータに関連付けられているストレージはgss_release_bufferを呼び出して使用した後にアプリケーションによって解放されなければなりません()。

Function value: GSS status code

関数値:GSSステータスコード

GSS_S_COMPLETE Successful completion

GSS_S_COMPLETE成功した完了

GSS_S_BAD_MECH Indicates that translation in accordance with an unsupported mechanism type was requested

GSS_S_BAD_MECHはサポートされていないメカニズムの種類に応じて、翻訳が要求されたことを示します

GSS_S_BAD_STATUS The status value was not recognized, or the status type was neither GSS_C_GSS_CODE nor GSS_C_MECH_CODE.

GSS_S_BAD_STATUSステータス値が認識されませんでした、またはステータスタイプはどちらもGSS_C_GSS_CODEもGSS_C_MECH_CODEました。

5.12. gss_duplicate_name
5.12. gss_duplicate_name

OM_uint32 gss_duplicate_name ( OM_uint32 *minor_status, const gss_name_t src_name, gss_name_t *dest_name)

OM_uint32と同じgss_duplicate_name(OM_uint32と同じ* minor_status、constのgss_name_tのsrc_name、gss_name_t * DEST_NAME)

Purpose:

目的:

Create an exact duplicate of the existing internal name src_name. The new dest_name will be independent of src_name (i.e. src_name and dest_name must both be released, and the release of one shall not affect the validity of the other).

既存の内部名src_nameの正確な複製を作成します。新しいDEST_NAMEはsrc_nameに依存しない(両方が解放されなければならない、すなわちsrc_nameとDEST_NAME、および1のリリースが他の効力には影響しません)。

Parameters:

パラメーター:

minor_status Integer, modify Mechanism specific status code.

minor_status整数は、メカニズムの特定のステータスコードを変更します。

src_name gss_name_t, read internal name to be duplicated.

src_nameのgss_name_t、複製する内部名をお読みください。

dest_name gss_name_t, modify The resultant copy of <src_name>. Storage associated with this name must be freed by the application after use with a call to gss_release_name().

DEST_NAME gss_name_t、<src_name>の結果のコピーを変更します。この名前に関連付けられているストレージがgss_release_nameを呼び出して使用した後にアプリケーションによって解放されなければなりません()。

Function value: GSS status code

関数値:GSSステータスコード

GSS_S_COMPLETE Successful completion

GSS_S_COMPLETE成功した完了

GSS_S_BAD_NAME The src_name parameter was ill-formed.

src_nameパラメータをGSS_S_BAD_NAME悪い形成されました。

5.13. gss_export_name
5.13. gss_import_name

OM_uint32 gss_export_name ( OM_uint32 *minor_status, const gss_name_t input_name, gss_buffer_t exported_name)

OM_uint32と同じgss_export_name(OM_uint32と同じ* minor_status、constのgss_name_tのinput_name、gss_buffer_t exported_name)

Purpose:

目的:

To produce a canonical contiguous string representation of a mechanism name (MN), suitable for direct comparison (e.g. with memcmp) for use in authorization functions (e.g. matching entries in an access-control list). The <input_name> parameter must specify a valid MN (i.e. an internal name generated by gss_accept_sec_context or by gss_canonicalize_name).

認可機能で使用するための直接比較に適した機構名(MN)の正規の連続文字列表現を、(例えば、memcmpを有する)を生成する(例えば、アクセス制御リスト内のエントリと一致します)。 <input_name>パラメータが有効なMN(場合gss_accept_sec_contextによって、またはgss_canonicalize_nameによって生成された、すなわち内部名)を指定しなければなりません。

Parameters:

パラメーター:

minor_status Integer, modify Mechanism specific status code

minor_status整数は、メカニズムの特定のステータスコードを変更します

input_name gss_name_t, read The MN to be exported

input_name gss_name_t、エクスポートするMNを読みます

exported_name gss_buffer_t, octet-string, modify The canonical contiguous string form of <input_name>. Storage associated with this string must freed by the application after use with gss_release_buffer().

exported_nameのgss_buffer_t、オクテット文字列は、<input_name>の正規の連続した文字列形式を変更します。この文字列に関連付けられているストレージはgss_release_bufferで使用した後、アプリケーションによって解放されなければなりません()。

Function value: GSS status code

関数値:GSSステータスコード

GSS_S_COMPLETE Successful completion

GSS_S_COMPLETE成功した完了

GSS_S_NAME_NOT_MN The provided internal name was not a mechanism name.

GSS_S_NAME_NOT_MNザ・が提供される内部名前はメカニズム名ではありませんでした。

GSS_S_BAD_NAME The provided internal name was ill-formed.

GSS_S_BAD_NAMEザ・は病気に形成された内部名を提供します。

GSS_S_BAD_NAMETYPE The internal name was of a type not supported by the GSS-API implementation.

GSS_S_BAD_NAMETYPEは内部名がないGSS-APIの実装によってサポートされているタイプでした。

5.14. gss_export_sec_context
5.14. gss_export_sec_context

OM_uint32 gss_export_sec_context ( OM_uint32 *minor_status, gss_ctx_id_t *context_handle, gss_buffer_t interprocess_token)

OM_uint32と同じgss_export_sec_context(OM_uint32と同じ* minor_status、gss_ctx_id_t * context_handle、gss_buffer_t interprocess_token)

Purpose:

目的:

Provided to support the sharing of work between multiple processes. This routine will typically be used by the context-acceptor, in an application where a single process receives incoming connection requests and accepts security contexts over them, then passes the established context to one or more other processes for message exchange. gss_export_sec_context() deactivates the security context for the calling process and creates an interprocess token which, when passed to gss_import_sec_context in another process, will re-activate the context in the second process. Only a single instantiation of a given context may be active at any one time; a subsequent attempt by a context exporter to access the exported security context will fail.

複数のプロセス間での作業の共有をサポートするために提供。このルーチンは、通常、コンテキストアクセプタで使用される、1つのプロセスが着信接続要求を受信し、その上にセキュリティコンテキストを受け付けるアプリケーションでは、メッセージ交換のための1つまたは複数の他のプロセスに確立されたコンテキストを渡します。 gss_export_sec_contextは()呼び出しプロセスのセキュリティコンテキストを非アクティブにし、別のプロセスでgss_import_sec_contextに渡されるときに、第二工程でコンテキストを再活性化する、プロセス間トークンを作成します。所与のコンテキストの単一のインスタンスは、任意の一時点でアクティブであってもよいです。エクスポートされたセキュリティコンテキストが失敗しますアクセスするためのコンテキスト輸出国によるその後の試み。

The implementation may constrain the set of processes by which the interprocess token may be imported, either as a function of local security policy, or as a result of implementation decisions. For example, some implementations may constrain contexts to be passed only between processes that run under the same account, or which are part of the same process group.

実装は、ローカルセキュリティポリシーの関数として、または実装の決定の結果としてのいずれかで、プロセス間トークンをインポートすることができることにより、プロセスの集合を制約することができます。例えば、いくつかの実装は、同じアカウントで実行されるプロセス間で渡されるコンテキストを制約する、または同一のプロセスグループの一部であることができます。

The interprocess token may contain security-sensitive information (for example cryptographic keys). While mechanisms are encouraged to either avoid placing such sensitive information within interprocess tokens, or to encrypt the token before returning it to the application, in a typical object-library GSS-API implementation this may not be possible. Thus the application must take care to protect the interprocess token, and ensure that any process to which the token is transferred is trustworthy.

プロセス間トークンは、(例えば、暗号化キーの)セキュリティに敏感な情報を含んでいてもよいです。メカニズムは、プロセス間トークン内などの機密情報を配置しないように、またはアプリケーションに返す前に、トークンを暗号化するためのいずれかに奨励されていますが、一般的なオブジェクトライブラリGSS-APIの実装では、これはできないことがあります。したがって、アプリケーションは、プロセス間トークンを保護するために世話をし、トークンが転送されている任意のプロセスが信頼できることを確認する必要があります。

If creation of the interprocess token is successful, the implementation shall deallocate all process-wide resources associated with the security context, and set the context_handle to GSS_C_NO_CONTEXT. In the event of an error that makes it impossible to complete the export of the security context, the implementation must not return an interprocess token, and should strive to leave the security context referenced by the context_handle parameter untouched. If this is impossible, it is permissible for the implementation to delete the security context, providing it also sets the context_handle parameter to GSS_C_NO_CONTEXT.

間トークンの作成に成功した場合、実装は、セキュリティコンテキストに関連付けられているすべてのプロセス全体のリソースを解放し、そしてGSS_C_NO_CONTEXTにcontext_handleを設定しなければなりません。それが不可能なセキュリティコンテキストのエクスポートを完了できるようになり、エラーが発生した場合には、実装がプロセス間トークンを返してはならない、と手付かずcontext_handleパラメータで参照されるセキュリティコンテキストを残すように努力すべきです。これが不可能な場合、それはまたGSS_C_NO_CONTEXTにcontext_handleパラメータを設定提供し、セキュリティコンテキストを削除するには、実装のために許容されます。

Parameters:

パラメーター:

minor_status Integer, modify Mechanism specific status code

minor_status整数は、メカニズムの特定のステータスコードを変更します

context_handle gss_ctx_id_t, modify context handle identifying the context to transfer.

context_handle gss_ctx_id_t、転送するコンテキストを特定するコンテキストハンドルを変更します。

interprocess_token buffer, opaque, modify token to be transferred to target process. Storage associated with this token must be freed by the application after use with a call to gss_release_buffer().

バッファinterprocess_token、不透明、プロセスをターゲットに転送するトークンを修正します。このトークンに関連付けられているストレージがgss_release_bufferを呼び出して使用した後にアプリケーションによって解放されなければなりません()。

Function value: GSS status code

関数値:GSSステータスコード

GSS_S_COMPLETE Successful completion

GSS_S_COMPLETE成功した完了

GSS_S_CONTEXT_EXPIRED The context has expired

GSS_S_CONTEXT_EXPIREDコンテキストの有効期限が切れています

GSS_S_NO_CONTEXT The context was invalid

GSS_S_NO_CONTEXTは、コンテキストが無効でした

GSS_S_UNAVAILABLE The operation is not supported.

GSS_S_UNAVAILABLE操作がサポートされていません。

5.15. gss_get_mic
5.15. gss_get_mic

OM_uint32 gss_get_mic ( OM_uint32 *minor_status, const gss_ctx_id_t context_handle, gss_qop_t qop_req, const gss_buffer_t message_buffer, gss_buffer_t msg_token)

OM_uint32と同じはgss_get_mic(OM_uint32と同じ* minor_status、constのgss_ctx_id_tのcontext_handle、gss_qop_t qop_req、constのgss_buffer_t message_buffer、gss_buffer_t msg_token)

Purpose:

目的:

Generates a cryptographic MIC for the supplied message, and places the MIC in a token for transfer to the peer application. The qop_req parameter allows a choice between several cryptographic algorithms, if supported by the chosen mechanism.

供給されたメッセージの暗号化MICを生成し、ピアアプリケーションに転送するトークンでMICを置きます。選択されたメカニズムによってサポートされている場合qop_reqパラメータは、いくつかの暗号化アルゴリズムの選択を可能にします。

Since some application-level protocols may wish to use tokens emitted by gss_wrap() to provide "secure framing", implementations must support derivation of MICs from zero-length messages.

いくつかのアプリケーションレベルのプロトコルははgss_wrapによって放出されたトークンを使用することを望むかもしれないので()の実装は、長さゼロのメッセージからのMICの派生をサポートする必要があり、「セキュアフレーミング」を提供します。

Parameters:

パラメーター:

minor_status Integer, modify Implementation specific status code.

minor_status整数は、実装固有のステータスコードを変更します。

context_handle gss_ctx_id_t, read identifies the context on which the message will be sent

読み取りcontext_handle gss_ctx_id_tは、メッセージが送信されたコンテキストを識別します

qop_req gss_qop_t, read, optional Specifies requested quality of protection. Callers are encouraged, on portability grounds, to accept the default quality of protection offered by the chosen mechanism, which may be requested by specifying GSS_C_QOP_DEFAULT for this parameter. If an unsupported protection strength is requested, gss_get_mic will return a major_status of GSS_S_BAD_QOP.

gss_qop_t qop_req、読み、オプションの指定は、保護の品質を要求されました。発信者は、このパラメータにGSS_C_QOP_DEFAULTを指定することによって要求されることが選ばれた機構により提供される保護のデフォルトの品質を受け入れるために、移植性を理由に、奨励されています。サポートされていない保護強度が要求された場合、はgss_get_micはGSS_S_BAD_QOPのmajor_statusを返します。

message_buffer buffer, opaque, read message to be protected

message_bufferバッファ、保護すべき不透明、読み取りメッセージ

msg_token buffer, opaque, modify buffer to receive token. The application must free storage associated with this buffer after use with a call to gss_release_buffer().

msg_tokenバッファ、不透明、トークン受信するバッファを変更します。アプリケーションはgss_release_bufferを呼び出して使用した後、このバッファに関連付けられたストレージを解放しなければなりません()。

Function value: GSS status code

関数値:GSSステータスコード

GSS_S_COMPLETE Successful completion

GSS_S_COMPLETE成功した完了

GSS_S_CONTEXT_EXPIRED The context has already expired

GSS_S_CONTEXT_EXPIREDコンテキストがすでに期限切れ

GSS_S_NO_CONTEXT The context_handle parameter did not identify a valid context

GSS_S_NO_CONTEXT context_handleパラメータが有効なコンテキストを識別しませんでした

GSS_S_BAD_QOP The specified QOP is not supported by the mechanism.

GSS_S_BAD_QOPザ・はQOPはメカニズムによってサポートされていません指定されました。

5.16. gss_import_name
5.16. gss_import_name

OM_uint32 gss_import_name ( OM_uint32 *minor_status, const gss_buffer_t input_name_buffer, const gss_OID input_name_type, gss_name_t *output_name)

OM_uint32と同じgss_import_name(OM_uint32と同じ* minor_status、constのgss_buffer_tのinput_name_buffer、CONST次に、gss_OID input_name_type、gss_name_t * output_name)

Purpose:

目的:

Convert a contiguous string name to internal form. In general, the internal name returned (via the <output_name> parameter) will not be an MN; the exception to this is if the <input_name_type> indicates that the contiguous string provided via the <input_name_buffer> parameter is of type GSS_C_NT_EXPORT_NAME, in which case the returned internal name will be an MN for the mechanism that exported the name.

内部形式に連続した文字列名を変換します。一般的に、内部名は、MNができません(<output_name>パラメータを介して)返されます。 <input_name_type> <input_name_buffer>パラメータを介して提供される連続文字列が返さ内部名は、名前をエクスポート機構ためのMNとなり、その場合、型GSS_C_NT_EXPORT_NAME、であることを示す場合は例外です。

Parameters:

パラメーター:

minor_status Integer, modify Mechanism specific status code

minor_status整数は、メカニズムの特定のステータスコードを変更します

input_name_buffer buffer, octet-string, read buffer containing contiguous string name to convert

バッファinput_name_buffer、オクテット文字列、変換するために、連続した文字列名を含むバッファを読みます

input_name_type Object ID, read, optional Object ID specifying type of printable name. Applications may specify either GSS_C_NO_OID to use a mechanism-specific default printable syntax, or an OID recognized by the GSS-API implementation to name a specific namespace.

input_name_typeオブジェクトID、読んで、印刷可能な名前のオプションのオブジェクトID指定タイプ。アプリケーションは、機構固有のデフォルトの印刷可能な構文、または特定の名前空間に名前を付けるためにGSS-APIの実装によって認識OIDを使用するGSS_C_NO_OIDのいずれかを指定できます。

output_name gss_name_t, modify returned name in internal form. Storage associated with this name must be freed by the application after use with a call to gss_release_name().

gss_name_t output_name、内部形式で返された名前を変更します。この名前に関連付けられているストレージがgss_release_nameを呼び出して使用した後にアプリケーションによって解放されなければなりません()。

Function value: GSS status code

関数値:GSSステータスコード

GSS_S_COMPLETE Successful completion

GSS_S_COMPLETE成功した完了

GSS_S_BAD_NAMETYPE The input_name_type was unrecognized

GSS_S_BAD_NAMETYPEはinput_name_typeが認識されませんでした

GSS_S_BAD_NAME The input_name parameter could not be interpreted as a name of the specified type

GSS_S_BAD_NAME input_nameパラメータは、指定されたタイプの名前として解釈することができませんでした

GSS_S_BAD_MECH The input name-type was GSS_C_NT_EXPORT_NAME, but the mechanism contained within the input-name is not supported

GSS_S_BAD_MECHは、入力された名前型GSS_C_NT_EXPORT_NAMEたが、入力名内に含まれる機構がサポートされていません

5.17. gss_import_sec_context
5.17. gss_import_sec_context

OM_uint32 gss_import_sec_context ( OM_uint32 *minor_status, const gss_buffer_t interprocess_token, gss_ctx_id_t *context_handle)

OM_uint32と同じgss_import_sec_context(OM_uint32と同じ* minor_status、constのgss_buffer_tのinterprocess_token、gss_ctx_id_t * context_handle)

Purpose:

目的:

Allows a process to import a security context established by another process. A given interprocess token may be imported only once. See gss_export_sec_context.

プロセスが別のプロセスによって確立されたセキュリティコンテキストをインポートすることができます。与えられたプロセス間トークンは一度のみインポートすることができます。 gss_export_sec_contextを参照してください。

Parameters:

パラメーター:

minor_status Integer, modify Mechanism specific status code

minor_status整数は、メカニズムの特定のステータスコードを変更します

interprocess_token buffer, opaque, modify token received from exporting process

interprocess_tokenバッファは、不透明では、トークンのエクスポートプロセスから受信モディファイ

context_handle gss_ctx_id_t, modify context handle of newly reactivated context. Resources associated with this context handle must be released by the application after use with a call to gss_delete_sec_context().

context_handle gss_ctx_id_t、新しくアクティブ化コンテキストのコンテキストハンドルを変更します。このコンテキスト・ハンドルに関連付けられているリソースはgss_delete_sec_contextを呼び出して使用後にアプリケーションによって解放されなければなりません()。

Function value: GSS status code

関数値:GSSステータスコード

GSS_S_COMPLETE Successful completion.

GSS_S_COMPLETE成功した完了。

GSS_S_NO_CONTEXT The token did not contain a valid context reference.

トークンが有効なコンテキストの参照が含まれていませんでしGSS_S_NO_CONTEXT。

GSS_S_DEFECTIVE_TOKEN The token was invalid.

GSS_S_DEFECTIVE_TOKENは、トークンが無効でした。

GSS_S_UNAVAILABLE The operation is unavailable.

GSS_S_UNAVAILABLEは操作ができません。

GSS_S_UNAUTHORIZED Local policy prevents the import of this context by the current process.

GSS_S_UNAUTHORIZEDローカルポリシーは、現在のプロセスによって、このコンテキストの輸入を防ぐことができます。

5.18. gss_indicate_mechs
5.18. gss_indicate_mechs

OM_uint32 gss_indicate_mechs ( OM_uint32 *minor_status, gss_OID_set *mech_set)

OM_uint32と同じは、gss_indicate_mechs(OM_uint32と同じ* minor_status、たgss_OID_set * mech_set)

Purpose:

目的:

Allows an application to determine which underlying security mechanisms are available.

アプリケーションが利用可能な基礎となるセキュリティメカニズムを決定することができます。

Parameters:

パラメーター:

minor_status Integer, modify Mechanism specific status code.

minor_status整数は、メカニズムの特定のステータスコードを変更します。

mech_set set of Object IDs, modify set of implementation-supported mechanisms. The returned gss_OID_set value will be a dynamically-allocated OID set, that should be released by the caller after use with a call to gss_release_oid_set().

オブジェクトIDのmech_setセット、実装がサポートするメカニズムのセットを変更。返されたgss_OID_setの値は、()gss_release_oid_setを呼び出して使用した後、呼び出し側によって解放されなければならない動的に割り当てられたOIDセットになります。

Function value: GSS status code

関数値:GSSステータスコード

GSS_S_COMPLETE Successful completion

GSS_S_COMPLETE成功した完了

5.19. gss_init_sec_context
5.19. gss_init_sec_context

OM_uint32 gss_init_sec_context ( OM_uint32 *minor_status, const gss_cred_id_t initiator_cred_handle, gss_ctx_id_t *context_handle,\ const gss_name_t target_name, const gss_OID mech_type, OM_uint32 req_flags, OM_uint32 time_req, const gss_channel_bindings_t input_chan_bindings, const gss_buffer_t input_token gss_OID *actual_mech_type, gss_buffer_t output_token, OM_uint32 *ret_flags, OM_uint32 *time_rec )

OM_uint32と同じにgss_init_sec_context(OM_uint32と同じ* minor_status、constのgss_cred_id_t initiator_cred_handle、gss_ctx_id_t * context_handle、constのgss_name_tのTARGET_NAME \、constの次に、gss_OIDたmech_type、OM_uint32と同じreq_flagsを使用、OM_uint32と同じtime_req、constのはinput_chan_bindingsをgss_channel_bindings_t、constのgss_buffer_t input_tokenに次に、gss_OID * actual_mech_type、gss_buffer_tのoutput_token、OM_uint32と同じ*のret_flags、OM_uint32と同じ* time_rec)

Purpose:

目的:

Initiates the establishment of a security context between the application and a remote peer. Initially, the input_token parameter should be specified either as GSS_C_NO_BUFFER, or as a pointer to a gss_buffer_desc object whose length field contains the value zero. The routine may return a output_token which should be transferred to the peer application, where the peer application will present it to gss_accept_sec_context. If no token need be sent, gss_init_sec_context will indicate this by setting the length field of the output_token argument to zero. To complete the context establishment, one or more reply tokens may be required from the peer application; if so, gss_init_sec_context will return a status containing the supplementary information bit GSS_S_CONTINUE_NEEDED. In this case, gss_init_sec_context should be called again when the reply token is received from the peer application, passing the reply token to gss_init_sec_context via the input_token parameters.

アプリケーションとリモートピア間のセキュリティコンテキストの確立を開始します。最初に、入力トークンパラメータはGSS_C_NO_BUFFERとして、または長さフィールド値ゼロが含まれるgss_buffer_descオブジェクトへのポインタのいずれかとして指定されなければなりません。ルーチンは、ピアアプリケーションは場合gss_accept_sec_contextにそれを提示するピアアプリケーションに転送されるべきたoutput_tokenを返すことができます。何のトークンが送信される必要がない場合は、場合gss_init_sec_contextはゼロに引数たoutput_tokenの長さフィールドを設定することで、これを示します。コンテキスト確立を完了するために、一つ以上の応答トークンは、ピアアプリケーションから要求されてもよいです。そうならば、場合gss_init_sec_contextは、補足情報ビットGSS_S_CONTINUE_NEEDEDを含む状態を返します。応答トークンがピア・アプリケーションから受信した場合この場合、場合gss_init_sec_contextは入力トークンパラメータを介しもしGSS_Init_sec_contextする応答トークンを渡し、再び呼び出さなければなりません。

Portable applications should be constructed to use the token length and return status to determine whether a token needs to be sent or waited for. Thus a typical portable caller should always invoke gss_init_sec_context within a loop:

ポータブルアプリケーションは、トークンの長さを使用して、トークンが送信または待つする必要があるかどうかを判断するためにステータスを返すように構成されるべきです。このように、一般的なポータブル呼び出し側は常にループ内にgss_init_sec_context呼び出す必要があります:

   int context_established = 0;
   gss_ctx_id_t context_hdl = GSS_C_NO_CONTEXT;
          ...
   input_token->length = 0;
        
   while (!context_established) {
     maj_stat = gss_init_sec_context(&min_stat,
                                     cred_hdl,
                                     &context_hdl,
                                     target_name,
                                     desired_mech,
                                     desired_services,
                                     desired_time,
                                     input_bindings,
                                     input_token,
                                     &actual_mech,
                                     output_token,
                                     &actual_services,
                                     &actual_time);
     if (GSS_ERROR(maj_stat)) {
       report_error(maj_stat, min_stat);
     };
        
     if (output_token->length != 0) {
       send_token_to_peer(output_token);
       gss_release_buffer(&min_stat, output_token)
     };
     if (GSS_ERROR(maj_stat)) {
        
       if (context_hdl != GSS_C_NO_CONTEXT)
         gss_delete_sec_context(&min_stat,
                                &context_hdl,
                                GSS_C_NO_BUFFER);
       break;
     };
        
     if (maj_stat & GSS_S_CONTINUE_NEEDED) {
       receive_token_from_peer(input_token);
     } else {
       context_established = 1;
     };
   };
        

Whenever the routine returns a major status that includes the value GSS_S_CONTINUE_NEEDED, the context is not fully established and the following restrictions apply to the output parameters:

ルーチンが値GSS_S_CONTINUE_NEEDEDを含んで主要な地位を返すたびに、コンテキストが完全に確立されておらず、以下の制限が出力パラメータに適用されます。

The value returned via the time_rec parameter is undefined Unless the accompanying ret_flags parameter contains the bit GSS_C_PROT_READY_FLAG, indicating that per-message services may be applied in advance of a successful completion status, the value returned via the actual_mech_type parameter is undefined until the routine returns a major status value of GSS_S_COMPLETE.

添付のret_flagsパラメータは、メッセージごとのサービスが正常に完了ステータスの前に適用され得ることを示し、ビットGSS_C_PROT_READY_FLAGが含まれていない限りtime_recパラメータを介して返される値は不定である、値がactual_mech_typeパラメータを介して返されるリターンまで未定義ですGSS_S_COMPLETEの主要なステータス値。

The values of the GSS_C_DELEG_FLAG, GSS_C_MUTUAL_FLAG, GSS_C_REPLAY_FLAG, GSS_C_SEQUENCE_FLAG, GSS_C_CONF_FLAG, GSS_C_INTEG_FLAG and GSS_C_ANON_FLAG bits returned via the ret_flags parameter should contain the values that the implementation expects would be valid if context establishment were to succeed. In particular, if the application has requested a service such as delegation or anonymous authentication via the req_flags argument, and such a service is unavailable from the underlying mechanism, gss_init_sec_context should generate a token that will not provide the service, and indicate via the ret_flags argument that the service will not be supported. The application may choose to abort the context establishment by calling gss_delete_sec_context (if it cannot continue in the absence of the service), or it may choose to transmit the token and continue context establishment (if the service was merely desired but not mandatory).

ret_flagsパラメータを介して返さGSS_C_DELEG_FLAG、GSS_C_MUTUAL_FLAG、GSS_C_REPLAY_FLAG、GSS_C_SEQUENCE_FLAG、GSS_C_CONF_FLAG、GSS_C_INTEG_FLAGとGSS_C_ANON_FLAGビットの値は、実装は、コンテキストの確立が成功した場合、有効になります期待していた値が含まれている必要があります。アプリケーションは、このような引数req_flagsを使用し介した委任や匿名認証などのサービスを要求した、とそのようなサービスは、基礎となるメカニズムから利用できない場合は特に、場合gss_init_sec_contextは、サービスを提供することはありませんトークンを生成する必要があります、とのret_flags引数を経由して示していますサービスがサポートされないこと。アプリケーションは、(それがサービスの非存在下で継続することができない場合)gss_delete_sec_context呼び出すことによってコンテキスト確立を中止することを選択することができる、またはそれがトークンを送信し、コンテキスト確立を継続することを選択することができる(サービスは、単に所望しかし必須ではないした場合)。

The values of the GSS_C_PROT_READY_FLAG and GSS_C_TRANS_FLAG bits within ret_flags should indicate the actual state at the time gss_init_sec_context returns, whether or not the context is fully established.

ret_flags内GSS_C_PROT_READY_FLAGとGSS_C_TRANS_FLAGビットの値はコンテキストが完全に確立されているか否か、返しにgss_init_sec_context時の実際の状態を示すべきです。

GSS-API implementations that support per-message protection are encouraged to set the GSS_C_PROT_READY_FLAG in the final ret_flags returned to a caller (i.e. when accompanied by a GSS_S_COMPLETE status code). However, applications should not rely on this behavior as the flag was not defined in Version 1 of the GSS-API. Instead, applications should determine what per-message services are available after a successful context establishment according to the GSS_C_INTEG_FLAG and GSS_C_CONF_FLAG values.

メッセージごとの保護をサポートするGSS-APIの実装は、最終のret_flagsにGSS_C_PROT_READY_FLAGを設定することが奨励される(GSS_S_COMPLETE状態コードを伴う即ちとき)、呼び出し元に戻します。フラグはGSS-APIのバージョン1で定義されていなかったとしてしかし、アプリケーションはこの動作に依存しないでください。代わりに、アプリケーションは、メッセージごとのサービスはGSS_C_INTEG_FLAGとGSS_C_CONF_FLAG値に応じて成功したコンテキスト確立後に利用可能であるかを判断する必要があります。

All other bits within the ret_flags argument should be set to zero.

ret_flags引数内の他のすべてのビットはゼロに設定する必要があります。

If the initial call of gss_init_sec_context() fails, the implementation should not create a context object, and should leave the value of the context_handle parameter set to GSS_C_NO_CONTEXT to indicate this. In the event of a failure on a subsequent call, the implementation is permitted to delete the "half-built" security context (in which case it should set the context_handle parameter to GSS_C_NO_CONTEXT), but the preferred behavior is to leave the security context untouched for the application to delete (using gss_delete_sec_context).

gss_init_sec_contextの最初の()の呼び出しが失敗した場合、実装は、コンテキストオブジェクトを作成してはならない、とこれを示すためにGSS_C_NO_CONTEXTに設定context_handleパラメータの値のままにする必要があります。その後の呼び出しに障害が発生した場合、実装は、「半構築された」セキュリティコンテキストを(その場合、それはGSS_C_NO_CONTEXTにcontext_handleパラメータを設定する必要があります)を削除することが許されるが、好ましい振る舞いは手つかずのセキュリティコンテキストを残すことです(gss_delete_sec_contextを使用して)削除するアプリケーションのために。

During context establishment, the informational status bits GSS_S_OLD_TOKEN and GSS_S_DUPLICATE_TOKEN indicate fatal errors, and GSS-API mechanisms should always return them in association with a routine error of GSS_S_FAILURE. This requirement for pairing did not exist in version 1 of the GSS-API specification, so applications that wish to run over version 1 implementations must special-case these codes.

コンテキストが確立しているときに、情報のステータスビットGSS_S_OLD_TOKENとGSS_S_DUPLICATE_TOKENは致命的なエラーを示し、GSS-APIメカニズムは、常にGSS_S_FAILUREのルーチンのエラーに関連して、それらを返す必要があります。ペアリングのためのこの要件は、バージョンの上に1つの実装しなければならない特殊なケースこれらのコードを実行したいアプリケーションので、GSS-API仕様のバージョン1には存在しませんでした。

Parameters:

パラメーター:

minor_status Integer, modify Mechanism specific status code.

minor_status整数は、メカニズムの特定のステータスコードを変更します。

initiator_cred_handle gss_cred_id_t, read, optional handle for credentials claimed. Supply GSS_C_NO_CREDENTIAL to act as a default initiator principal. If no default initiator is defined, the function will return GSS_S_NO_CRED.

initiator_cred_handle gss_cred_id_t、読み、資格証明書のためのオプションのハンドルが主張しています。サプライGSS_C_NO_CREDENTIALは、デフォルトのイニシエータプリンシパルとして機能します。デフォルトのイニシエータが定義されていない場合、この関数はGSS_S_NO_CREDを返します。

context_handle gss_ctx_id_t, read/modify context handle for new context. Supply GSS_C_NO_CONTEXT for first call; use value returned by first call in continuation calls. Resources associated with this context-handle must be released by the application after use with a call to gss_delete_sec_context().

context_handle gss_ctx_id_t、読み取り/新しいコンテキストのコンテキストハンドルを変更します。最初の呼び出しのための供給GSS_C_NO_CONTEXT。継続呼び出しで最初の呼び出しによって返された値を使用します。このコンテキスト・ハンドルに関連付けられたリソースはgss_delete_sec_contextを呼び出して使用後にアプリケーションによって解放されなければなりません()。

target_name gss_name_t, read Name of target

TARGET_NAMEのgss_name_tは、ターゲットの名前を読んで

mech_type OID, read, optional Object ID of desired mechanism. Supply GSS_C_NO_OID to obtain an implementation specific default

たmech_type OIDは、所望の機構の任意のオブジェクトIDを読み出します。サプライGSS_C_NO_OIDは、実装固有のデフォルト値を取得します

req_flags bit-mask, read Contains various independent flags, each of which requests that the context support a specific service option. Symbolic names are provided for each flag, and the symbolic names corresponding to the required flags should be logically-ORed together to form the bit-mask value. The flags are:

読みreq_flagsを使用ビットマスクは、コンテキストは、特定のサービスオプションをサポートすることを要求し、それぞれが、様々な独立のフラグが含まれています。シンボル名は、各フラグのために提供され、そして必要なフラグに対応するシンボル名は、ビットマスク値を形成するために一緒に論理的に論理和であるべきです。フラグは次のとおりです。

                     GSS_C_DELEG_FLAG
                       True - Delegate credentials to remote peer
                       False - Don't delegate
        

GSS_C_MUTUAL_FLAG True - Request that remote peer authenticate itself False - Authenticate self to remote peer only

GSS_C_MUTUAL_FLAG真 - リモート偽自体を認証ピア要求 - 認証セルフリモートピアにのみ

GSS_C_REPLAY_FLAG True - Enable replay detection for messages protected with gss_wrap or gss_get_mic False - Don't attempt to detect replayed messages

GSS_C_REPLAY_FLAGトゥルー - リプレイメッセージを検出しようとしないでください - はgss_wrapかはgss_get_mic偽で保護されたメッセージのリプレイの検出を有効にします

GSS_C_SEQUENCE_FLAG True - Enable detection of out-of-sequence protected messages False - Don't attempt to detect out-of-sequence messages

GSS_C_SEQUENCE_FLAG真 - シーケンス外のメッセージを検出しようとしないでください - 偽シーケンス外の保護されたメッセージの検出を有効にします

GSS_C_CONF_FLAG True - Request that confidentiality service be made available (via gss_wrap) False - No per-message confidentiality service is required.

GSS_C_CONF_FLAGトゥルー - ノーメッセージごとの機密性サービスが必要です - 偽が(はgss_wrap経由)機密性サービスを利用できるようにすることを要求します。

GSS_C_INTEG_FLAG True - Request that integrity service be made available (via gss_wrap or gss_get_mic) False - No per-message integrity service is required.

GSS_C_INTEG_FLAGトゥルー - 整合性サービスがFalse(はgss_wrapかはgss_get_mic経由で)利用できるようにすることを要求 - ノーメッセージごとの整合性サービスが必要です。

GSS_C_ANON_FLAG True - Do not reveal the initiator's identity to the acceptor. False - Authenticate normally.

GSS_C_ANON_FLAG真は - アクセプターへのイニシエータの身元を明らかにしないでください。偽 - 正常に認証します。

time_req Integer, read, optional Desired number of seconds for which context should remain valid. Supply 0 to request a default validity period.

time_req整数は、読んで、秒のオプションの所望の数は、対象のコンテキストが有効なままにしてください。デフォルトの有効期間を要求する電源0。

input_chan_bindings channel bindings, read, optional Application-specified bindings. Allows application to securely bind channel identification information to the security context. Specify GSS_C_NO_CHANNEL_BINDINGS if channel bindings are not used.

チャネルバインディングinput_chan_bindings、オプションのアプリケーションが指定したバインディングをお読みください。アプリケーションが確実にセキュリティコンテキストにチャネル識別情報を結合することを可能にします。チャネルバインディングが使用されていない場合はGSS_C_NO_CHANNEL_BINDINGSを指定します。

input_token buffer, opaque, read, optional (see text) Token received from peer application. Supply GSS_C_NO_BUFFER, or a pointer to a buffer containing the value GSS_C_EMPTY_BUFFER on initial call.

入力トークンバッファ、不透明、読み取り、オプション(本文参照)トークンは、ピアアプリケーションから受け取りました。サプライGSS_C_NO_BUFFER、または最初の呼び出しの値GSS_C_EMPTY_BUFFERを含むバッファへのポインタ。

actual_mech_type OID, modify, optional Actual mechanism used. The OID returned via this parameter will be a pointer to static storage that should be treated as read-only; In particular the application should not attempt to free it. Specify NULL if not required.

OID actual_mech_type、変更、オプションの実際のメカニズムを使用します。 OIDは、読み取り専用として扱われるべきであるスタティックストレージへのポインタになり、このパラメータを介して返されます。特に、アプリケーションがそれを解放するために試みるべきではありません。必要でない場合は、NULLを指定します。

output_token buffer, opaque, modify token to be sent to peer application. If the length field of the returned buffer is zero, no token need be sent to the peer application. Storage associated with this buffer must be freed by the application after use with a call to gss_release_buffer().

たoutput_tokenバッファ、不透明、ピアアプリケーションに送信するトークンを修正します。返されたバッファの長さフィールドがゼロである場合、トークンは、ピアアプリケーションに送信する必要はありません。このバッファに関連付けられているストレージがgss_release_bufferを呼び出して使用した後にアプリケーションによって解放されなければなりません()。

ret_flags bit-mask, modify, optional Contains various independent flags, each of which indicates that the context supports a specific service option. Specify NULL if not required. Symbolic names are provided for each flag, and the symbolic names corresponding to the required flags should be logically-ANDed with the ret_flags value to test whether a given option is supported by the context. The flags are:

ret_flagsビットマスク、変更、オプションは、コンテキストが特定のサービスオプションをサポートしていることを示し、それぞれが、様々な独立のフラグが含まれています。必要でない場合は、NULLを指定します。シンボル名は、各フラグのために提供され、そして必要なフラグに対応する記号名は、指定されたオプションは、コンテキストによってサポートされているかどうかをテストするためのret_flags値と論理的にAND演算されるべきです。フラグは次のとおりです。

                     GSS_C_DELEG_FLAG
                       True - Credentials were delegated to
                              the remote peer
                       False - No credentials were delegated
        

GSS_C_MUTUAL_FLAG True - The remote peer has authenticated itself. False - Remote peer has not authenticated itself.

GSS_C_MUTUAL_FLAG真 - リモートピアが自身を認証しました。偽 - リモートピアが自身を認証されていません。

GSS_C_REPLAY_FLAG True - replay of protected messages will be detected False - replayed messages will not be detected

GSS_C_REPLAY_FLAGトゥルー - 保護されたメッセージの再生虚偽検出されます - 再生のメッセージが検出されません

GSS_C_SEQUENCE_FLAG True - out-of-sequence protected messages will be detected False - out-of-sequence messages will not be detected

GSS_C_SEQUENCE_FLAG真 - シーケンス外の保護されたメッセージはFalseに検出されます - シーケンス外のメッセージが検出されません

GSS_C_CONF_FLAG True - Confidentiality service may be invoked by calling gss_wrap routine False - No confidentiality service (via gss_wrap) available. gss_wrap will provide message encapsulation, data-origin authentication and integrity services only.

GSS_C_CONF_FLAGトゥルー - 利用可能(はgss_wrap経由)なし機密性サービスを - 機密性サービスははgss_wrapルーチンはFalseを呼び出していないことで呼び出すことができます。 gss_wrapは、メッセージのカプセル化、データ起点認証と整合性サービスだけを提供します。

GSS_C_INTEG_FLAG True - Integrity service may be invoked by calling either gss_get_mic or gss_wrap routines. False - Per-message integrity service unavailable.

GSS_C_INTEG_FLAGトゥルー - Integrityサービスははgss_get_micかはgss_wrapのいずれかのルーチンを呼び出すことによって呼び出すことができます。 FALSE - メッセージごとの整合性サービス利用できません。

GSS_C_ANON_FLAG True - The initiator's identity has not been revealed, and will not be revealed if any emitted token is passed to the acceptor. False - The initiator's identity has been or will be authenticated normally.

GSS_C_ANON_FLAG真 - イニシエータの身元は明らかにされておらず、任意の放出されたトークンがアクセプターに渡された場合に明らかにされることはありません。偽 - イニシエータのアイデンティティをされているか、正常に認証されます。

GSS_C_PROT_READY_FLAG

GSS_C_PROT_READY_FLAG

True - Protection services (as specified by the states of the GSS_C_CONF_FLAG and GSS_C_INTEG_FLAG) are available for use if the accompanying major status return value is either GSS_S_COMPLETE or GSS_S_CONTINUE_NEEDED. False - Protection services (as specified by the states of the GSS_C_CONF_FLAG and GSS_C_INTEG_FLAG) are available only if the accompanying major status return value is GSS_S_COMPLETE.

真 - 添付の主要なステータス戻り値がGSS_S_COMPLETEまたはGSS_S_CONTINUE_NEEDEDのいずれかである場合には保護サービスは、(GSS_C_CONF_FLAGとGSS_C_INTEG_FLAGの状態で指定された)使用できます。偽 - (ようGSS_C_CONF_FLAGとGSS_C_INTEG_FLAGの状態で指定された)保護サービスは、添付の主要なステータス戻り値がGSS_S_COMPLETEである場合にのみ使用可能です。

GSS_C_TRANS_FLAG True - The resultant security context may be transferred to other processes via a call to gss_export_sec_context(). False - The security context is not transferable.

GSS_C_TRANS_FLAGトゥルー - 結果のセキュリティコンテキストは)(gss_export_sec_contextの呼び出しを介して他のプロセスに転送することができます。偽 - セキュリティコンテキストは譲渡することはできません。

All other bits should be set to zero.

他のすべてのビットはゼロに設定する必要があります。

time_rec Integer, modify, optional number of seconds for which the context will remain valid. If the implementation does not support context expiration, the value GSS_C_INDEFINITE will be returned. Specify NULL if not required.

time_rec整数は、変更、秒のオプションの数は、対象のコンテキストが有効なままになります。実装は、コンテキストの有効期限をサポートしていない場合は、値GSS_C_INDEFINITEが返されます。必要でない場合は、NULLを指定します。

Function value: GSS status code

関数値:GSSステータスコード

GSS_S_COMPLETE Successful completion

GSS_S_COMPLETE成功した完了

GSS_S_CONTINUE_NEEDED Indicates that a token from the peer application is required to complete the context, and that gss_init_sec_context must be called again with that token.

GSS_S_CONTINUE_NEEDEDピアアプリケーションからのトークンがコンテキストを完了するために必要とされていることを示し、それにgss_init_sec_contextは、そのトークンを再び呼び出さなければなりません。

GSS_S_DEFECTIVE_TOKEN Indicates that consistency checks performed on the input_token failed

GSS_S_DEFECTIVE_TOKENは入力トークン上で実行整合性チェックが失敗したことを示します

GSS_S_DEFECTIVE_CREDENTIAL Indicates that consistency checks performed on the credential failed.

GSS_S_DEFECTIVE_CREDENTIALは資格で実行整合性チェックが失敗したことを示します。

GSS_S_NO_CRED The supplied credentials were not valid for context initiation, or the credential handle did not reference any credentials.

GSS_S_NO_CREDザ・クレデンシャルは、コンテキストの起動には有効ではありませんでした供給、または証明書ハンドルは、任意の資格情報を参照していませんでした。

GSS_S_CREDENTIALS_EXPIRED The referenced credentials have expired

GSS_S_CREDENTIALS_EXPIRED参照資格証明書の有効期限が切れています

GSS_S_BAD_BINDINGS The input_token contains different channel bindings to those specified via the input_chan_bindings parameter

入力トークンがinput_chan_bindingsパラメータで指定されたものとは異なるチャネルバインディングが含まれていますGSS_S_BAD_BINDINGS

GSS_S_BAD_SIG The input_token contains an invalid MIC, or a MIC that could not be verified

入力トークンをGSS_S_BAD_SIGが無効MIC、または検証することができませんでしたMICが含まれています

GSS_S_OLD_TOKEN The input_token was too old. This is a fatal error during context establishment

GSS_S_OLD_TOKENザ・入力トークンが古すぎました。これは、コンテキストが確立しているときに致命的なエラーです

GSS_S_DUPLICATE_TOKEN The input_token is valid, but is a duplicate of a token already processed. This is a fatal error during context establishment.

入力トークンをGSS_S_DUPLICATE_TOKEN有効ですが、既に処理されたトークンの複製です。これは、コンテキストが確立しているときに致命的なエラーです。

GSS_S_NO_CONTEXT Indicates that the supplied context handle did not refer to a valid context

GSS_S_NO_CONTEXTは、付属のコンテキストハンドルが有効なコンテキストを参照していなかったことを示します

GSS_S_BAD_NAMETYPE The provided target_name parameter contained an invalid or unsupported type of name

提供TARGET_NAMEパラメータは、名前の無効またはサポートされていないタイプが含まれていGSS_S_BAD_NAMETYPE

GSS_S_BAD_NAME The provided target_name parameter was ill-formed.

GSS_S_BAD_NAMEザ・はTARGET_NAMEパラメータは病気に形成された提供しました。

GSS_S_BAD_MECH The specified mechanism is not supported by the provided credential, or is unrecognized by the implementation.

GSS_S_BAD_MECH指定機構を設け資格でサポートされていない、または実装によって認識されません。

5.20. gss_inquire_context
5.20. gss_inquire_context

OM_uint32 gss_inquire_context ( OM_uint32 *minor_status, const gss_ctx_id_t context_handle, gss_name_t *src_name, gss_name_t *targ_name, OM_uint32 *lifetime_rec, gss_OID *mech_type, OM_uint32 *ctx_flags, int *locally_initiated, int *open )

OM_uint32と同じgss_inquire_context(OM_uint32と同じ* minor_status、constのgss_ctx_id_tのcontext_handle、gss_name_t * src_name、gss_name_t * targ_name、OM_uint32と同じ* lifetime_rec、次に、gss_OID *たmech_type、OM_uint32と同じ* ctx_flags、intは* locally_initiated、オープンINT *)

Purpose:

目的:

Obtains information about a security context. The caller must already have obtained a handle that refers to the context, although the context need not be fully established.

セキュリティコンテキストに関する情報を取得します。コンテキストが完全に確立する必要はありませんが、呼び出し側はすでに、コンテキストを参照のハンドルを取得している必要があります。

Parameters:

パラメーター:

minor_status Integer, modify Mechanism specific status code

minor_status整数は、メカニズムの特定のステータスコードを変更します

context_handle gss_ctx_id_t, read A handle that refers to the security context.

context_handle gss_ctx_id_t、セキュリティコンテキストを参照するハンドルをお読みください。

src_name gss_name_t, modify, optional The name of the context initiator. If the context was established using anonymous authentication, and if the application invoking gss_inquire_context is the context acceptor, an anonymous name will be returned. Storage associated with this name must be freed by the application after use with a call to gss_release_name(). Specify NULL if not required.

src_name gss_name_t、修正、コンテキストイニシエータのオプションの名前。 gss_inquire_contextを呼び出すアプリケーションは、コンテキストの受け入れであればコンテキストが匿名認証を使用して確立し、された場合、匿名の名前が返されます。この名前に関連付けられているストレージがgss_release_nameを呼び出して使用した後にアプリケーションによって解放されなければなりません()。必要でない場合は、NULLを指定します。

targ_name gss_name_t, modify, optional The name of the context acceptor. Storage associated with this name must be freed by the application after use with a call to gss_release_name(). If the context acceptor did not authenticate itself, and if the initiator did not specify a target name in its call to gss_init_sec_context(), the value GSS_C_NO_NAME will be returned. Specify NULL if not required.

targ_nameのgss_name_t、修正、コンテキストアクセプターのオプションの名前。この名前に関連付けられているストレージがgss_release_nameを呼び出して使用した後にアプリケーションによって解放されなければなりません()。イニシエータが(もしGSS_Init_sec_contextために、そのコールにターゲット名を指定しなかった場合は、コンテキストアクセプタ)が自身を認証し、しなかった場合は、値GSS_C_NO_NAMEが返されます。必要でない場合は、NULLを指定します。

lifetime_rec Integer, modify, optional The number of seconds for which the context will remain valid. If the context has expired, this parameter will be set to zero. If the implementation does not support context expiration, the value GSS_C_INDEFINITE will be returned. Specify NULL if not required.

lifetime_rec整数は、オプションで、コンテキストが有効なままなるの秒数を変更します。コンテキストの有効期限が切れている場合、このパラメータはゼロに設定されます。実装は、コンテキストの有効期限をサポートしていない場合は、値GSS_C_INDEFINITEが返されます。必要でない場合は、NULLを指定します。

mech_type gss_OID, modify, optional The security mechanism providing the context. The returned OID will be a pointer to static storage that should be treated as read-only by the application; in particular the application should not attempt to free it. Specify NULL if not required.

次に、gss_OIDたmech_typeは、オプションで、コンテキストを提供するセキュリティ・メカニズムを変更します。返されたOIDは、読み取り専用アプリケーションによってように扱われるべきであるスタティックストレージへのポインタであろう。特に、アプリケーションがそれを解放するために試みるべきではありません。必要でない場合は、NULLを指定します。

ctx_flags bit-mask, modify, optional Contains various independent flags, each of which indicates that the context supports (or is expected to support, if ctx_open is false) a specific service option. If not needed, specify NULL. Symbolic names are provided for each flag, and the symbolic names corresponding to the required flags should be logically-ANDed with the ret_flags value to test whether a given option is supported by the context. The flags are:

ctx_flagsビットマスク、変更、オプションは、特定のサービスオプション(ctx_openが偽である場合、またはサポートすることが期待される)コンテキストがサポートすることを示し、それぞれが様々な独立したフラグを、格納します。必要でない場合は、NULLを指定します。シンボル名は、各フラグのために提供され、そして必要なフラグに対応する記号名は、指定されたオプションは、コンテキストによってサポートされているかどうかをテストするためのret_flags値と論理的にAND演算されるべきです。フラグは次のとおりです。

                     GSS_C_DELEG_FLAG
                       True - Credentials were delegated from
                              the initiator to the acceptor.
                       False - No credentials were delegated
        

GSS_C_MUTUAL_FLAG True - The acceptor was authenticated to the initiator False - The acceptor did not authenticate itself.

GSS_C_MUTUAL_FLAGトゥルー - アクセプタがイニシエータFalseに認証されました - アクセプターは、それ自体を認証しませんでした。

GSS_C_REPLAY_FLAG True - replay of protected messages will be detected False - replayed messages will not be detected

GSS_C_REPLAY_FLAGトゥルー - 保護されたメッセージの再生虚偽検出されます - 再生のメッセージが検出されません

GSS_C_SEQUENCE_FLAG True - out-of-sequence protected messages will be detected False - out-of-sequence messages will not be detected

GSS_C_SEQUENCE_FLAG真 - シーケンス外の保護されたメッセージはFalseに検出されます - シーケンス外のメッセージが検出されません

GSS_C_CONF_FLAG True - Confidentiality service may be invoked by calling gss_wrap routine False - No confidentiality service (via gss_wrap) available. gss_wrap will provide message encapsulation, data-origin authentication and integrity services only.

GSS_C_CONF_FLAGトゥルー - 利用可能(はgss_wrap経由)なし機密性サービスを - 機密性サービスははgss_wrapルーチンはFalseを呼び出していないことで呼び出すことができます。 gss_wrapは、メッセージのカプセル化、データ起点認証と整合性サービスだけを提供します。

GSS_C_INTEG_FLAG True - Integrity service may be invoked by calling either gss_get_mic or gss_wrap routines.

GSS_C_INTEG_FLAGトゥルー - Integrityサービスははgss_get_micかはgss_wrapのいずれかのルーチンを呼び出すことによって呼び出すことができます。

False - Per-message integrity service unavailable.

FALSE - メッセージごとの整合性サービス利用できません。

GSS_C_ANON_FLAG True - The initiator's identity will not be revealed to the acceptor. The src_name parameter (if requested) contains an anonymous internal name. False - The initiator has been authenticated normally.

GSS_C_ANON_FLAG真 - イニシエータのアイデンティティは、受け入れ側に明らかにされることはありません。 src_nameパラメータは、(要求された場合)、匿名の内部名が含まれています。偽 - イニシエータが正常に認証されました。

GSS_C_PROT_READY_FLAG True - Protection services (as specified by the states of the GSS_C_CONF_FLAG and GSS_C_INTEG_FLAG) are available for use. False - Protection services (as specified by the states of the GSS_C_CONF_FLAG and GSS_C_INTEG_FLAG) are available only if the context is fully established (i.e. if the open parameter is non-zero).

GSS_C_PROT_READY_FLAGトゥルー - 保護サービスは、(GSS_C_CONF_FLAGとGSS_C_INTEG_FLAGの状態で指定された)使用できます。偽 - (としてGSS_C_CONF_FLAGとGSS_C_INTEG_FLAGの状態により指定された)保護サービスは、コンテキストが完全に確立されている場合にのみ利用可能である(すなわち、開放パラメータは非ゼロである場合)。

GSS_C_TRANS_FLAG True - The resultant security context may be transferred to other processes via a call to gss_export_sec_context(). False - The security context is not transferable.

GSS_C_TRANS_FLAGトゥルー - 結果のセキュリティコンテキストは)(gss_export_sec_contextの呼び出しを介して他のプロセスに転送することができます。偽 - セキュリティコンテキストは譲渡することはできません。

locally_initiated Boolean, modify Non-zero if the invoking application is the context initiator. Specify NULL if not required.

ブールをlocally_initiated、呼び出し元のアプリケーションは、コンテキストイニシエータである場合にはゼロ以外を変更します。必要でない場合は、NULLを指定します。

open Boolean, modify Non-zero if the context is fully established; Zero if a context-establishment token is expected from the peer application. Specify NULL if not required.

ブールを開いて、コンテキストが完全に確立された場合は非0を修正。ゼロコンテキスト確立トークンは、ピアアプリケーションから予想される場合。必要でない場合は、NULLを指定します。

Function value: GSS status code

関数値:GSSステータスコード

GSS_S_COMPLETE Successful completion

GSS_S_COMPLETE成功した完了

GSS_S_NO_CONTEXT The referenced context could not be accessed.

参照コンテキストにアクセスすることができませんでしたGSS_S_NO_CONTEXT。

5.21. gss_inquire_cred
5.21. gss_inquire_cred

OM_uint32 gss_inquire_cred ( OM_uint32 *minor_status, const gss_cred_id_t cred_handle, gss_name_t *name, OM_uint32 *lifetime, gss_cred_usage_t *cred_usage, gss_OID_set *mechanisms )

OM_uint32と同じgss_inquire_cred(OM_uint32と同じ* minor_status、constのgss_cred_id_tのcred_handle、gss_name_t *名、OM_uint32と同じ*寿命、gss_cred_usage_t * cred_usage、たgss_OID_set *メカニズム)

Purpose:

目的:

Obtains information about a credential.

資格に関する情報を取得します。

Parameters:

パラメーター:

minor_status Integer, modify Mechanism specific status code

minor_status整数は、メカニズムの特定のステータスコードを変更します

cred_handle gss_cred_id_t, read A handle that refers to the target credential. Specify GSS_C_NO_CREDENTIAL to inquire about the default initiator principal.

cred_handle gss_cred_id_t、対象資格を参照のハンドルをお読みください。デフォルトのイニシエータ元本を問い合わせるGSS_C_NO_CREDENTIALを指定します。

name gss_name_t, modify, optional The name whose identity the credential asserts. Storage associated with this name should be freed by the application after use with a call to gss_release_name(). Specify NULL if not required.

オプションで、変更、そのアイデンティティ資格が表明名をgss_name_t名前。この名前に関連付けられているストレージがgss_release_nameを呼び出して使用した後にアプリケーションによって解放されなければなりません()。必要でない場合は、NULLを指定します。

lifetime Integer, modify, optional The number of seconds for which the credential will remain valid. If the credential has expired, this parameter will be set to zero. If the implementation does not support credential expiration, the value GSS_C_INDEFINITE will be returned. Specify NULL if not required.

生涯整数、変更、オプションの資格が有効なままになりますれる秒数。資格の有効期限が切れている場合、このパラメータはゼロに設定されます。実装は資格の有効期限をサポートしていない場合は、値GSS_C_INDEFINITEが返されます。必要でない場合は、NULLを指定します。

cred_usage gss_cred_usage_t, modify, optional How the credential may be used. One of the following: GSS_C_INITIATE GSS_C_ACCEPT GSS_C_BOTH Specify NULL if not required.

cred_usage gss_cred_usage_t、変更、オプションの資格を使用することができる方法。必要でない場合GSS_C_INITIATE GSS_C_ACCEPT GSS_C_BOTHはNULLを指定:以下のいずれか。

mechanisms gss_OID_set, modify, optional Set of mechanisms supported by the credential. Storage associated with this OID set must be freed by the application after use with a call to gss_release_oid_set(). Specify NULL if not required.

メカニズムたgss_OID_setは、資格でサポートされているメカニズムのオプションの設定を変更します。このOIDセットに関連付けられているストレージがgss_release_oid_setを呼び出して使用した後にアプリケーションによって解放されなければなりません()。必要でない場合は、NULLを指定します。

Function value: GSS status code

関数値:GSSステータスコード

GSS_S_COMPLETE Successful completion

GSS_S_COMPLETE成功した完了

GSS_S_NO_CRED The referenced credentials could not be accessed.

参照された資格情報にアクセスすることができませんでしたGSS_S_NO_CRED。

GSS_S_DEFECTIVE_CREDENTIAL The referenced credentials were invalid.

参照された資格情報が無効だったGSS_S_DEFECTIVE_CREDENTIAL。

GSS_S_CREDENTIALS_EXPIRED The referenced credentials have expired. If the lifetime parameter was not passed as NULL, it will be set to 0.

参照された資格情報の有効期限が切れていGSS_S_CREDENTIALS_EXPIRED。寿命パラメータがNULLとして渡されていなかった場合は、それが0に設定されます。

5.22. gss_inquire_cred_by_mech
5.22. gss_inquire_cred_by_mech

OM_uint32 gss_inquire_cred_by_mech ( OM_uint32 *minor_status, const gss_cred_id_t cred_handle, const gss_OID mech_type, gss_name_t *name, OM_uint32 *initiator_lifetime, OM_uint32 *acceptor_lifetime, gss_cred_usage_t *cred_usage )

OM_uint32と同じgss_inquire_cred_by_mech(OM_uint32と同じ* minor_status、constのgss_cred_id_tのcred_handle、CONST次に、gss_OIDたmech_type、gss_name_t *名、OM_uint32と同じ* initiator_lifetime、OM_uint32と同じ* acceptor_lifetime、gss_cred_usage_t * cred_usage)

Purpose:

目的:

Obtains per-mechanism information about a credential.

資格に関するごとのメカニズムの情報を取得します。

Parameters:

パラメーター:

minor_status Integer, modify Mechanism specific status code

minor_status整数は、メカニズムの特定のステータスコードを変更します

cred_handle gss_cred_id_t, read A handle that refers to the target credential. Specify GSS_C_NO_CREDENTIAL to inquire about the default initiator principal.

cred_handle gss_cred_id_t、対象資格を参照のハンドルをお読みください。デフォルトのイニシエータ元本を問い合わせるGSS_C_NO_CREDENTIALを指定します。

mech_type gss_OID, read The mechanism for which information should be returned.

次に、gss_OIDたmech_typeは、情報が返されるためのメカニズムをお読みください。

name gss_name_t, modify, optional The name whose identity the credential asserts. Storage associated with this name must be freed by the application after use with a call to gss_release_name(). Specify NULL if not required.

オプションで、変更、そのアイデンティティ資格が表明名をgss_name_t名前。この名前に関連付けられているストレージがgss_release_nameを呼び出して使用した後にアプリケーションによって解放されなければなりません()。必要でない場合は、NULLを指定します。

initiator_lifetime Integer, modify, optional The number of seconds for which the credential will remain capable of initiating security contexts under the specified mechanism. If the credential can no longer be used to initiate contexts, or if the credential usage for this mechanism is GSS_C_ACCEPT, this parameter will be set to zero. If the implementation does not support expiration of initiator credentials, the value GSS_C_INDEFINITE will be returned. Specify NULL if not required.

initiator_lifetime整数は、変更、秒のオプションの数は、そのための資格は、指定されたメカニズムの下でセキュリティコンテキストを開始することが可能なままになります。資格は、もはやコンテキストを開始するために使用できない場合、またはこのメカニズムのための資格使用がGSS_C_ACCEPTであれば、このパラメータはゼロに設定されます。実装はイニシエータの資格の有効期限をサポートしていない場合は、値GSS_C_INDEFINITEが返されます。必要でない場合は、NULLを指定します。

acceptor_lifetime Integer, modify, optional The number of seconds for which the credential will remain capable of accepting security contexts under the specified mechanism. If the credential can no longer be used to accept contexts, or if the credential usage for this mechanism is GSS_C_INITIATE, this parameter will be set to zero.

acceptor_lifetime整数は、変更、秒のオプションの数は、そのための資格は、指定されたメカニズムの下でセキュリティコンテキストを受け入れることができるのままになります。資格は、もはやコンテキストを受け入れるために使用できない場合、またはこのメカニズムのための資格使用がGSS_C_INITIATEであれば、このパラメータはゼロに設定されます。

                     If the implementation does not support expiration
                     of acceptor credentials, the value GSS_C_INDEFINITE
                     will be returned.  Specify NULL if not required.
        

cred_usage gss_cred_usage_t, modify, optional How the credential may be used with the specified mechanism. One of the following: GSS_C_INITIATE GSS_C_ACCEPT GSS_C_BOTH Specify NULL if not required.

cred_usage gss_cred_usage_t、変更、資格が指定された機構を使用することができる方法のオプション。必要でない場合GSS_C_INITIATE GSS_C_ACCEPT GSS_C_BOTHはNULLを指定:以下のいずれか。

Function value: GSS status code

関数値:GSSステータスコード

GSS_S_COMPLETE Successful completion

GSS_S_COMPLETE成功した完了

GSS_S_NO_CRED The referenced credentials could not be accessed.

参照された資格情報にアクセスすることができませんでしたGSS_S_NO_CRED。

GSS_S_DEFECTIVE_CREDENTIAL The referenced credentials were invalid.

参照された資格情報が無効だったGSS_S_DEFECTIVE_CREDENTIAL。

GSS_S_CREDENTIALS_EXPIRED The referenced credentials have expired. If the lifetime parameter was not passed as NULL, it will be set to 0.

参照された資格情報の有効期限が切れていGSS_S_CREDENTIALS_EXPIRED。寿命パラメータがNULLとして渡されていなかった場合は、それが0に設定されます。

5.23. gss_inquire_mechs_for_name
5.23. gss_inquire_mechs_for_name

OM_uint32 gss_inquire_mechs_for_name ( OM_uint32 *minor_status, const gss_name_t input_name, gss_OID_set *mech_types )

OM_uint32と同じgss_inquire_mechs_for_name(OM_uint32と同じ* minor_status、constのgss_name_tのinput_name、たgss_OID_set *のメカニズムタイプ)

Purpose:

目的:

Returns the set of mechanisms supported by the GSS-API implementation that may be able to process the specified name.

指定された名前を処理することができるかもしれGSS-APIの実装でサポートされているメカニズムのセットを返します。

Each mechanism returned will recognize at least one element within the name. It is permissible for this routine to be implemented within a mechanism-independent GSS-API layer, using the type information contained within the presented name, and based on registration information provided by individual mechanism implementations. This means that the returned mech_types set may indicate that a particular mechanism will understand the name when in fact it would refuse to accept the name as input to gss_canonicalize_name, gss_init_sec_context, gss_acquire_cred or gss_add_cred (due to some property of the specific name, as opposed to the name type). Thus this routine should be used only as a pre-filter for a call to a subsequent mechanism-specific routine.

返された各機構は、名前内の少なくとも1つの要素を認識します。このルーチンは、提示名前内に含まれる種別情報を使用して、機構に依存しないGSS-API層内に実装され、個々の機構の実装によって提供された登録情報に基づいてされることが許容されます。これは、とは対照的に、返されたメカニズムタイプのセットは、原因特定の名前のいくつかのプロパティに(は、gss_acquire_credまたはgss_add_cred、場合gss_init_sec_context、実際にはgss_canonicalize_nameするための入力として名を受け入れることを拒否するだろうというとき、特定のメカニズムが名前を理解することを示している可能性があることを意味します名前タイプ)。したがって、このルーチンは、その後の機構固有のルーチンを呼び出すためのプレフィルターとして使用されるべきです。

Parameters:

パラメーター:

minor_status Integer, modify Implementation specific status code.

minor_status整数は、実装固有のステータスコードを変更します。

input_name gss_name_t, read The name to which the inquiry relates.

input_nameのgss_name_t、照会が関連する名前をお読みください。

mech_types gss_OID_set, modify Set of mechanisms that may support the specified name. The returned OID set must be freed by the caller after use with a call to gss_release_oid_set().

メカニズムタイプたgss_OID_setは、指定された名前をサポートすることが可能で一連のメカニズムを変更します。返されたOIDセット)(gss_release_oid_setの呼び出しで使用した後、呼び出し側で解放しなければなりません。

Function value: GSS status code

関数値:GSSステータスコード

GSS_S_COMPLETE Successful completion

GSS_S_COMPLETE成功した完了

GSS_S_BAD_NAME The input_name parameter was ill-formed.

input_nameパラメータをGSS_S_BAD_NAME悪い形成されました。

GSS_S_BAD_NAMETYPE The input_name parameter contained an invalid or unsupported type of name

GSS_S_BAD_NAMETYPEはinput_nameパラメータは、名前の無効またはサポートされていないタイプが含まれてい

5.24. gss_inquire_names_for_mech
5.24. gss_inquire_names_for_mech

OM_uint32 gss_inquire_names_for_mech ( OM_uint32 *minor_status, const gss_OID mechanism, gss_OID_set *name_types)

OM_uint32と同じgss_inquire_names_for_mech(OM_uint32と同じ* minor_status、constの次に、gss_OIDメカニズム、たgss_OID_set *のname_types)

Purpose:

目的:

Returns the set of nametypes supported by the specified mechanism.

指定されたメカニズムでサポートされているnametypesのセットを返します。

Parameters:

パラメーター:

minor_status Integer, modify Implementation specific status code.

minor_status整数は、実装固有のステータスコードを変更します。

mechanism gss_OID, read The mechanism to be interrogated.

メカニズム次に、gss_OIDは、尋問するためのメカニズムをお読みください。

name_types gss_OID_set, modify Set of name-types supported by the specified mechanism. The returned OID set must be freed by the application after use with a call to gss_release_oid_set().

name_typesたgss_OID_setは、指定されたメカニズムでサポートされている名前とタイプのセットを変更します。返されたOIDセット)(gss_release_oid_setの呼び出しで使用した後、アプリケーションによって解放されなければなりません。

Function value: GSS status code

関数値:GSSステータスコード

GSS_S_COMPLETE Successful completion

GSS_S_COMPLETE成功した完了

5.25. gss_process_context_token
5.25. gss_process_context_token

OM_uint32 gss_process_context_token ( OM_uint32 *minor_status, const gss_ctx_id_t context_handle, const gss_buffer_t token_buffer)

OM_uint32と同じgss_process_context_token(OM_uint32と同じ* minor_status、constのgss_ctx_id_tのcontext_handle、gss_buffer_tのconstのtoken_buffer)

Purpose:

目的:

Provides a way to pass an asynchronous token to the security service. Most context-level tokens are emitted and processed synchronously by gss_init_sec_context and gss_accept_sec_context, and the application is informed as to whether further tokens are expected by the GSS_C_CONTINUE_NEEDED major status bit. Occasionally, a mechanism may need to emit a context-level token at a point when the peer entity is not expecting a token. For example, the initiator's final call to gss_init_sec_context may emit a token and return a status of GSS_S_COMPLETE, but the acceptor's call to gss_accept_sec_context may fail. The acceptor's mechanism may wish to send a token containing an error indication to the initiator, but the initiator is not expecting a token at this point, believing that the context is fully established. Gss_process_context_token provides a way to pass such a token to the mechanism at any time.

セキュリティサービスへの非同期トークンを渡す方法を提供します。ほとんどのコンテキストレベルトークンは、放出とにgss_init_sec_context及び場合gss_accept_sec_contextによって同期処理され、アプリケーションはさらにトークンがGSS_C_CONTINUE_NEEDED主要なステータスビットが期待されているかどうかについて通知されます。時々、機構は、ピアエンティティがトークンを期待していない時点では、コンテキスト・レベル・トークンを放出する必要があるかもしれません。例えば、もしGSS_Init_sec_contextするイニシエータの最後の呼び出しは、トークンを放出し、GSS_S_COMPLETEの状態を返しますが、場合gss_accept_sec_contextにアクセプターの呼び出しが失敗する可能性があります。アクセプターのメカニズムは、イニシエータにエラー表示を含むトークンを送信したい場合がありますが、イニシエータは、コンテキストが完全に確立されていることを信じて、この時点でトークンを期待されていません。 Gss_process_context_tokenはいつでも機構にそのようなトークンを渡す方法を提供します。

Parameters:

パラメーター:

minor_status Integer, modify Implementation specific status code.

minor_status整数は、実装固有のステータスコードを変更します。

context_handle gss_ctx_id_t, read context handle of context on which token is to be processed

context_handle gss_ctx_id_t、トークンが処理される側のコンテキストの読み込みコンテキスト・ハンドル

token_buffer buffer, opaque, read token to process

バッファtoken_buffer、不透明、処理するトークン読みます

Function value: GSS status code

関数値:GSSステータスコード

GSS_S_COMPLETE Successful completion

GSS_S_COMPLETE成功した完了

GSS_S_DEFECTIVE_TOKEN Indicates that consistency checks performed on the token failed

GSS_S_DEFECTIVE_TOKENはトークンで実行整合性チェックが失敗したことを示します

GSS_S_NO_CONTEXT The context_handle did not refer to a valid context

GSS_S_NO_CONTEXT context_handleは有効なコンテキストを指すものではありませんでした

5.26. gss_release_buffer
5.26. gss_release_buffer

OM_uint32 gss_release_buffer ( OM_uint32 *minor_status, gss_buffer_t buffer)

OM_uint32と同じgss_release_buffer(OM_uint32と同じ* minor_status、gss_buffer_tバッファー)

Purpose:

目的:

Free storage associated with a buffer. The storage must have been allocated by a GSS-API routine. In addition to freeing the associated storage, the routine will zero the length field in the descriptor to which the buffer parameter refers, and implementations are encouraged to additionally set the pointer field in the descriptor to NULL. Any buffer object returned by a GSS-API routine may be passed to gss_release_buffer (even if there is no storage associated with the buffer).

バッファに関連無料ストレージ。ストレージは、GSS-APIルーチンによって割り当てられている必要があります。関連するストレージを解放することに加えて、このルーチンは、バッファパラメータが参照するディスクリプタの長さフィールドをゼロになり、実装がさらにNULLにディスクリプタポインタフィールドを設定することが推奨されています。 GSS-APIルーチンによって返されたバッファ・オブジェクトは、(バッファに関連付けられたストレージが存在しない場合でも)gss_release_bufferに渡されてもよいです。

Parameters:

パラメーター:

minor_status Integer, modify Mechanism specific status code

minor_status整数は、メカニズムの特定のステータスコードを変更します

buffer buffer, modify The storage associated with the buffer will be deleted. The gss_buffer_desc object will not be freed, but its length field will be zeroed.

バッファバッファは、削除されますバッファに関連付けられたストレージを変更します。れるgss_buffer_descオブジェクトは解放されませんが、その長さフィールドはゼロになります。

Function value: GSS status code

関数値:GSSステータスコード

GSS_S_COMPLETE Successful completion

GSS_S_COMPLETE成功した完了

5.27. gss_release_cred
5.27. gss_release_cred

OM_uint32 gss_release_cred ( OM_uint32 *minor_status, gss_cred_id_t *cred_handle)

OM_uint32と同じgss_release_cred(OM_uint32と同じ* minor_status、gss_cred_id_t * cred_handle)

Purpose:

目的:

Informs GSS-API that the specified credential handle is no longer required by the application, and frees associated resources. Implementations are encouraged to set the cred_handle to GSS_C_NO_CREDENTIAL on successful completion of this call.

指定された証明書ハンドルは、もはやアプリケーションで必要とされるGSS-APIを通知し、関連するリソースを解放します。実装は、この呼び出しが正常に完了にGSS_C_NO_CREDENTIALにcred_handleを設定することをお勧めします。

Parameters:

パラメーター:

cred_handle gss_cred_id_t, modify, optional Opaque handle identifying credential to be released. If GSS_C_NO_CREDENTIAL is supplied, the routine will complete successfully, but will do nothing.

cred_handle gss_cred_id_t、変更、リリースされる資格を識別し、オプションの不透明なハンドル。 GSS_C_NO_CREDENTIALが供給されている場合は、ルーチンが正常に完了しますが、何もしません。

minor_status Integer, modify Mechanism specific status code.

minor_status整数は、メカニズムの特定のステータスコードを変更します。

Function value: GSS status code

関数値:GSSステータスコード

GSS_S_COMPLETE Successful completion

GSS_S_COMPLETE成功した完了

GSS_S_NO_CRED Credentials could not be accessed.

GSS_S_NO_CRED資格情報にアクセスすることができませんでした。

5.28. gss_release_name
5.28. gss_release_name

OM_uint32 gss_release_name ( OM_uint32 *minor_status, gss_name_t *name)

OM_uint32と同じgss_release_name(OM_uint32と同じ* minor_status、gss_name_t *名)

Purpose:

目的:

Free GSSAPI-allocated storage associated with an internal-form name. Implementations are encouraged to set the name to GSS_C_NO_NAME on successful completion of this call.

内部形式名に関連付けられた無料GSSAPI-割り当てられたストレージ。実装は、この呼び出しが正常に完了にGSS_C_NO_NAMEに名前を設定することが推奨されています。

Parameters:

パラメーター:

minor_status Integer, modify Mechanism specific status code

minor_status整数は、メカニズムの特定のステータスコードを変更します

name gss_name_t, modify The name to be deleted

gss_name_tに名前を付け、削除する名前を変更

Function value: GSS status code

関数値:GSSステータスコード

GSS_S_COMPLETE Successful completion

GSS_S_COMPLETE成功した完了

GSS_S_BAD_NAME The name parameter did not contain a valid name

nameパラメータが有効な名前が含まれていませんでしGSS_S_BAD_NAME

5.29. gss_release_oid_set
5.29. gss_release_oid_set

OM_uint32 gss_release_oid_set ( OM_uint32 *minor_status, gss_OID_set *set)

OM_uint32と同じgss_release_oid_set(OM_uint32と同じ* minor_status、たgss_OID_set *セット)

Purpose:

目的:

Free storage associated with a GSSAPI-generated gss_OID_set object. The set parameter must refer to an OID-set that was returned from a GSS-API routine. gss_release_oid_set() will free the storage associated with each individual member OID, the OID set's elements array, and the gss_OID_set_desc.

GSSAPI-生成されたgss_OID_setオブジェクトに関連付けられている無料ストレージ。設定パラメータには、GSS-APIルーチンから返されたOIDセットを参照する必要があります。 gss_release_oid_set()は、各個々のメンバーOID、OIDセットの要素のアレイ、及びgss_OID_set_descに関連付けられた記憶領域を解放します。

Implementations are encouraged to set the gss_OID_set parameter to GSS_C_NO_OID_SET on successful completion of this routine.

実装は、このルーチンの正常終了にGSS_C_NO_OID_SETにたgss_OID_setのパラメータを設定することをお勧めします。

Parameters:

パラメーター:

minor_status Integer, modify Mechanism specific status code

minor_status整数は、メカニズムの特定のステータスコードを変更します

set Set of Object IDs, modify The storage associated with the gss_OID_set will be deleted.

オブジェクトIDのセットを設定し、たgss_OID_setに関連付けられたストレージが削除されます修正します。

Function value: GSS status code

関数値:GSSステータスコード

GSS_S_COMPLETE Successful completion

GSS_S_COMPLETE成功した完了

5.30. gss_test_oid_set_member
5.30. gss_test_oid_set_member

OM_uint32 gss_test_oid_set_member ( OM_uint32 *minor_status, const gss_OID member, const gss_OID_set set, int *present)

OM_uint32と同じgss_test_oid_set_member(OM_uint32と同じ* minor_status、CONST次に、gss_OID部材、CONSTたgss_OID_setセット、INT *本)

Purpose:

目的:

Interrogate an Object Identifier set to determine whether a specified Object Identifier is a member. This routine is intended to be used with OID sets returned by gss_indicate_mechs(), gss_acquire_cred(), and gss_inquire_cred(), but will also work with user-generated sets.

指定されたオブジェクト識別子がメンバーであるかどうかを決定するために設定されたオブジェクト識別子を問い合わせます。このルーチンは)は、gss_indicate_mechsによって返されるOIDセット()は、gss_acquire_cred(一緒に使用することを意図し、そしてgss_inquire_cred()だけでなく、ユーザ生成セットで動作しますされています。

Parameters:

パラメーター:

minor_status Integer, modify Mechanism specific status code

minor_status整数は、メカニズムの特定のステータスコードを変更します

member Object ID, read The object identifier whose presence is to be tested.

メンバオブジェクトID、その存在がテストされるオブジェクト識別子を読み取ります。

set Set of Object ID, read The Object Identifier set.

オブジェクトIDの設定を設定し、オブジェクト識別子のセットをお読みください。

present Boolean, modify non-zero if the specified OID is a member of the set, zero if not.

本ブールは、指定されたOIDがセットのメンバである場合、ゼロ、ゼロ以外の変更した場合ではありません。

Function value: GSS status code

関数値:GSSステータスコード

GSS_S_COMPLETE Successful completion

GSS_S_COMPLETE成功した完了

5.31. gss_unwrap
5.31. gss_unwrap

OM_uint32 gss_unwrap ( OM_uint32 *minor_status, const gss_ctx_id_t context_handle, const gss_buffer_t input_message_buffer, gss_buffer_t output_message_buffer, int *conf_state, gss_qop_t *qop_state)

OM_uint32と同じはgss_unwrap(OM_uint32と同じ* minor_status、constのgss_ctx_id_tのcontext_handle、constのgss_buffer_t input_message_buffer、gss_buffer_t output_message_buffer、int型* conf_state、gss_qop_t * qop_state)

Purpose:

目的:

Converts a message previously protected by gss_wrap back to a usable form, verifying the embedded MIC. The conf_state parameter indicates whether the message was encrypted; the qop_state parameter indicates the strength of protection that was used to provide the confidentiality and integrity services.

以前に埋め込まれたMICを検証し、使用可能な形式に戻すはgss_wrapによって保護されたメッセージを変換します。 conf_stateパラメータは、メッセージが暗号化されたかどうかを示します。 qop_stateパラメータは、機密性と完全性サービスを提供するために使用された保護の強さを示します。

Since some application-level protocols may wish to use tokens emitted by gss_wrap() to provide "secure framing", implementations must support the wrapping and unwrapping of zero-length messages.

いくつかのアプリケーションレベルのプロトコルは、「セキュアフレーミング」を提供するためにはgss_wrap(によって放出されたトークン)を使用することができるので、実装が長さゼロのメッセージのラッピング及びアンラッピングをサポートしなければなりません。

Parameters:

パラメーター:

minor_status Integer, modify Mechanism specific status code.

minor_status整数は、メカニズムの特定のステータスコードを変更します。

context_handle gss_ctx_id_t, read Identifies the context on which the message arrived

context_handle gss_ctx_id_t、識別にメッセージが到着した文脈を読みます

input_message_buffer buffer, opaque, read protected message

バッファinput_message_buffer、不透明な、読んで保護されたメッセージ

output_message_buffer buffer, opaque, modify Buffer to receive unwrapped message. Storage associated with this buffer must be freed by the application after use use with a call to gss_release_buffer().

バッファoutput_message_buffer、不透明、開封されたメッセージを受信するためのバッファを変更します。このバッファに関連付けられているストレージがgss_release_bufferを呼び出して使用し、使用後にアプリケーションによって解放されなければなりません()。

conf_state boolean, modify, optional Non-zero - Confidentiality and integrity protection were used Zero - Integrity service only was used Specify NULL if not required

conf_stateブール、変更、オプションの非ゼロ - 機密性と完全性保護がゼロに使用された - Integrityサービスにのみ必要でない場合は、NULLを指定に使用しました

qop_state gss_qop_t, modify, optional Quality of protection provided. Specify NULL if not required

qop_state gss_qop_t、修正、提供される保護のオプションの品質。必要でない場合は、NULLを指定

Function value: GSS status code

関数値:GSSステータスコード

GSS_S_COMPLETE Successful completion

GSS_S_COMPLETE成功した完了

GSS_S_DEFECTIVE_TOKEN The token failed consistency checks

GSS_S_DEFECTIVE_TOKENトークンは、整合性チェックに失敗しました

GSS_S_BAD_SIG The MIC was incorrect

GSS_S_BAD_SIGザ・MICが間違っていました

GSS_S_DUPLICATE_TOKEN The token was valid, and contained a correct MIC for the message, but it had already been processed

GSS_S_DUPLICATE_TOKENトークンが有効で、メッセージのための正しいMICが含まれていますが、それはすでに処理されていました

GSS_S_OLD_TOKEN The token was valid, and contained a correct MIC for the message, but it is too old to check for duplication.

GSS_S_OLD_TOKENトークンが有効で、メッセージのための正しいMICが含まれていますが、重複をチェックするにはあまりにも古いです。

GSS_S_UNSEQ_TOKEN The token was valid, and contained a correct MIC for the message, but has been verified out of sequence; a later token has already been received.

GSS_S_UNSEQ_TOKENトークンが有効で、メッセージのための正しいMICが含まれていますが、順序が狂って検証されています。後続のトークンがすでに受信されています。

GSS_S_GAP_TOKEN The token was valid, and contained a correct MIC for the message, but has been verified out of sequence; an earlier expected token has not yet been received.

GSS_S_GAP_TOKENトークンが有効で、メッセージのための正しいMICが含まれていますが、順序が狂って検証されています。以前の予想されるトークンがまだ受信されていません。

GSS_S_CONTEXT_EXPIRED The context has already expired

GSS_S_CONTEXT_EXPIREDコンテキストがすでに期限切れ

GSS_S_NO_CONTEXT The context_handle parameter did not identify a valid context

GSS_S_NO_CONTEXT context_handleパラメータが有効なコンテキストを識別しませんでした

5.32. gss_verify_mic
5.32. gss_verify_mic

OM_uint32 gss_verify_mic ( OM_uint32 *minor_status, const gss_ctx_id_t context_handle, const gss_buffer_t message_buffer, const gss_buffer_t token_buffer, gss_qop_t *qop_state)

OM_uint32と同じ側はgss_verify_mic(OM_uint32と同じ* minor_status、constのgss_ctx_id_tのcontext_handle、gss_buffer_tのconstのmessage_buffer、constのgss_buffer_tのtoken_buffer、gss_qop_t * qop_state)

Purpose:

目的:

Verifies that a cryptographic MIC, contained in the token parameter, fits the supplied message. The qop_state parameter allows a message recipient to determine the strength of protection that was applied to the message.

トークンパラメータに含まれる暗号化MICは、供給されたメッセージを適合することを検証します。 qop_stateパラメーターは、メッセージに適用された保護の強度を決定するために、メッセージの受信者を可能にします。

Since some application-level protocols may wish to use tokens emitted by gss_wrap() to provide "secure framing", implementations must support the calculation and verification of MICs over zero-length messages.

いくつかのアプリケーションレベルのプロトコルは、「セキュアフレーミング」を提供するためにはgss_wrap(によって放出されたトークン)を使用することができるので、実装が長さゼロのメッセージ上のMICの計算および検証をサポートしなければなりません。

Parameters:

パラメーター:

minor_status Integer, modify Mechanism specific status code.

minor_status整数は、メカニズムの特定のステータスコードを変更します。

context_handle gss_ctx_id_t, read Identifies the context on which the message arrived

context_handle gss_ctx_id_t、識別にメッセージが到着した文脈を読みます

message_buffer buffer, opaque, read Message to be verified

message_bufferバッファは、不透明な、読んでメッセージを確認します

token_buffer buffer, opaque, read Token associated with message

token_bufferバッファは、不透明、メッセージに関連付けられたトークンを読み取ります

qop_state gss_qop_t, modify, optional quality of protection gained from MIC Specify NULL if not required

必要でない場合qop_state gss_qop_t、修正、MICから得られた保護のオプションの品質は、NULLを指定します

Function value: GSS status code

関数値:GSSステータスコード

GSS_S_COMPLETE Successful completion

GSS_S_COMPLETE成功した完了

GSS_S_DEFECTIVE_TOKEN The token failed consistency checks

GSS_S_DEFECTIVE_TOKENトークンは、整合性チェックに失敗しました

GSS_S_BAD_SIG The MIC was incorrect

GSS_S_BAD_SIGザ・MICが間違っていました

GSS_S_DUPLICATE_TOKEN The token was valid, and contained a correct MIC for the message, but it had already been processed

GSS_S_DUPLICATE_TOKENトークンが有効で、メッセージのための正しいMICが含まれていますが、それはすでに処理されていました

GSS_S_OLD_TOKEN The token was valid, and contained a correct MIC for the message, but it is too old to check for duplication.

GSS_S_OLD_TOKENトークンが有効で、メッセージのための正しいMICが含まれていますが、重複をチェックするにはあまりにも古いです。

GSS_S_UNSEQ_TOKEN The token was valid, and contained a correct MIC for the message, but has been verified out of sequence; a later token has already been received.

GSS_S_UNSEQ_TOKENトークンが有効で、メッセージのための正しいMICが含まれていますが、順序が狂って検証されています。後続のトークンがすでに受信されています。

GSS_S_GAP_TOKEN The token was valid, and contained a correct MIC for the message, but has been verified out of sequence; an earlier expected token has not yet been received.

GSS_S_GAP_TOKENトークンが有効で、メッセージのための正しいMICが含まれていますが、順序が狂って検証されています。以前の予想されるトークンがまだ受信されていません。

GSS_S_CONTEXT_EXPIRED The context has already expired

GSS_S_CONTEXT_EXPIREDコンテキストがすでに期限切れ

GSS_S_NO_CONTEXT The context_handle parameter did not identify a valid context

GSS_S_NO_CONTEXT context_handleパラメータが有効なコンテキストを識別しませんでした

5.33. gss_wrap
5.33. gss_wrap

OM_uint32 gss_wrap ( OM_uint32 *minor_status, const gss_ctx_id_t context_handle, int conf_req_flag, gss_qop_t qop_req const gss_buffer_t input_message_buffer, int *conf_state, gss_buffer_t output_message_buffer )

OM_uint32と同じはgss_wrap(OM_uint32と同じ* minor_status、constのgss_ctx_id_t context_handle、int型conf_req_flag、gss_qop_t qop_req constのgss_buffer_t input_message_buffer、int型* conf_state、gss_buffer_t output_message_buffer)

Purpose:

目的:

Attaches a cryptographic MIC and optionally encrypts the specified input_message. The output_message contains both the MIC and the message. The qop_req parameter allows a choice between several cryptographic algorithms, if supported by the chosen mechanism.

暗号化MICを添付し、必要に応じて指定されたinput_messageを暗号化します。 output_messageはMICとメッセージの両方が含まれています。選択されたメカニズムによってサポートされている場合qop_reqパラメータは、いくつかの暗号化アルゴリズムの選択を可能にします。

Since some application-level protocols may wish to use tokens emitted by gss_wrap() to provide "secure framing", implementations must support the wrapping of zero-length messages.

いくつかのアプリケーションレベルのプロトコルは、「セキュアフレーミング」を提供するためにはgss_wrap(によって放出されたトークン)を使用することができるので、実装が長さゼロのメッセージのラッピングをサポートしなければなりません。

Parameters:

パラメーター:

minor_status Integer, modify Mechanism specific status code.

minor_status整数は、メカニズムの特定のステータスコードを変更します。

context_handle gss_ctx_id_t, read Identifies the context on which the message will be sent

context_handle gss_ctx_id_t、識別にメッセージが送信されるのコンテキストを読みます

conf_req_flag boolean, read Non-zero - Both confidentiality and integrity services are requested Zero - Only integrity service is requested

どちらの機密性と完全性サービスがゼロに要求されている - - のみの整合性サービスが要求されているconf_req_flagブール、非ゼロの読み

qop_req gss_qop_t, read, optional Specifies required quality of protection. A mechanism-specific default may be requested by setting qop_req to GSS_C_QOP_DEFAULT. If an unsupported protection strength is requested, gss_wrap will return a major_status of GSS_S_BAD_QOP.

qop_reqのgss_qop_t、読み、保護の品質を必要とオプションを指定します。機構固有のデフォルトはGSS_C_QOP_DEFAULTにqop_reqを設定することによって要求することができます。サポートされていない保護強度が要求された場合、はgss_wrapはGSS_S_BAD_QOPのmajor_statusを返します。

input_message_buffer buffer, opaque, read Message to be protected

input_message_bufferバッファ、不透明な、読んでメッセージを保護します

conf_state boolean, modify, optional Non-zero - Confidentiality, data origin authentication and integrity services have been applied Zero - Integrity and data origin services only has been applied. Specify NULL if not required

conf_stateブール、変更、オプションの非ゼロ - 機密性、データ発信元認証と完全性サービスはゼロに適用されている - 完全性とデータ起源サービスのみ適用されています。必要でない場合は、NULLを指定

output_message_buffer buffer, opaque, modify Buffer to receive protected message. Storage associated with this message must be freed by the application after use with a call to gss_release_buffer().

output_message_bufferバッファ、不透明な、保護されたメッセージを受信するためのバッファを変更します。このメッセージに関連付けられているストレージがgss_release_bufferを呼び出して使用した後にアプリケーションによって解放されなければなりません()。

Function value: GSS status code

関数値:GSSステータスコード

GSS_S_COMPLETE Successful completion

GSS_S_COMPLETE成功した完了

GSS_S_CONTEXT_EXPIRED The context has already expired

GSS_S_CONTEXT_EXPIREDコンテキストがすでに期限切れ

GSS_S_NO_CONTEXT The context_handle parameter did not identify a valid context

GSS_S_NO_CONTEXT context_handleパラメータが有効なコンテキストを識別しませんでした

GSS_S_BAD_QOP The specified QOP is not supported by the mechanism.

GSS_S_BAD_QOPザ・はQOPはメカニズムによってサポートされていません指定されました。

5.34. gss_wrap_size_limit
5.34. gss_wrap_size_limit

OM_uint32 gss_wrap_size_limit ( OM_uint32 *minor_status, const gss_ctx_id_t context_handle, int conf_req_flag, gss_qop_t qop_req, OM_uint32 req_output_size, OM_uint32 *max_input_size)

OM_uint32と同じは、gss_wrap_size_limit(OM_uint32と同じ* minor_status、constのgss_ctx_id_t context_handle、int型conf_req_flag、gss_qop_t qop_req、OM_uint32と同じreq_output_size、OM_uint32と同じ* max_input_size)

Purpose:

目的:

Allows an application to determine the maximum message size that, if presented to gss_wrap with the same conf_req_flag and qop_req parameters, will result in an output token containing no more than req_output_size bytes.

アプリケーションが同じconf_req_flagとqop_reqパラメータではgss_wrapために提示場合、req_output_sizeバイト以下で含有しない出力トークンになり、最大メッセージサイズを決定することを可能にします。

This call is intended for use by applications that communicate over protocols that impose a maximum message size. It enables the application to fragment messages prior to applying protection.

この呼び出しは、最大メッセージサイズを課すプロトコルを介して通信するアプリケーションによる使用のために意図されています。これは、保護を適用する前に、メッセージを断片化するためのアプリケーションを可能にします。

GSS-API implementations are recommended but not required to detect invalid QOP values when gss_wrap_size_limit() is called. This routine guarantees only a maximum message size, not the availability of specific QOP values for message protection.

GSS-APIの実装を推奨しますが、は、gss_wrap_size_limit()が呼び出されたときに、無効なQOP値を検出する必要はありません。このルーチン保証のみ最大メッセージサイズ、メッセージ保護のための具体的なQOP値のない可用性。

Successful completion of this call does not guarantee that gss_wrap will be able to protect a message of length max_input_size bytes, since this ability may depend on the availability of system resources at the time that gss_wrap is called. However, if the implementation itself imposes an upper limit on the length of messages that may be processed by gss_wrap, the implementation should not return a value via max_input_bytes that is greater than this length.

この能力が呼び出された時点ではgss_wrapシステムリソースの可用性に依存してもよいので、それはgss_wrapを保証するものではありません。この呼び出しが正常に完了したが、長さmax_input_sizeバイトのメッセージを保護することができるようになります。実装自体ははgss_wrapによって処理することができるメッセージの長さに上限を課す場合は、実装は、この長さよりも大きいmax_input_bytesを介して値を返すべきではありません。

Parameters:

パラメーター:

minor_status Integer, modify Mechanism specific status code

minor_status整数は、メカニズムの特定のステータスコードを変更します

context_handle gss_ctx_id_t, read A handle that refers to the security over which the messages will be sent.

context_handle gss_ctx_id_t、メッセージが送信される上でのセキュリティを参照するハンドルをお読みください。

conf_req_flag Boolean, read Indicates whether gss_wrap will be asked to apply confidentiality protection in addition to integrity protection. See the routine description for gss_wrap for more details.

読みconf_req_flagブールは、はgss_wrapが完全性保護に加えて、機密性保護を適用するように求められますかどうかを示します。詳細についてはgss_wrapためのルーチンの説明を参照してください。

qop_req gss_qop_t, read Indicates the level of protection that gss_wrap will be asked to provide. See the routine description for gss_wrap for more details.

qop_req gss_qop_t、読みが求められますにGSS_Wrap保護のレベルを示します。詳細についてはgss_wrapためのルーチンの説明を参照してください。

req_output_size Integer, read The desired maximum size for tokens emitted by gss_wrap.

req_output_size整数、はgss_wrapによって放出されたトークンのための所望の最大サイズを読み取ります。

max_input_size Integer, modify The maximum input message size that may be presented to gss_wrap in order to guarantee that the emitted token shall be no larger than req_output_size bytes.

max_input_size整数は、放出されたトークンがreq_output_sizeバイトより大きくてはならないことを保証するためにはgss_wrapに提示することができる最大入力メッセージサイズを変更します。

Function value: GSS status code

関数値:GSSステータスコード

GSS_S_COMPLETE Successful completion

GSS_S_COMPLETE成功した完了

GSS_S_NO_CONTEXT The referenced context could not be accessed.

参照コンテキストにアクセスすることができませんでしたGSS_S_NO_CONTEXT。

GSS_S_CONTEXT_EXPIRED The context has expired.

GSS_S_CONTEXT_EXPIREDコンテキストの有効期限が切れています。

GSS_S_BAD_QOP The specified QOP is not supported by the mechanism.

GSS_S_BAD_QOPザ・はQOPはメカニズムによってサポートされていません指定されました。

6. Security Considerations
6.セキュリティの考慮事項

This document specifies a service interface for security facilities and services; as such, security considerations appear throughout the specification. Nonetheless, it is appropriate to summarize certain specific points relevant to GSS-API implementors and calling applications. Usage of the GSS-API interface does not in itself provide security services or assurance; instead, these attributes are dependent on the underlying mechanism(s) which support a GSS-API implementation. Callers must be attentive to the requests made to GSS-API calls and to the status indicators returned by GSS-API, as these specify the security service characteristics which GSS-API will provide. When the interprocess context transfer facility is used, appropriate local controls should be applied to constrain access to interprocess tokens and to the sensitive data which they contain.

この文書では、セキュリティ設備とサービスのためのサービス・インターフェースを指定します。など、セキュリティ上の考慮事項は、明細書を通して表示されます。それにもかかわらず、GSS-APIの実装と呼び出し元のアプリケーションに関連する特定のポイントを要約することが適切です。 GSS-APIインタフェースの使用法は、それ自体にセキュリティサービスや保証を提供していません。代わりに、これらの属性は、GSS-APIの実装をサポートする基本的なメカニズム(複数可)に依存しています。これらのGSS-APIが提供するセキュリティサービスの特性を指定するよう発信者は、GSS-APIの呼び出しにし、GSS-APIによって返されたステータスインジケータに行われた要求に気配りする必要があります。プロセス間コンテキスト転送機能を使用する場合、適切なローカル制御は、プロセス間トークン及びそれらが含む機密データへのアクセスを制限するために適用されるべきです。

Appendix A. GSS-API C header file gssapi.h

付録A. GSS-API Cヘッダファイルgssapi.h

C-language GSS-API implementations should include a copy of the following header-file.

C言語GSS-APIの実装は、次のヘッダーファイルのコピーを含むべきです。

#ifndef GSSAPI_H_ #define GSSAPI_H_

#ifndefのGSSAPI_H_の#define GSSAPI_H_

   /*
    * First, include stddef.h to get size_t defined.
    */
   #include <stddef.h>
        
   /*
    * If the platform supports the xom.h header file, it should be
    * included here.
    */
   #include <xom.h>
        
   /*
    * Now define the three implementation-dependent types.
    */
   typedef <platform-specific> gss_ctx_id_t;
   typedef <platform-specific> gss_cred_id_t;
   typedef <platform-specific> gss_name_t;
        
   /*
    * The following type must be defined as the smallest natural
    * unsigned integer supported by the platform that has at least
    * 32 bits of precision.
    */
   typedef <platform-specific> gss_uint32;
        
   #ifdef OM_STRING
   /*
    * We have included the xom.h header file.  Verify that OM_uint32
    * is defined correctly.
    */
        

#if sizeof(gss_uint32) != sizeof(OM_uint32) #error Incompatible definition of OM_uint32 from xom.h #endif

sizeof(gss_uint32)!=はsizeof(OM_uint32と同じ)#エラーxom.h #endifのからのOM_uint32の互換性のない定義の#if

typedef OM_object_identifier gss_OID_desc, *gss_OID;

typedefをOM_object_identifier gss_OID_desc、*次に、gss_OID;

#else

#else

   /*
    * We can't use X/Open definitions, so roll our own.
    */
        

typedef gss_uint32 OM_uint32;

typedefのgss_uint32 OM_uint32と同じ。

   typedef struct gss_OID_desc_struct {
     OM_uint32 length;
     void      *elements;
   } gss_OID_desc, *gss_OID;
        

#endif

#endifの

   typedef struct gss_OID_set_desc_struct  {
     size_t     count;
     gss_OID    elements;
   } gss_OID_set_desc, *gss_OID_set;
        
   typedef struct gss_buffer_desc_struct {
     size_t length;
     void *value;
   } gss_buffer_desc, *gss_buffer_t;
        
   typedef struct gss_channel_bindings_struct {
     OM_uint32 initiator_addrtype;
     gss_buffer_desc initiator_address;
     OM_uint32 acceptor_addrtype;
     gss_buffer_desc acceptor_address;
     gss_buffer_desc application_data;
   } *gss_channel_bindings_t;
        
   /*
    * For now, define a QOP-type as an OM_uint32
    */
   typedef OM_uint32 gss_qop_t;
        

typedef int gss_cred_usage_t;

typedef int型gss_cred_usage_t。

   /*
    * Flag bits for context-level services.
    */
        

#define GSS_C_DELEG_FLAG 1 #define GSS_C_MUTUAL_FLAG 2 #define GSS_C_REPLAY_FLAG 4 #define GSS_C_SEQUENCE_FLAG 8 #define GSS_C_CONF_FLAG 16 #define GSS_C_INTEG_FLAG 32 #define GSS_C_ANON_FLAG 64 #define GSS_C_PROT_READY_FLAG 128 #define GSS_C_TRANS_FLAG 256

#define GSS_C_DELEG_FLAG 1の#define GSS_C_MUTUAL_FLAG 2の#define GSS_C_REPLAY_FLAG 4の#define GSS_C_SEQUENCE_FLAG 8の#define GSS_C_CONF_FLAG 16の#define GSS_C_INTEG_FLAG 32の#define GSS_C_ANON_FLAG 64の#define GSS_C_PROT_READY_FLAG 128の#define GSS_C_TRANS_FLAG 256

   /*
    * Credential usage options
    */
   #define GSS_C_BOTH     0
   #define GSS_C_INITIATE 1
   #define GSS_C_ACCEPT   2
        
   /*
    * Status code types for gss_display_status
    */
   #define GSS_C_GSS_CODE  1
   #define GSS_C_MECH_CODE 2
        
   /*
    * The constant definitions for channel-bindings address families
    */
   #define GSS_C_AF_UNSPEC     0
   #define GSS_C_AF_LOCAL      1
   #define GSS_C_AF_INET       2
   #define GSS_C_AF_IMPLINK    3
   #define GSS_C_AF_PUP        4
   #define GSS_C_AF_CHAOS      5
   #define GSS_C_AF_NS         6
   #define GSS_C_AF_NBS        7
   #define GSS_C_AF_ECMA       8
   #define GSS_C_AF_DATAKIT    9
   #define GSS_C_AF_CCITT      10
   #define GSS_C_AF_SNA        11
   #define GSS_C_AF_DECnet     12
   #define GSS_C_AF_DLI        13
   #define GSS_C_AF_LAT        14
   #define GSS_C_AF_HYLINK     15
   #define GSS_C_AF_APPLETALK  16
   #define GSS_C_AF_BSC        17
   #define GSS_C_AF_DSS        18
   #define GSS_C_AF_OSI        19
   #define GSS_C_AF_X25        21
        

#define GSS_C_AF_NULLADDR 255

#define GSS_C_AF_NULLADDR 255

   /*
    * Various Null values
    */
   #define GSS_C_NO_NAME ((gss_name_t) 0)
   #define GSS_C_NO_BUFFER ((gss_buffer_t) 0)
   #define GSS_C_NO_OID ((gss_OID) 0)
   #define GSS_C_NO_OID_SET ((gss_OID_set) 0)
   #define GSS_C_NO_CONTEXT ((gss_ctx_id_t) 0)
   #define GSS_C_NO_CREDENTIAL ((gss_cred_id_t) 0)
   #define GSS_C_NO_CHANNEL_BINDINGS ((gss_channel_bindings_t) 0)
   #define GSS_C_EMPTY_BUFFER {0, NULL}
        
   /*
    * Some alternate names for a couple of the above
    * values.  These are defined for V1 compatibility.
    */
   #define GSS_C_NULL_OID GSS_C_NO_OID
   #define GSS_C_NULL_OID_SET GSS_C_NO_OID_SET
        
   /*
    * Define the default Quality of Protection for per-message
    * services.  Note that an implementation that offers multiple
    * levels of QOP may define GSS_C_QOP_DEFAULT to be either zero
    * (as done here) to mean "default protection", or to a specific
    * explicit QOP value.  However, a value of 0 should always be
    * interpreted by a GSS-API implementation as a request for the
    * default protection level.
    */
   #define GSS_C_QOP_DEFAULT 0
        
   /*
    * Expiration time of 2^32-1 seconds means infinite lifetime for a
    * credential or security context
    */
   #define GSS_C_INDEFINITE 0xfffffffful
        
   /*
    * The implementation must reserve static storage for a
    * gss_OID_desc object containing the value
    * {10, (void *)"\x2a\x86\x48\x86\xf7\x12"
    * "\x01\x02\x01\x01"},
    * corresponding to an object-identifier value of
    * {iso(1) member-body(2) United States(840) mit(113554)
    * infosys(1) gssapi(2) generic(1) user_name(1)}.  The constant
    * GSS_C_NT_USER_NAME should be initialized to point
    * to that gss_OID_desc.
        

*/ extern gss_OID GSS_C_NT_USER_NAME;

* /のextern次に、gss_OID GSS_C_NT_USER_NAME。

   /*
    * The implementation must reserve static storage for a
    * gss_OID_desc object containing the value
    * {10, (void *)"\x2a\x86\x48\x86\xf7\x12"
    *              "\x01\x02\x01\x02"},
    * corresponding to an object-identifier value of
    * {iso(1) member-body(2) United States(840) mit(113554)
    * infosys(1) gssapi(2) generic(1) machine_uid_name(2)}.
    * The constant GSS_C_NT_MACHINE_UID_NAME should be
    * initialized to point to that gss_OID_desc.
    */
   extern gss_OID GSS_C_NT_MACHINE_UID_NAME;
        
   /*
    * The implementation must reserve static storage for a
    * gss_OID_desc object containing the value
    * {10, (void *)"\x2a\x86\x48\x86\xf7\x12"
    *              "\x01\x02\x01\x03"},
    * corresponding to an object-identifier value of
    * {iso(1) member-body(2) United States(840) mit(113554)
    * infosys(1) gssapi(2) generic(1) string_uid_name(3)}.
    * The constant GSS_C_NT_STRING_UID_NAME should be
    * initialized to point to that gss_OID_desc.
    */
   extern gss_OID GSS_C_NT_STRING_UID_NAME;
        
   /*
    * The implementation must reserve static storage for a
    * gss_OID_desc object containing the value
    * {6, (void *)"\x2b\x06\x01\x05\x06\x02"},
    * corresponding to an object-identifier value of
    * {iso(1) org(3) dod(6) internet(1) security(5)
    * nametypes(6) gss-host-based-services(2)).  The constant
    * GSS_C_NT_HOSTBASED_SERVICE_X should be initialized to point
    * to that gss_OID_desc.  This is a deprecated OID value, and
    * implementations wishing to support hostbased-service names
    * should instead use the GSS_C_NT_HOSTBASED_SERVICE OID,
    * defined below, to identify such names;
    * GSS_C_NT_HOSTBASED_SERVICE_X should be accepted a synonym
    * for GSS_C_NT_HOSTBASED_SERVICE when presented as an input
    * parameter, but should not be emitted by GSS-API
    * implementations
    */
   extern gss_OID GSS_C_NT_HOSTBASED_SERVICE_X;
        
   /*
    * The implementation must reserve static storage for a
    * gss_OID_desc object containing the value
    * {10, (void *)"\x2a\x86\x48\x86\xf7\x12"
    *              "\x01\x02\x01\x04"}, corresponding to an
    * object-identifier value of {iso(1) member-body(2)
    * Unites States(840) mit(113554) infosys(1) gssapi(2)
    * generic(1) service_name(4)}.  The constant
    * GSS_C_NT_HOSTBASED_SERVICE should be initialized
    * to point to that gss_OID_desc.
    */
   extern gss_OID GSS_C_NT_HOSTBASED_SERVICE;
        
   /*
    * The implementation must reserve static storage for a
    * gss_OID_desc object containing the value
    * {6, (void *)"\x2b\x06\01\x05\x06\x03"},
    * corresponding to an object identifier value of
    * {1(iso), 3(org), 6(dod), 1(internet), 5(security),
    * 6(nametypes), 3(gss-anonymous-name)}.  The constant
    * and GSS_C_NT_ANONYMOUS should be initialized to point
    * to that gss_OID_desc.
    */
   extern gss_OID GSS_C_NT_ANONYMOUS;
        
   /*
    * The implementation must reserve static storage for a
    * gss_OID_desc object containing the value
    * {6, (void *)"\x2b\x06\x01\x05\x06\x04"},
    * corresponding to an object-identifier value of
    * {1(iso), 3(org), 6(dod), 1(internet), 5(security),
    * 6(nametypes), 4(gss-api-exported-name)}.  The constant
    * GSS_C_NT_EXPORT_NAME should be initialized to point
    * to that gss_OID_desc.
    */
   extern gss_OID GSS_C_NT_EXPORT_NAME;
        
   /* Major status codes */
        

#define GSS_S_COMPLETE 0

#define GSS_S_COMPLETE 0

   /*
    * Some "helper" definitions to make the status code macros obvious.
    */
   #define GSS_C_CALLING_ERROR_OFFSET 24
   #define GSS_C_ROUTINE_ERROR_OFFSET 16
        

#define GSS_C_SUPPLEMENTARY_OFFSET 0 #define GSS_C_CALLING_ERROR_MASK 0377ul #define GSS_C_ROUTINE_ERROR_MASK 0377ul #define GSS_C_SUPPLEMENTARY_MASK 0177777ul

#define GSS_C_SUPPLEMENTARY_OFFSET 0に#define GSS_C_CALLING_ERROR_MASK 0377ulの#define GSS_C_ROUTINE_ERROR_MASK 0377ulの#define GSS_C_SUPPLEMENTARY_MASK 0177777ul

   /*
    * The macros that test status codes for error conditions.
    * Note that the GSS_ERROR() macro has changed slightly from
    * the V1 GSS-API so that it now evaluates its argument
    * only once.
    */
   #define GSS_CALLING_ERROR(x) \
    (x & (GSS_C_CALLING_ERROR_MASK << GSS_C_CALLING_ERROR_OFFSET))
   #define GSS_ROUTINE_ERROR(x) \
    (x & (GSS_C_ROUTINE_ERROR_MASK << GSS_C_ROUTINE_ERROR_OFFSET))
   #define GSS_SUPPLEMENTARY_INFO(x) \
    (x & (GSS_C_SUPPLEMENTARY_MASK << GSS_C_SUPPLEMENTARY_OFFSET))
   #define GSS_ERROR(x) \
    (x & ((GSS_C_CALLING_ERROR_MASK << GSS_C_CALLING_ERROR_OFFSET) | \
          (GSS_C_ROUTINE_ERROR_MASK << GSS_C_ROUTINE_ERROR_OFFSET)))
        
   /*
    * Now the actual status code definitions
    */
        
   /*
    * Calling errors:
        

*/ #define GSS_S_CALL_INACCESSIBLE_READ \ (1ul << GSS_C_CALLING_ERROR_OFFSET) #define GSS_S_CALL_INACCESSIBLE_WRITE \ (2ul << GSS_C_CALLING_ERROR_OFFSET) #define GSS_S_CALL_BAD_STRUCTURE \ (3ul << GSS_C_CALLING_ERROR_OFFSET)

* /の#define GSS_S_CALL_INACCESSIBLE_READ \(1UL << GSS_C_CALLING_ERROR_OFFSET)の#define GSS_S_CALL_INACCESSIBLE_WRITE \(2UL << GSS_C_CALLING_ERROR_OFFSET)の#define GSS_S_CALL_BAD_STRUCTURE \(3UL << GSS_C_CALLING_ERROR_OFFSET)

   /*
    * Routine errors:
    */
   #define GSS_S_BAD_MECH             (1ul <<
   GSS_C_ROUTINE_ERROR_OFFSET)
   #define GSS_S_BAD_NAME             (2ul <<
   GSS_C_ROUTINE_ERROR_OFFSET)
   #define GSS_S_BAD_NAMETYPE         (3ul <<
   GSS_C_ROUTINE_ERROR_OFFSET)
   #define GSS_S_BAD_BINDINGS         (4ul <<
   GSS_C_ROUTINE_ERROR_OFFSET)
   #define GSS_S_BAD_STATUS           (5ul <<
        

GSS_C_ROUTINE_ERROR_OFFSET) #define GSS_S_BAD_SIG (6ul << GSS_C_ROUTINE_ERROR_OFFSET) #define GSS_S_BAD_MIC GSS_S_BAD_SIG #define GSS_S_NO_CRED (7ul << GSS_C_ROUTINE_ERROR_OFFSET) #define GSS_S_NO_CONTEXT (8ul << GSS_C_ROUTINE_ERROR_OFFSET) #define GSS_S_DEFECTIVE_TOKEN (9ul << GSS_C_ROUTINE_ERROR_OFFSET) #define GSS_S_DEFECTIVE_CREDENTIAL (10ul << GSS_C_ROUTINE_ERROR_OFFSET) #define GSS_S_CREDENTIALS_EXPIRED (11ul << GSS_C_ROUTINE_ERROR_OFFSET) #define GSS_S_CONTEXT_EXPIRED (12ul << GSS_C_ROUTINE_ERROR_OFFSET) #define GSS_S_FAILURE (13ul << GSS_C_ROUTINE_ERROR_OFFSET) #define GSS_S_BAD_QOP (14ul << GSS_C_ROUTINE_ERROR_OFFSET) #define GSS_S_UNAUTHORIZED (15ul << GSS_C_ROUTINE_ERROR_OFFSET) #define GSS_S_UNAVAILABLE (16ul << GSS_C_ROUTINE_ERROR_OFFSET) #define GSS_S_DUPLICATE_ELEMENT (17ul << GSS_C_ROUTINE_ERROR_OFFSET) #define GSS_S_NAME_NOT_MN (18ul << GSS_C_ROUTINE_ERROR_OFFSET)

GSS_C_ROUTINE_ERROR_OFFSET)の#define GSS_S_BAD_SIG(6UL << GSS_C_ROUTINE_ERROR_OFFSET)の#define GSS_S_BAD_MIC GSS_S_BAD_SIGの#define GSS_S_NO_CRED(7ul << GSS_C_ROUTINE_ERROR_OFFSET)の#define GSS_S_NO_CONTEXT(8UL << GSS_C_ROUTINE_ERROR_OFFSET)の#define GSS_S_DEFECTIVE_TOKEN(9UL << GSS_C_ROUTINE_ERROR_OFFSET)の#define GSS_S_DEFECTIVE_CREDENTIAL(10μlの<< GSS_C_ROUTINE_ERROR_OFFSET )の#define GSS_S_CREDENTIALS_EXPIRED(11ul << GSS_C_ROUTINE_ERROR_OFFSET)の#define GSS_S_CONTEXT_EXPIRED(12ul << GSS_C_ROUTINE_ERROR_OFFSET)の#define GSS_S_FAILURE(13ul << GSS_C_ROUTINE_ERROR_OFFSET)の#define GSS_S_BAD_QOP(14ul << GSS_C_ROUTINE_ERROR_OFFSET)の#define GSS_S_UNAUTHORIZED(15ul << GSS_C_ROUTINE_ERROR_OFFSET)の#define GSS_S_UNAVAILABLE( 16ul << GSS_C_ROUTINE_ERROR_OFFSET)の#define GSS_S_DUPLICATE_ELEMENT(17ul << GSS_C_ROUTINE_ERROR_OFFSET)の#define GSS_S_NAME_NOT_MN(18ul << GSS_C_ROUTINE_ERROR_OFFSET)

   /*
    * Supplementary info bits:
    */
   #define GSS_S_CONTINUE_NEEDED \
            (1ul << (GSS_C_SUPPLEMENTARY_OFFSET + 0))
   #define GSS_S_DUPLICATE_TOKEN \
            (1ul << (GSS_C_SUPPLEMENTARY_OFFSET + 1))
   #define GSS_S_OLD_TOKEN \
            (1ul << (GSS_C_SUPPLEMENTARY_OFFSET + 2))
   #define GSS_S_UNSEQ_TOKEN \
            (1ul << (GSS_C_SUPPLEMENTARY_OFFSET + 3))
   #define GSS_S_GAP_TOKEN \
            (1ul << (GSS_C_SUPPLEMENTARY_OFFSET + 4))
        
   /*
    * Finally, function prototypes for the GSS-API routines.
    */
        
   OM_uint32 gss_acquire_cred
                 (OM_uint32 ,             /*  minor_status */
                  const gss_name_t,       /* desired_name */
                  OM_uint32,              /* time_req */
                  const gss_OID_set,      /* desired_mechs */
                  gss_cred_usage_t,       /* cred_usage */
                  gss_cred_id_t ,         /* output_cred_handle */
                  gss_OID_set ,           /* actual_mechs */
                  OM_uint32 *             /* time_rec */
                 );
        
   OM_uint32 gss_release_cred
                 (OM_uint32 ,             /* minor_status */
                  gss_cred_id_t *         /* cred_handle */
                 );
        
   OM_uint32 gss_init_sec_context
                 (OM_uint32 ,             /* minor_status */
                  const gss_cred_id_t,    /* initiator_cred_handle */
                  gss_ctx_id_t ,          /* context_handle */
                  const gss_name_t,       /* target_name */
                  const gss_OID,          /* mech_type */
                  OM_uint32,              /* req_flags */
                  OM_uint32,              /* time_req */
                  const gss_channel_bindings_t,
                                          /* input_chan_bindings */
                  const gss_buffer_t,     /* input_token */
                  gss_OID ,               /* actual_mech_type */
                  gss_buffer_t,           /* output_token */
                  OM_uint32 ,             /* ret_flags */
                  OM_uint32 *             /* time_rec */
                 );
        
   OM_uint32 gss_accept_sec_context
                 (OM_uint32 ,             /* minor_status */
                  gss_ctx_id_t ,          /* context_handle */
                  const gss_cred_id_t,    /* acceptor_cred_handle */
                  const gss_buffer_t,     /* input_token_buffer */
                  const gss_channel_bindings_t,
                                          /* input_chan_bindings */
                  gss_name_t ,            /* src_name */
                  gss_OID ,               /* mech_type */
                  gss_buffer_t,           /* output_token */
                  OM_uint32 ,             /* ret_flags */
                  OM_uint32 ,             /* time_rec */
                  gss_cred_id_t *         /* delegated_cred_handle */
                 );
        
   OM_uint32 gss_process_context_token
                 (OM_uint32 ,             /* minor_status */
                  const gss_ctx_id_t,     /* context_handle */
                  const gss_buffer_t      /* token_buffer */
                 );
        
   OM_uint32 gss_delete_sec_context
                 (OM_uint32 ,             /* minor_status */
                  gss_ctx_id_t ,          /* context_handle */
                  gss_buffer_t            /* output_token */
                 );
        
   OM_uint32 gss_context_time
                 (OM_uint32 ,             /* minor_status */
                  const gss_ctx_id_t,     /* context_handle */
                  OM_uint32 *             /* time_rec */
                 );
        
   OM_uint32 gss_get_mic
                 (OM_uint32 ,             /* minor_status */
                  const gss_ctx_id_t,     /* context_handle */
                  gss_qop_t,              /* qop_req */
                  const gss_buffer_t,     /* message_buffer */
                  gss_buffer_t            /* message_token */
                 );
        
   OM_uint32 gss_verify_mic
                 (OM_uint32 ,             /* minor_status */
                  const gss_ctx_id_t,     /* context_handle */
                  const gss_buffer_t,     /* message_buffer */
                  const gss_buffer_t,     /* token_buffer */
                  gss_qop_t *             /* qop_state */
                 );
        
   OM_uint32 gss_wrap
                 (OM_uint32 ,             /* minor_status */
                  const gss_ctx_id_t,     /* context_handle */
                  int,                    /* conf_req_flag */
                  gss_qop_t,              /* qop_req */
                  const gss_buffer_t,     /* input_message_buffer */
                  int ,                   /* conf_state */
                  gss_buffer_t            /* output_message_buffer */
                 );
        
   OM_uint32 gss_unwrap
                 (OM_uint32 ,             /* minor_status */
                  const gss_ctx_id_t,     /* context_handle */
                  const gss_buffer_t,     /* input_message_buffer */
                  gss_buffer_t,           /* output_message_buffer */
                  int ,                   /* conf_state */
                  gss_qop_t *             /* qop_state */
                 );
        
   OM_uint32 gss_display_status
                 (OM_uint32 ,             /* minor_status */
                  OM_uint32,              /* status_value */
                  int,                    /* status_type */
                  const gss_OID,          /* mech_type */
                  OM_uint32 ,             /* message_context */
                  gss_buffer_t            /* status_string */
                 );
        
   OM_uint32 gss_indicate_mechs
                 (OM_uint32 ,             /* minor_status */
                  gss_OID_set *           /* mech_set */
                 );
        
   OM_uint32 gss_compare_name
                 (OM_uint32 ,             /* minor_status */
                  const gss_name_t,       /* name1 */
                  const gss_name_t,       /* name2 */
                  int *                   /* name_equal */
                 );
        
   OM_uint32 gss_display_name
                 (OM_uint32 ,             /* minor_status */
                  const gss_name_t,       /* input_name */
                  gss_buffer_t,           /* output_name_buffer */
                  gss_OID *               /* output_name_type */
                 );
        
   OM_uint32 gss_import_name
                 (OM_uint32 ,             /* minor_status */
                  const gss_buffer_t,     /* input_name_buffer */
                  const gss_OID,          /* input_name_type */
                  gss_name_t *            /* output_name */
                 );
        
   OM_uint32 gss_export_name
                 (OM_uint32,              /* minor_status */
                  const gss_name_t,       /* input_name */
                  gss_buffer_t            /* exported_name */
                 );
        
   OM_uint32 gss_release_name
                 (OM_uint32 *,            /* minor_status */
                  gss_name_t *            /* input_name */
                 );
        
   OM_uint32 gss_release_buffer
                 (OM_uint32 ,             /* minor_status */
                  gss_buffer_t            /* buffer */
                 );
        
   OM_uint32 gss_release_oid_set
                 (OM_uint32 ,             /* minor_status */
                  gss_OID_set *           /* set */
                 );
        
   OM_uint32 gss_inquire_cred
                 (OM_uint32 ,             /* minor_status */
                  const gss_cred_id_t,    /* cred_handle */
                  gss_name_t ,            /* name */
                  OM_uint32 ,             /* lifetime */
                  gss_cred_usage_t ,      /* cred_usage */
                  gss_OID_set *           /* mechanisms */
                 );
        
   OM_uint32 gss_inquire_context (
                  OM_uint32 ,             /* minor_status */
                  const gss_ctx_id_t,     /* context_handle */
                  gss_name_t ,            /* src_name */
                  gss_name_t ,            /* targ_name */
                  OM_uint32 ,             /* lifetime_rec */
                  gss_OID ,               /* mech_type */
                  OM_uint32 ,             /* ctx_flags */
                  int ,                   /* locally_initiated */
                  int *                   /* open */
                 );
        
   OM_uint32 gss_wrap_size_limit (
                  OM_uint32 ,             /* minor_status */
                  const gss_ctx_id_t,     /* context_handle */
                  int,                    /* conf_req_flag */
                  gss_qop_t,              /* qop_req */
                  OM_uint32,              /* req_output_size */
                  OM_uint32 *             /* max_input_size */
                 );
        
   OM_uint32 gss_add_cred (
                  OM_uint32 ,             /* minor_status */
                  const gss_cred_id_t,    /* input_cred_handle */
                  const gss_name_t,       /* desired_name */
                  const gss_OID,          /* desired_mech */
                  gss_cred_usage_t,       /* cred_usage */
                  OM_uint32,              /* initiator_time_req */
                  OM_uint32,              /* acceptor_time_req */
                  gss_cred_id_t ,         /* output_cred_handle */
                  gss_OID_set ,           /* actual_mechs */
                  OM_uint32 ,             /* initiator_time_rec */
                  OM_uint32 *             /* acceptor_time_rec */
                 );
        
   OM_uint32 gss_inquire_cred_by_mech (
                  OM_uint32 ,             /* minor_status */
                  const gss_cred_id_t,    /* cred_handle */
                  const gss_OID,          /* mech_type */
                  gss_name_t ,            /* name */
                  OM_uint32 ,             /* initiator_lifetime */
                  OM_uint32 ,             /* acceptor_lifetime */
                  gss_cred_usage_t *      /* cred_usage */
                 );
        
   OM_uint32 gss_export_sec_context (
                  OM_uint32 ,             /* minor_status */
                  gss_ctx_id_t ,          /* context_handle */
                  gss_buffer_t            /* interprocess_token */
                 );
        
   OM_uint32 gss_import_sec_context (
                  OM_uint32 ,             /* minor_status */
                  const gss_buffer_t,     /* interprocess_token */
                  gss_ctx_id_t *          /* context_handle */
                 );
        
   OM_uint32 gss_create_empty_oid_set (
                  OM_uint32 ,             /* minor_status */
                  gss_OID_set *           /* oid_set */
                 );
        
   OM_uint32 gss_add_oid_set_member (
                  OM_uint32 ,             /* minor_status */
                  const gss_OID,          /* member_oid */
                  gss_OID_set *           /* oid_set */
                 );
        
   OM_uint32 gss_test_oid_set_member (
                  OM_uint32 ,             /* minor_status */
                  const gss_OID,          /* member */
                  const gss_OID_set,      /* set */
                  int *                   /* present */
                 );
        
   OM_uint32 gss_inquire_names_for_mech (
                  OM_uint32 ,             /* minor_status */
                  const gss_OID,          /* mechanism */
                  gss_OID_set *           /* name_types */
                 );
        
   OM_uint32 gss_inquire_mechs_for_name (
                  OM_uint32 ,             /* minor_status */
                  const gss_name_t,       /* input_name */
                  gss_OID_set *           /* mech_types */
                 );
        
   OM_uint32 gss_canonicalize_name (
                  OM_uint32 ,             /* minor_status */
                  const gss_name_t,       /* input_name */
                  const gss_OID,          /* mech_type */
                  gss_name_t *            /* output_name */
                 );
        
   OM_uint32 gss_duplicate_name (
                  OM_uint32 ,             /* minor_status */
                  const gss_name_t,       /* src_name */
                  gss_name_t *            /* dest_name */
                 );
        
   /*
    * The following routines are obsolete variants of gss_get_mic,
    * gss_verify_mic, gss_wrap and gss_unwrap.  They should be
    * provided by GSS-API V2 implementations for backwards
    * compatibility with V1 applications.  Distinct entrypoints
        

* (as opposed to #defines) should be provided, both to allow * GSS-API V1 applications to link against GSS-API V2 implementations, * and to retain the slight parameter type differences between the * obsolete versions of these routines and their current forms. */

*(の#defineとは対照的に)提供されるべきで、双方は* GSS-APIのV1アプリケーションは、GSS-APIのV2の実装にリンク*と*廃止これらのルーチンのバージョンと現在の間のわずかなパラメータの型の違いを保持することを可能にしますフォーム。 * /

   OM_uint32 gss_sign
                 (OM_uint32 ,        /* minor_status */
                  gss_ctx_id_t,      /* context_handle */
                  int,               /* qop_req */
                  gss_buffer_t,      /* message_buffer */
                  gss_buffer_t       /* message_token */
                 );
        
   OM_uint32 gss_verify
                 (OM_uint32 ,        /* minor_status */
                  gss_ctx_id_t,      /* context_handle */
                  gss_buffer_t,      /* message_buffer */
                  gss_buffer_t,      /* token_buffer */
                  int *              /* qop_state */
                 );
        
   OM_uint32 gss_seal
                 (OM_uint32 ,        /* minor_status */
                  gss_ctx_id_t,      /* context_handle */
                  int,               /* conf_req_flag */
                  int,               /* qop_req */
                  gss_buffer_t,      /* input_message_buffer */
                  int ,              /* conf_state */
                  gss_buffer_t       /* output_message_buffer */
                 );
        
   OM_uint32 gss_unseal
                 (OM_uint32 ,        /* minor_status */
                  gss_ctx_id_t,      /* context_handle */
                  gss_buffer_t,      /* input_message_buffer */
                  gss_buffer_t,      /* output_message_buffer */
                  int ,              /* conf_state */
                  int *              /* qop_state */
                 );
        
   #endif /* GSSAPI_H_ */
        

Appendix B. Additional constraints for application binary portability

アプリケーションバイナリ移植性のための付録B.追加の制約

The purpose of this C-bindings document is to encourage source-level portability of applications across GSS-API implementations on different platforms and atop different mechanisms. Additional goals that have not been explicitly addressed by this document are link-time and run-time portability.

このC-バインディング文書の目的は、異なるプラットフォーム上の異なるメカニズムの上GSS-APIの実装間でアプリケーションのソースレベルでの移植を促進することです。明示的にこの文書によって対処されていない追加の目標は、リンク時や実行時の移植です。

Link-time portability provides the ability to compile an application against one implementation of GSS-API, and then link it against a different implementation on the same platform. It is a stricter requirement than source-level portability.

リンク時の移植は、GSS-APIの一の実装に対してアプリケーションをコンパイルし、同じプラットフォーム上で異なる実装に対してそれをリンクする機能を提供します。これは、ソースレベルのポータビリティより厳しい要件です。

Run-time portability differs from link-time portability only on those platforms that implement dynamically loadable GSS-API implementations, but do not offer load-time symbol resolution. On such platforms, run-time portability is a stricter requirement than link-time portability, and will typically include the precise placement of the various GSS-API routines within library entrypoint vectors.

ランタイムの移植は、動的にロード可能なGSS-APIの実装を実装し、それらのプラットフォーム上でリンク時のポータビリティとは異なりますが、ロード時のシンボル解決を提供していません。こうしたプラットフォームでは、実行時の移植は、リンク時の移植性より厳しい要件であり、典型的には、ライブラリのエントリポイントベクトル内のさまざまなGSS-APIルーチンの正確な配置が含まれます。

Individual platforms will impose their own rules that must be followed to achieve link-time (and run-time, if different) portability. In order to ensure either form of binary portability, an ABI specification must be written for GSS-API implementations on that platform. However, it is recognized that there are some issues that are likely to be common to all such ABI specifications. This appendix is intended to be a repository for such common issues, and contains some suggestions that individual ABI specifications may choose to reference. Since machine architectures vary greatly, it may not be possible or desirable to follow these suggestions on all platforms.

個々のプラットフォームは、移植性(異なる場合、および実行時に)リンク時を達成するために従わなければならない独自のルールを課します。バイナリ移植のいずれかの形を確保するために、ABI仕様は、そのプラットフォーム上でGSS-APIの実装のために書かれなければなりません。しかし、そのようなすべてのABI仕様に共通である可能性が高いいくつかの問題があることが認識されています。この付録では、このような一般的な問題のためのリポジトリであることを意図し、そして個々のABI仕様はリファレンスに選ぶことができるいくつかの提案が含まれています。マシンアーキテクチャが大きく異なるので、すべてのプラットフォーム上でこれらの提案に従うことが可能か、望ましくないかもしれません。

B.1. Pointers

B.1。ポインタ

While ANSI-C provides a single pointer type for each declared type, plus a single (void *) type, some platforms (notably those using segmented memory architectures) augment this with various modified pointer types (e.g. far pointers, near pointers). These language bindings assume ANSI-C, and thus do not address such non-standard implementations. GSS-API implementations for such platforms must choose an appropriate memory model, and should use it consistently throughout. For example, if a memory model is chosen that requires the use of far pointers when passing routine parameters, then far pointers should also be used within the structures defined by GSS-API.

ANSI-Cは、各宣言された型のための単一のポインタ型、プラス単一(ボイド*)タイプを提供するが、いくつかのプラットフォーム(セグメント化されたメモリ・アーキテクチャを使用して、特にもの)は、種々の変形ポインタ型(例えば遠いポインタ、周辺のポインタ)でこれを補強します。これらの言語バインディングは、ANSI-Cを想定し、したがって、そのような非標準の実装に対応していません。そのようなプラットフォームのためのGSS-APIの実装では、適切なメモリモデルを選択する必要があり、かつ一貫して使用する必要があります。メモリモデルは、ルーチンのパラメータを渡すときにはるかにポインタを使用する必要が選択される場合たとえば、その後、遠くポインタはまた、GSS-APIによって定義された構造内で使用する必要があります。

B.2. Internal structure alignment

B.2。内部構造のアライメント

GSS-API defines several data-structures containing differently-sized fields. An ABI specification should include a detailed description of how the fields of such structures are aligned, and if there is any internal padding in these data structures. The use of compiler defaults for the platform is recommended.

GSS-APIは、異なるサイズのフィールドを含むいくつかのデータ構造を定義します。 ABI仕様は、このような構造のフィールドが整列されている方法の詳細な説明を含める必要があり、これらのデータ構造内の任意の内部パディングがある場合。プラットフォーム用のコンパイラのデフォルトの使用が推奨されます。

B.3. Handle types

B.3。タイプハンドル

The C bindings specify that the gss_cred_id_t and gss_ctx_id_t types should be implemented as either pointer or arithmetic types, and that if pointer types are used, care should be taken to ensure that two handles may be compared with the == operator. Note that ANSI-C does not guarantee that two pointer values may be compared with the == operator unless either the two pointers point to members of a single array, or at least one of the pointers contains a NULL value.

Cバインディングはgss_cred_id_tとgss_ctx_id_tタイプはポインタ又は算術タイプのいずれかとして実装され、ポインタの種類が使用される場合、注意は、2つのハンドルが==演算子と比較することができることを確実にするために注意しなければならないことをするように指定します。 ANSI-Cのいずれか二つのポインタは、単一のアレイのメンバーを指していない限り2つのポインタ値が==演算子と比較することができる、またはポインタの少なくとも一方がNULL値が含まれていることを保証するものではないことに留意されたいです。

For binary portability, additional constraints are required. The following is an attempt at defining platform-independent constraints.

バイナリ移植性のために、追加の制約が必要とされています。以下は、プラットフォームに依存しない制約を定義する試みです。

The size of the handle type must be the same as sizeof(void *), using the appropriate memory model.

ハンドルタイプのサイズは、適切なメモリモデルを使用して、はsizeof(void *型)と同じでなければなりません。

The == operator for the chosen type must be a simple bit-wise comparison. That is, for two in-memory handle objects h1 and h2, the boolean value of the expression

選択したタイプの==演算子は、単純なビット単位の比較でなければなりません。すなわち、2つのメモリ内のハンドルオブジェクトのH1及びH2、式のブール値のために、あります

(h1 == h2)

(H1 == H2)

should always be the same as the boolean value of the expression

常に式のブール値と同じにする必要があります

(memcmp(&h1, &h2, sizeof(h1)) == 0)

(memcmp(&H1、およびH2、はsizeof(H1))== 0)

The actual use of the type (void *) for handle types is discouraged, not for binary portability reasons, but since it effectively disables much of the compile-time type-checking that the compiler can otherwise perform, and is therefore not "programmer-friendly". If a pointer implementation is desired, and if the platform's implementation of pointers permits, the handles should be implemented as pointers to distinct implementation-defined types.

ハンドルの種類のタイプ(void *型)の実際の使用が推奨されて、いないバイナリ移植性の理由から、それが効果的にコンパイル時の型チェックコンパイラは、そうでない場合は実行することができるの多くを無効にし、「したがって、programmer-ではありませんので、 「フレンドリー。ポインタの実装が望まれる場合、およびポインタ許可のプラットフォームの実装であれば、ハンドルは異なる実装定義型へのポインタとして実装されるべきです。

B.4. The gss_name_t type

B.4。 gss_name_tタイプ

The gss_name_t type, representing the internal name object, should be implemented as a pointer type. The use of the (void *) type is discouraged as it does not allow the compiler to perform strong type-checking. However, the pointer type chosen should be of the same size as the (void *) type. Provided this rule is obeyed, ABI specifications need not further constrain the implementation of gss_name_t objects.

内部名オブジェクトを表すgss_name_t型は、ポインタ型として実装されなければなりません。 (void *型)タイプの使用は、それはコンパイラが強い型チェックを実行することはできませんのでお勧めしません。しかし、選択されたポインタの種類は(ボイド*)と同じサイズタイプのものでなければなりません。守られるこのルールを提供し、ABI仕様は、さらにgss_name_tオブジェクトの実装を制約する必要はありません。

B.5. The int and size_t types

B.5。 int型とsize_tの種類

Some platforms may support differently sized implementations of the "int" and "size_t" types, perhaps chosen through compiler switches, and perhaps dependent on memory model. An ABI specification for such a platform should include required implementations for these types. It is recommended that the default implementation (for the chosen memory model, if appropriate) is chosen.

一部のプラットフォームでは、「INT」と「size_t型」タイプの、おそらくコンパイラのスイッチを介して選択され、メモリモデルにおそらく依存の異なるサイズの実装をサポートすることができます。こうしたプラットフォームのABI仕様は、これらのタイプのために必要な実装を含める必要があります。デフォルトの実装(選択したメモリモデルについては、適切であれば)が選択されていることをお勧めします。

B.6. Procedure-calling conventions

B.6。手順-呼び出し規約

Some platforms support a variety of different binary conventions for calling procedures. Such conventions cover things like the format of the stack frame, the order in which the routine parameters are pushed onto the stack, whether or not a parameter count is pushed onto the stack, whether some argument(s) or return values are to be passed in registers, and whether the called routine or the caller is responsible for removing the stack frame on return. For such platforms, an ABI specification should specify which calling convention is to be used for GSS-API implementations.

一部のプラットフォームでは、プロシージャを呼び出すためのさまざまなバイナリ規則の様々なサポート。そのような規則は、ルーチンのパラメータはいくつかの引数(複数可)または戻り値が渡されるかどうかは、パラメータの数がスタックにプッシュされているか否かを、スタックにプッシュされた順序たスタックフレームのフォーマットのようなものを、カバールーチンと呼ばれるか、呼び出し側は戻り時にスタックフレームを除去するために責任があるのレジスタであり、か。こうしたプラットフォームでは、ABI仕様は、GSS-APIの実装に使用する呼び出している規則を指定する必要があります。

References

リファレンス

[GSSAPI] Linn, J., "Generic Security Service Application Program Interface Version 2, Update 1", RFC 2743, January 2000.

[GSSAPI]リン、J.、 "ジェネリックセキュリティーサービス適用業務プログラムインタフェースバージョン2、アップデート1"、RFC 2743、2000年1月。

[XOM] OSI Object Management API Specification, Version 2.0 t", X.400 API Association & X/Open Company Limited, August 24, 1990 Specification of datatypes and routines for manipulating information objects.

[XOM] OSIオブジェクト管理API仕様、バージョン2.0トン」、X.400 API協会&X / Open Company Limitedが、8月24日、情報オブジェクトを操作するためのデータ型とルーチンの1990年仕様。

Author's Address

著者のアドレス

John Wray Iris Associates 5 Technology Park Drive, Westford, MA 01886 USA

ジョン・レーアイリスアソシエイツ5テクノロジーパークドライブ、ウェストフォード、MA 01886 USA

Phone: +1-978-392-6689 EMail: John_Wray@Iris.com

電話:+ 1-978-392-6689 Eメール:John_Wray@Iris.com

Full Copyright Statement

完全な著作権声明

Copyright (C) The Internet Society (2000). All Rights Reserved.

著作権(C)インターネット協会(2000)。全著作権所有。

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.

この文書とその翻訳は、コピーして他の人に提供し、それ以外についてはコメントまたは派生物は、いかなる種類の制限もなく、全体的にまたは部分的に、準備コピーし、公表して配布することができることを説明したり、その実装を支援することができます、上記の著作権表示とこの段落は、すべてのそのようなコピーや派生物に含まれていることを条件とします。しかし、この文書自体は著作権のための手順はで定義されている場合には、インターネット標準を開発するために必要なものを除き、インターネットソサエティもしくは他のインターネット関連団体に著作権情報や参照を取り除くなど、どのような方法で変更されないかもしれませんインターネット標準化プロセスが続く、または英語以外の言語に翻訳するために、必要に応じなければなりません。

The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.

上記の制限は永久で、インターネット学会やその後継者や譲渡者によって取り消されることはありません。

This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

この文書とここに含まれている情報は、基礎とインターネットソサエティおよびインターネットエンジニアリングタスクフォースはすべての保証を否認し、明示または黙示、その情報の利用がない任意の保証を含むがこれらに限定されない「として、」上に設けられています特定の目的への権利または商品性または適合性の黙示の保証を侵害します。

Acknowledgement

謝辞

Funding for the RFC Editor function is currently provided by the Internet Society.

RFC Editor機能のための基金は現在、インターネット協会によって提供されます。