Network Working Group                                          J. Kabat
Request for Comments: 2853                               ValiCert, Inc.
Category: Standards Track                                   M. Upadhyay
                                                 Sun Microsystems, Inc.
                                                              June 2000
        
         Generic Security Service API Version 2 : Java 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

抽象

The Generic Security Services Application Program Interface (GSS-API) offers application programmers uniform access to security services atop a variety of underlying cryptographic mechanisms. This document specifies the Java bindings for GSS-API which is described at a language independent conceptual level in RFC 2743 [GSSAPIv2-UPDATE].

一般的なセキュリティサービスアプリケーションプログラムインタフェース(GSS-API)は、アプリケーションプログラマに基本的な暗号メカニズムの様々な頂上セキュリティサービスへの均一なアクセスを提供しています。この文書は、RFC 2743 [GSSAPIv2-UPDATE]で言語非依存の概念レベルで記述されているGSS-APIのJavaバインディングを指定します。

The GSS-API allows a caller application to authenticate a principal identity, to delegate rights to a peer, and to apply security services such as confidentiality and integrity on a per-message basis. Examples of security mechanisms defined for GSS-API are The Simple Public-Key GSS-API Mechanism [SPKM] and The Kerberos Version 5 GSS-API Mechanism [KERBV5].

GSS-APIは、呼び出し元のアプリケーションは、主要なアイデンティティを認証するために、ピアへの権限を委任すると、メッセージごとに、このような機密性と完全性などのセキュリティサービスを適用することができます。 GSS-APIのために定義されたセキュリティ・メカニズムの例としては、単純な公開鍵GSS-APIメカニズム[SPKM]とKerberosバージョン5 GSS-APIメカニズム[KERBV5]です。

Table of Contents

目次

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . .   5
   2.  GSS-API Operational Paradigm . . . . . . . . . . . . . . .   6
   3.  Additional Controls  . . . . . . . . . . . . . . . . . . .   8
   3.1.  Delegation . . . . . . . . . . . . . . . . . . . . . . .   9
   3.2.  Mutual Authentication  . . . . . . . . . . . . . . . . .  10
   3.3.  Replay and Out-of-Sequence Detection . . . . . . . . . .  10
   3.4.  Anonymous Authentication . . . . . . . . . . . . . . . .  11
   3.5.  Confidentiality  . . . . . . . . . . . . . . . . . . . .  12
   3.6.  Inter-process Context Transfer . . . . . . . . . . . . .  12
   3.7.  The Use of Incomplete Contexts . . . . . . . . . . . . .  13
        
   4.  Calling Conventions  . . . . . . . . . . . . . . . . . . .  13
   4.1.  Package Name . . . . . . . . . . . . . . . . . . . . . .  13
   4.2.  Provider Framework . . . . . . . . . . . . . . . . . . .  13
   4.3.  Integer types  . . . . . . . . . . . . . . . . . . . . .  14
   4.4.  Opaque Data types  . . . . . . . . . . . . . . . . . . .  14
   4.5.  Strings  . . . . . . . . . . . . . . . . . . . . . . . .  15
   4.6.  Object Identifiers . . . . . . . . . . . . . . . . . . .  15
   4.7.  Object Identifier Sets . . . . . . . . . . . . . . . . .  15
   4.8.  Credentials  . . . . . . . . . . . . . . . . . . . . . .  16
   4.9.  Contexts . . . . . . . . . . . . . . . . . . . . . . . .  18
   4.10.  Authentication tokens . . . . . . . . . . . . . . . . .  18
   4.11.  Interprocess tokens . . . . . . . . . . . . . . . . . .  18
   4.12.  Error Reporting . . . . . . . . . . . . . . . . . . . .  19
   4.12.1.  GSS status codes  . . . . . . . . . . . . . . . . . .  19
   4.12.2.  Mechanism-specific status codes . . . . . . . . . . .  21
   4.12.3.  Supplementary status codes  . . . . . . . . . . . . .  21
   4.13.  Names . . . . . . . . . . . . . . . . . . . . . . . . .  22
   4.14.  Channel Bindings  . . . . . . . . . . . . . . . . . . .  25
   4.15.  Stream Objects  . . . . . . . . . . . . . . . . . . . .  26
   4.16.  Optional Parameters . . . . . . . . . . . . . . . . . .  26
   5.  Introduction to GSS-API Classes and Interfaces . . . . . .  26
   5.1.  GSSManager class . . . . . . . . . . . . . . . . . . . .  26
   5.2.  GSSName interface  . . . . . . . . . . . . . . . . . . .  27
   5.3.  GSSCredential interface  . . . . . . . . . . . . . . . .  28
   5.4.  GSSContext interface . . . . . . . . . . . . . . . . . .  28
   5.5.  MessageProp class  . . . . . . . . . . . . . . . . . . .  30
   5.6.  GSSException class . . . . . . . . . . . . . . . . . . .  30
   5.7.  Oid class  . . . . . . . . . . . . . . . . . . . . . . .  30
   5.8.  ChannelBinding class . . . . . . . . . . . . . . . . . .  31
   6.  Detailed GSS-API Class Description . . . . . . . . . . . .  31
   6.1.  public abstract class GSSManager . . . . . . . . . . . .  31
   6.1.1.  Example Code . . . . . . . . . . . . . . . . . . . . .  32
   6.1.2.  getInstance  . . . . . . . . . . . . . . . . . . . . .  33
   6.1.3.  getMechs . . . . . . . . . . . . . . . . . . . . . . .  33
   6.1.4.  getNamesForMech  . . . . . . . . . . . . . . . . . . .  33
   6.1.5.  getMechsForName  . . . . . . . . . . . . . . . . . . .  33
   6.1.6.  createName . . . . . . . . . . . . . . . . . . . . . .  33
   6.1.7.  createName . . . . . . . . . . . . . . . . . . . . . .  34
   6.1.8.  createName . . . . . . . . . . . . . . . . . . . . . .  35
   6.1.9.  createName . . . . . . . . . . . . . . . . . . . . . .  35
   6.1.10.  createCredential  . . . . . . . . . . . . . . . . . .  36
   6.1.11.  createCredential  . . . . . . . . . . . . . . . . . .  36
   6.1.12.  createCredential  . . . . . . . . . . . . . . . . . .  37
   6.1.13.  createContext . . . . . . . . . . . . . . . . . . . .  37
   6.1.14.  createContext . . . . . . . . . . . . . . . . . . . .  38
   6.1.15.  createContext . . . . . . . . . . . . . . . . . . . .  38
   6.1.16.  addProviderAtFront  . . . . . . . . . . . . . . . . .  38
   6.1.16.1.  Example Code  . . . . . . . . . . . . . . . . . . .  39
        
   6.1.17.  addProviderAtEnd  . . . . . . . . . . . . . . . . . .  40
   6.1.17.1.  Example Code  . . . . . . . . . . . . . . . . . . .  41
   6.2.  public interface GSSName . . . . . . . . . . . . . . . .  42
   6.2.1.  Example Code . . . . . . . . . . . . . . . . . . . . .  42
   6.2.2.  Static Constants . . . . . . . . . . . . . . . . . . .  43
   6.2.3.  equals . . . . . . . . . . . . . . . . . . . . . . . .  44
   6.2.4.  equals . . . . . . . . . . . . . . . . . . . . . . . .  44
   6.2.5.  canonicalize . . . . . . . . . . . . . . . . . . . . .  44
   6.2.6.  export . . . . . . . . . . . . . . . . . . . . . . . .  45
   6.2.7.  toString . . . . . . . . . . . . . . . . . . . . . . .  45
   6.2.8.  getStringNameType  . . . . . . . . . . . . . . . . . .  45
   6.2.9.  isAnonymous  . . . . . . . . . . . . . . . . . . . . .  45
   6.2.10.  isMN  . . . . . . . . . . . . . . . . . . . . . . . .  45
   6.3.  public interface GSSCredential implements Cloneable  . .  45
   6.3.1.  Example Code . . . . . . . . . . . . . . . . . . . . .  46
   6.3.2.  Static Constants . . . . . . . . . . . . . . . . . . .  47
   6.3.3.  dispose  . . . . . . . . . . . . . . . . . . . . . . .  48
   6.3.4.  getName  . . . . . . . . . . . . . . . . . . . . . . .  48
   6.3.5.  getName  . . . . . . . . . . . . . . . . . . . . . . .  48
   6.3.6.  getRemainingLifetime . . . . . . . . . . . . . . . . .  48
   6.3.7.  getRemainingInitLifetime . . . . . . . . . . . . . . .  49
   6.3.8.  getRemainingAcceptLifetime . . . . . . . . . . . . . .  49
   6.3.9.  getUsage . . . . . . . . . . . . . . . . . . . . . . .  49
   6.3.10.  getUsage  . . . . . . . . . . . . . . . . . . . . . .  49
   6.3.11.  getMechs  . . . . . . . . . . . . . . . . . . . . . .  50
   6.3.12.  add . . . . . . . . . . . . . . . . . . . . . . . . .  50
   6.3.13.  equals  . . . . . . . . . . . . . . . . . . . . . . .  51
   6.4.  public interface GSSContext  . . . . . . . . . . . . . .  51
   6.4.1.  Example Code . . . . . . . . . . . . . . . . . . . . .  52
   6.4.2.  Static Constants . . . . . . . . . . . . . . . . . . .  54
   6.4.3.  initSecContext . . . . . . . . . . . . . . . . . . . .  54
   6.4.3.1.  Example Code . . . . . . . . . . . . . . . . . . . .  55
   6.4.4.  initSecContext . . . . . . . . . . . . . . . . . . . .  56
   6.4.4.1.  Example Code . . . . . . . . . . . . . . . . . . . .  56
   6.4.5.  acceptSecContext . . . . . . . . . . . . . . . . . . .  57
   6.4.5.1.  Example Code . . . . . . . . . . . . . . . . . . . .  58
   6.4.6.  acceptSecContext . . . . . . . . . . . . . . . . . . .  59
   6.4.6.1.  Example Code . . . . . . . . . . . . . . . . . . . .  59
   6.4.7.  isEstablished  . . . . . . . . . . . . . . . . . . . .  60
   6.4.8.  dispose  . . . . . . . . . . . . . . . . . . . . . . .  60
   6.4.9.  getWrapSizeLimit . . . . . . . . . . . . . . . . . . .  61
   6.4.10.  wrap  . . . . . . . . . . . . . . . . . . . . . . . .  61
   6.4.11.  wrap  . . . . . . . . . . . . . . . . . . . . . . . .  62
   6.4.12.  unwrap  . . . . . . . . . . . . . . . . . . . . . . .  63
   6.4.13.  unwrap  . . . . . . . . . . . . . . . . . . . . . . .  64
   6.4.14.  getMIC  . . . . . . . . . . . . . . . . . . . . . . .  65
   6.4.15.  getMIC  . . . . . . . . . . . . . . . . . . . . . . .  65
   6.4.16.  verifyMIC . . . . . . . . . . . . . . . . . . . . . .  66
        
   6.4.17.  verifyMIC . . . . . . . . . . . . . . . . . . . . . .  67
   6.4.18.  export  . . . . . . . . . . . . . . . . . . . . . . .  68
   6.4.19.  requestMutualAuth . . . . . . . . . . . . . . . . . .  68
   6.4.20.  requestReplayDet  . . . . . . . . . . . . . . . . . .  69
   6.4.21.  requestSequenceDet  . . . . . . . . . . . . . . . . .  69
   6.4.22.  requestCredDeleg  . . . . . . . . . . . . . . . . . .  69
   6.4.23.  requestAnonymity  . . . . . . . . . . . . . . . . . .  69
   6.4.24.  requestConf . . . . . . . . . . . . . . . . . . . . .  70
   6.4.25.  requestInteg  . . . . . . . . . . . . . . . . . . . .  70
   6.4.26.  requestLifetime . . . . . . . . . . . . . . . . . . .  70
   6.4.27.  setChannelBinding . . . . . . . . . . . . . . . . . .  71
   6.4.28.  getCredDelegState . . . . . . . . . . . . . . . . . .  71
   6.4.29.  getMutualAuthState  . . . . . . . . . . . . . . . . .  71
   6.4.30.  getReplayDetState . . . . . . . . . . . . . . . . . .  71
   6.4.31.  getSequenceDetState . . . . . . . . . . . . . . . . .  71
   6.4.32.  getAnonymityState . . . . . . . . . . . . . . . . . .  72
   6.4.33.  isTransferable  . . . . . . . . . . . . . . . . . . .  72
   6.4.34.  isProtReady . . . . . . . . . . . . . . . . . . . . .  72
   6.4.35.  getConfState  . . . . . . . . . . . . . . . . . . . .  72
   6.4.36.  getIntegState . . . . . . . . . . . . . . . . . . . .  72
   6.4.37.  getLifetime . . . . . . . . . . . . . . . . . . . . .  73
   6.4.38.  getSrcName  . . . . . . . . . . . . . . . . . . . . .  73
   6.4.39.  getTargName . . . . . . . . . . . . . . . . . . . . .  73
   6.4.40.  getMech . . . . . . . . . . . . . . . . . . . . . . .  73
   6.4.41.  getDelegCred  . . . . . . . . . . . . . . . . . . . .  73
   6.4.42.  isInitiator . . . . . . . . . . . . . . . . . . . . .  73
   6.5.  public class MessageProp . . . . . . . . . . . . . . . .  74
   6.5.1.  Constructors . . . . . . . . . . . . . . . . . . . . .  74
   6.5.2.  getQOP . . . . . . . . . . . . . . . . . . . . . . . .  75
   6.5.3.  getPrivacy . . . . . . . . . . . . . . . . . . . . . .  75
   6.5.4.  getMinorStatus . . . . . . . . . . . . . . . . . . . .  75
   6.5.5.  getMinorString . . . . . . . . . . . . . . . . . . . .  75
   6.5.6.  setQOP . . . . . . . . . . . . . . . . . . . . . . . .  75
   6.5.7.  setPrivacy . . . . . . . . . . . . . . . . . . . . . .  75
   6.5.8.  isDuplicateToken . . . . . . . . . . . . . . . . . . .  76
   6.5.9.  isOldToken . . . . . . . . . . . . . . . . . . . . . .  76
   6.5.10.  isUnseqToken  . . . . . . . . . . . . . . . . . . . .  76
   6.5.11.  isGapToken  . . . . . . . . . . . . . . . . . . . . .  76
   6.5.12.  setSupplementaryStates  . . . . . . . . . . . . . . .  76
   6.6.  public class ChannelBinding  . . . . . . . . . . . . . .  77
   6.6.1.  Constructors . . . . . . . . . . . . . . . . . . . . .  77
   6.6.2.  getInitiatorAddress  . . . . . . . . . . . . . . . . .  78
   6.6.3.  getAcceptorAddress . . . . . . . . . . . . . . . . . .  78
   6.6.4.  getApplicationData . . . . . . . . . . . . . . . . . .  78
   6.6.5.  equals . . . . . . . . . . . . . . . . . . . . . . . .  78
   6.7.  public class Oid . . . . . . . . . . . . . . . . . . . .  79
   6.7.1.  Constructors . . . . . . . . . . . . . . . . . . . . .  79
   6.7.2.  toString . . . . . . . . . . . . . . . . . . . . . . .  80
        
   6.7.3.  equals . . . . . . . . . . . . . . . . . . . . . . . .  80
   6.7.4.  getDER . . . . . . . . . . . . . . . . . . . . . . . .  80
   6.7.5.  containedIn  . . . . . . . . . . . . . . . . . . . . .  80
   6.8.  public class GSSException extends Exception  . . . . . .  80
   6.8.1.  Static Constants . . . . . . . . . . . . . . . . . . .  81
   6.8.2.  Constructors . . . . . . . . . . . . . . . . . . . . .  83
   6.8.3.  getMajor . . . . . . . . . . . . . . . . . . . . . . .  84
   6.8.4.  getMinor . . . . . . . . . . . . . . . . . . . . . . .  84
   6.8.5.  getMajorString . . . . . . . . . . . . . . . . . . . .  84
   6.8.6.  getMinorString . . . . . . . . . . . . . . . . . . . .  84
   6.8.7.  setMinor . . . . . . . . . . . . . . . . . . . . . . .  84
   6.8.8.  toString . . . . . . . . . . . . . . . . . . . . . . .  85
   6.8.9.  getMessage . . . . . . . . . . . . . . . . . . . . . .  85
   7.  Sample Applications  . . . . . . . . . . . . . . . . . . .  85
   7.1.  Simple GSS Context Initiator . . . . . . . . . . . . . .  85
   7.2.  Simple GSS Context Acceptor  . . . . . . . . . . . . . .  89
   8.  Security Considerations  . . . . . . . . . . . . . . . . .  93
   9.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . .  94
   10.  Bibliography  . . . . . . . . . . . . . . . . . . . . . .  94
   11.  Authors' Addresses  . . . . . . . . . . . . . . . . . . .  95
   12.  Full Copyright Statement. . . . . . . . . . . . . . . . .  96
        
1. Introduction
1. はじめに

This document specifies Java language bindings for the Generic Security Services Application Programming Interface Version 2 (GSS-API). GSS-API Version 2 is described in a language independent format in RFC 2743 [GSSAPIv2-UPDATE]. The GSS-API allows a caller application to authenticate a principal identity, to delegate rights to a peer, and to apply security services such as confidentiality and integrity on a per-message basis.

この文書では、一般的なセキュリティサービスアプリケーションプログラミングインターフェイスバージョン2(GSS-API)のためのJava言語バインディングを指定します。 GSS-APIのバージョン2は、RFC 2743 [GSSAPIv2-UPDATE]で言語に依存しない形式で記述されています。 GSS-APIは、呼び出し元のアプリケーションは、主要なアイデンティティを認証するために、ピアへの権限を委任すると、メッセージごとに、このような機密性と完全性などのセキュリティサービスを適用することができます。

This document leverages the work performed by the WG in the area of RFC 2743 [GSSAPIv2-UPDATE] and the C-bindings RFC 2744 [GSSAPI-C]. Whenever appropriate, text has been used from the C-bindings RFC 2744 to explain generic concepts and provide direction to the implementors.

この文書は、RFC 2743 [GSSAPIv2-UPDATE]とC-バインディングRFC 2744 [GSSAPI-C]の領域にWGによって実行される作業を活用します。適切な場合はいつでも、テキストは、一般的な概念を説明し、実装者への方向性を提供するために、C-バインディングRFC 2744から使用されてきました。

The design goals of this API have been to satisfy all the functionality defined in RFC 2743 and to provide these services in an object oriented method. The specification also aims to satisfy the needs of both types of Java application developers, those who would like access to a "system-wide" GSS-API implementation, as well as those who would want to provide their own "custom" implementation.

このAPIの設計目標は、RFC 2743で定義されているすべての機能を満足させると、オブジェクト指向の方法でこれらのサービスを提供することとなっています。仕様では、Javaアプリケーション開発者の両方のタイプ、「システム全体」GSS-APIの実装だけでなく、自分自身の「カスタム」実装を提供したいと思う人たちへのアクセスを希望する人のニーズを満たすことを目指しています。

A "system-wide" implementation is one that is available to all applications in the form of a library package. It may be a standard package in the Java runtime environment (JRE) being used or it may be additionally installed and accessible to any application via the CLASSPATH.

「システム全体」の実装は、ライブラリパッケージの形ですべてのアプリケーションに利用できるものです。これは、Javaランタイム環境(JRE)での標準パッケージが使用されているか、それが増設され、CLASSPATHを経由して任意のアプリケーションにアクセス可能であってもよいです。

A "custom" implementation of the GSS-API, on the other hand, is one that would, in most cases, be bundled with the application during distribution. It is expected that such an implementation would be meant to provide for some particular need of the application, such as support for some specific mechanism.

GSS-APIの「カスタム」の実装は、他の一方で、ほとんどの場合、配布時にアプリケーションにバンドルされることになるものです。このような実装は、このようないくつかの特定のメカニズムのサポートなど、アプリケーションのいくつかの特定の必要性、を提供することを意図されることが期待されます。

The design of this API also aims to provide a flexible framework to add and manage GSS-API mechanisms. GSS-API leverages the Java Cryptography Architecture (JCA) provider model to support the plugability of mechanisms. Mechanisms can be added on a "system-wide" basis, where all users of the framework will have them available. The specification also allows for the addition of mechanisms per-instance of the GSS-API.

このAPIの設計はまた、GSS-APIメカニズムを追加し、管理するための柔軟なフレームワークを提供することを目的とします。 GSS-APIは、メカニズムのplugabilityをサポートするためにJava暗号化アーキテクチャー(JCA)プロバイダモデルを活用しています。メカニズムは、フレームワークのすべてのユーザーがそれらを利用できる必要があります「システム全体」の基礎、で追加することができます。仕様では、インスタンスごとのGSS-APIの機構の付加を可能にします。

Lastly, this specification presents an API that will naturally fit within the operation environment of the Java platform. Readers are assumed to be familiar with both the GSS-API and the Java platform.

最後に、この仕様は、当然、Javaプラットフォームの動作環境に収まるAPIを提供します。読者は、GSS-APIとJavaプラットフォームの両方に精通していることを前提としています。

2. GSS-API Operational Paradigm
2. GSS-API運用パラダイム

The Generic Security Service Application Programming Interface Version 2 [GSSAPIv2-UPDATE] defines a generic security API 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.

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

There are four stages to using GSS-API:

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

1) 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.

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

2) A pair of communicating applications establish a joint security context using their credentials. The security context encapsulates shared state information, which is required in order that per-message security services may be provided. Examples of state information 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 back to the initiator. 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.

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

A GSSContext object is used to establish and maintain the shared information that makes up the security context. Certain GSSContext methods will generate a token, which applications treat as cryptographically protected, opaque data. The caller of such GSSContext method is responsible for transferring the token to the peer application, encapsulated if necessary in an application-to-application protocol. On receipt of such a token, the peer application should pass it to a corresponding GSSContext method which will decode the token and extract the information, updating the security context state information accordingly.

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

3) Per-message services are invoked on a GSSContext object to apply either:

3)メッセージごとのサービスは、どちらか適用するGSSContextのオブジェクトで呼び出されます。

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 GSSContext method (getMIC or wrap) to apply protection, and send the resulting token to the receiving application. The receiver will pass the received token (and, in the case of data protected by getMIC, the accompanying message-data) to the corresponding decoding method of the GSSContext interface (verifyMIC or unwrap) to remove the protection and validate the data.

任意のオクテットストリングとしてGSS-APIによって処理されるアプリケーションデータへ。それが保護したいメッセージを送信するアプリケーションは、保護を適用するために適切なGSSContextの方法(のgetMICまたはラップ)を呼び出し、受信アプリケーションに得られたトークンを送信します。受信機は、保護を解除し、データを検証するGSSContextのインタフェース(たverifyMIC又はアンラップ)の対応する復号化方法(のgetMIC、添付メッセージデータによって保護されたデータの場合など)、受信したトークンを通過します。

4) At the completion of a communications session (which may extend across several transport connections), each application uses a GSSContext method to invalidate the security context and release any system or cryptographic resources held. Multiple contexts may also be used (either successively or simultaneously) within a single communications association, at the discretion of the applications.

4)いくつかのトランスポート接続を横切って延びることができる通信セッション()が完了した時点で、各アプリケーションは、セキュリティコンテキストを無効にして保持する任意のシステムまたは暗号化リソースを解放するGSSContextのメソッドを使用しています。複数のコンテキストは、アプリケーションの裁量で、単一の通信アソシエーション内(いずれかの連続的または同時に)使用することができます。

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

This section discusses the optional services that a context initiator may request of the GSS-API before the context establishment. Each of these services is requested by calling the appropriate mutator method in the GSSContext object before the first call to init is performed. Only the context initiator can request context flags.

このセクションでは、コンテキストの起動は、コンテキスト確立する前に、GSS-APIを要求することができるオプションサービスについて説明します。これらの各サービスは、初期化の最初の呼び出しが実行される前に、GSSContextのオブジェクト内の適切なミューテータメソッドを呼び出すことによって要求されました。唯一のコンテキストイニシエータは、コンテキストフラグを要求することができます。

The optional services 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, GSSContext per-message operations of getMIC and wrap should include message numbering information to enable verifyMIC and unwrap to detect if a message has been duplicated.

リプレイ検出は、メッセージの整合性サービスを提供するだけでなく、のgetMICとラップのGSSContextのメッセージごとの操作がたverifyMICを有効にすると、メッセージが複製されたかどうかを検出するためにアンラップするメッセージ番号の情報を含める必要があります。

Out-of-Sequence Detection In addition to providing message integrity services, GSSContext per-message operations (getMIC and wrap) should include message sequencing information to enable verifyMIC and unwrap to detect if a message has been received out of sequence.

メッセージの整合性サービスを提供することに加えて、検出・シーケンスアウト、GSSContextのメッセージごとの操作(のgetMICとラップが)たverifyMICを有効にすると、メッセージが順序で受信されたかどうかを検出するためにアンラップするメッセージシーケンス情報を含める必要があります。

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

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

Some mechanisms may not support all optional services, and some mechanisms may only support some services in conjunction with others. The GSSContext interface offers query methods to allow the verification by the calling application of which services will be available from the context when the establishment phase is complete. 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.

いくつかのメカニズムは、すべてのオプションのサービスをサポートしていない可能性、およびいくつかのメカニズムが唯一他の人と一緒にいくつかのサービスをサポートすることができます。 GSSContextのインターフェイスは、サービスが確立フェーズが完了し、コンテキストから利用できるようになるの呼び出し元のアプリケーションによって検証を可能にするために、クエリメソッドを提供しています。セキュリティ・メカニズムは、要求されたサービスを提供することが可能である場合には、追加のサービスが要求されたサービスを提供するために有効にする必要がある場合でも、一般的に、それはそうする必要があります。メカニズムは、要求されたサービスを提供することができない場合、それは必須であることを要求されたサービスを考慮した場合、コンテキスト確立プロセスを中止するようにアプリケーションを離れることなく、サービス進めるべき。

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つのトークンを送信するために必要とされています。

3.1. Delegation
3.1. 代表団

The GSS-API allows delegation to be controlled by the initiating application via the requestCredDeleg method before the first call to init has been issued. Some mechanisms do not support delegation, and for such mechanisms attempts by an application to enable delegation are ignored.

GSS-APIは、initへの最初の呼び出しが発行された前代表団がrequestCredDeleg方法を経由して開始するアプリケーションによって制御することができます。いくつかのメカニズムは、委任をサポートしていませんし、そのようなメカニズムのための委任を有効にするアプリケーションによって試みは無視されます。

The acceptor of a security context, for which the initiator enabled delegation, can check if delegation was enabled by using the getCredDelegState method of the GSSContext interface. In cases when it is, the delegated credential object can be obtained by calling the getDelegCred method. The obtained GSSCredential object may then 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".

代表団は、GSSContextのインターフェイスのgetCredDelegStateメソッドを使用して、有効になっている場合、イニシエータは、委任を有効にいるセキュリティコンテキストのアクセプターは、確認することができます。それがある場合のケースでは、委任証明書の目的は、getDelegCredメソッドを呼び出すことによって得ることができます。得られたGSSCredentialのオブジェクトは、開始剤または委譲として後続の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 object 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 the GSSContext object 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によって提供される単純な委任コントロールは、常にオーバー乗り、他の機構固有の委任コントロールにできるはずです。アプリケーションは、委任が望まれていないことをGSSContextのオブジェクトを指示した場合は、実装が発生する委任を許可してはいけません。代表団は唯一のアプリケーションの明示的な要求に提供することができる - これは、彼らが要求されていない場合でも、メカニズムがサービスを可能にする一般的な規則の例外です。

3.2. Mutual Authentication
3.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 calling the requestMutualAuth method of the GSSContext interface with a "true" parameter before making the first call to init. 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 may 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.

通常、コンテキストアクセプターは、アクセプターが前イニシエータのサービスを実行するアクセス制御決定を行うことができるようにコンテキストの起動は、自分自身を認証することを要求します。いくつかのケースでは、イニシエータはまた、アクセプターが自身を認証することを要求することができます。 GSS-APIは、開始アプリケーションが初期化の最初の呼び出しを行う前に「真」パラメータでGSSContextのインターフェイスのrequestMutualAuthメソッドを呼び出すことによって、この相互認証サービスを要求することができます。開始アプリケーションは、コンテキストアクセプターは、それ自体を認証したか否かを知らされます。いくつかのメカニズムが相互認証をサポートしていない可能性がありますし、他のメカニズムは、常に開始、アプリケーションがそれを要求したかどうかにかかわらず、相互認証を行うことができます。具体的には、相互認証は、再生またはアウトオブシーケンスメッセージの検出をサポートするためにいくつかのメカニズムによって必要となる場合があり、そのようなメカニズムのために、これらのサービスのいずれかの要求が自動的に相互認証を可能にするであろう。

3.3. Replay and Out-of-Sequence Detection
3.3. リプレイとアウトオブ配列検出

The GSS-API may provide detection of mis-ordered messages once a security context has been established. Protection may be applied to messages by either application, by calling either getMIC or wrap methods of the GSSContext interface, and verified by the peer application by calling verifyMIC or unwrap for the peer's GSSContext object.

セキュリティコンテキストが確立された後、GSS-APIは、誤発注のメッセージの検出を提供することができます。保護たverifyMICを呼び出すか、ピアのGSSContextのオブジェクトに対してアンラップでのgetMICまたはGSSContextのインターフェイスのラップ方法のいずれかを呼び出すことにより、いずれかのアプリケーションによってメッセージに適用し、ピアアプリケーションによって検証することができます。

The getMIC method calculates a cryptographic checksum of an application message, and returns that checksum in a token. The application should pass both the token and the message to the peer application, which presents them to the verifyMIC method of the peer's GSSContext object.

getMICメソッドは、アプリケーション・メッセージの暗号チェックサムを計算し、トークンにそのチェックサムを返します。アプリケーションは、ピアのGSSContextのオブジェクトのメソッドたverifyMICに提示するピアアプリケーションにトークンとメッセージの両方を渡す必要があります。

The wrap method calculates a cryptographic checksum of an application message, and places both the checksum and the message inside a single token. The application should pass the token to the peer application, which presents it to the unwrap method of the peer's GSSContext object to extract the message and verify the checksum.

ラップ方法は、アプリケーション・メッセージの暗号チェックサムを計算し、単一のトークン内部のチェックサムとメッセージの両方を配置します。アプリケーションは、メッセージを抽出し、チェックサムを確認するためにピアのGSSContextのオブジェクトのアンラップ方法に提示ピアアプリケーションにトークンを渡す必要があります。

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 query methods of the MessageProp object that is filled in by each of these routines.

ルーチンのいずれかのペアがアウトオブシーケンスメッセージのメッセージ配信、または重複を検出することができます。このような誤順序付けメッセージの詳細は、これらのルーチンの各々によって満たされるMessagePropオブジェクトの補足照会方法によって示されています。

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 the isOldToken method of the instance of MessageProp to return "true".

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

3.4. Anonymous Authentication
3.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 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 isAnonymous method of the GSSContext class), the getSrcName method of the acceptor's GSSContext object will, for such contexts, return a reserved internal-form name, defined by the implementation.

コンテキストが(GSSContextのクラスのisAnonymous方法を介して)匿名で確立されているアプリケーションに通知することに加えて、アクセプタのGSSContextのオブジェクトのgetSrcName方法は、そのような状況のために、実装によって定義された予約済み内部フォーム名を返します。

The toString method for a GSSName object representing an anonymous entity will return a printable name. The returned value will be syntactically distinguishable from any valid principal name supported by the implementation. The associated name-type object identifier will be an oid representing the value of NT_ANONYMOUS. This name-type oid will be defined as a public, static Oid object of the GSSName class. 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 ">".

匿名のエンティティを表すたGSSNameオブジェクトのtoStringメソッドは、印刷可能な名前を返します。返される値は、実装によってサポートされている任意の有効なプリンシパル名から構文的に区別可能になります。関連した名前型オブジェクト識別子はNT_ANONYMOUSの値を表すOIDであろう。この名前型OIDは、たGSSNameクラスの公開、静的のOidオブジェクトとして定義されます。この名前は、例えば、監査ログに表示されるかもしれないので、匿名の名前の印刷可能な形式は、それが匿名性を暗示するように選択されるべきです。実装でサポートされている有効な印刷可能な名前がで始めることができない場合たとえば、文字列が「<匿名>」、良い選択かもしれません「<」で終わります「>」。

When using the equal method of the GSSName interface, and one of the operands is a GSSName instance representing an anonymous entity, the method must return "false".

たGSSNameインタフェースの同じ方法を使用して、オペランドの一方が匿名のエンティティを表すたGSSNameのインスタンスである場合、この方法は、「偽」を返す必要があります。

3.5. Confidentiality
3.5. 機密性

If a GSSContext supports the confidentiality service, wrap method may be used to encrypt application messages. Messages are selectively encrypted, under the control of the setPrivacy method of the MessageProp object used in the wrap method.

GSSContextのは、機密性サービスをサポートしている場合は、wrapメソッドは、アプリケーションのメッセージを暗号化するために使用することができます。メッセージは選択ラップ法で使用されるMessagePropオブジェクトのsetPrivacy法の制御下で、暗号化されています。

3.6. Inter-process Context Transfer
3.6. プロセス間のコンテキスト転送

GSS-API V2 provides functionality which allows a security context to be transferred between processes on a single machine. These are implemented using the export method of GSSContext and a byte array constructor of the same class. 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 object created within the parent so that they can use per-message protection services and delete the security context when the communication session ends.

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

Since the security context data structure is expected to contain sequencing information, it is impractical in general to share a context between processes. Thus GSSContext interface provides an export method 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 re-create the context. After successful completion of export, the original security context is made inaccessible to the calling process by GSS-API and any further usage of this object will result in failures. The originating process transfers the inter-process token to the adopting process, which creates a new GSSContext object using the byte array constructor. The properties of the context are equivalent to that of the original context.

セキュリティコンテキストデータ構造をシーケンシング情報を含むことが予想されるので、プロセス間でコンテキストを共有することが一般的に実用的ではありません。したがって、GSSContextのインタフェースは、現在のコンテキストを所有しているプロセスは、それがその後のコンテキストを使用する意思がないことを宣言するために呼び出すことができ、かつ成功し直す採用するプロセスが必要とする情報を含むプロセス間トークンを作成するには、エクスポートする方法を提供コンテキストを-create。輸出が正常に完了した後、元のセキュリティコンテキストは、GSS-APIと失敗になります。このオブジェクトの任意のさらなる使用によって呼び出し元のプロセスにアクセスできないようにしています。発信プロセスは、バイト配列のコンストラクタを使用して、新しいGSSContextのオブジェクトを作成採用プロセスにプロセス間トークンを転送します。コンテキストの特性は、元のコンテキストのそれと同等です。

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. Calling the isTransferable method of the GSSContext interface will indicate if the context object is transferable.

実装は、セキュリティコンテキストのプロセス間転送をサポートする必要はありません。コンテキストオブジェクトが移転可能であるかどうかを示すだろうGSSContextのインターフェイスのisTransferableメソッドを呼び出します。

3.7. The Use of Incomplete Contexts
3.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 tokens for the context acceptor to immediately decode messages protected with wrap or getMIC. 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.

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

An application can invoke the isProtReady method of the GSSContext class to determine if the per-message services are available in advance of complete context establishment. Applications wishing to use per-message protection services on partially-established contexts should query this method before attempting to invoke wrap or getMIC.

アプリケーションは、メッセージごとのサービスが完全コンテキスト確立の前に利用可能であるかどうかを決定するためにGSSContextのクラスのisProtReadyメソッドを呼び出すことができます。部分的に確立されたコンテキストにメッセージごとの保護サービスを使用したいアプリケーションは、ラップやのgetMICを起動する前に、この方法を問い合わせる必要があります。

4. Calling Conventions
4.呼び出し規約

Java provides the implementors with not just a syntax for the language, but also an operational environment. For example, memory is automatically managed and does not require application intervention. These language features have allowed for a simpler API and have led to the elimination of certain GSS-API functions.

Javaはだけでなく、言語の構文、だけでなく、運用環境で実装を提供します。例えば、メモリは自動的に管理され、アプリケーションの介入を必要としません。これらの言語機能は、シンプルなAPIのために許可されていると、特定のGSS-API関数の解消につながっています。

Moreover, the JCA defines a provider model which allows for implementation independent access to security services. Using this model, applications can seamlessly switch between different implementations and dynamically add new services. The GSS-API specification leverages these concepts by the usage of providers for the mechanism implementations.

また、JCAは、セキュリティサービスの実装に依存しないアクセスを可能にするプロバイダモデルを定義します。このモデルを使用して、アプリケーションをシームレスに異なる実装を切り替えると、動的に新しいサービスを追加することができます。 GSS-API仕様は、メカニズムの実装のためのプロバイダの使用によって、これらの概念を活用しています。

4.1. Package Name
4.1. パッケージ名

The classes and interfaces defined in this document reside in the package called "org.ietf.jgss". Applications that wish to make use of this API should import this package name as shown in section 7.

この文書で定義されたクラスとインタフェースは、「org.ietf.jgssの」と呼ばれるパッケージに存在します。セクション7に示すように、このAPIの利用をしたいアプリケーションは、このパッケージ名をインポートする必要があります。

4.2. Provider Framework
4.2. プロバイダフレームワーク

The Java security API's use a provider architecture that allows applications to be implementation independent and security API implementations to be modular and extensible. The java.security.Provider class is an abstract class that a vendor extends. This class maps various properties that represent different security services that are available to the names of the actual vendor classes that implement those services. When requesting a service, an application simply specifies the desired provider and the API delegates the request to service classes available from that provider.

JavaセキュリティAPIの使用アプリケーションは、モジュラーおよび拡張できるように実装独立したセキュリティAPIの実装にすることができますプロバイダアーキテクチャ。 java.security.Providerクラスは、ベンダーが延び抽象クラスです。このクラスは、それらのサービスを実装し、実際のベンダクラスの名前に使用できるさまざまなセキュリティサービスを表すさまざまなプロパティをマップします。サービスを要求すると、アプリケーションは、単にそのプロバイダから利用可能なサービス・クラスへの要求希望プロバイダとAPIのデリゲートを指定します。

Using the Java security provider model insulates applications from implementation details of the services they wish to use. Applications can switch between providers easily and new providers can be added as needed, even at runtime.

Javaセキュリティプロバイダのモデルを使用すると、彼らが使用したいサービスの実装の詳細からアプリケーションを絶縁します。アプリケーションは、簡単にプロバイダを切り替えることができ、新たなプロバイダでも、実行時に、必要に応じて追加することができます。

The GSS-API may use providers to find components for specific underlying security mechanisms. For instance, a particular provider might contain components that will allow the GSS-API to support the Kerberos v5 mechanism and another might contain components to support the SPKM mechanism. By delegating mechanism specific functionality to the components obtained from providers the GSS-API can be extended to support an arbitrary list of mechanism.

GSS-APIは、特定の基本的なセキュリティメカニズムのための部品を見つけるために、プロバイダを使用することができます。例えば、特定のプロバイダは、GSS-APIがKerberos V5メカニズムをサポートすることを可能にするコンポーネントが含まれている可能性があり、他にはSPKMメカニズムをサポートするためのコンポーネントが含まれている場合があります。提供者から得られたコンポーネントに機構特定の機能を委任することによってGSS-API機構の任意のリストをサポートするように拡張することができます。

How the GSS-API locates and queries these providers is beyond the scope of this document and is being deferred to a Service Provider Interface (SPI) specification. The availability of such a SPI specification is not mandatory for the adoption of this API specification nor is it mandatory to use providers in the implementation of a GSS-API framework. However, by using the provider framework together with an SPI specification one can create an extensible and implementation independent GSS-API framework.

GSS-APIを検索し、これらのプロバイダに問い合わせをどのように、このドキュメントの範囲を超えていると、サービスプロバイダインタフェース(SPI)仕様に延期されています。このようSPI仕様の可用性は、このAPI仕様の採用には必須ではありませんもGSS-APIフレームワークの実装でプロバイダを使用することが必須です。しかし、SPI仕様と共にプロバイダフレームワークを使用して、一方が拡張可能と実装の独立したGSS-APIフレームワークを作成することができます。

4.3. Integer types
4.3. 整数タイプ

All numeric values are declared as "int" primitive Java type. The Java specification guarantees that this will be a 32 bit two's complement signed number.

すべての数値は、「INT」プリミティブJava型として宣言されています。 Java仕様は、これは32ビットの2の補数の符号付き数であることを保証します。

Throughout this API, the "boolean" primitive Java type is used wherever a boolean value is required or returned.

ブール値が必要か、返却されている場所、このAPIを通じて、「ブール」Javaのプリミティブ型が使用されています。

4.4. Opaque Data types
4.4. 不透明なデータタイプ

Java byte arrays are used to represent opaque data types which are consumed and produced by the GSS-API in the forms of tokens. Java arrays contain a length field which enables the users to easily determine their size. The language has automatic garbage collection which alleviates the need by developers to release memory and simplifies buffer ownership issues.

Javaバイト配列は、トークンの形でGSS-APIによって消費と生成される不透明なデータ型を表すために使用されます。 Java配列を容易にそれらのサイズを決定することができます長さフィールドを含みます。言語は、メモリを解放するために開発者が必要性を軽減し、バッファの所有権の問題を簡素化し、自動ガベージコレクションを持っています。

4.5. Strings
4.5. ストリング

The String object will be used to represent all textual data. The Java String object, transparently treats all characters as two-byte Unicode characters which allows support for many locals. All routines returning or accepting textual data will use the String object.

Stringオブジェクトは、すべてのテキストデータを表現するために使用されます。 JavaのStringオブジェクトは、透過的に多くの地元の人々のためのサポートを可能にする2バイトのUnicode文字としてすべての文字を扱います。テキストデータを返すか、受け入れてすべてのルーチンは、Stringオブジェクトを使用します。

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

An Oid object will be used to represent Universal Object Identifiers (Oids). Oids are ISO-defined, hierarchically globally-interpretable identifiers used within the GSS-API framework to identify security mechanisms and name formats. The Oid object can be created from a string representation of its dot notation (e.g. "1.3.6.1.5.6.2") as well as from its ASN.1 DER encoding. Methods are also provided to test equality and provide the DER representation for the object.

Oidオブジェクトユニバーサルオブジェクト識別子(OID)を表すために使用されます。 OIDは、セキュリティ・メカニズムと名の形式を識別するために、GSS-APIフレームワーク内で使用されるISO-定義され、階層的にグローバルに解釈できる識別子です。 OidオブジェクトをそのASN.1 DERエンコーディングからそのドット表記(例えば「1.3.6.1.5.6.2」)並びにの文字列表現から作成することができます。方法もまた平等をテストして、オブジェクトのDER表現を提供するために設けられています。

An important feature of the Oid class is that its instances are immutable - i.e. there are no methods defined that allow one to change the contents of an Oid. This property allows one to treat these objects as "statics" without the need to perform copies.

Oidクラスの重要な特徴は、そのインスタンスは不変であるということです - つまり1 OIDの内容を変更することができるよう定義された方法はありません。このプロパティは、1つのコピーを実行する必要なしに、「静」のように、これらのオブジェクトを扱うことができます。

Certain routines allow the usage of a default oid. A "null" value can be used in those cases.

特定のルーチンは、デフォルトのOIDの使用を許可します。 「ヌル」値は、そのような場合に使用することができます。

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

The Java bindings represents object identifiers sets as arrays of Oid objects. All Java arrays contain a length field which allows for easy manipulation and reference.

Javaバインディングは、OIDオブジェクトの配列としてオブジェクト識別子セットを表します。すべてのJavaの配列は、容易に操作し、参照することができます長さフィールドが含まれています。

In order to support the full functionality of RFC 2743, the Oid class includes a method which checks for existence of an Oid object within a specified array. This is equivalent in functionality to gss_test_oid_set_member. The use of Java arrays and Java's automatic garbage collection has eliminated the need for the following routines: gss_create_empty_oid_set, gss_release_oid_set, and gss_add_oid_set_member. Java GSS-API implementations will not contain them. Java's automatic garbage collection and the immutable property of the Oid object eliminates the complicated memory management issues of the C counterpart.

RFC 2743の全機能をサポートするために、のOidクラスが指定された配列内のOidオブジェクトの存在をチェックする方法を含みます。これはgss_test_oid_set_memberする機能に相当します。 gss_create_empty_oid_set、gss_release_oid_set、およびgss_add_oid_set_member:Java配列およびJavaの自動ガベージコレクションを使用するには、以下のルーチンの必要性を排除しています。 JavaのGSS-APIの実装では、それらは含まれません。 Javaの自動ガベージコレクションおよびOIDオブジェクトの不変のプロパティは、C相手の複雑なメモリ管理の問題を解消します。

When ever a default value for an Object Identifier Set is required, a "null" value can be used. Please consult the detailed method description for details.

オブジェクト識別子の設定のためのこれまでのデフォルト値が必要な場合は、「ヌル」値を使用することができます。詳細については、詳細な方法の説明を参照してください。

4.8. Credentials
4.8. 資格情報

GSS-API credentials are represented by the GSSCredential interface. The interface contains several constructs to allow for the creation of most common credential objects for the initiator and the acceptor. Comparisons are performed using the interface's "equals" method. The following general description of GSS-API credentials is included from the C-bindings specification:

GSS-API資格はGSSCredentialのインターフェースで表現されています。インターフェースは、イニシエータとアクセプタのための最も一般的な資格情報オブジェクトの作成を可能にするために、いくつかの構成要素が含まれています。比較は、インターフェイスの「イコール」メソッドを使用して実行されます。 GSS-API認証情報の次の一般的な説明は、C-バインディング仕様から含まれています。

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. A single GSSCredential object represents all the credential elements that have been acquired.

資格情報は、機構固有のプリンシパルのセットを記述し、その所有者にこれらの主体のいずれかとして作用する能力を与えます。このプロパティの執行は実装固有の問題ではあるが、単一のGSS-API認証情報によってアサートすべての主要なアイデンティティは、同じエンティティに属している必要があります。単一GSSCredentialのオブジェクトが取得されたすべての資格の要素を表しています。

The creation's of an GSSContext object allows the value of "null" to be specified as the GSSCredential input parameter. This will indicate 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:

作成者のGSSContextのオブジェクトのは、「ヌル」の値がGSSCredentialの入力パラメータとして指定することができます。これはデフォルトのプリンシパルとして動作するアプリケーションによって意欲を示します。個々のGSS-APIの実装はメカニズムに適宜なデフォルトの動作を決定するのは自由ですが、これらのルーチンによって、次のデフォルトの動作では、移植性のために推奨されます。

For the initiator side of the 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を使用する必要があります。

and for the acceptor side of the 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 processed during the accept method, 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 whenever possible. Applications requesting default behavior are likely to be more portable across mechanisms and implementations than ones that instantiate an GSSCredential object representing a specific identity.

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

4.9. Contexts
4.9. コンテキスト

The GSSContext interface is used to represent one end of a GSS-API security context, storing state information appropriate to that end of the peer communication, including cryptographic state information. The instantiation of the context object is done differently by the initiator and the acceptor. After the context has been instantiated, the initiator may choose to set various context options which will determine the characteristics of the desired security context. When all the application desired characteristics have been set, the initiator will call the initSecContext method which will produce a token for consumption by the peer's acceptSecContext method. It is the responsibility of the application to deliver the authentication token(s) between the peer applications for processing. Upon completion of the context establishment phase, context attributes can be retrieved, by both the initiator and acceptor, using the accessor methods. These will reflect the actual attributes of the established context. At this point the context can be used by the application to apply cryptographic services to its data.

GSSContextのインタフェースは、暗号状態情報を含むピア通信の端部に適切な状態情報を格納し、GSS-APIセキュリティコンテキストの一端を表すために使用されます。コンテキストオブジェクトのインスタンス化は、イニシエータとアクセプタによって異なって行われます。コンテキストがインスタンス化された後、開始剤は、所望のセキュリティコンテキストの特性を決定するさまざまなコンテキストオプションを設定することを選択してもよいです。すべてのアプリケーションの所望の特性が設定されている場合、イニシエータは、ピアのacceptSecContextメソッドによる消費のためのトークンを生成するinitSecContextメソッドを呼び出します。これは、処理のためにピアアプリケーション間の認証トークン(複数可)を送達するためのアプリケーションの責任です。コンテキスト確立フェーズが完了すると、コンテキスト属性は、アクセサメソッドを使用して、イニシエータとアクセプタの両方によって、取得することができます。これらは、確立されたコンテキストの実際の属性が反映されます。この時点で、コンテキストがそのデータに暗号化サービスを適用するために、アプリケーションで使用することができます。

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

A token is a caller-opaque type that GSS-API uses to maintain synchronization between each end of the 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) within the application protocol and transfer of the token are the responsibility of the peer applications.

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

Java GSS-API uses byte arrays to represent authentication tokens. Overloaded methods exist which allow the caller to supply input and output streams which will be used for the reading and writing of the token data.

JavaのGSS-APIは、認証トークンを表すためにバイト配列を使用しています。オーバーロードされたメソッドは、呼び出し側がトークンデータの読み書きに使用される入力および出力ストリームを供給することを可能にするが存在します。

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

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. 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 represented using a byte array emitted from the export method of the GSSContext interface. The receiver of the interprocess token would initialize an GSSContext object with this token to create a new context. Once a context has been exported, the GSSContext object is invalidated and is no longer available.

特定のGSS-APIルーチンは、マルチプロセスプログラム内のプロセス間でデータを転送することを意図しています。これらのルーチンは、別のプロセスでGSS-APIで使用するための1つのプロセスでGSS-APIによって生成され、発信者-不透明なオクテット文字列を、使用しています。呼び出し元のアプリケーションはプロセス間で、このようなトークンを転送するための責任があります。 GSS-APIの実装者は、プロセス間トークン内の機密情報を置くことを避けるために、またはそれらを保護、暗号することが奨励されている一方で、なお、多くの実装は、その中にキーマテリアルやその他の機密データを配置しないようにすることができません。プロセス間トークンが輸送中に保護され、唯一の信頼できるプロセスに転送されることを保証するために、アプリケーションの責任です。プロセス間トークンはGSSContextのインターフェースのエクスポート方法から出射されたバイト配列を使用して表されます。間トークンの受信機は、新しいコンテキストを作成するには、このトークンを使用してGSSContextのオブジェクトを初期化します。コンテキストがエクスポートされた後、GSSContextのオブジェクトは無効にしないと使用できなくなりました。

4.12. Error Reporting
4.12. エラー報告

RFC 2743 defined the usage of major and minor status values for signaling of GSS-API errors. The major code, also called GSS status code, is used to signal errors at the GSS-API level independent of the underlying mechanism(s). The minor status value or Mechanism status code, is a mechanism defined error value indicating a mechanism specific error code.

RFC 2743は、GSS-APIエラーのシグナリングのためのメジャーとマイナーのステータス値の使用方法を定義しました。メジャーコードとも呼ばれるGSSステータスコードは、根底にある機構(単数または複数)の独立したGSS-APIレベルでエラーを通知するために使用されます。マイナー状態値またはメカニズムのステータスコードは、機構固有のエラーコードを示す機構定義されたエラー値です。

Java GSS-API uses exceptions implemented by the GSSException class to signal both minor and major error values. Both mechanism specific errors and GSS-API level errors are signaled through instances of this class. The usage of exceptions replaces the need for major and minor codes to be used within the API calls. GSSException class also contains methods to obtain textual representations for both the major and minor values, which is equivalent to the functionality of gss_display_status.

JavaのGSS-APIは、マイナーとメジャーエラー値の両方を知らせるためてGSSExceptionクラスによって実装された例外を使用しています。機構特定のエラーとGSS-APIレベルのエラーの両方は、このクラスのインスタンスを介してシグナリングされます。例外の使用は、API呼び出し内で使用するメジャーとマイナーコードの必要性を置き換えます。 GSSExceptionクラスもgss_display_statusの機能と同じでメジャーとマイナーの値が、両方のためのテキスト表現を取得するためのメソッドが含まれています。

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

GSS status 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 generic API routine errors (errors that are defined in the GSS-API specification). These bindings take advantage of the Java exceptions mechanism, thus eliminating the need for calling errors.

GSSステータスコードは、セキュリティサービスを提供するために使用される基礎となるメカニズム(S)から独立しているエラーを示します。 GSSステータスコードを介して示すことができるエラーは、汎用APIルーチンエラー(GSS-API仕様で定義されたエラー)です。これらのバインディングは、このようにエラーを呼び出すための必要性を排除し、Javaの例外メカニズムを活用します。

A GSS status code indicates a single fatal generic API error from the routine that has thrown the GSSException. Using exceptions announces that a fatal error has occurred during the execution of the method. The GSS-API operational model also allows for the signaling of supplementary status information from the per-message calls. These need to be handled as return values since using exceptions is not appropriate for informatory or warning-like information. The methods that are capable of producing supplementary information are the two per-message methods GSSContext.verifyMIC() and GSSContext.unwrap(). These methods fill the supplementary status codes in the MessageProp object that was passed in.

GSSステータスコードは、てGSSExceptionをスローしたルーチンから単一の致命的な汎用APIエラーを示します。例外を使用すると、致命的なエラーは、メソッドの実行中に発生したことを発表しました。 GSS-API運用モデルも、メッセージごとの呼び出しからの補助的なステータス情報をシグナリングすることができます。これらは、例外を使用してinformatoryまたは警告のような情報には適していないため、戻り値として処理する必要があります。付帯情報を生成することができる方法はGSSContext.verifyMIC()とGSSContext.unwrap()は、2つのメッセージごとの方法です。これらのメソッドは、渡されたMessagePropオブジェクト内の補足ステータスコードを記入してください。

GSSException object, along with providing the functionality for setting of the various error codes and translating them into textual representation, also contains the definitions of all the numeric error values. The following table lists the definitions of error codes:

GSSExceptionオブジェクトは、様々なエラーコードの設定とテキスト表現にそれらを変換するための機能を提供するとともに、また、すべての数値エラー値の定義を含みます。次の表は、エラーコードの定義を示しています。

Table: GSS Status Codes

表:GSSステータスコード

Name Value Meaning

名前値意味

BAD_MECH 1 An unsupported mechanism was requested.

BAD_MECH 1サポートされていないメカニズムが要求されました。

BAD_NAME 2 An invalid name was supplied.

BAD_NAME 2は、無効な名前を供給しました。

BAD_NAMETYPE 3 A supplied name was of an unsupported type.

BAD_NAMETYPE 3供給された名前はサポートされていないタイプのものでした。

BAD_BINDINGS 4 Incorrect channel bindings were supplied.

BAD_BINDINGS 4つの誤ったチャネルバインディングを供給しました。

BAD_STATUS 5 An invalid status code was supplied.

BAD_STATUS 5無効なステータスコードを供給しました。

BAD_MIC 6 A token had an invalid MIC.

BAD_MIC 6は、トークンが無効MICを持っていました。

NO_CRED 7 No credentials were supplied, or the credentials were unavailable or inaccessible.

NO_CRED 7いいえ資格情報が提供されなかった、または資格情報が使用できないか、アクセスできませんでした。

NO_CONTEXT 8 Invalid context has been supplied.

NO_CONTEXT 8無効なコンテキストが供給されていました。

DEFECTIVE_TOKEN 9 A supplied token was invalid.

DEFECTIVE_TOKEN 9 Aは、トークンが無効で供給しました。

DEFECTIVE_CREDENTIAL 10 A supplied credential was invalid.

DEFECTIVE_CREDENTIAL 10は、供給される資格が無効でした。

CREDENTIALS_EXPIRED 11 The referenced credentials have expired.

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

CONTEXT_EXPIRED 12 The context has expired.

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

FAILURE 13 Miscellaneous failure, unspecified at the GSS-API level.

GSS-APIレベルに指定されていないFAILURE 13その他の障害、。

BAD_QOP 14 The quality-of-protection requested could not be provided.

BAD_QOP 14保護品質要求を提供することができませんでした。

UNAUTHORIZED 15 The operation is forbidden by local security policy.

不正15の動作は、ローカルセキュリティポリシーによって禁止されています。

UNAVAILABLE 16 The operation or option is unavailable.

UNAVAILABLE 16操作またはオプションは使用できません。

DUPLICATE_ELEMENT 17 The requested credential element already exists.

DUPLICATE_ELEMENT 17要求された資格要素がすでに存在しています。

NAME_NOT_MN 18 The provided name was not a mechanism name.

NAME_NOT_MN 18は、提供された名前はメカニズム名ではありませんでした。

OLD_TOKEN 19 The token's validity period has expired.

OLD_TOKEN 19トークンの有効期間が満了しています。

DUPLICATE_TOKEN 20 The token was a duplicate of an earlier version.

DUPLICATE_TOKEN 20トークンは、以前のバージョンの重複でした。

The GSS major status code of 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 can provide more details about the error.

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

The different major status codes that can be contained in the GSSException object thrown by the methods in this specification are the same as the major status codes returned by the corresponding calls in RFC 2743 [GSSAPIv2-UPDATE].

本明細書中の方法によってスローてGSSExceptionオブジェクトに格納することができる別の主要なステータスコードは、RFC 2743に対応するコール[GSSAPIv2-UPDATE]によって返された主要なステータスコードと同じです。

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

Mechanism-specific status codes are communicated in two ways, they are part of any GSSException thrown from the mechanism specific layer to signal a fatal error, or they are part of the MessageProp object that the per-message calls use to signal non-fatal errors.

機構固有のステータスコードは、二つの方法で通信され、それらは致命的なエラーを通知するためのメカニズム特定層からスロー任意てGSSExceptionの一部である、またはそれらは、メッセージごとの非致命的なエラーを通知するために使用することを呼び出すことMessagePropオブジェクトの一部であります。

A default value of 0 in either the GSSException object or the MessageProp object will be used to represent the absence of any mechanism specific status code.

GSSExceptionオブジェクトまたはMessagePropオブジェクトのいずれかに0のデフォルト値は、任意の機構特定のステータスコードが存在しないことを表すために使用されるであろう。

4.12.3. Supplementary status codes
4.12.3. 補足ステータスコード

Supplementary status codes are confined to the per-message methods of the GSSContext interface. Because of the informative nature of these errors it is not appropriate to use exceptions to signal them. Instead, the per-message operations of the GSSContext interface return these values in a MessageProp object.

補助ステータスコードはGSSContextのインタフェースのメッセージごとの方法に限定されます。これらのエラーの有益な性質のため、彼らを通知するために例外を使用することは適切ではありません。代わりに、GSSContextのインタフェースのメッセージごとの操作がMessagePropオブジェクトでこれらの値を返します。

The MessageProp class defines query methods which return boolean values indicating the following supplementary states:

MessagePropクラスは、次の補助状態を示すブール値を返すクエリメソッドを定義します。

Table: Supplementary Status Methods

表:補足ステータスのメソッド

Method Name Meaning when "true" is returned

返されたとき「真」の意味メソッド名

isDuplicateToken The token was a duplicate of an earlier token.

isDuplicateTokenトークンは以前のトークンの複製です。

isOldToken The token's validity period has expired.

isOldTokenトークンの有効期間が満了しています。

isUnseqToken A later token has already been processed.

isUnseqToken後のトークンがすでに処理されています。

isGapToken An expected per-message token was not received.

isGapToken期待メッセージごとのトークンが受信されませんでした。

"true" return value for any of the above methods indicates that the token exhibited the specified property. The application must determine the appropriate course of action for these supplementary values. They are not treated as errors by the GSS-API.

上記の方法のいずれかのための「真」の戻り値は、トークンが指定されたプロパティを示したことを示しています。アプリケーションは、これらの補助的な値のための適切な措置を決定する必要があります。これらは、GSS-APIによってエラーとして扱われません。

4.13. Names
4.13. 名

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, GSS-API's naming support is necessarily complex in multi-mechanism environments (or even in some single-mechanism environments where the underlying mechanism supports multiple namespaces).

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

Two distinct conceptual representations are defined for names:

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

1) A GSS-API form represented by implementations of the GSSName interface: A single GSSName 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 getName method of the GSSCredential interface, when applied to a credential containing credential elements for multiple authentication mechanisms employing different namespaces. This GSSName object will contain a distinct name for the entity for each authentication mechanism.

たGSSNameインタフェースの実装によって表される1)GSS-APIの形態:単一たGSSNameオブジェクトは異なる名前空間から複数の名前を含んでいてもよいが、すべての名前が同じエンティティを参照するべきです。このような内部名の例は、異なる名前空間を使用する複数の認証メカニズムの資格要素を含む信用証明書に適用されるGSSCredentialのインタフェースのgetNameメソッドの呼び出しから返される名前であろう。このたGSSNameオブジェクトには、各認証機構のためのエンティティのための個別の名前が含まれます。

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

複数の名前空間をサポートしているGSS-APIの実装では、たGSSNameの実装は、各プリミティブの名前が属する名前空間を決定するのに十分な情報が含まれている必要があります。

2) Mechanism-specific contiguous byte array and string forms: Different GSSName initialization methods are provided to handle both byte array and string formats and to accommodate various calling applications and name types. These formats are capable of containing only 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 that name. The string name forms are assumed to be printable, and may therefore be used by GSS-API applications for communication with their users. The byte array name formats are assumed to be in non-printable formats (e.g. the byte array returned from the export method of the GSSName interface).

2)機構固有の連続したバイト配列と文字列の形式:別たGSSName初期化方法は、両方のバイト配列と文字列形式を処理するために、呼び出しアプリケーションと名前タイプ各種を収容するために設けられています。これらのフォーマットは、(単一のネームスペースからの)単一の名前を含むことが可能です。連続した文字列名は必ず名前が属する名前空間を指定するオブジェクト識別子を伴う、およびそのフォーマットは、その名前を使用した認証メカニズムに依存しています。ストリング名フォームは、印刷可能であると仮定され、したがって、それらのユーザとの通信のためにGSS-APIアプリケーションによって使用されてもよいです。バイト配列名の形式は、非印刷可能なフォーマット(例えば、バイト配列たGSSNameインタフェースのExportメソッドから返された)であると仮定されます。

A GSSName object can be converted to a contiguous representation by using the toString method. This will guarantee that the name will be converted to a printable format. Different initialization methods in the GSSName interface are defined allowing support for multiple syntaxes for each supported namespace, and allowing users the freedom to choose a preferred name representation. The toString method should use an implementation-chosen printable syntax for each supported name-type. To obtain the printable name type, getStringNameType method can be used.

たGSSNameオブジェクトはtoStringメソッドを使用して、連続表現に変換することができます。これは、名前が印刷可能な形式に変換されることを保証します。たGSSNameインタフェースの異なる初期化メソッドはサポートされている各名前空間に対して複数の構文のサポートを可能に定義し、ユーザーに優先名表現を自由に選択できるようにしています。 toStringメソッドはサポートされている各名前型の実装に選択された印刷可能な構文を使用しなければなりません。印刷可能な名前のタイプを取得するには、getStringNameType法を用いることができます。

There is no guarantee that calling the toString method on the GSSName interface will produce the same string form as the original imported string name. Furthermore, it is possible that the name was not even constructed from a string representation. The same applies to name-space identifiers which may not 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 GSSName 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, the toString method of GSSName would most likely generate a printable X.500 name, rather than the original DNS name.

たGSSNameインタフェース上でtoStringメソッドを呼び出すと、元のインポートされた文字列名と同じ文字列形式を生成するという保証はありません。さらに、名前も文字列表現から構築されていない可能性があります。同じことは、必ずしも内部名形式を旅した後、そのまま耐えられないかもしれません名前空間識別子に適用されます。この例は、X.500名を認証しますが、X.500にインターネットDNS名のアルゴリズムのマッピングを提供するメカニズムであるかもしれません。たGSSNameのそのメカニズムの実装は、DNS名を提示すると、オリジナルのDNS名と同等のX.500名の両方が含まれて内部名を生成することがあります。また、それだけでX.500名を保存することがあります。後者の場合には、たGSSNameのtoStringメソッドは、最も可能性の高い印刷可能なX.500名ではなく、元のDNS名を生成します。

The context acceptor can obtain a GSSName object representing the entity performing the context initiation (through the usage of getSrcName method). 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 the GSSContext object had multiple components). Such names are termed internal mechanism names, or "MN"s and the names emitted by GSSContext interface in the getSrcName and getTargName are always of this type. Since some applications may require MNs without wanting to incur the overhead of an authentication operation, creation methods are provided that take not only the name buffer and name type, but also the mechanism oid for which this name should be created. When dealing with an existing GSSName object, the canonicalize method may be invoked to convert a general internal name into an MN.

コンテキスト・アクセプター(getSrcName法の使用を介して)コンテキストの起動を実行するエンティティを表すたGSSNameオブジェクトを取得することができます。この名前は単一のメカニズムによって認証されているので、(GSSContextのオブジェクトにコンテキスト起動によって提示内部名は、複数のコンポーネントを有していたとしても)単一の名前を含んでいます。このような名前は、内部機構の名称、または「MN」sおよびgetSrcNameとgetTargNameでGSSContextのインタフェースによって放出された名前を呼ばれ、常にこのタイプのです。一部のアプリケーションは、認証操作のオーバーヘッドが発生したいなしのMNが必要な場合がありますので、作成方法は、名前のバッファと名前タイプするだけでなく、この名前を作成する必要のあるメカニズムのOIDないだけを取るが提供されます。既存たGSSNameオブジェクトを扱う場合、カノニカル化法は、MNに一般的な内部名を変換するために呼び出すことができます。

GSSName objects can be compared using their equal method, which returns "true" if the two names being compared refer to the same entity. This is the preferred way to perform name comparisons instead of using the 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, equal 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 comparisons of internal names containing no overlapping primitive elements.

たGSSNameオブジェクトは、比較される2つの名前が同じエンティティを参照する場合は「真」を返し、その同じ方法を用いて比較することができます。これは、代わりに与えられたGSS-APIの実装がサポートすることができ、印刷可能な名前を使用しての名前の比較を実行するための好ましい方法です。 GSS-APIは、与えられた内部名に含まれるすべてのプリミティブの名前が同じエンティティを参照することを前提としていますので2名が少なくとも1つの共通の原始的な名前を持っている場合は、同等のは「true」を返すことができます。実装が異なる名前空間から取られた名前の間の等価関係の知識を体現している場合、この知識はまた、重複プリミティブ要素を含まない内部名の成功の比較を可能にすることができます。

When used in large access control lists, the overhead of creating an GSSName object on each name and invoking the equal method 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 byte array name which may be compared directly (byte by byte). Contiguous names suitable for comparison are generated by the export method. Exported names may be re-imported by using the byte array constructor and specifying the NT_EXPORT_NAME as the name type object identifier. The resulting GSSName name will also be a MN. The GSSName interface defines public static Oid objects representing the standard name types. 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. Detailed description of the format is specified in the language-independent GSS-API specification [GSSAPIv2-UPDATE].

大きなアクセス制御リストで使用される場合、それぞれの名前でたGSSNameオブジェクトを作成し、ACLから各名前に等しいメソッドを呼び出すのオーバーヘッドは法外であってもよいです。このような場合をサポートする別の方法として、GSS-APIを直接比較することができる連続したバイト配列の名前(バイトによるバイト)の特別な形式を定義します。比較のために適した連続した名前は、輸出法によって生成されます。エクスポートされた名前はバイト配列のコンストラクタを使用して、名前型オブジェクト識別子としてNT_EXPORT_NAMEを指定して再インポートすることができます。その結果たGSSName名もMNになります。たGSSNameインタフェースは、標準の名前型を表すのpublic staticのOidオブジェクトを定義します。構造的には、エクスポートされた名前のオブジェクトは、名前を認証メカニズムを識別するOID、およびトレーラの構文は、個々の機構の仕様によって定義されている名前自体を含むトレーラを含むヘッダから成ります。フォーマットの詳細な説明は、言語に依存しないGSS-API仕様[GSSAPIv2-UPDATE]で指定されています。

Note that the results obtained by using the equals method will in general be different from those obtained by invoking canonicalize and export, and then comparing the byte array output. 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.

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

It is important to note that the above are guidelines as how GSSName implementations should behave, and are not intended to be specific requirements of how names objects must be implemented. The mechanism designers are free to decide on the details of their implementations of the GSSName interface as long as the behavior satisfies the above guidelines.

上記のたGSSNameの実装がどのように振る舞うべきかなどのガイドラインがあり、名前のオブジェクトを実装しなければならないかの具体的な要件であることを意図していないことに注意することが重要です。機構設計者は限り行動が上記のガイドラインを満たすようたGSSNameインタフェースのその実装の詳細を決定するのは自由です。

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

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 ChannelBinding object. The application may use byte arrays to specify the application data to be used in the channel binding as well as using instances of the InetAddress. The InetAddress for the initiator and/or acceptor can be used within an instance of a ChannelBinding. ChannelBinding can be set for the GSSContext object using the setChannelBinding method before the first call to init or accept has been performed. Unless the setChannelBinding method has been used to set the ChannelBinding for a GSSContext object, "null" ChannelBinding will be assumed. InetAddress is currently the only address type defined within the Java platform and as such, it is the only one supported within the ChannelBinding class. Applications that use other types of addresses can include them as part of the application specific data.

GSS-APIは、ピアアプリケーションに指定されたコンテキストを識別するために、ユーザーが指定したタグの使用をサポートしています。これらのタグは、コンテキストを運ぶ特定の通信チャネルを識別するために使用されることが意図されます。チャネルバインディングがでChannelBindingオブジェクトを使用してGSS-APIに伝達されます。アプリケーションは、結合、並びにのInetAddressのインスタンスを使用してチャネルに使用されるアプリケーションデータを指定するバイト配列を使用してもよいです。開始剤および/またはアクセプターのためのInetAddressはでChannelBindingのインスタンス内で使用することができます。 INITか行われた受け入れるように最初の呼び出しの前にsetChannelBinding法を使用してGSSContextのオブジェクトに設定することが可能でChannelBinding。 setChannelBinding方法は、GSSContextのオブジェクトのためでChannelBindingを設定するために使用されていない限り、「ヌル」でChannelBindingが想定されます。 InetAddressのは、現在のJavaプラットフォーム内で定義されている唯一のアドレスタイプであり、そのように、でChannelBindingクラス内でサポートされている唯一のものです。他のタイプのアドレスを使用するアプリケーションは、アプリケーション固有のデータの一部としてそれらを含めることができます。

Conceptually, the GSS-API concatenates the initiator and acceptor address information, and the application supplied byte array 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 init method of the GSSContext interface. The same bindings are set by the context acceptor for its GSSContext object and during processing of the accept method a MIC is calculated in the same way. The calculated MIC is compared with that found in the token, and if the MICs differ, accept will throw a GSSException with the major code set to BAD_BINDINGS, 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は、イニシエータとアクセプタのアドレス情報、及びオクテットストリングを形成するために、アプリケーション供給バイト配列を連結します。機構は、このオクテットストリング上MICを計算し、GSSContextのインターフェイスのinitメソッドによって放出されたコンテキスト確立トークンにMICを結合します。同じバインディングは、そのGSSContextのオブジェクトおよびMICが同じ方法で計算された受け入れる方法の処理中にコンテキストアクセプタによって設定されます。計算されたMICは、トークンに見られるものと比較され、MICは異なる場合、受け入れるBAD_BINDINGSに設定されたメジャーコードを使用してGSSExceptionをスローし、コンテキストは確立されません。いくつかのメカニズムは、トークン(だけでなくMIC)内のデータを結合実際のチャネルを含むことができます。アプリケーションは、したがって、チャネル結合成分などの機密データを使用しないでください。

Individual mechanisms may impose additional constraints on addresses that may appear in channel bindings. For example, a mechanism may verify that the initiator address field of the channel binding 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 setting of the addressing information.

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

4.15. Stream Objects
4.15. ストリームオブジェクト

The context object provides overloaded methods which use input and output streams as the means to convey authentication and per-message GSS-API tokens. It is important to note that the streams are expected to contain the usual GSS-API tokens which would otherwise be handled through the usage of byte arrays. The tokens are expected to have a definite start and an end. The callers are responsible for ensuring that the supplied streams will not block, or expect to block until a full token is processed by the GSS-API method. Only a single GSS-API token will be processed per invocation of the stream based method.

コンテキストオブジェクトは、認証とメッセージごとのGSS-APIトークンを伝達するための手段として、入力および出力ストリームを使用するオーバーロードする方法を提供します。ストリームがそうでない場合は、バイト配列の使用によって処理される通常のGSS-APIトークンを含むことが期待されていることに注意することが重要です。トークンは、明確な開始と終了を有することが期待されます。発信者は、供給ストリームがブロックする、または完全なトークンがGSS-API法によって処理されるまでブロックするように期待しないことを確実にする責任があります。唯一のGSS-APIトークンは、ストリームベースのメソッドの呼び出しごとに処理されます。

The usage of streams allows the callers to have control and management of the supplied buffers. Because streams are non-primitive objects, the callers can make the streams as complicated or as simple as desired simply by using the streams defined in the java.io package or creating their own through the use of inheritance. This will allow for the application's greatest flexibility.

ストリームの使用は、発信者が供給されるバッファの制御および管理を持つことができます。ストリームは非プリミティブオブジェクトであるので、発信者は単にjava.ioパッケージで定義されたストリームを使用したり、継承を使用して独自に作成することにより、必要に応じてストリームはのような複雑かのようにシンプルにすることができます。これは、アプリケーションの最大の柔軟性を可能にします。

4.16. Optional Parameters
4.16. オプションパラメータ

Whenever the application wishes to omit an optional parameter the "null" value shall be used. The detailed method descriptions indicate which parameters are optional. Methods overloading has also been used as a technique to indicate default parameters.

たびアプリケーションは「ヌル」値を使用しなければならない、オプションのパラメータを省略したいです。詳細な方法の説明は、パラメータがオプションであるかを示します。メソッドのオーバーロードは、デフォルトのパラメータを示すための手法として用いられてきました。

5. Introduction to GSS-API Classes and Interfaces
GSS-APIのクラスとインタフェース5.入門

This section presents a brief description of the classes and interfaces that constitute the GSS-API. The implementations of these are obtained from the CLASSPATH defined by the application. If Java GSS becomes part of the standard Java API's then these classes will be available by default on all systems as part of the JRE's system classes.

このセクションでは、GSS-APIを構成するクラスおよびインタフェースの簡単な説明を提示しています。これらの実装は、アプリケーションによって定義されたCLASSPATHから得られます。 JavaのGSSは、標準のJava APIのの一部になります場合は、これらのクラスは、JREのシステムクラスの一部として、すべてのシステムではデフォルトで使用可能になります。

This section also shows the corresponding RFC 2743 functionality implemented by each of the classes. Detailed description of these classes and their methods is presented in section 6.

このセクションでは、各クラスによって実装対応RFC 2743の機能を示しています。これらのクラスとそのメソッドの詳細な説明はセクション6に提示されています。

5.1. GSSManager class
5.1. GSSManagerクラス

This abstract class serves as a factory to instantiate implementations of the GSS-API interfaces and also provides methods to make queries about underlying security mechanisms.

この抽象クラスは、GSS-APIインタフェースの実装をインスタンス化するための工場として機能し、また、基礎となるセキュリティ機構についてクエリを行うための方法を提供します。

A default implementation can be obtained using the static method getInstance(). Applications that desire to provide their own implementation of the GSSManager class can simply extend the abstract class themselves.

デフォルトの実装では、静的メソッドのgetInstance()を使用して得ることができます。 GSSManagerクラスの独自の実装を提供することを望むアプリケーションは、単に抽象クラス自体を拡張することができます。

This class contains equivalents of the following RFC 2743 routines:

このクラスには、次のRFC 2743件のルーチンの同等物が含まれています。

gss_import_name Create an internal name from 6.1.9- the supplied information. 6.1.12

gss_import_name 6.1.9-提供された情報から、内部名を作成します。 6.1.12

gss_acquire_cred Acquire credential 6.1.13- for use. 6.1.15

使用する6.1.13-資格取得は、gss_acquire_cred。 6.1.15

gss_import_sec_context Create a previously exported 6.1.18 context.

gss_import_sec_context以前にエクスポート6.1.18コンテキストを作成します。

gss_indicate_mechs List the mechanisms 6.1.6 supported by this GSS-API implementation.

gss_indicate_mechsこのGSS-API実装でサポートされているメカニズム6.1.6を一覧表示します。

gss_inquire_mechs_for_name List the mechanisms 6.1.8 supporting the specified name type.

gss_inquire_mechs_for_name一覧メカニズム6.1.8指定した名前のタイプをサポートしています。

gss_inquire_names_for_mech List the name types 6.1.7 supported by the specified mechanism.

指定されたメカニズムでサポートされている名前の種類6.1.7をリストgss_inquire_names_for_mech。

5.2. GSSName interface
5.2. たGSSNameインタフェース

GSS-API names are represented in the Java bindings through the GSSName interface. Different name formats and their definitions are identified with universal Object Identifiers (oids). The format of the names can be derived based on the unique oid of each name type. The following GSS-API routines are provided by the GSSName interface:

GSS-API名がたGSSNameインタフェースを介してJavaバインディングで表現されています。別の名前の形式とその定義は、ユニバーサルオブジェクト識別子(OID)で識別されています。名前の形式は、それぞれの名前タイプのユニークなOIDに基づいて導出することができます。以下のGSS-APIルーチンがたGSSNameインタフェースによって提供されています。

RFC 2743 Routine Function Section(s)

RFC 2743ルーチンの機能部(S)

gss_display_name Covert internal name 6.2.7 representation to text format.

gss_display_name隠密内部名テキスト形式に6.2.7表現。

gss_compare_name Compare two internal names. 6.2.3, 6.2.4

二つの内部名を比較gss_compare_name。 6.2.3、6.2.4

gss_release_name Release resources associated N/A with the internal name.

内部名を持つN / A関連するgss_release_nameリリースリソース。

gss_canonicalize_name Convert an internal name to a 6.1.11, mechanism name.

gss_canonicalize_name、6.1.11にメカニズム名を内部名に変換します。

gss_export_name Convert a mechanism name to 6.2.6 export format.

gss_export_name 6.2.6エクスポート形式にメカニズム名に変換します。

gss_duplicate_name Create a copy of the internal N/A name.

gss_duplicate_name内部N /名前のコピーを作成します。

The gss_release_name call is not provided as Java does its own garbage collection. The gss_duplicate_name call is also redundant; the GSSName interface has no mutator methods that can change the state of the object so it is safe for sharing.

Javaは、独自のガベージコレクションを行うようgss_release_nameコールが用意されていません。 gss_duplicate_nameコールも冗長です。たGSSNameインタフェースは、それが共有するために安全であるように、オブジェクトの状態を変更することができます何のmutatorメソッドを持っていません。

5.3. GSSCredential interface
5.3. GSSCredentialのインターフェース

The GSSCredential interface is responsible for the encapsulation of GSS-API credentials. Credentials identify a single entity and provide the necessary cryptographic information to enable the creation of a context on behalf of that entity. A single credential may contain multiple mechanism specific credentials, each referred to as a credential element. The GSSCredential interface provides the functionality of the following GSS-API routines:

GSSCredentialのインタフェースは、GSS-API資格をカプセル化する責任があります。資格情報は、単一のエンティティを識別し、そのエンティティに代わってコンテキストの作成を可能にするために必要な暗号化情報を提供しています。単一の信任状は、それぞれ資格要素と呼ばれる、複数の機構特定の資格情報を含んでいてもよいです。 GSSCredentialのインターフェイスは、次のGSS-APIルーチンの機能を提供します。

RFC 2743 Routine Function Section(s)

RFC 2743ルーチンの機能部(S)

gss_add_cred Constructs credentials 6.3.12 incrementally.

gss_add_credは、資格情報6.3.12インクリメンタルを構築します。

gss_inquire_cred Obtain information about 6.3.4,6.3.5 credential.

6.3.4,6.3.5資格についての情報を入手しgss_inquire_cred。

gss_inquire_cred_by_mech Obtain per-mechanism 6.3.5-6.3.10 information about a credential.

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

gss_release_cred Disposes of credentials 6.3.3 after use.

使用後の資格情報6.3.3のgss_release_cred破棄します。

5.4. GSSContext interface
5.4. GSSContextのインターフェース

This interface encapsulates the functionality of context-level calls required for security context establishment and management between peers as well as the per-message services offered to applications. A context is established between a pair of peers and allows the usage of security services on a per-message basis on application data. It is created over a single security mechanism. The GSSContext interface provides the functionality of the following GSS-API routines:

このインタフェースは、ピア間のセキュリティコンテキストの確立と管理のために必要なコンテキスト・レベルの呼び出しだけでなく、アプリケーションに提供されるメッセージごとのサービスの機能をカプセル化します。コンテキストは、ピアのペア間で確立し、アプリケーションデータに対してメッセージごとのセキュリティサービスの使用を可能にします。これは、単一のセキュリティメカニズムの上に作成されます。 GSSContextのインターフェイスは、次のGSS-APIルーチンの機能を提供します。

RFC 2743 Routine Function Section(s)

RFC 2743ルーチンの機能部(S)

gss_init_sec_context Initiate the creation of a 6.4.3, security context with a peer. 6.4.4

gss_init_sec_contextは、ピアとの6.4.3、セキュリティコンテキストの作成を開始します。 6.4.4

gss_accept_sec_context Accept a security context 6.4.5, initiated by a peer. 6.4.6

ピアによって開始されたセキュリティコンテキスト6.4.5を、受け入れる場合gss_accept_sec_context。 6.4.6

gss_delete_sec_context Destroy a security context. 6.4.8

セキュリティコンテキストを破棄gss_delete_sec_context。 6.4.8

gss_context_time Obtain remaining context 6.4.37 time.

gss_context_timeコンテキストに6.4.37残り時間を取得します。

gss_inquire_context Obtain context 6.4.29 to characteristics. 6.3.42

特性にコンテキスト6.4.29を取得gss_inquire_context。 6.3.42

gss_wrap_size_limit Determine token-size limit 6.4.9 for gss_wrap.

gss_wrapのトークン・サイズ制限6.4.9を決定は、gss_wrap_size_limit。

gss_export_sec_context Transfer security context 6.4.18 to another process.

別のプロセスにセキュリティコンテキスト6.4.18を転送gss_export_sec_context。

gss_get_mic Calculate a cryptographic 6.4.14, Message Integrity Code (MIC) 6.4.15 for a message.

gss_get_micメッセージの暗号6.4.14、メッセージ完全性コード(MIC)6.4.15を計算します。

gss_verify_mic Verify integrity on a received 6.4.16, message. 6.4.17

gss_verify_mic受信6.4.16、メッセージに整合性を確認してください。 6.4.17

gss_wrap Attach a MIC to a message and 6.4.10, optionally encrypt the message 6.4.11 content.

メッセージにMICを取り付け、6.4.10、必要に応じてメッセージ6.4.11コンテンツを暗号化はgss_wrap。

gss_unwrap Obtain a previously wrapped 6.4.12, application message verifying 6.4.13 its integrity and optionally decrypting it.

6.4.13その整合性を検証する前に包まれた6.4.12、アプリケーションメッセージを取得し、必要に応じてそれを解読はgss_unwrap。

The functionality offered by the gss_process_context_token routine has not been included in the Java bindings specification. The corresponding functionality of gss_delete_sec_context has also been modified to not return any peer tokens. This has been proposed in accordance to the recommendations stated in RFC 2743. GSSContext does offer the functionality of destroying the locally-stored context information.

gss_process_context_tokenルーチンが提供する機能は、Javaバインディング仕様に含まれていません。 gss_delete_sec_contextの対応する機能は、任意のピアトークンを返さないように改変されています。これは、GSSContextのは、ローカルに保存されたコンテキスト情報を破壊する機能を提供していRFC 2743に記載された勧告に基づいて提案されています。

5.5. MessageProp class
5.5. MessagePropクラス

This helper class is used in the per-message operations on the context. An instance of this class is created by the application and then passed into the per-message calls. In some cases, the application conveys information to the GSS-API implementation through this object and in other cases the GSS-API returns information to the application by setting it in this object. See the description of the per-message operations wrap, unwrap, getMIC, and verifyMIC in the GSSContext interfaces for details.

このヘルパークラスは、コンテキストのメッセージごとの操作に使用されています。このクラスのインスタンスは、アプリケーションによって作成され、メッセージごとの呼び出しに渡されます。いくつかのケースでは、アプリケーションは、このオブジェクトを介してGSS-API実装に情報を伝達し、他の場合にはGSS-APIは、このオブジェクトにそれを設定することにより、アプリケーションに情報を返します。詳細GSSContextのインタフェースでメッセージごとの操作の説明が参照ラップ、アンラップ、のgetMIC、そしてたverifyMIC。

5.6. GSSException class
5.6. GSSExceptionクラス

Exceptions are used in the Java bindings to signal fatal errors to the calling applications. This replaces the major and minor codes used in the C-bindings specification as a method of signaling failures. The GSSException class handles both minor and major codes, as well as their translation into textual representation. All GSS-API methods are declared as throwing this exception.

例外は、呼び出し元のアプリケーションに致命的なエラーを通知するためのJavaバインディングで使用されています。これは、失敗をシグナリングする方法として、C-バインディング仕様で使用されるメジャーおよびマイナーコードを置き換えます。 GSSExceptionクラスは、テキスト表現にマイナーおよびメジャーコード、並びにそれらの翻訳の両方を処理します。すべてのGSS-APIメソッドは、この例外をスローするように宣言されています。

RFC 2743 Routine Function Section

RFC 2743ルーチン機能セクション

gss_display_status Retrieve textual 6.8.5, 6.8.6, representation of error 6.8.8, 6.8.9 codes.

gss_display_statusは、テキスト6.8.5、6.8.6、6.8.8エラー、6.8.9コードの表現を取得します。

5.7. Oid class
5.7. oidのクラス

This utility class is used to represent Universal Object Identifiers and their associated operations. GSS-API uses object identifiers to distinguish between security mechanisms and name types. This class, aside from being used whenever an object identifier is needed, implements the following GSS-API functionality:

このユーティリティクラスは、ユニバーサル・オブジェクト識別子とそれに関連する業務を表すために使用されます。 GSS-APIは、セキュリティ・メカニズムと名前のタイプを区別するために、オブジェクト識別子を使用しています。このクラスは、脇オブジェクト識別子が必要とされるたびに使用されてから、次のGSS-APIの機能を実装します。

RFC 2743 Routine Function Section

RFC 2743ルーチン機能セクション

gss_test_oid_set_member Determine if the specified oid 6.7.5 is part of a set of oids.

指定されたOID 6.7.5は、OIDのセットの一部である場合gss_test_oid_set_memberかを判断します。

5.8. ChannelBinding class
5.8. でChannelBindingクラス

An instance of this class is used to specify channel binding information to the GSSContext object before the start of a security context establishment. The application may use a byte array to specify application data to be used in the channel binding as well as use instances of the InetAddress. InetAddress is currently the only address type defined within the Java platform and as such, it is the only one supported within the ChannelBinding class. Applications that use other types of addresses can include them as part of the application data.

このクラスのインスタンスは、セキュリティコンテキストの確立の開始前に、GSSContextのオブジェクトへのチャネルバインディング情報を指定するために使用されます。アプリケーションデータを指定するバイト配列を使用することができるアプリケーションは、チャネルバインディングと同様のInetAddressの使用例で使用されます。 InetAddressのは、現在のJavaプラットフォーム内で定義されている唯一のアドレスタイプであり、そのように、でChannelBindingクラス内でサポートされている唯一のものです。他のタイプのアドレスを使用するアプリケーションは、アプリケーションデータの一部としてそれらを含めることができます。

6. Detailed GSS-API Class Description
6.詳細なGSS-APIクラス説明

This section lists a detailed description of all the public methods that each of the GSS-API classes and interfaces must provide.

このセクションでは、GSS-APIのクラスおよびインタフェースのそれぞれが提供しなければならないすべてのパブリックメソッドの詳細な説明が一覧表示されます。

6.1. public abstract class GSSManager
6.1. パブリック抽象クラスのGSSManager

The GSSManager class is an abstract class that serves as a factory for three GSS interfaces: GSSName, GSSCredential, and GSSContext. It also provides methods for applications to determine what mechanisms are available from the GSS implementation and what nametypes these mechanisms support. An instance of the default GSSManager subclass may be obtained through the static method getInstance(), but applications are free to instantiate other subclasses of GSSManager.

たGSSName、GSSCredentialの、およびGSSContextの:のGSSManagerクラスは、三のGSSインターフェイスのための工場として機能する抽象クラスです。また、GSS実装と何nametypesこれらのメカニズムはサポートから利用可能であるかのメカニズムを決定するアプリケーションのための方法を提供します。デフォルトのGSSManagerサブクラスのインスタンスは、静的メソッドのgetInstance()によって得ることができるが、アプリケーションはのGSSManagerの他のサブクラスをインスタンス化して自由です。

All but one method in this class are declared abstract. This means that subclasses have to provide the complete implementation for those methods. The only exception to this is the static method getInstance() which will have platform specific code to return an instance of the default subclass.

すべてが、このクラスの一つの方法は、抽象と宣言されています。これは、サブクラスがこれらのメソッドのための完全な実装を提供する必要があることを意味します。これに対する唯一の例外は、デフォルト・サブクラスのインスタンスを返すためにプラットフォーム固有のコードを持って静的メソッドのgetInstance()です。

Platform providers of GSS are required not to add any constructors to this class, private, public, or protected. This will ensure that all subclasses invoke only the default constructor provided to the base class by the compiler.

GSSのプラットフォームプロバイダは、このクラスに任意のコンストラクタを追加していない必要なプライベート、パブリック、または保護されています。これは、すべてのサブクラスは、コンパイラによって基本クラスに提供される唯一のデフォルトコンストラクタを呼び出すことが保証されます。

A subclass extending the GSSManager abstract class may be implemented as a modular provider based layer that utilizes some well known service provider specification. The GSSManager API provides the application with methods to set provider preferences on such an implementation. These methods also allow the implementation to throw a well-defined exception in case provider based configuration is not supported. Applications that expect to be portable should be aware of this and recover cleanly by catching the exception.

GSSManager抽象クラスを拡張するサブクラスは、いくつかのよく知られたサービスプロバイダ仕様を利用するモジュラープロバイダベース層として実装されてもよいです。 GSSManager APIは、そのような実装上のプロバイダ・プリファレンスを設定するための方法でアプリケーションを提供します。また、これらの方法は、サポートされていない実装がケースプロバイダベースの構成では、明確に定義された例外をスローすることができます。ポータブルであることを前提とするアプリケーションはこれを認識し、例外をキャッチすることによってきれいに回復しなければなりません。

It is envisioned that there will be three most common ways in which providers will be used:

プロバイダが使用される最も一般的な3つの方法があることが想定されます。

1) The application does not care about what provider is used (the default case).

1)アプリケーション)は(使われるデフォルトの場合されているものプロバイダ気にしません。

2) The application wants a particular provider to be used preferentially, either for a particular mechanism or all the time, irrespective of mechanism.

2)アプリケーションに関係なく機構の、特定の機構またはすべての時間のいずれかで、優先的に使用される特定のプロバイダを望んでいます。

3) The application wants to use the locally configured providers as far as possible but if support is missing for one or more mechanisms then it wants to fall back on its own provider.

3)アプリケーションは、可能な限り、ローカルに構成されたプロバイダを使用したいが、サポートは、1つまたは複数のメカニズムのために欠落している場合、それは、独自のプロバイダに頼ることを望んでいます。

The GSSManager class has two methods that enable these modes of usage: addProviderAtFront() and addProviderAtEnd(). These methods have the effect of creating an ordered list of <provider, oid> pairs where each pair indicates a preference of provider for a given oid.

addProviderAtFront()とaddProviderAtEnd():のGSSManagerクラスは、使用のこれらのモードを有効にする2つのメソッドを有しています。これらの方法は、各対が、所与のOIDの提供者の嗜好を示す<プロバイダ、OID>ペアの順序付きリストを作成する効果を有します。

The use of these methods does not require any knowledge of whatever service provider specification the GSSManager subclass follows. It is hoped that these methods will serve the needs of most applications. Additional methods may be added to an extended GSSManager that could be part of a service provider specification that is standardized later.

これらの方法の使用はのGSSManagerサブクラスは以下のものは何でも、サービスプロバイダ仕様のいずれかの知識を必要としません。これらの方法は、ほとんどのアプリケーションのニーズに応えることが期待されます。さらなる方法は、後に標準化されたサービスプロバイダ明細書の一部とすることができる拡張のGSSManagerに添加してもよいです。

6.1.1. Example Code
6.1.1. サンプルコード

GSSManager mgr = GSSManager.getInstance();

GSSManager MGR = GSSManager.getInstance()。

// What mechs are available to us? Oid[] supportedMechs = mgr.getMechs();

//何メカ私たちにありますか? OID [] supportedMechsの=のmgr.getMechs()。

// Set a preference for the provider to be used when support is needed // for the mechanisms "1.2.840.113554.1.2.2" and "1.3.6.1.5.5.1.1".

//は、「1.2.840.113554.1.2.2」のサポートが必要とされるときメカニズムを//使用するプロバイダのプリファレンスを設定し、「1.3.6.1.5.5.1.1」。

   Oid krb = new Oid("1.2.840.113554.1.2.2");
   Oid spkm1 = new Oid("1.3.6.1.5.5.1.1");
        

Provider p = (Provider) (new com.foo.security.Provider());

プロバイダーP =(プロバイダ)(新しいcom.foo.security.Provider());

   mgr.addProviderAtFront(p, krb);
   mgr.addProviderAtFront(p, spkm1);
        

// What name types does this spkm implementation support? Oid[] nameTypes = mgr.getNamesForMech(spkm1);

//どのような名前の種類このSPKM実装をサポートしていますか? OID [] nameTypes = mgr.getNamesForMech(spkm1)。

6.1.2. getInstance
6.1.2. getInstance

public static GSSManager getInstance()

パブリック静的のGSSManagerのgetInstance()

Returns the default GSSManager implementation.

デフォルトのGSSManager実装を返します。

6.1.3. getMechs
6.1.3. getMechs

public abstract Oid[] getMechs()

パブリック抽象のOid [] getMechs()

Returns an array of Oid objects indicating mechanisms available to GSS-API callers. A "null" value is returned when no mechanism are available (an example of this would be when mechanism are dynamically configured, and currently no mechanisms are installed).

GSS-APIの呼び出し側が利用できる機構を示すのOidオブジェクトの配列を返します。 「ヌル」値は、メカニズムが利用可能でない場合(機構が動的に構成されており、現在のところ機構がインストールされていない場合、この例であろう)が返されます。

6.1.4. getNamesForMech
6.1.4. getNamesForMech

public abstract Oid[] getNamesForMech(Oid mech) throws GSSException

パブリック抽象のOid [] getNamesForMech(OIDメカは)てGSSExceptionをスローします

Returns name type Oid's supported by the specified mechanism.

指定されたメカニズムでサポートされている名前タイプのOIDを返します。

Parameters:

パラメーター:

mech The Oid object for the mechanism to query.

照会する機構のOIDのオブジェクトをMECH。

6.1.5. getMechsForName
6.1.5. getMechsForName

public abstract Oid[] getMechsForName(Oid nameType)

パブリック抽象のOid [] getMechsForName(OID NAMETYPE)

Returns an array of Oid objects corresponding to the mechanisms that support the specific name type. "null" is returned when no mechanisms are found to support the specified name type.

特定の名前のタイプをサポートする機構に対応するOidオブジェクトの配列を返します。何のメカニズムが指定された名前型をサポートしないことが判明しているとき、「ヌル」が返されます。

Parameters:

パラメーター:

nameType The Oid object for the name type.

名前タイプのOIDのオブジェクトをNAMETYPE。

6.1.6. createName
6.1.6. createName

public abstract GSSName createName(String nameStr, Oid nameType) throws GSSException

パブリック抽象たGSSNameのcreateName(文字列nameStr、OidにNAMETYPEは)てGSSExceptionをスローします

Factory method to convert a contiguous string name from the specified namespace to a GSSName object. In general, the GSSName object created will not be an MN; two examples that are exceptions to this are when the namespace type parameter indicates NT_EXPORT_NAME or when the GSS-API implementation is not multi-mechanism.

たGSSNameオブジェクトに指定された名前空間の連続した文字列名を変換するファクトリメソッドです。一般的には、作成したGSSNameオブジェクトは、MNではありません。名前空間の型パラメータがNT_EXPORT_NAMEを示す場合か、GSS-APIの実装では、マルチメカニズムでない場合、この例外です2つの例を示します。

Parameters:

パラメーター:

nameStr The string representing a printable form of the name to create.

作成する名前のプリント可能形式を表す文字列をnameStr。

nameType The Oid specifying the namespace of the printable name supplied. Note that nameType serves to describe and qualify the interpretation of the input nameStr, it does not necessarily imply a type for the output GSSName implementation. "null" value can be used to specify that a mechanism specific default printable syntax should be assumed by each mechanism that examines nameStr.

供給印刷可能な名前の名前空間を指定するNAMETYPE OIDです。 NAMETYPEを記述し、入力nameStrの解釈を限定するのに役立つことに注意してください、それは必ずしも出力たGSSName実装のタイプを意味するものではありません。 「ヌル」値は、機構固有のデフォルトの印刷可能な構文はnameStrを検査する各機構が想定されるべきであることを指定するために使用することができます。

6.1.7. createName
6.1.7. createName

public abstract GSSName createName(byte name[], Oid nameType) throws GSSException

パブリック抽象たGSSNameのcreateName(バイト名[]、のOid nameType)指定てGSSExceptionをスローします

Factory method to convert a contiguous byte array containing a name from the specified namespace to a GSSName object. In general, the GSSName object created will not be an MN; two examples that are exceptions to this are when the namespace type parameter indicates NT_EXPORT_NAME or when the GSS-API implementation is not multi-mechanism.

たGSSNameオブジェクトに指定された名前空間の名前を含む連続したバイト配列を変換するファクトリメソッドです。一般的には、作成したGSSNameオブジェクトは、MNではありません。名前空間の型パラメータがNT_EXPORT_NAMEを示す場合か、GSS-APIの実装では、マルチメカニズムでない場合、この例外です2つの例を示します。

Parameters:

パラメーター:

name The byte array containing the name to create.

作成する名前を含むバイト配列に名前を付けます。

nameType The Oid specifying the namespace of the name supplied in the byte array. Note that nameType serves to describe and qualify the interpretation of the input name byte array, it does not necessarily imply a type for the output GSSName implementation. "null" value can be used to specify that a mechanism specific default syntax should be assumed by each mechanism that examines the byte array.

バイト配列内の指定された名前の名前空間を指定するNAMETYPE OIDです。 NAMETYPEを記述し、入力された名前のバイト配列の解釈を限定するのに役立つことに注意してください、それは必ずしも出力たGSSName実装のタイプを意味するものではありません。 「ヌル」値は、機構固有のデフォルトの構文はバイト配列を調べ、各機構が想定されるべきであることを指定するために使用することができます。

6.1.8. createName
6.1.8. createName

public abstract GSSName createName(String nameStr, Oid nameType, Oid mech) throws GSSException

パブリック抽象たGSSNameのcreateName(文字列nameStr、OidにNAMETYPE、のOidメカは)てGSSExceptionをスローします

Factory method to convert a contiguous string name from the specified namespace to an GSSName object that is a mechanism name (MN). In other words, this method is a utility that does the equivalent of two steps: the createName described in 6.1.7 and then also the GSSName.canonicalize() described in 6.2.5.

メカニズム名(MN)であるたGSSNameオブジェクトに指定された名前空間の連続した文字列名を変換するファクトリメソッドです。換言すれば、この方法は、2つのステップの等価を行うユーティリティである:のcreateNameは、6.1.7で説明した後にもGSSName.canonicalize()は、6.2.5で説明しました。

Parameters:

パラメーター:

nameStr The string representing a printable form of the name to create.

作成する名前のプリント可能形式を表す文字列をnameStr。

nameType The Oid specifying the namespace of the printable name supplied. Note that nameType serves to describe and qualify the interpretation of the input nameStr, it does not necessarily imply a type for the output GSSName implementation. "null" value can be used to specify that a mechanism specific default printable syntax should be assumed when the mechanism examines nameStr.

供給印刷可能な名前の名前空間を指定するNAMETYPE OIDです。 NAMETYPEを記述し、入力nameStrの解釈を限定するのに役立つことに注意してください、それは必ずしも出力たGSSName実装のタイプを意味するものではありません。 「ヌル」値は、メカニズムがnameStrを調べる際のメカニズム固有のデフォルトの印刷可能な構文が想定されるべきであることを指定するために使用することができます。

mech Oid specifying the mechanism for which this name should be created.

この名前は、作成する必要のあるメカニズムを指定するOIDメカ。

6.1.9. createName
6.1.9. createName

public abstract createName(byte name[], Oid nameType, Oid mech) throws GSSException

パブリック抽象のcreateName(バイト名は[]、のOid NAMETYPE、のOidメカは)てGSSExceptionをスローします

Factory method to convert a contiguous byte array containing a name from the specified namespace to a GSSName object that is an MN. In other words, this method is a utility that does the equivalent of two steps: the createName described in 6.1.8 and then also the GSSName.canonicalize() described in 6.2.5.

MNであるたGSSNameオブジェクトに指定された名前空間の名前を含む連続したバイト配列を変換するファクトリメソッドです。換言すれば、この方法は、2つのステップの等価を行うユーティリティである:のcreateNameは、6.1.8で説明した後にもGSSName.canonicalize()は、6.2.5で説明しました。

Parameters:

パラメーター:

name The byte array representing the name to create.

作成する名前を表すバイト配列に名前を付けます。

nameType The Oid specifying the namespace of the name supplied in the byte array. Note that nameType serves to describe and qualify the interpretation of the input name byte array, it does not necessarily imply a type for the output GSSName implementation. "null" value can be used to specify that a mechanism specific default syntax should be assumed by each mechanism that examines the byte array.

バイト配列内の指定された名前の名前空間を指定するNAMETYPE OIDです。 NAMETYPEを記述し、入力された名前のバイト配列の解釈を限定するのに役立つことに注意してください、それは必ずしも出力たGSSName実装のタイプを意味するものではありません。 「ヌル」値は、機構固有のデフォルトの構文はバイト配列を調べ、各機構が想定されるべきであることを指定するために使用することができます。

mech Oid specifying the mechanism for which this name should be created.

この名前は、作成する必要のあるメカニズムを指定するOIDメカ。

6.1.10. createCredential
6.1.10. createCredential

public abstract GSSCredential createCredential (int usage) throws GSSException

パブリック抽象GSSCredentialのcreateCredential(int型の使用法は)てGSSExceptionをスローします

Factory method for acquiring default credentials. This will cause the GSS-API to use system specific defaults for the set of mechanisms, name, and a DEFAULT lifetime.

デフォルトの資格を取得するためのファクトリメソッドです。これは、GSS-APIは、メカニズム、名前のセット、およびDEFAULT寿命のためのシステム固有のデフォルトを使用するようになります。

Parameters:

パラメーター:

usage The intended usage for this credential object. The value of this parameter must be one of: GSSCredential.ACCEPT_AND_INITIATE, GSSCredential.ACCEPT_ONLY, GSSCredential.INITIATE_ONLY

使い方この資格オブジェクトの使用目的を。 GSSCredential.ACCEPT_AND_INITIATE、GSSCredential.ACCEPT_ONLY、GSSCredential.INITIATE_ONLY:このパラメータの値は、のいずれかでなければなりません

6.1.11. createCredential
6.1.11. createCredential

public abstract GSSCredential createCredential (GSSName aName, int lifetime, Oid mech, int usage) throws GSSException

パブリック抽象GSSCredentialのcreateCredential(たGSSNameもしaName、int型の寿命、示すOIDメカ、int型の使用法は)てGSSExceptionをスローします

Factory method for acquiring a single mechanism credential.

単一のメカニズムの資格を取得するためのファクトリメソッドです。

Parameters:

パラメーター:

aName Name of the principal for whom this credential is to be acquired. Use "null" to specify the default principal.

元本のもしaName名前は誰のためにこの資格を取得します。デフォルトの主体を指定するには、「ヌル」を使用してください。

lifetime The number of seconds that credentials should remain valid. Use GSSCredential.INDEFINITE_LIFETIME to request that the credentials have the maximum permitted lifetime. Use GSSCredential.DEFAULT_LIFETIME to request default credential lifetime.

生涯資格情報が有効でなければならない秒数。資格情報が最大許容寿命を持っていることを要求する場合は、GSSCredential.INDEFINITE_LIFETIMEを使用してください。デフォルトの寿命を要求するには、GSSCredential.DEFAULT_LIFETIMEを使用してください。

mech The oid of the desired mechanism. Use "(Oid) null" to request the default mechanism(s).

所望の機構のOIDをMECH。デフォルトのメカニズム(複数可)を要求する「(OID)はnull」を使用してください。

usage The intended usage for this credential object. The value of this parameter must be one of: GSSCredential.ACCEPT_AND_INITIATE, GSSCredential.ACCEPT_ONLY, GSSCredential.INITIATE_ONLY

使い方この資格オブジェクトの使用目的を。 GSSCredential.ACCEPT_AND_INITIATE、GSSCredential.ACCEPT_ONLY、GSSCredential.INITIATE_ONLY:このパラメータの値は、のいずれかでなければなりません

6.1.12. createCredential
6.1.12. createCredential

public abstract GSSCredential createCredential(GSSName aName, int lifetime, Oid mechs[], int usage) throws GSSException

パブリック抽象GSSCredentialのcreateCredentialは(もしaNameたGSSName、int型の寿命は、メカのOid []、使用をint型)てGSSExceptionをスローします

Factory method for acquiring credentials over a set of mechanisms. Acquires credentials for each of the mechanisms specified in the array called mechs. To determine the list of mechanisms' for which the acquisition of credentials succeeded, the caller should use the GSSCredential.getMechs() method.

機構に対して資格を取得するためのファクトリメソッドです。アレイと呼ばれるメックで指定された機構のそれぞれの資格を取得します。資格情報の取得に成功したためのメカニズムのリストを決定するために、呼び出し側はGSSCredential.getMechs()メソッドを使用する必要があります。

Parameters:

パラメーター:

aName Name of the principal for whom this credential is to be acquired. Use "null" to specify the default principal.

元本のもしaName名前は誰のためにこの資格を取得します。デフォルトの主体を指定するには、「ヌル」を使用してください。

lifetime The number of seconds that credentials should remain valid. Use GSSCredential.INDEFINITE_LIFETIME to request that the credentials have the maximum permitted lifetime. Use GSSCredential.DEFAULT_LIFETIME to request default credential lifetime.

生涯資格情報が有効でなければならない秒数。資格情報が最大許容寿命を持っていることを要求する場合は、GSSCredential.INDEFINITE_LIFETIMEを使用してください。デフォルトの寿命を要求するには、GSSCredential.DEFAULT_LIFETIMEを使用してください。

mechs The array of mechanisms over which the credential is to be acquired. Use "(Oid[]) null" for requesting a system specific default set of mechanisms.

資格を取得しようとする上の機構の配列をメック。メカニズムのシステム固有のデフォルトのセットを要求する「(OID [])NULL」を使用。

usage The intended usage for this credential object. The value of this parameter must be one of: GSSCredential.ACCEPT_AND_INITIATE, GSSCredential.ACCEPT_ONLY, GSSCredential.INITIATE_ONLY

使い方この資格オブジェクトの使用目的を。 GSSCredential.ACCEPT_AND_INITIATE、GSSCredential.ACCEPT_ONLY、GSSCredential.INITIATE_ONLY:このパラメータの値は、のいずれかでなければなりません

6.1.13. createContext
6.1.13. createContext

public abstract GSSContext createContext(GSSName peer, Oid mech, GSSCredential myCred, int lifetime) throws GSSException

パブリック抽象GSSContextののcreateContext(たGSSNameピア、示すOIDメカ、GSSCredentialのmyCred、int型の寿命は)てGSSExceptionをスローします

Factory method for creating a context on the initiator's side. Context flags may be modified through the mutator methods prior to calling GSSContext.initSecContext().

イニシエータ側でコンテキストを作成するためのファクトリメソッドです。コンテキストフラグは前GSSContext.initSecContext()を呼び出すとミューテータ方法によって改変することができます。

Parameters:

パラメーター:

peer Name of the target peer.

ターゲットピアのピア名。

mech Oid of the desired mechanism. Use "(Oid) null" to request default mechanism.

所望の機構のメカのOid。デフォルトの機構を要求する「(OID)はnull」を使用してください。

myCred Credentials of the initiator. Use "null" to act as a default initiator principal.

イニシエータの資格情報をmyCred。デフォルトのイニシエータプリンシパルとして動作するように「ヌル」を使用してください。

lifetime The request lifetime, in seconds, for the context. Use GSSContext.INDEFINITE_LIFETIME and GSSContext.DEFAULT_LIFETIME to request indefinite or default context lifetime.

コンテキストの秒生涯要求寿命、。不定またはデフォルトコンテキストの寿命を要求するGSSContext.INDEFINITE_LIFETIMEとGSSContext.DEFAULT_LIFETIMEを使用してください。

6.1.14. createContext
6.1.14. createContext

public abstract GSSContext createContext(GSSCredential myCred) throws GSSException

パブリック抽象GSSContextののcreateContext(GSSCredentialのmyCredは)てGSSExceptionをスローします

Factory method for creating a context on the acceptor' side. The context's properties will be determined from the input token supplied to the accept method.

アクセプター「側のコンテキストを作成するためのファクトリメソッド。コンテキストのプロパティを受け入れる方法に供給される入力トークンから決定されます。

Parameters:

パラメーター:

myCred Credentials for the acceptor. Use "null" to act as a default acceptor principal.

アクセプターのための資格情報をmyCred。デフォルトのアクセプタプリンシパルとして動作するように「ヌル」を使用してください。

6.1.15. createContext
6.1.15. createContext

public abstract GSSContext createContext(byte [] interProcessToken) throws GSSException

パブリック抽象GSSContextののcreateContext(バイト[]はinterProcessToken)てGSSExceptionをスローします

Factory method for creating a previously exported context. The context properties will be determined from the input token and can't be modified through the set methods.

以前にエクスポートされたコンテキストを作成するためのファクトリメソッドです。コンテキストプロパティは、入力されたトークンから決定され、設定された方法で変更することはできません。

Parameters:

パラメーター:

interProcessToken The token previously emitted from the export method.

以前にexportメソッドから放出されたトークンinterProcessToken。

6.1.16. addProviderAtFront
6.1.16. addProviderAtFront

public abstract void addProviderAtFront(Provider p, Oid mech) throws GSSException

パブリック抽象ボイドてaddProviderAtFront(プロバイダーP、のOidメカは)てGSSExceptionをスローします

This method is used to indicate to the GSSManager that the application would like a particular provider to be used ahead of all others when support is desired for the given mechanism. When a value of null is used instead of an Oid for the mechanism, the GSSManager must use the indicated provider ahead of all others no matter what the mechanism is. Only when the indicated provider does not support the needed mechanism should the GSSManager move on to a different provider.

この方法は、支持を与え機構のために所望される場合、アプリケーションが先に他のすべての使用される特定のプロバイダにたいとのGSSManagerを示すために使用されます。ヌルの値が機構に代わりのOIDを使用した場合、GSSManagerのは、先に他のすべてのメカニズムが何であるかに関係なく指定されたプロバイダを使用する必要があります。指定されたプロバイダが必要なメカニズムをサポートしていない場合にのみ、GSSManagerのは、別のプロバイダに移動しなければなりません。

Calling this method repeatedly preserves the older settings but lowers them in preference thus forming an ordered list of provider and Oid pairs that grows at the top.

このメソッドを呼び出すと、繰り返し古い設定を保持しますが、このように上部に成長するプロバイダおよびOIDペアの順序付きリストを構成する優先してそれらを低下させます。

Calling addProviderAtFront with a null Oid will remove all previous preferences that were set for this provider in the GSSManager instance. Calling addProviderAtFront with a non-null Oid will remove any previous preference that was set using this mechanism and this provider together.

ヌルOIDにてaddProviderAtFrontを呼び出すとのGSSManagerインスタンスでこのプロバイダに設定されたすべての以前の環境設定を削除します。非ヌルOIDにてaddProviderAtFrontを呼び出すと、この機構と一緒にこのプロバイダを使用して設定した任意の以前の嗜好を削除します。

If the GSSManager implementation does not support an SPI with a pluggable provider architecture it should throw a GSSException with the status code GSSException.UNAVAILABLE to indicate that the operation is unavailable.

GSSManager実装がプラグイン可能なプロバイダアーキテクチャでSPIをサポートしていない場合は、操作が利用できないことを示すステータスコードGSSException.UNAVAILABLEが設定されたGSSExceptionをスローする必要があります。

Parameters:

パラメーター:

p The provider instance that should be used whenever support is needed for mech.

Pサポートがメカのために必要なときに使用しなければならないプロバイダインスタンス。

mech The mechanism for which the provider is being set

プロバイダが設定されているメカニズムをメック

6.1.16.1. Example Code
6.1.16.1。サンプルコード

Suppose an application desired that the provider A always be checked first when any mechanism is needed, it would call:

アプリケーションは任意のメカニズムが必要とされている場合、プロバイダは、Aは、常に最初にチェックされ、それが呼ぶだろうことが望ましいとします

           GSSManager mgr = GSSManager.getInstance();
           // mgr may at this point have its own pre-configured list
           // of provider preferences. The following will prepend to
           // any such list:
        

mgr.addProviderAtFront(A, null);

mgr.addProviderAtFront(A、NULL);

Now if it also desired that the mechanism of Oid m1 always be obtained from the provider B before the previously set A was checked, it would call:

以前に設定Aがチェックした前の今、それはまたのOIDメカニズムは常に、プロバイダBから取得することがM1ことを望むなら、それは呼び出します。

mgr.addProviderAtFront(B, m1);

mgr.addProviderAtFront(B、M1)。

The GSSManager would then first check with B if m1 was needed. In case B did not provide support for m1, the GSSManager would continue on to check with A. If any mechanism m2 is needed where m2 is different from m1 then the GSSManager would skip B and check with A directly.

M1が必要になった場合のGSSManagerは、最初にBをチェックします。場合Bは、M1のサポートを提供していませんでした任意の機構M2は、m2がm1とは異なっているところ、その後のGSSManagerはBをスキップして直接に確認してしまう必要がある場合は、GSSManagerのはA.に確認するに続けるだろう。

Suppose at a later time the following call is made to the same GSSManager instance:

次の呼び出しは、同じのGSSManagerインスタンスに対して行われ、後でと仮定します。

mgr.addProviderAtFront(B, null)

mgr.addProviderAtFront(B、NULL)

then the previous setting with the pair (B, m1) is subsumed by this and should be removed. Effectively the list of preferences now becomes {(B, null), (A, null), ... //followed by the pre-configured list.

次いで、対(B、M1)と以前の設定はこれに包含され、除去されるべきです。効果的選好のリストが今なる{(B、NULL)、(A、NULL)、... //事前設定されたリストが続きます。

Please note, however, that the following call:

しかし、その次の呼び出しに注意してください。

mgr.addProviderAtFront(A, m3)

mgr.addProviderAtFront(A、M3)

does not subsume the previous setting of (A, null) and the list will effectively become {(A, m3), (B, null), (A, null), ...}

{...、(A、M3)、(B、NULL)、(A、NULL)}(A、NULL)の以前の設定を包摂しないとリストが有効になります

6.1.17. addProviderAtEnd
6.1.17. addProviderAtEnd

public abstract addProviderAtEnd(Provider p, Oid mech) throws GSSException

パブリック抽象addProviderAtEnd(プロバイダーP、のOidメカは)てGSSExceptionをスローします

This method is used to indicate to the GSSManager that the application would like a particular provider to be used if no other provider can be found that supports the given mechanism. When a value of null is used instead of an Oid for the mechanism, the GSSManager must use the indicated provider for any mechanism.

この方法は、他のプロバイダが指定された機構をサポートする見つからない場合、アプリケーションは、特定のプロバイダを使用するたいとのGSSManagerを示すために使用されます。ヌルの値は機構のOIDの代わりに使用される場合、のGSSManagerは、任意の機構のために示されているプロバイダを使用しなければなりません。

Calling this method repeatedly preserves the older settings but raises them above newer ones in preference thus forming an ordered list of providers and Oid pairs that grows at the bottom. Thus the older provider settings will be utilized first before this one is.

このメソッドを呼び出すと、繰り返し古い設定を保持しますが、これ下部に成長するプロバイダおよびOIDペアの順序付きリストを構成する優先して、新しいものの上にそれらを発生させます。この1つはある前にこのように、古いプロバイダーの設定が最初に利用されます。

If there are any previously existing preferences that conflict with the preference being set here, then the GSSManager should ignore this request.

好みに競合がここで設定されている任意の既存の設定がある場合は、その後のGSSManagerは、この要求を無視すべきです。

If the GSSManager implementation does not support an SPI with a pluggable provider architecture it should throw a GSSException with the status code GSSException.UNAVAILABLE to indicate that the operation is unavailable.

GSSManager実装がプラグイン可能なプロバイダアーキテクチャでSPIをサポートしていない場合は、操作が利用できないことを示すステータスコードGSSException.UNAVAILABLEが設定されたGSSExceptionをスローする必要があります。

Parameters:

パラメーター:

p The provider instance that should be used whenever support is needed for mech.

Pサポートがメカのために必要なときに使用しなければならないプロバイダインスタンス。

mech The mechanism for which the provider is being set

プロバイダが設定されているメカニズムをメック

6.1.17.1. Example Code
6.1.17.1。サンプルコード

Suppose an application desired that when a mechanism of Oid m1 is needed the system default providers always be checked first, and only when they do not support m1 should a provider A be checked. It would then make the call:

アプリケーションOIDのM1のメカニズムが必要とされている場合、システムのデフォルトプロバイダは常に最初にチェックされ、それらがサポートされていない場合にのみ、m1は、プロバイダAを確認しなければならないことが望ましいとします。その後、電話をかけるでしょう。

GSSManager mgr = GSSManager.getInstance();

GSSManager MGR = GSSManager.getInstance()。

mgr.addProviderAtEnd(A, m1);

mgr.addProviderAtEnd(A、M1)。

Now, if it also desired that for all mechanisms the provider B be checked after all configured providers have been checked, it would then call:

それはまた、すべての設定されたプロバイダがチェックされた後、すべてのメカニズムのプロバイダBをチェックすることを望むなら今、それはその後、呼び出します。

mgr.addProviderAtEnd(B, null);

mgr.addProviderAtEnd(B、NULL);

Effectively the list of preferences now becomes {..., (A, m1), (B, null)}.

効果的選好のリストは、現在{...、(A、M1)、(B、NULL)}となります。

Suppose at a later time the following call is made to the same GSSManager instance:

次の呼び出しは、同じのGSSManagerインスタンスに対して行われ、後でと仮定します。

mgr.addProviderAtEnd(B, m2)

mgr.addProviderAtEnd(B、M2)

then the previous setting with the pair (B, null) subsumes this and therefore this request should be ignored. The same would happen if a request is made for the already existing pairs of (A, m1) or (B, null).

次いで、対(B、NULL)と前回の設定はこれを包含し、従って、この要求は無視されるべきです。要求が(A、M1)又は(B、NULL)の既存のペアのために作られている場合も同じことが起こります。

Please note, however, that the following call:

しかし、その次の呼び出しに注意してください。

mgr.addProviderAtEnd(A, null)

mgr.addProviderAtEnd(A、NULL)

is not subsumed by the previous setting of (A, m1) and the list will effectively become {..., (A, m1), (B, null), (A, null)}

以前の設定によって包含されていない(A、M1)とリストが有効となります{...、(A、M1)、(B、NULL)、(A、NULL)}

6.2. public interface GSSName
6.2. パブリックインターフェイスたGSSName

This interface encapsulates a single GSS-API principal entity. Different name formats and their definitions are identified with universal Object Identifiers (Oids). The format of the names can be derived based on the unique oid of its namespace type.

このインタフェースは、単一のGSS-APIの主要なエンティティをカプセル化します。別の名前の形式とその定義は、ユニバーサルオブジェクト識別子(OID)で識別されています。名前の形式は、その名前空間の種類のユニークなOIDに基づいて導出することができます。

6.2.1. Example Code
6.2.1. サンプルコード

Included below are code examples utilizing the GSSName interface. The code below creates a GSSName, converts it to a mechanism name (MN), performs a comparison, obtains a printable representation of the name, exports it and then re-imports to obtain a new GSSName.

たGSSNameインタフェースを利用したコード例を以下に含まれます。以下のコードは、機構名(MN)に変換したGSSNameを作成し、比較を行い、輸出をした後、再輸入新しいたGSSNameを得るために、名前の印刷可能な表現を取得します。

GSSManager mgr = GSSManager.getInstance();

GSSManager MGR = GSSManager.getInstance()。

// create a host based service name GSSName name = mgr.createName("service@host", GSSName.NT_HOSTBASED_SERVICE);

//ホストベースのサービス名たGSSName名= mgr.createName(「サービス@ホスト」、GSSName.NT_HOSTBASED_SERVICE)を作成します。

Oid krb5 = new Oid("1.2.840.113554.1.2.2");

oidのkrb5の=新しいのoid( "1.2.840.113554.1.2.2")。

GSSName mechName = name.canonicalize(krb5);

Gasasanamem mecaname = namekenonikalijhe(縁石5)。

// the above two steps are equivalent to the following GSSName mechName = mgr.createName("service@host", GSSName.NT_HOSTBASED_SERVICE, krb5);

//上記の2つのステップは以下たGSSName mechName = mgr.createName(「サービス@ホスト」、GSSName.NT_HOSTBASED_SERVICE、krb5の)に相当します。

// perform name comparison if (name.equals(mechName)) print("Names are equals.");

//名前の比較を行う場合(name.equals(mechName))プリント( "名前はイコールです。");

// obtain textual representation of name and its printable // name type print(mechName.toString() + mechName.getStringNameType().toString());

//名前のテキスト表現を取得し、その印刷可能//名前型プリント(mechName.toString()+ mechName.getStringNameType()toString()を。)。

// export and re-import the name byte [] exportName = mechName.export();

//エクスポートおよび再インポート名バイト[] exportName = mechName.export()。

// create a new name object from the exported buffer GSSName newName = mgr.createName(exportName, GSSName.NT_EXPORT_NAME);

//エクスポートバッファたGSSName NEWNAME = mgr.createName(exportName、GSSName.NT_EXPORT_NAME)から新しい名前オブジェクトを作成します。

6.2.2. Static Constants
6.2.2. 静的定数

public static final Oid NT_HOSTBASED_SERVICE

public static finalたOID NT_HOSTBASED_SERVICE

Oid indicating a host-based service name form. It is used to represent services associated with host computers. This name form is constructed using two elements, "service" and "hostname", as follows:

oidのホストベースのサービスの名前型を示します。ホストコンピュータに関連付けられたサービスを表すために使用されます。次のようにこの名前の形式は、二つの要素、「サービス」および「ホスト名」を使用して構築されています。

service@hostname

サービス@ホスト名

Values for the "service" element are registered with the IANA. It represents the following value: { 1(iso), 3(org), 6(dod), 1(internet), 5(security), 6(nametypes), 2(gss-host-based-services) }

「サービス」要素の値は、IANAに登録されています。それは次の値を表す:{1(ISO)、3(ORG)、6(DOD)、1(インターネット)、5(セキュリティ)、6(nametypes)、2(GSS-ホスト・ベース・サービス)}

public static final Oid NT_USER_NAME

public static finalたOID NT_USER_NAME

Name type to indicate a named user on a local system. It represents the following value: { iso(1) member-body(2) United States(840) mit(113554) infosys(1) gssapi(2) generic(1) user_name(1) }

ローカルシステム上の名前のユーザーを示すために、タイプに名前を付けます。これは次の値を表す:{ISO(1)部材本体(2)米国(840)MIT(113554)インフォシス(1)GSSAPI(2)一般的な(1)USER_NAME(1)}

public static final Oid NT_MACHINE_UID_NAME

public static finalたOID NT_MACHINE_UID_NAME

Name type to indicate a numeric user identifier corresponding to a user on a local system. (e.g. Uid). It represents the following value: { iso(1) member-body(2) United States(840) mit(113554) infosys(1) gssapi(2) generic(1) machine_uid_name(2) }

ローカルシステム上のユーザに対応する数値ユーザ識別子を示すために、タイプに名前を付けます。 (例えば、UID)。これは次の値を表す:{ISO(1)部材本体(2)米国(840)MIT(113554)インフォシス(1)GSSAPI(2)一般的な(1)machine_uid_name(2)}

public static final Oid NT_STRING_UID_NAME

public static finalたOID NT_STRING_UID_NAME

Name type to indicate a string of digits representing the numeric user identifier of a user on a local system. It represents the following value: { iso(1) member-body(2) United States(840) mit(113554) infosys(1) gssapi(2) generic(1) string_uid_name(3) }

ローカルシステム上のユーザの数値ユーザIDを表す、数字の文字列を示すタイプに名前を付けます。これは次の値を表す:{ISO(1)部材本体(2)米国(840)MIT(113554)インフォシス(1)GSSAPI(2)一般的な(1)string_uid_name(3)}

public static final Oid NT_ANONYMOUS

public static finalたOID NT_ANONYMOUS

Name type for representing an anonymous entity. It represents the following value: { 1(iso), 3(org), 6(dod), 1(internet), 5(security), 6(nametypes), 3(gss-anonymous-name) }

匿名のエンティティを表す名前型です。 {1(ISO)、3(ORG)、6(DOD)、1(インターネット)、5(セキュリティ)、6(nametypes)、3(GSS-匿名名)}:これは次の値を表します

public static final Oid NT_EXPORT_NAME

public static finalたOID NT_EXPORT_NAME

Name type used to indicate an exported name produced by the export method. It represents the following value: { 1(iso), 3(org), 6(dod), 1(internet), 5(security), 6(nametypes), 4(gss-api-exported-name) }

輸出法により製造エクスポートされた名前を示すために使用されるタイプに名前を付けます。 {1(ISO)、3(ORG)、6(DOD)、1(インターネット)、5(セキュリティ)、6(nametypes)、4(GSS-APIエクスポート名)}:これは次の値を表します

6.2.3. equals
6.2.3. 等しいです

public boolean equals(GSSName another) throws GSSException

パブリックブールのequals(たGSSName別)はてGSSExceptionをスローします

Compares two GSSName objects to determine whether they refer to the same entity. This method may throw a GSSException when the names cannot be compared. If either of the names represents an anonymous entity, the method will return "false".

彼らは同じエンティティを参照しているかどうかを判断するために2つのたGSSNameオブジェクトを比較します。このメソッドは、名前を比較することはできませんてGSSExceptionをスローすることがあります。どちらかの名前が匿名のエンティティを表している場合、この方法は、「偽」を返します。

Parameters:

パラメーター:

another GSSName object to compare with.

と比較する他たGSSNameオブジェクト。

6.2.4. equals
6.2.4. 等しいです

public boolean equals(Object another)

パブリックブール等号(別のオブジェクト)

A variation of the equals method described in 6.2.3 that is provided to override the Object.equals() method that the implementing class will inherit. The behavior is exactly the same as that in 6.2.3 except that no GSSException is thrown; instead, false will be returned in the situation where an error occurs. (Note that the Java language specification requires that two objects that are equal according to the equals(Object) method must return the same integer result when the hashCode() method is called on them.)

実装クラスが継承するはObject.equals()メソッドをオーバーライドするために設けられている6.2.3に記載のequalsメソッドの変化。動作は何てGSSExceptionがスローされないことを除いて6.2.3のそれと全く同じです。代わりに、偽のエラーが発生する状況で返されます。 (Java言語仕様では、ハッシュコード()メソッドは、それらの上に呼び出されたときのequals(Object)メソッドに従って等しい2つのオブジェクトが同じ整数の結果を返さなければならないことを要求することに注意してください。)

Parameters:

パラメーター:

another GSSName object to compare with.

と比較する他たGSSNameオブジェクト。

6.2.5. canonicalize
6.2.5. カノニカル化

public GSSName canonicalize(Oid mech) throws GSSException

パブリックたGSSNameのカノニカル(OIDメカは)てGSSExceptionをスローします

Creates a mechanism name (MN) from an arbitrary internal name. This is equivalent to using the factory methods described in 6.1.9 or 6.1.10 that take the mechanism name as one of their parameters.

任意の内部名と機構名(MN)を作成します。これは、それらのパラメータの一つとして、メカニズムの名前を取る6.1.9または6.1.10で説明したファクトリメソッドを使用するのと同じです。

Parameters:

パラメーター:

mech The oid for the mechanism for which the canonical form of the name is requested.

正規形式の名前が要求されているメカニズムのOIDをMECH。

6.2.6. export
6.2.6. 書き出す

public byte[] export() throws GSSException

公共バイト[]輸出は()てGSSExceptionをスローします

Returns a canonical contiguous byte representation of a mechanism name (MN), suitable for direct, byte by byte comparison by authorization functions. If the name is not an MN, implementations may throw a GSSException with the NAME_NOT_MN status code. If an implementation chooses not to throw an exception, it should use some system specific default mechanism to canonicalize the name and then export it. The format of the header of the output buffer is specified in RFC 2743.

認証機能により、バイトの比較による直接、バイトに適した機構名(MN)の標準的な連続したバイト表現を返します。名前がMNでない場合、実装はNAME_NOT_MNステータスコードが設定されたGSSExceptionをスローすることがあります。実装は例外をスローしないことを選択した場合、それは名前を正規化するために、いくつかのシステム固有のデフォルトのメカニズムを使用し、それをエクスポートする必要があります。出力バッファのヘッダのフォーマットは、RFC 2743で指定されています。

6.2.7. toString
6.2.7. toString

public String toString()

公共の文字列のtoString()

Returns a textual representation of the GSSName object. To retrieve the printed name format, which determines the syntax of the returned string, the getStringNameType method can be used.

GSSNameオブジェクトのテキスト表現を返します。返される文字列の構文を決定し、印刷名の形式を、取得するには、getStringNameType法を用いることができます。

6.2.8. getStringNameType
6.2.8. getStringNameType

public Oid getStringNameType() throws GSSException

公共のOid getStringNameType()てGSSExceptionをスローします

Returns the oid representing the type of name returned through the toString method. Using this oid, the syntax of the printable name can be determined.

toStringメソッドによって返された名前の型を表すOIDを返します。このOIDを使用して、印刷可能な名前の構文を決定することができます。

6.2.9. isAnonymous
6.2.9. isAnonymous

public boolean isAnonymous()

パブリックブールisAnonymous()

Tests if this name object represents an anonymous entity. Returns "true" if this is an anonymous name.

テストこの名前オブジェクトが匿名のエンティティを表します。これは匿名の名前である場合は「真」を返します。

6.2.10. isMN
0.10 T.o。太っ

public boolean isMN()

パブリックブールISMN()

Tests if this name object contains only one mechanism element and is thus a mechanism name as defined by RFC 2743.

この名前オブジェクトが一つだけの機構要素が含まれており、RFC 2743によって定義されるように、したがって機構名であるかどうかをテスト。

6.3. public interface GSSCredential implements Cloneable
6.3. パブリックインターフェイスGSSCredentialのは、Cloneableを実装します

This interface encapsulates the GSS-API credentials for an entity. A credential contains all the necessary cryptographic information to enable the creation of a context on behalf of the entity that it represents. It may contain multiple, distinct, mechanism specific credential elements, each containing information for a specific security mechanism, but all referring to the same entity.

このインタフェースは、エンティティのGSS-API資格をカプセル化します。資格は、それが表すエンティティを代表して、コンテキストの作成を可能にするために必要なすべての暗号化情報が含まれています。これは、特定のセキュリティメカニズムのために各情報を含む、複数の別個の機構特定資格要素を含んでいてもよいが、すべてが同じエンティティを参照します。

A credential may be used to perform context initiation, acceptance, or both.

信任状は、コンテキストの起動、受諾、またはその両方を実行するために使用されてもよいです。

GSS-API implementations must impose a local access-control policy on callers to prevent unauthorized callers from acquiring credentials to which they are not entitled. GSS-API credential creation 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の実装は、彼らが権利を有するされていないに資格を取得する権限のない発信者を防ぐために、発信者のローカルアクセス制御ポリシーを課す必要があります。 GSS-API資格の作成は、そのような機能は、単に既存の資格情報へのハンドルを取得するのではなく、新しい資格情報の作成を伴うだろうとして、機能「ネットワークへのログイン」を提供するものではありません。このような機能は、必要であれば、APIの実装固有の拡張で定義されるべきです。

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 GSSContext). Such mechanism-specific implementation decisions should be invisible to the calling application; thus the query methods immediately following the creation of a credential object must return valid credential data, and may therefore incur the overhead of a deferred credential acquisition.

資格取得に時間がかかる機構のためのものである場合、機構は、資格を(例えばGSSContextのにより)必要とされるまで、実際の取得を遅らせることを選択してもよいです。このような機構固有の実装の決定は、呼び出し元のアプリケーションには見えなければなりません。したがって、すぐに資格情報オブジェクトの作成を次のクエリ方法が有効な資格情報データを返す必要があり、そのため延期資格取得のオーバーヘッドが発生する場合があります。

Applications will create a credential object passing the desired parameters. The application can then use the query methods to obtain specific information about the instantiated credential object (equivalent to the gss_inquire routines). When the credential is no longer needed, the application should call the dispose (equivalent to gss_release_cred) method to release any resources held by the credential object and to destroy any cryptographically sensitive information.

アプリケーションは、必要なパラメータを渡して資格情報オブジェクトを作成します。アプリケーションは、インスタンス化資格情報オブジェクト(gss_inquireルーチンに相当)に関する特定の情報を取得するクエリメソッドを使用することができます。資格が不要になった場合、アプリケーションは、資格情報オブジェクトが保持しているすべてのリソースを解放し、任意の暗号化によって機密情報を破壊する(gss_release_credに相当)のDisposeメソッドを呼び出すべきではありません。

Classes implementing this interface also implement the Cloneable interface. This indicates the the class will support the clone() method that will allow the creation of duplicate credentials. This is useful when called just before the add() call to retain a copy of the original credential.

このインタフェースを実装しているクラスも、Cloneableインタフェースを実装します。これは、クラスが重複した資格証明書を作成することができますクローン()メソッドをサポートすることを示します。元資格のコピーを保持するだけのアドオン()呼び出しの前に呼び出されたときに便利です。

6.3.1. Example Code
6.3.1. サンプルコード

This example code demonstrates the creation of a GSSCredential implementation for a specific entity, querying of its fields, and its release when it is no longer needed.

それが不要になったときに、この例のコードは、特定のエンティティ、そのフィールドの照会、およびそのリリースのGSSCredentialの実装を作成する方法を示していません。

GSSManager mgr = GSSManager.getInstance();

GSSManager MGR = GSSManager.getInstance()。

// start by creating a name object for the entity GSSName name = mgr.createName("userName", GSSName.NT_USER_NAME);

//エンティティたGSSName名= mgr.createName(「userNameに」、GSSName.NT_USER_NAME)の名前のオブジェクトを作成することによって開始します。

// now acquire credentials for the entity GSSCredential cred = mgr.createCredential(name, GSSCredential.ACCEPT_ONLY);

//今エンティティGSSCredentialのCRED = mgr.createCredential(名前、GSSCredential.ACCEPT_ONLY)の資格を取得します。

   // display credential information - name, remaining lifetime,
   // and the mechanisms it has been acquired over
   print(cred.getName().toString());
   print(cred.getRemainingLifetime());
        
   Oid [] mechs = cred.getMechs();
   if (mechs != null) {
           for (int i = 0; i < mechs.length; i++)
                   print(mechs[i].toString());
   }
        

// release system resources held by the credential cred.dispose();

資格cred.disposeが保有する//リリースシステムリソース();

6.3.2. Static Constants
6.3.2. 静的定数

public static final int INITIATE_AND_ACCEPT

public static final int型INITIATE_AND_ACCEPT

Credential usage flag requesting that it be able to be used for both context initiation and acceptance.

資格使用フラグがコンテキストの起動と受け入れの両方に使用することができるようにすることを要求します。

public static final int INITIATE_ONLY

public static final int型INITIATE_ONLY

Credential usage flag requesting that it be able to be used for context initiation only.

資格使用フラグそれだけコンテキストの起動のために使用することができるようにすることを要求します。

public static final int ACCEPT_ONLY

public static final int型ACCEPT_ONLY

Credential usage flag requesting that it be able to be used for context acceptance only.

資格使用フラグ唯一のコンテキストの受け入れのために使用することができることが要求します。

public static final int DEFAULT_LIFETIME

public static final int型DEFAULT_LIFETIME

A lifetime constant representing the default credential lifetime.

資格のデフォルトの寿命を表す寿命定数です。

This value must be set to 0.

この値は0に設定する必要があります。

public static final int INDEFINITE_LIFETIME

public static final int型INDEFINITE_LIFETIME

A lifetime constant representing indefinite credential lifetime. This value must be set to the maximum integer value in Java - Integer.MAX_VALUE.

不定資格寿命を表す寿命定数。 Integer.MAX_VALUEの - この値は、Javaの最大の整数値に設定する必要があります。

6.3.3. dispose
6.3.3. 持っています

public void dispose() throws GSSException

公共無効にdispose()は、てGSSExceptionをスローします

Releases any sensitive information that the GSSCredential object may be containing. Applications should call this method as soon as the credential is no longer needed to minimize the time any sensitive information is maintained.

GSSCredentialオブジェクトが保有している機密情報を解放します。アプリケーションは、すぐに資格がもはや機密情報が維持されている時間を最小限にするために必要とされるように、このメソッドを呼び出す必要があります。

6.3.4. getName
6.3.4. getName

public GSSName getName() throws GSSException

パブリックたGSSNameのgetName()てGSSExceptionをスローします

Retrieves the name of the entity that the credential asserts.

資格が表明するエンティティの名前を取得します。

6.3.5. getName
6.3.5. getName

public GSSName getName(Oid mechOID) throws GSSException

パブリックたGSSNameのgetName(OID mechOIDは)てGSSExceptionをスローします

Retrieves a mechanism name of the entity that the credential asserts. Equivalent to calling canonicalize() on the name returned by 7.3.3.

資格が表明しているエンティティのメカニズムの名前を取得します。 7.3.3によって返された名前のカノニカル()を呼び出すことと同じです。

Parameters:

パラメーター:

mechOID The mechanism for which information should be returned.

情報が返されるためのメカニズムをmechOID。

6.3.6. getRemainingLifetime
6.3.6. getRemainingLifetime

public int getRemainingLifetime() throws GSSException

公共int型のgetRemainingLifetimeは()てGSSExceptionをスローします

Returns the remaining lifetime in seconds for a credential. The remaining lifetime is the minimum lifetime for any of the underlying credential mechanisms. A return value of GSSCredential.INDEFINITE_LIFETIME indicates that the credential does not expire. A return value of 0 indicates that the credential is already expired.

資格のための秒の残りの寿命を返します。残りの寿命は、基礎となる資格機構のいずれかのための最低限の寿命です。 GSSCredential.INDEFINITE_LIFETIMEの戻り値は、資格の有効期限が切れていないことを示しています。 0の戻り値は、資格がすでに期限切れになっていることを示しています。

6.3.7. getRemainingInitLifetime
6.3.7. getRemainingInitLifetime

public int getRemainingInitLifetime(Oid mech) throws GSSException

公共int型getRemainingInitLifetime(OIDメカは)てGSSExceptionをスローします

Returns the remaining lifetime is seconds for the credential to remain capable of initiating security contexts under the specified mechanism. A return value of GSSCredential.INDEFINITE_LIFETIME indicates that the credential does not expire for context initiation. A return value of 0 indicates that the credential is already expired.

残りの寿命は、資格のための秒が指定されたメカニズムの下でセキュリティコンテキストを開始することができるのままにして返します。 GSSCredential.INDEFINITE_LIFETIMEの戻り値は、資格がコンテキストの起動のための有効期限が切れていないことを示しています。 0の戻り値は、資格がすでに期限切れになっていることを示しています。

Parameters:

パラメーター:

mechOID The mechanism for which information should be returned.

情報が返されるためのメカニズムをmechOID。

6.3.8. getRemainingAcceptLifetime
6.3.8. getRemainingAcceptLifetime

public int getRemainingAcceptLifetime(Oid mech) throws GSSException

公共int型getRemainingAcceptLifetime(OIDメカは)てGSSExceptionをスローします

Returns the remaining lifetime is seconds for the credential to remain capable of accepting security contexts under the specified mechanism. A return value of GSSCredential.INDEFINITE_LIFETIME indicates that the credential does not expire for context acceptance. A return value of 0 indicates that the credential is already expired.

残りの寿命は、資格のための秒が指定されたメカニズムの下でセキュリティコンテキストを受け入れることができるのままにして返します。 GSSCredential.INDEFINITE_LIFETIMEの戻り値は、資格がコンテキストの受け入れのための有効期限が切れていないことを示しています。 0の戻り値は、資格がすでに期限切れになっていることを示しています。

Parameters:

パラメーター:

mechOID The mechanism for which information should be returned.

情報が返されるためのメカニズムをmechOID。

6.3.9. getUsage
6.3.9. getUsage

public int getUsage() throws GSSException

公共int型getUsageは()てGSSExceptionをスローします

Returns the credential usage flag. The return value will be one of GSSCredential.INITIATE_ONLY, GSSCredential.ACCEPT_ONLY, or GSSCredential.INITIATE_AND_ACCEPT.

資格使用フラグを返します。戻り値はGSSCredential.INITIATE_ONLY、GSSCredential.ACCEPT_ONLY、またはGSSCredential.INITIATE_AND_ACCEPTのいずれかになります。

6.3.10. getUsage
6.3.10. getUsage

public int getUsage(Oid mechOID) throws GSSException

公共のint getUsage(OID mechOIDは)てGSSExceptionをスローします

Returns the credential usage flag for the specified credential mechanism. The return value will be one of GSSCredential.INITIATE_ONLY, GSSCredential.ACCEPT_ONLY, or GSSCredential.INITIATE_AND_ACCEPT.

指定された資格情報メカニズムのための資格使用フラグを返します。戻り値はGSSCredential.INITIATE_ONLY、GSSCredential.ACCEPT_ONLY、またはGSSCredential.INITIATE_AND_ACCEPTのいずれかになります。

Parameters:

パラメーター:

mechOID The mechanism for which information should be returned.

情報が返されるためのメカニズムをmechOID。

6.3.11. getMechs
6.3.11. getMechs

public Oid[] getMechs() throws GSSException

公共のOIDは、[] getMechs()てGSSExceptionをスロー

Returns an array of mechanisms supported by this credential.

この資格でサポートされているメカニズムの配列を返します。

6.3.12. add
6.3.12. 追加

public void add(GSSName aName, int initLifetime, int acceptLifetime, Oid mech, int usage) throws GSSException

公共ボイドアドオン(たGSSNameもしaName、int型initLifetime、int型acceptLifetime、メカのOid、int型の使用法は)てGSSExceptionをスローします

Adds a mechanism specific credential-element to an existing credential. This method allows the construction of credentials one mechanism at a time.

既存の資格に機構固有の資格要素を追加します。この方法は、一度に1つのメカニズムの資格情報の構築を可能にします。

This routine is envisioned to be used mainly by context acceptors during the creation of acceptance credentials which are to be used with a variety of clients using different security mechanisms.

このルーチンは、異なるセキュリティ・メカニズムを使用して、さまざまなクライアントで使用される受諾の資格情報の作成中に受容文脈で主に使用されることを想定されています。

This routine adds the new credential element "in-place". To add the element in a new credential, first call clone() to obtain a copy of this credential, then call its add() method.

このルーチンは、「インプレース」の新しい資格要素を追加します。この資格のコピーを入手する新しい資格、最初の呼び出しクローン()内の要素を追加するには、そのadd()メソッドを呼び出します。

Parameters:

パラメーター:

aName Name of the principal for whom this credential is to be acquired. Use "null" to specify the default principal.

元本のもしaName名前は誰のためにこの資格を取得します。デフォルトの主体を指定するには、「ヌル」を使用してください。

initLifetime The number of seconds that credentials should remain valid for initiating of security contexts. Use GSSCredential.INDEFINITE_LIFETIME to request that the credentials have the maximum permitted lifetime. Use GSSCredential.DEFAULT_LIFETIME to request default credential lifetime.

資格情報は、セキュリティコンテキストを開始するための有効なままにする秒数をinitLifetime。資格情報が最大許容寿命を持っていることを要求する場合は、GSSCredential.INDEFINITE_LIFETIMEを使用してください。デフォルトの寿命を要求するには、GSSCredential.DEFAULT_LIFETIMEを使用してください。

acceptLifetime The number of seconds that credentials should remain valid for accepting of security contexts. Use GSSCredential.INDEFINITE_LIFETIME to request that the credentials have the maximum permitted lifetime. Use GSSCredential.DEFAULT_LIFETIME to request default credential lifetime.

資格情報は、セキュリティコンテキストを受け入れるために有効でなければならない秒数をacceptLifetime。資格情報が最大許容寿命を持っていることを要求する場合は、GSSCredential.INDEFINITE_LIFETIMEを使用してください。デフォルトの寿命を要求するには、GSSCredential.DEFAULT_LIFETIMEを使用してください。

mech The mechanisms over which the credential is to be acquired.

資格を取得しようとする上メカニズムをMECH。

usage The intended usage for this credential object. The value of this parameter must be one of: GSSCredential.ACCEPT_AND_INITIATE, GSSCredential.ACCEPT_ONLY, GSSCredential.INITIATE_ONLY

使い方この資格オブジェクトの使用目的を。 GSSCredential.ACCEPT_AND_INITIATE、GSSCredential.ACCEPT_ONLY、GSSCredential.INITIATE_ONLY:このパラメータの値は、のいずれかでなければなりません

6.3.13. equals
6.3.13. 等しいです

public boolean equals(Object another)

パブリックブール等号(別のオブジェクト)

Tests if this GSSCredential refers to the same entity as the supplied object. The two credentials must be acquired over the same mechanisms and must refer to the same principal. Returns "true" if the two GSSCredentials refer to the same entity; "false" otherwise. (Note that the Java language specification requires that two objects that are equal according to the equals(Object) method must return the same integer result when the hashCode() method is called on them.)

試験このGSSCredentialが指定されたオブジェクトと同じエンティティを参照する場合。 2つの資格情報が同じメカニズムにわたって取得されなければならず、同じ主に参照しなければなりません。 2 GSSCredentialsが同じエンティティを参照する場合は「true」を返します。そうでない場合は「偽」。 (Java言語仕様では、ハッシュコード()メソッドは、それらの上に呼び出されたときのequals(Object)メソッドに従って等しい2つのオブジェクトが同じ整数の結果を返さなければならないことを要求することに注意してください。)

Parameters:

パラメーター:

another Another GSSCredential object for comparison.

比較のために別のもう一つのGSSCredentialのオブジェクト。

6.4. public interface GSSContext
6.4. パブリックインターフェイスGSSContextの

This interface encapsulates the GSS-API security context and provides the security services (wrap, unwrap, getMIC, verifyMIC) that are available over the context. Security contexts are established between peers using locally acquired credentials. Multiple contexts may exist simultaneously between a pair of peers, using the same or different set of credentials. GSS-API functions in a manner independent of the underlying transport protocol and depends on its calling application to transport its tokens between peers.

このインタフェースは、GSS-APIのセキュリティコンテキストをカプセル化し、文脈上で利用可能なセキュリティ・サービス(ラップ、アンラップ、のgetMIC、たverifyMIC)を提供します。セキュリティコンテキストは、ローカルに取得した資格情報を使用してピア間に確立されています。複数のコンテキストは、資格情報の同じまたは異なるセットを使用して、ピアの対の間に同時に存在してもよいです。基礎となるトランスポートプロトコルのやり方とは独立でGSS-API関数とピア間のそのトークンを輸送するために、その呼び出し元のアプリケーションに依存します。

Before the context establishment phase is initiated, the context initiator may request specific characteristics desired of the established context. These can be set using the set methods. After the context is established, the caller can check the actual characteristic and services offered by the context using the query methods.

コンテキスト確立フェーズが開始される前に、コンテキスト起動は、確立されたコンテキストの所望の特定の特性を要求することができます。これらは、setメソッドを使用して設定することができます。コンテキストが確立された後、呼び出し側は、クエリメソッドを使用して、コンテキストによって提供される実際の特性やサービスを確認することができます。

The context establishment phase begins with the first call to the init method by the context initiator. During this phase the initSecContext and acceptSecContext methods will produce GSS-API authentication tokens which the calling application needs to send to its peer. If an error occurs at any point, an exception will get thrown and the code will start executing in a catch block. If not, the normal flow of code continues and the application can make a call to the isEstablished() method. If this method returns false it indicates that a token is needed from its peer in order to continue the context establishment phase. A return value of true signals that the local end of the context is established. This may still require that a token be sent to the peer, if one is produced by GSS-API. During the context establishment phase, the isProtReady() method may be called to determine if the context can be used for the per-message operations. This allows applications to use per-message operations on contexts which aren't fully established.

コンテキスト確立フェーズは、コンテキストイニシエータによってinitメソッドの最初の呼び出しから始まります。この段階でinitSecContextとのacceptSecContextメソッドは、呼び出し側のアプリケーションがそのピアに送信する必要があるGSS-APIの認証トークンが生成されます。エラーが任意の時点で発生した場合は、例外がスローされますと、コードはcatchブロックで実行を開始します。そうでない場合、コードの通常の流れが継続し、アプリケーションは、isEstablishedから()メソッドの呼び出しを行うことができます。このメソッドがfalseを返した場合には、トークンは、コンテキスト確立フェーズを継続するために、そのピアから必要とされていることを示しています。コンテキストのローカルエンドが確立された真の信号の戻り値。 1は、GSS-APIによって生成された場合、これはまだ、トークンをピアに送信することを要求することができます。コンテキスト確立フェーズの間、isProtReady()メソッドは、コンテキストがメッセージごとの操作に使用することができるかどうかを決定するために呼び出されてもよいです。これは、アプリケーションが完全に確立されていないコンテキストにメッセージごとの操作を使用することができます。

After the context has been established or the isProtReady() method returns "true", the query routines can be invoked to determine the actual characteristics and services of the established context. The application can also start using the per-message methods of wrap and getMIC to obtain cryptographic operations on application supplied data.

コンテキストが確立されている又はisProtReady()メソッドが「真」を返した後、クエリ・ルーチンは、確立されたコンテキストの実際の特性やサービスを決定するために呼び出すことができます。アプリケーションは、アプリケーション供給されたデータに暗号化操作を得るために、ラップメソッドとgetMICのメッセージごとの方法を使用して開始することができます。

When the context is no longer needed, the application should call dispose to release any system resources the context may be using.

コンテキストが不要になった場合、アプリケーションは、コンテキストが使用している可能性があるシステムリソースを解放するためにdisposeを呼び出すべきではありません。

6.4.1. Example Code
6.4.1. サンプルコード

The example code presented below demonstrates the usage of the GSSContext interface for the initiating peer. Different operations on the GSSContext object are presented, including: object instantiation, setting of desired flags, context establishment, query of actual context flags, per-message operations on application data, and finally context deletion.

以下に示すサンプルコードは、開始ピアのGSSContextのインターフェースの使用を実証します。オブジェクトのインスタンス化、所望のフラグの設定、コンテキストの確立、実際のコンテキストフラグの照会、アプリケーションデータに対するメッセージごとの操作、及び最終的にコンテキスト削除:GSSContextのオブジェクト上の異なる操作には、提示されています。

GSSManager mgr = GSSManager.getInstance();

GSSManager MGR = GSSManager.getInstance()。

// start by creating the name for a service entity GSSName targetName = mgr.createName("service@host", GSSName.NT_HOSTBASED_SERVICE);

//サービスエンティティたGSSNameターゲット名= mgr.createName(「サービス@ホスト」、GSSName.NT_HOSTBASED_SERVICE)の名前を作成することから始め、

   // create a context using default credentials for the above entity
   // and the implementation specific default mechanism
   GSSContext context = mgr.createContext(targetName,
                   null,   /* default mechanism */
                   null,   /* default credentials */
                   GSSContext.INDEFINITE_LIFETIME);
        
   // set desired context options - all others are false by default
   context.requestConf(true);
   context.requestMutualAuth(true);
   context.requestReplayDet(true);
   context.requestSequenceDet(true);
        

// establish a context between peers - using byte arrays byte []inTok = new byte[0];

//ピア間でコンテキストを確立 - バイト配列を使用して、[0] [] inTok =新しいバイトをバイト。

try { do { byte[] outTok = context.initSecContext(inTok, 0, inTok.length);

試す{{バイト[] outTok = context.initSecContext(inTok、0、inTok.length)を行います。

                   // send the token if present
                   if (outTok != null)
                           sendToken(outTok);
        

// check if we should expect more tokens if (context.isEstablished()) break;

//我々があれば(context.isEstablished())ブレーク以上のトークンを期待すべきかどうかをチェック。

// another token expected from peer inTok = readToken();

inTok = readToken()ピアから期待//別のトークン。

} while (true);

}(真)一方、

} catch (GSSException e) { print("GSSAPI error: " + e.getMessage()); }

}キャッチ(てGSSException電子){プリント( "GSSAPIエラー:" + e.getMessage())。 }

   // display context information
   print("Remaining lifetime in seconds = " + context.getLifetime());
   print("Context mechanism = " + context.getMech().toString());
   print("Initiator = " + context.getSrcName().toString());
   print("Acceptor = " + context.getTargName().toString());
        

if (context.getConfState()) print("Confidentiality security service available");

(「機密性のセキュリティサービス利用可能」)(context.getConfState())印刷する場合は、

if (context.getIntegState()) print("Integrity security service available");

(「整合性のセキュリティサービス利用可能」)(context.getIntegState())印刷する場合は、

// perform wrap on an application supplied message, appMsg, // using QOP = 0, and requesting privacy service byte [] appMsg ...

// QOP = 0を使用してメッセージ、appMsgを、//供給アプリケーションにラップを実行し、appMsg []プライバシーサービスのバイトを要求...

MessageProp mProp = new MessageProp(0, true);

MessageProp mProp =新しいMessageProp(0、真の);

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

バイト[] TOK = context.wrap(appMsg、0、appMsg.length、mProp)。

if (mProp.getPrivacy()) print("Message protected with privacy.");

もし(mProp.getPrivacy())プリント( "プライバシーを保護されたメッセージ。");

sendToken(tok);

sendToken(かかりました)。

// release the local-end of the context context.dispose();

//)(コンテキストcontext.disposeのローカルエンドを放出します。

6.4.2. Static Constants
6.4.2. 静的定数

public static final int DEFAULT_LIFETIME

public static final int型DEFAULT_LIFETIME

A lifetime constant representing the default context lifetime. This value must be set to 0.

コンテキストのデフォルトの寿命を表す寿命定数です。この値は0に設定する必要があります。

public static final int INDEFINITE_LIFETIME

public static final int型INDEFINITE_LIFETIME

A lifetime constant representing indefinite context lifetime. This value must be set to the maximum integer value in Java - Integer.MAX_VALUE.

不定コンテキストの寿命を表す寿命定数。 Integer.MAX_VALUEの - この値は、Javaの最大の整数値に設定する必要があります。

6.4.3. initSecContext
6.4.3. initSecContext

public byte[] initSecContext(byte inputBuf[], int offset, int len) throws GSSException

公共のバイトは[] initSecContext(バイトinputBuf []、int型のオフセット、int型LEN)は、てGSSExceptionをスローします

Called by the context initiator to start the context creation process. This is equivalent to the stream based method except that the token buffers are handled as byte arrays instead of using stream objects. This method may return an output token which the application will need to send to the peer for processing by the accept call. Typically, the application would do so by calling the flush() method on an OutputStream that encapsulates the connection between the two peers. The application can call isEstablished() to determine if the context establishment phase is complete for this peer. A return value of "false" from isEstablished() indicates that more tokens are expected to be supplied to the initSecContext() method. Note that it is possible that the initSecContext() method return a token for the peer, and isEstablished() return "true" also. This indicates that the token needs to be sent to the peer, but the local end of the context is now fully established.

コンテキストの作成プロセスを開始するには、コンテキストイニシエータによって呼び出されます。これは、トークンバッファが代わりにストリームオブジェクトを使用してのバイト配列として扱われることを除いて、ストリームベースの方法と同等です。この方法は、アプリケーションが受け入れるコールによる処理のためにピアに送信する必要があります出力トークンを返すことがあります。典型的には、アプリケーションは、2つのピア間の接続をカプセル化したOutputStreamにフラッシュ()メソッドを呼び出すことによってこれを行うであろう。アプリケーションは、コンテキスト確立フェーズは、このピアのために完了したかどうかを決定するためにisEstablishedから()を呼び出すことができます。 isEstablishedから()から「偽」の戻り値は、複数のトークンがinitSecContext()メソッドに供給されることが予想されることを示しています。 initSecContext()メソッドは、ピアのトークンを返すことが可能であることに留意されたいれ、isEstablished()も「真」を返します。これは、トークンは、ピアに送信する必要はなく、コンテキストのローカルエンドは現在完全に確立されていることを示します。

Upon completion of the context establishment, the available context options may be queried through the get methods.

コンテキストの確立が完了すると、利用可能なコンテキストオプションは、getメソッドを介して照会することができます。

Parameters:

パラメーター:

inputBuf Token generated by the peer. This parameter is ignored on the first call.

inputBufトークンは、ピアによって生成されます。このパラメータは、最初の呼び出しでは無視されます。

offset The offset within the inputBuf where the token begins.

トークンが始まるinputBuf内のオフセットオフセット。

len The length of the token within the inputBuf (starting at the offset).

LEN inputBuf内のトークンの長さ(オフセットから始まります)。

6.4.3.1. Example Code
6.4.3.1。サンプルコード

// Create a new GSSContext implementation object. // GSSContext wrapper implements interface GSSContext. GSSContext context = mgr.createContext(...);

//新しいGSSContextの実装オブジェクトを作成します。 // GSSContextのラッパー実装は、GSSContextのをインタフェースします。 GSSContextのコンテキスト= mgr.createContext(...);

byte []inTok = new byte[0];

バイト[] inTok =新しいバイト[0];

try {

{試します

           do {
                   byte[] outTok = context.initSecContext(inTok, 0,
                                           inTok.length);
        
                   // send the token if present
                   if (outTok != null)
                           sendToken(outTok);
        

// check if we should expect more tokens if (context.isEstablished()) break;

//我々があれば(context.isEstablished())ブレーク以上のトークンを期待すべきかどうかをチェック。

                   // another token expected from peer
                   inTok = readToken();
           } while (true);
        

} catch (GSSException e) { print("GSSAPI error: " + e.getMessage()); }

}キャッチ(てGSSException電子){プリント( "GSSAPIエラー:" + e.getMessage())。 }

6.4.4. initSecContext
6.4.4. initSecContext

public int initSecContext(InputStream inStream, OutputStream outStream) throws GSSException

公共int型initSecContext(、InputStreamであるinStream、OutputStreamのOUTSTREAMは)てGSSExceptionをスローします

Called by the context initiator to start the context creation process. This is equivalent to the byte array based method. This method may write an output token to the outStream, which the application will need to send to the peer for processing by the accept call. Typically, the application would do so by calling the flush() method on an OutputStream that encapsulates the connection between the two peers. The application can call isEstablished() to determine if the context establishment phase is complete for this peer. A return value of "false" from isEstablished indicates that more tokens are expected to be supplied to the initSecContext method. Note that it is possible that the initSecContext() method return a token for the peer, and isEstablished() return "true" also. This indicates that the token needs to be sent to the peer, but the local end of the context is now fully established.

コンテキストの作成プロセスを開始するには、コンテキストイニシエータによって呼び出されます。これは、バイト配列に基づく方法と同じです。この方法は、アプリケーションが受け入れるコールによる処理のためにピアに送信する必要がOUTSTREAMに出力トークンを書き込むことができます。典型的には、アプリケーションは、2つのピア間の接続をカプセル化したOutputStreamにフラッシュ()メソッドを呼び出すことによってこれを行うであろう。アプリケーションは、コンテキスト確立フェーズは、このピアのために完了したかどうかを決定するためにisEstablishedから()を呼び出すことができます。 isEstablishedからから「偽」の戻り値は、複数のトークンがinitSecContext方法に供給されることが予想されることを示しています。 initSecContext()メソッドは、ピアのトークンを返すことが可能であることに留意されたいれ、isEstablished()も「真」を返します。これは、トークンは、ピアに送信する必要はなく、コンテキストのローカルエンドは現在完全に確立されていることを示します。

The GSS-API authentication tokens contain a definitive start and end. This method will attempt to read one of these tokens per invocation, and may block on the stream if only part of the token is available.

GSS-APIの認証トークンは決定的開始と終了が含まれています。このメソッドは、呼び出しごとに、これらのトークンの1を読み込もうとし、トークンの一部のみが利用可能な場合、ストリーム上でブロックすることがあります。

Upon completion of the context establishment, the available context options may be queried through the get methods.

コンテキストの確立が完了すると、利用可能なコンテキストオプションは、getメソッドを介して照会することができます。

Parameters:

パラメーター:

inStream Contains the token generated by the peer. This parameter is ignored on the first call.

inStreamにはピアによって生成されたトークンが含まれています。このパラメータは、最初の呼び出しでは無視されます。

outStream Output stream where the output token will be written. During the final stage of context establishment, there may be no bytes written.

出力トークンが書き込まれる出力ストリームをOUTSTREAM。コンテキスト確立の最終段階の間に、何バイトが書き込まれていないがあってもよいです。

6.4.4.1. Example Code
6.4.4.1。サンプルコード

This sample code merely demonstrates the token exchange during the context establishment phase. It is expected that most Java applications will use custom implementations of the Input and Output streams that encapsulate the communication routines. For instance, a simple read on the application InputStream, when called by the Context, might cause a token to be read from the peer, and a simple flush() on the application OutputStream might cause a previously written token to be transmitted to the peer.

このサンプルコードは、単にコンテキスト確立フェーズトークン交換を示しています。ほとんどのJavaアプリケーションは、通信ルーチンをカプセル化入出力ストリームのカスタム実装を使用することが期待されます。例えば、アプリケーションの入力ストリーム上の単純な読み取りは、文脈によって呼び出されたとき、トークンは、ピアから読み出されると、以前に記述されたトークンを引き起こす可能性があるアプリケーションのOutputStreamに単純なフラッシュ()はピアに送信されることがあります。

// Create a new GSSContext implementation object.

//新しいGSSContextの実装オブジェクトを作成します。

// GSSContext wrapper implements interface GSSContext. GSSContext context = mgr.createContext(...);

// GSSContextのラッパー実装は、GSSContextのをインタフェースします。 GSSContextのコンテキスト= mgr.createContext(...);

   // use standard java.io stream objects
   ByteArrayOutputStream os = new ByteArrayOutputStream();
   ByteArrayInputStream is = null;
        

try {

{試します

           do {
                   context.initSecContext(is, os);
        
                   // send token if present
                   if (os.size() > 0)
                           sendToken(os);
        

// check if we should expect more tokens if (context.isEstablished()) break;

//我々があれば(context.isEstablished())ブレーク以上のトークンを期待すべきかどうかをチェック。

// another token expected from peer is = recvToken();

ピアから期待//別のトークンは= recvToken()です。

} while (true);

}(真)一方、

} catch (GSSException e) { print("GSSAPI error: " + e.getMessage()); }

}キャッチ(てGSSException電子){プリント( "GSSAPIエラー:" + e.getMessage())。 }

6.4.5. acceptSecContext
6.4.5. acceptSecContext

public byte[] acceptSecContext(byte inTok[], int offset, int len) throws GSSException

公共のバイトは[]のacceptSecContext(バイトinTok []、int型のオフセット、int型LEN)は、てGSSExceptionをスローします

Called by the context acceptor upon receiving a token from the peer. This call is equivalent to the stream based method except that the token buffers are handled as byte arrays instead of using stream objects.

ピアからトークンを受信すると、コンテキスト・アクセプターによって呼び出さ。この呼び出しは、トークンバッファが代わりにストリームオブジェクトを使用してのバイト配列として扱われることを除いて、ストリームベースの方法と同等です。

This method may return an output token which the application will need to send to the peer for further processing by the init call.

この方法は、アプリケーションが初期化コールによるさらなる処理のためにピアに送信する必要が出力トークンを返すことができます。

"null" return value indicates that no token needs to be sent to the peer. The application can call isEstablished() to determine if the context establishment phase is complete for this peer. A return value of "false" from isEstablished() indicates that more tokens are expected to be supplied to this method.

「ヌル」の戻り値にはトークンがピアに送信する必要がないことを示しています。アプリケーションは、コンテキスト確立フェーズは、このピアのために完了したかどうかを決定するためにisEstablishedから()を呼び出すことができます。 isEstablishedから()から「偽」の戻り値は、複数のトークンが、この方法に供給されることが期待されていることを示しています。

Note that it is possible that acceptSecContext() return a token for the peer, and isEstablished() return "true" also. This indicates that the token needs to be sent to the peer, but the local end of the context is now fully established.

のacceptSecContext()は、ピアのトークンが返され、isEstablished()も「真」を返すことも可能であることに注意してください。これは、トークンは、ピアに送信する必要はなく、コンテキストのローカルエンドは現在完全に確立されていることを示します。

Upon completion of the context establishment, the available context options may be queried through the get methods.

コンテキストの確立が完了すると、利用可能なコンテキストオプションは、getメソッドを介して照会することができます。

Parameters:

パラメーター:

inTok Token generated by the peer.

inTokトークンは、ピアによって生成されます。

offset The offset within the inTok where the token begins.

トークンが始まるinTok内のオフセットオフセット。

len The length of the token within the inTok (starting at the offset).

LEN inTok内のトークンの長さ(オフセットから始まります)。

6.4.5.1. Example Code
6.4.5.1。サンプルコード

// acquire server credentials GSSCredential server = mgr.createCredential(...);

//サーバーの資格情報を取得GSSCredentialのサーバー= mgr.createCredential(...);

// create acceptor GSS-API context from the default provider GSSContext context = mgr.createContext(server, null);

//デフォルトのプロバイダGSSContextのコンテキスト= mgr.createContext(サーバー、ヌル)からアクセプタGSS-APIコンテキストを作成します。

try { do { byte [] inTok = readToken();

バイト[] inTok = readToken(){{行う試みます。

                   byte []outTok = context.acceptSecContext(inTok, 0,
                                           inTok.length);
        

// possibly send token to peer if (outTok != null) sendToken(outTok);

//おそらく(!outTok = null)のsendToken(outTok)場合はピアにトークンを送ります。

                   // check if local context establishment is complete
                   if (context.isEstablished())
                           break;
           } while (true);
        

} catch (GSSException e) { print("GSS-API error: " + e.getMessage()); }

}キャッチ(てGSSException電子){プリント( "GSS-APIエラー:" + e.getMessage())。 }

6.4.6. acceptSecContext
6.4.6. acceptSecContext

public void acceptSecContext(InputStream inStream, OutputStream outStream) throws GSSException

公共のボイドのacceptSecContext(、InputStreamであるinStream、OutputStreamのOUTSTREAMは)てGSSExceptionをスローします

Called by the context acceptor upon receiving a token from the peer. This call is equivalent to the byte array method. It may write an output token to the outStream, which the application will need to send to the peer for processing by its initSecContext method. Typically, the application would do so by calling the flush() method on an OutputStream that encapsulates the connection between the two peers. The application can call isEstablished() to determine if the context establishment phase is complete for this peer. A return value of "false" from isEstablished() indicates that more tokens are expected to be supplied to this method.

ピアからトークンを受信すると、コンテキスト・アクセプターによって呼び出さ。この呼び出しは、バイト配列方式と同等です。これは、アプリケーションがそのinitSecContext方法による処理のためにピアに送信する必要がOUTSTREAMに出力トークンを書き込むことができます。典型的には、アプリケーションは、2つのピア間の接続をカプセル化したOutputStreamにフラッシュ()メソッドを呼び出すことによってこれを行うであろう。アプリケーションは、コンテキスト確立フェーズは、このピアのために完了したかどうかを決定するためにisEstablishedから()を呼び出すことができます。 isEstablishedから()から「偽」の戻り値は、複数のトークンが、この方法に供給されることが期待されていることを示しています。

Note that it is possible that acceptSecContext() return a token for the peer, and isEstablished() return "true" also. This indicates that the token needs to be sent to the peer, but the local end of the context is now fully established.

のacceptSecContext()は、ピアのトークンが返され、isEstablished()も「真」を返すことも可能であることに注意してください。これは、トークンは、ピアに送信する必要はなく、コンテキストのローカルエンドは現在完全に確立されていることを示します。

The GSS-API authentication tokens contain a definitive start and end. This method will attempt to read one of these tokens per invocation, and may block on the stream if only part of the token is available.

GSS-APIの認証トークンは決定的開始と終了が含まれています。このメソッドは、呼び出しごとに、これらのトークンの1を読み込もうとし、トークンの一部のみが利用可能な場合、ストリーム上でブロックすることがあります。

Upon completion of the context establishment, the available context options may be queried through the get methods.

コンテキストの確立が完了すると、利用可能なコンテキストオプションは、getメソッドを介して照会することができます。

Parameters:

パラメーター:

inStream Contains the token generated by the peer.

inStreamにはピアによって生成されたトークンが含まれています。

outStream Output stream where the output token will be written. During the final stage of context establishment, there may be no bytes written.

出力トークンが書き込まれる出力ストリームをOUTSTREAM。コンテキスト確立の最終段階の間に、何バイトが書き込まれていないがあってもよいです。

6.4.6.1. Example Code
6.4.6.1。サンプルコード

This sample code merely demonstrates the token exchange during the context establishment phase. It is expected that most Java applications will use custom implementations of the Input and Output streams that encapsulate the communication routines. For instance, a simple read on the application InputStream, when called by the Context, might cause a token to be read from the peer, and a simple flush() on the application OutputStream might cause a previously written token to be transmitted to the peer.

このサンプルコードは、単にコンテキスト確立フェーズトークン交換を示しています。ほとんどのJavaアプリケーションは、通信ルーチンをカプセル化入出力ストリームのカスタム実装を使用することが期待されます。例えば、アプリケーションの入力ストリーム上の単純な読み取りは、文脈によって呼び出されたとき、トークンは、ピアから読み出されると、以前に記述されたトークンを引き起こす可能性があるアプリケーションのOutputStreamに単純なフラッシュ()はピアに送信されることがあります。

// acquire server credentials

//取得サーバーの資格情報

GSSCredential server = mgr.createCredential(...);

GSSCredentialのサーバ= mgr.createCredential(...);

// create acceptor GSS-API context from the default provider GSSContext context = mgr.createContext(server, null);

//デフォルトのプロバイダGSSContextのコンテキスト= mgr.createContext(サーバー、ヌル)からアクセプタGSS-APIコンテキストを作成します。

   // use standard java.io stream objects
   ByteArrayOutputStream os = new ByteArrayOutputStream();
   ByteArrayInputStream is = null;
        

try { do {

{しようと{行います

is = recvToken();

ある= recvToken()。

context.acceptSecContext(is, os);

context.acceptSecContext(OSです)。

// possibly send token to peer if (os.size() > 0) sendToken(os);

//おそらくピアにトークンを送信する場合(os.size()> 0)sendToken(OS)。

                   // check if local context establishment is complete
                   if (context.isEstablished())
                           break;
           } while (true);
        

} catch (GSSException e) { print("GSS-API error: " + e.getMessage()); }

}キャッチ(てGSSException電子){プリント( "GSS-APIエラー:" + e.getMessage())。 }

6.4.7. isEstablished
6.4.7. 確立されています

public boolean isEstablished()

パブリックブールisEstablishedから()

Used during context establishment to determine the state of the context. Returns "true" if this is a fully established context on the caller's side and no more tokens are needed from the peer. Should be called after a call to initSecContext() or acceptSecContext() when no GSSException is thrown.

コンテキストの状態を判断するためにコンテキストが確立しているときに使用されます。これは、発信者の側で完全に確立されたコンテキストで、それ以上のトークンがピアから必要とされていない場合は「true」を返します。 initSecContext()または何てGSSExceptionがスローされないのacceptSecContext()を呼び出した後に呼び出す必要があります。

6.4.8. dispose
6.4.8. 持っています

public void dispose() throws GSSException

公共無効にdispose()は、てGSSExceptionをスローします

Releases any system resources and cryptographic information stored in the context object. This will invalidate the context.

コンテキストオブジェクトに格納されているシステム資源と暗号化情報をすべて解放。これは、コンテキストが無効になります。

6.4.9. getWrapSizeLimit
6.4.9. getWrapSizeLimit

public int getWrapSizeLimit(int qop, boolean confReq, int maxTokenSize) throws GSSException

公共int型getWrapSizeLimit(int型QOP、ブールCONFREQ、int型のMaxTokenSizeは)てGSSExceptionをスローします

Returns the maximum message size that, if presented to the wrap method with the same confReq and qop parameters, will result in an output token containing no more than the maxTokenSize bytes.

同じCONFREQとQOPパラメータを持つラップ方式に提示場合、のMaxTokenSizeバイト以下で含有しない出力トークンをもたらす最大メッセージサイズを返します。

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 getWrapSizeLimit is called. This routine guarantees only a maximum message size, not the availability of specific QOP values for message protection.

GSS-APIの実装を推奨しますが、getWrapSizeLimitが呼び出されたときに、無効なQOP値を検出する必要はありません。このルーチン保証のみ最大メッセージサイズ、メッセージ保護のための具体的なQOP値のない可用性。

Successful completion of this call does not guarantee that wrap will be able to protect a message of the computed length, since this ability may depend on the availability of system resources at the time that wrap is called. However, if the implementation itself imposes an upper limit on the length of messages that may be processed by wrap, the implementation should not return a value that is greater than this length.

この能力は、ラップが呼び出された時点で、システムリソースの可用性に依存してもよいので、そのラップを保証するものではありません。この呼び出しが正常に完了したが、計算された長さのメッセージを保護することができるようになります。実装自体は、ラップによって処理することができるメッセージの長さに上限を課す場合は、実装は、この長さよりも大きい値を返すべきではありません。

Parameters:

パラメーター:

qop Indicates the level of protection wrap will be asked to provide.

QOPは、保護ラップのレベルを提供するように要求されることを示します。

confReq Indicates if wrap will be asked to provide privacy service.

ラップはプライバシーサービスを提供するように求められます場合CONFREQを示します。

maxTokenSize The desired maximum size of the token emitted by wrap.

ラップによって放出されたトークンの所望の最大サイズのMaxTokenSize。

6.4.10. wrap
6.4.10. ラップ

public byte[] wrap(byte inBuf[], int offset, int len, MessageProp msgProp) throws GSSException

公共バイト[]ラップ(バイトはINBUFは[]、int型のオフセット、int型のlen、MessageProp msgProp)がてGSSExceptionをスローします

Applies per-message security services over the established security context. The method will return a token with a cryptographic MIC and may optionally encrypt the specified inBuf. This method is equivalent in functionality to its stream counterpart. The returned byte array will contain both the MIC and the message.

確立されたセキュリティコンテキストにメッセージごとのセキュリティサービスを適用します。この方法は、暗号化MICを有するトークンを返し、必要に応じて指定されたINBUFを暗号化することができます。このメソッドは、そのストリームの対応と機能的に同等です。返されるバイト配列は、MICとメッセージの両方が含まれています。

The MessageProp object is instantiated by the application and used to specify a QOP value which selects cryptographic algorithms, and a privacy service to optionally encrypt the message. The underlying mechanism that is used in the call may not be able to provide the privacy service. It sets the actual privacy service that it does provide in this MessageProp object which the caller should then query upon return. If the mechanism is not able to provide the requested QOP, it throws a GSSException with the BAD_QOP code.

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

Since some application-level protocols may wish to use tokens emitted by wrap to provide "secure framing", implementations should support the wrapping of zero-length messages.

いくつかのアプリケーションレベルのプロトコルは、「セキュアフレーミング」を提供するために、ラップによって放出されたトークンを使用することを望むかもしれないので、実装が長さゼロのメッセージの折り返しをサポートしなければなりません。

The application will be responsible for sending the token to the peer.

アプリケーションは、ピアにトークンを送信するための責任を負うことになります。

Parameters:

パラメーター:

inBuf Application data to be protected.

INBUFアプリケーションデータを保護します。

offset The offset within the inBuf where the data begins.

データが始まるINBUF内のオフセットオフセット。

len The length of the data within the inBuf (starting at the offset).

LEN INBUF内のデータの長さ(オフセットから始まります)。

msgProp Instance of MessageProp that is used by the application to set the desired QOP and privacy state. Set the desired QOP to 0 to request the default QOP. Upon return from this method, this object will contain the the actual privacy state that was applied to the message by the underlying mechanism.

所望QOPとプライバシ状態を設定するためにアプリケーションによって使用されるMessagePropのmsgPropインスタンス。デフォルトのQOPを要求するために0に必要なQOPを設定します。このメソッドから戻ると、このオブジェクトは、基礎となる機構によってメッセージに適用された実際のプライバシ状態を含むであろう。

6.4.11. wrap
6.4.11. ラップ

public void wrap(InputStream inStream, OutputStream outStream, MessageProp msgProp) throws GSSException

公共のボイドラップ(、InputStreamであるinStream、OutputStreamのOUTSTREAM、MessageProp msgProp)がてGSSExceptionをスローします

Allows to apply per-message security services over the established security context. The method will produce a token with a cryptographic MIC and may optionally encrypt the message in inStream. The outStream will contain both the MIC and the message.

確立されたセキュリティコンテキストにメッセージごとのセキュリティサービスを適用することができます。この方法は、暗号化MICを有するトークンを生成し、任意選択であるinStreamでメッセージを暗号化することができます。 OUTSTREAMはMICとメッセージの両方が含まれています。

The MessageProp object is instantiated by the application and used to specify a QOP value which selects cryptographic algorithms, and a privacy service to optionally encrypt the message. The underlying mechanism that is used in the call may not be able to provide the privacy service. It sets the actual privacy service that it does provide in this MessageProp object which the caller should then query upon return. If the mechanism is not able to provide the requested QOP, it throws a GSSException with the BAD_QOP code.

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

Since some application-level protocols may wish to use tokens emitted by wrap to provide "secure framing", implementations should support the wrapping of zero-length messages.

いくつかのアプリケーションレベルのプロトコルは、「セキュアフレーミング」を提供するために、ラップによって放出されたトークンを使用することを望むかもしれないので、実装が長さゼロのメッセージの折り返しをサポートしなければなりません。

The application will be responsible for sending the token to the peer.

アプリケーションは、ピアにトークンを送信するための責任を負うことになります。

Parameters:

パラメーター:

inStream Input stream containing the application data to be protected.

保護されるアプリケーションデータを含むインストリーム入力ストリーム。

outStream The output stream to write the protected message to. The application is responsible for sending this to the other peer for processing in its unwrap method.

に保護されたメッセージを書き込むための出力ストリームをOUTSTREAM。アプリケーションは、そのアンラップ方法で処理するための他のピアにこれを送信する責任があります。

msgProp Instance of MessageProp that is used by the application to set the desired QOP and privacy state. Set the desired QOP to 0 to request the default QOP. Upon return from this method, this object will contain the the actual privacy state that was applied to the message by the underlying mechanism.

所望QOPとプライバシ状態を設定するためにアプリケーションによって使用されるMessagePropのmsgPropインスタンス。デフォルトのQOPを要求するために0に必要なQOPを設定します。このメソッドから戻ると、このオブジェクトは、基礎となる機構によってメッセージに適用された実際のプライバシ状態を含むであろう。

6.4.12. unwrap
6.4.12. アンラップ

public byte [] unwrap(byte[] inBuf, int offset, int len, MessageProp msgProp) throws GSSException

公共のバイトは[](、バイト[] INBUFオフセット、int型のlen、MessageProp msgPropはint型)アンラップてGSSExceptionをスローします

Used by the peer application to process tokens generated with the wrap call. This call is equal in functionality to its stream counterpart. The method will return the message supplied in the peer application to the wrap call, verifying the embedded MIC.

ラップ呼び出しで生成されたトークンを処理するために、ピア・アプリケーションによって使用されます。この呼び出しは、そのストリームの対応と機能的に同等です。この方法は、埋め込まれたMICを検証し、ラップ呼にピアアプリケーションで供給メッセージを返します。

The MessageProp object is instantiated by the application and is used by the underlying mechanism to return information to the caller such as the QOP, whether confidentiality was applied to the message, and other supplementary message state information.

MessagePropオブジェクトは、アプリケーションによってインスタンス化され、機密性、メッセージ、及び他の補助メッセージの状態情報に適用されたかどうか、そのようなQOPとして呼び出し元に情報を返すために、基礎となるメカニズムによって使用されます。

Since some application-level protocols may wish to use tokens emitted by wrap to provide "secure framing", implementations should support the wrapping and unwrapping of zero-length messages.

いくつかのアプリケーションレベルのプロトコルは、「セキュアフレーミング」を提供するために、ラップによって放出されたトークンを使用することを望むかもしれないので、実装が長さゼロのメッセージのラッピング及びアンラッピングをサポートしなければなりません。

Parameters:

パラメーター:

inBuf GSS-API wrap token received from peer.

INBUF GSS-APIラップトークンは、ピアから受信しました。

offset The offset within the inBuf where the token begins.

トークンが始まるINBUF内のオフセットオフセット。

len The length of the token within the inBuf (starting at the offset).

LEN INBUF内のトークンの長さ(オフセットから始まります)。

msgProp Upon return from the method, this object will contain the applied QOP, the privacy state of the message, and supplementary information described in 4.12.3 stating whether the token was a duplicate, old, out of sequence or arriving after a gap.

メソッドから戻るとmsgPropは、このオブジェクトは適用されたQOP、メッセージのプライバシ状態、およびトークンはシーケンス外またはギャップの後に到着し、古い重複した、あったかどうかを知らせる4.12.3で説明した補足情報が含まれています。

6.4.13. unwrap
6.4.13. アンラップ

public void unwrap(InputStream inStream, OutputStream outStream, MessageProp msgProp) throws GSSException

公共ボイドアンラップ(、InputStreamであるinStream、OutputStreamのOUTSTREAM、MessageProp msgProp)がてGSSExceptionをスローします

Used by the peer application to process tokens generated with the wrap call. This call is equal in functionality to its byte array counterpart. It will produce the message supplied in the peer application to the wrap call, verifying the embedded MIC.

ラップ呼び出しで生成されたトークンを処理するために、ピア・アプリケーションによって使用されます。この呼び出しは、そのバイト配列の対応と機能的に同等です。これは、埋め込まれたMICを検証し、ラップ呼び出しにピアアプリケーションで提供されたメッセージを生成します。

The MessageProp object is instantiated by the application and is used by the underlying mechanism to return information to the caller such as the QOP, whether confidentiality was applied to the message, and other supplementary message state information.

MessagePropオブジェクトは、アプリケーションによってインスタンス化され、機密性、メッセージ、及び他の補助メッセージの状態情報に適用されたかどうか、そのようなQOPとして呼び出し元に情報を返すために、基礎となるメカニズムによって使用されます。

Since some application-level protocols may wish to use tokens emitted by wrap to provide "secure framing", implementations should support the wrapping and unwrapping of zero-length messages.

いくつかのアプリケーションレベルのプロトコルは、「セキュアフレーミング」を提供するために、ラップによって放出されたトークンを使用することを望むかもしれないので、実装が長さゼロのメッセージのラッピング及びアンラッピングをサポートしなければなりません。

Parameters:

パラメーター:

inStream Input stream containing the GSS-API wrap token received from the peer.

ピアから受信したGSS-APIラップトークンを含むインストリーム入力ストリーム。

outStream The output stream to write the application message to.

にアプリケーションメッセージを書き込むための出力ストリームをOUTSTREAM。

msgProp Upon return from the method, this object will contain the applied QOP, the privacy state of the message, and supplementary information described in 4.12.3 stating whether the token was a duplicate, old, out of sequence or arriving after a gap.

メソッドから戻るとmsgPropは、このオブジェクトは適用されたQOP、メッセージのプライバシ状態、およびトークンはシーケンス外またはギャップの後に到着し、古い重複した、あったかどうかを知らせる4.12.3で説明した補足情報が含まれています。

6.4.14. getMIC
6.4.14. getMIC

public byte[] getMIC(byte []inMsg, int offset, int len, MessageProp msgProp) throws GSSException

公共のバイトは[]てGSSExceptionをスローのgetMIC(オフセット、int型のlen、MessageProp msgPropはバイト[] inMsg、int型)

Returns a token containing a cryptographic MIC for the supplied message, for transfer to the peer application. Unlike wrap, which encapsulates the user message in the returned token, only the message MIC is returned in the output token. This method is identical in functionality to its stream counterpart.

ピアアプリケーションに転送するため、供給されたメッセージの暗号化MICを含むトークンを返します。返されたトークン内のユーザーのメッセージをカプセル化し、ラップとは異なり、メッセージのみのMICが出力トークンで返されます。このメソッドは、そのストリームの対応と機能的に同じです。

Note that privacy can only be applied through the wrap call.

プライバシーが唯一のラップ呼び出して適用することができます。

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

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

Parameters:

パラメーター:

inMsg Message to generate MIC over.

inMsgメッセージがMICを超える生成します。

offset The offset within the inMsg where the token begins.

トークンが始まるinMsg内のオフセットオフセット。

len The length of the token within the inMsg (starting at the offset).

LEN inMsg内のトークンの長さ(オフセットから始まります)。

msgProp Instance of MessageProp that is used by the application to set the desired QOP. Set the desired QOP to 0 in msgProp to request the default QOP. Alternatively pass in "null" for msgProp to request default QOP.

所望QOPを設定するためにアプリケーションによって使用されるMessagePropのmsgPropインスタンス。デフォルトのQOPを要求するために、msgPropに0に必要なQOPを設定します。 msgPropは、デフォルトのQOPを要求するために別の方法として、「ヌル」を渡します。

6.4.15. getMIC
6.4.15. getMIC

public void getMIC(InputStream inStream, OutputStream outStream, MessageProp msgProp) throws GSSException

公共のボイドのgetMIC(、InputStreamであるinStream、OutputStreamのOUTSTREAM、MessageProp msgProp)がてGSSExceptionをスローします

Produces a token containing a cryptographic MIC for the supplied message, for transfer to the peer application. Unlike wrap, which encapsulates the user message in the returned token, only the message MIC is produced in the output token. This method is identical in functionality to its byte array counterpart.

ピアアプリケーションに転送するため、供給されたメッセージの暗号化MICを含むトークンを生成します。返されたトークン内のユーザメッセージをカプセル化し、ラップとは異なり、メッセージのみのMICは、出力トークンで生成されます。このメソッドは、バイト配列の対応と機能的に同じです。

Note that privacy can only be applied through the wrap call.

プライバシーが唯一のラップ呼び出して適用することができます。

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

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

Parameters:

パラメーター:

inStream inStream Input stream containing the message to generate MIC over.

MICを超える生成するメッセージを含むインストリームインストリーム入力ストリーム。

outStream outStream Output stream to write the GSS-API output token to.

にGSS-API出力トークンを書き込むためのOUTSTREAM OUTSTREAM出力ストリーム。

msgProp Instance of MessageProp that is used by the application to set the desired QOP. Set the desired QOP to 0 in msgProp to request the default QOP. Alternatively pass in "null" for msgProp to request default QOP.

所望QOPを設定するためにアプリケーションによって使用されるMessagePropのmsgPropインスタンス。デフォルトのQOPを要求するために、msgPropに0に必要なQOPを設定します。 msgPropは、デフォルトのQOPを要求するために別の方法として、「ヌル」を渡します。

6.4.16. verifyMIC
6.4.16. たverifyMIC

public void verifyMIC(byte []inTok, int tokOffset, int tokLen, byte[] inMsg, int msgOffset, int msgLen, MessageProp msgProp) throws GSSException

公共のボイドたverifyMIC(バイト[] inTok、int型tokOffset、int型tokLen、バイト[] inMsg、int型msgOffset、int型さmsglen、MessageProp msgProp)はてGSSExceptionをスローします

Verifies the cryptographic MIC, contained in the token parameter, over the supplied message. This method is equivalent in functionality to its stream counterpart.

供給されたメッセージ上トークンパラメータに含まれる暗号化MICを、検証します。このメソッドは、そのストリームの対応と機能的に同等です。

The MessageProp object is instantiated by the application and is used by the underlying mechanism to return information to the caller such as the QOP indicating the strength of protection that was applied to the message and other supplementary message state information.

MessagePropオブジェクトは、アプリケーションによってインスタンス化され、そのようなメッセージや他の補助メッセージの状態情報に適用された保護の強さを示すQOPとして発信者に情報を返すために、基礎となるメカニズムによって使用されます。

Since some application-level protocols may wish to use tokens emitted by getMIC to provide "secure framing", implementations should support the calculation and verification of MICs over zero-length messages.

いくつかのアプリケーションレベルのプロトコルは、「セキュアフレーミング」を提供するのgetMICによって放出されたトークンを使用することを望むかもしれないので、実装が長さゼロのメッセージ上のMICの計算および検証をサポートしなければなりません。

Parameters:

パラメーター:

inTok Token generated by peer's getMIC method.

ピアのgetMICメソッドによって生成inTokトークン。

tokOffset The offset within the inTok where the token begins.

トークンが始まるinTok内のオフセットtokOffset。

tokLen The length of the token within the inTok (starting at the offset).

inTok(オフセットから始まる)内のトークンの長さtokLen。

inMsg Application message to verify the cryptographic MIC over.

inMsgアプリケーションメッセージはオーバー暗号化MICを検証します。

msgOffset The offset within the inMsg where the message begins.

メッセージが始まるinMsg内のオフセットmsgOffset。

msgLen The length of the message within the inMsg (starting at the offset).

さmsglen inMsg内のメッセージの長さ(オフセットから始まります)。

msgProp Upon return from the method, this object will contain the applied QOP and supplementary information described in 4.12.3 stating whether the token was a duplicate, old, out of sequence or arriving after a gap. The confidentiality state will be set to "false".

メソッドから戻るとmsgPropは、このオブジェクトは、トークンがシーケンス外またはギャップの後に到着し、古い重複した、あったかどうかを知らせる4.12.3に記述適用QOPと補足情報が含まれています。機密性の状態は、「偽」に設定されます。

6.4.17. verifyMIC
6.4.17. たverifyMIC

public void verifyMIC(InputStream tokStream, InputStream msgStream, MessageProp msgProp) throws GSSException

公共のボイドたverifyMIC(のInputStream tokStream、のInputStream msgStream、MessageProp msgProp)がてGSSExceptionをスローします

Verifies the cryptographic MIC, contained in the token parameter, over the supplied message. This method is equivalent in functionality to its byte array counterpart.

供給されたメッセージ上トークンパラメータに含まれる暗号化MICを、検証します。このメソッドは、バイト配列の対応と機能的に同等です。

The MessageProp object is instantiated by the application and is used by the underlying mechanism to return information to the caller such as the QOP indicating the strength of protection that was applied to the message and other supplementary message state information.

MessagePropオブジェクトは、アプリケーションによってインスタンス化され、そのようなメッセージや他の補助メッセージの状態情報に適用された保護の強さを示すQOPとして発信者に情報を返すために、基礎となるメカニズムによって使用されます。

Since some application-level protocols may wish to use tokens emitted by getMIC to provide "secure framing", implementations should support the calculation and verification of MICs over zero-length messages.

いくつかのアプリケーションレベルのプロトコルは、「セキュアフレーミング」を提供するのgetMICによって放出されたトークンを使用することを望むかもしれないので、実装が長さゼロのメッセージ上のMICの計算および検証をサポートしなければなりません。

Parameters:

パラメーター:

tokStream Input stream containing the token generated by peer's getMIC method.

ピアのgetMICメソッドによって生成されたトークンを含むtokStream入力ストリーム。

msgStream Input stream containing the application message to verify the cryptographic MIC over.

以上の暗号化MICを検証するアプリケーションメッセージを含むmsgStream入力ストリーム。

msgProp Upon return from the method, this object will contain the applied QOP and supplementary information described in 4.12.3 stating whether the token was a duplicate, old, out of sequence or arriving after a gap. The confidentiality state will be set to "false".

メソッドから戻るとmsgPropは、このオブジェクトは、トークンがシーケンス外またはギャップの後に到着し、古い重複した、あったかどうかを知らせる4.12.3に記述適用QOPと補足情報が含まれています。機密性の状態は、「偽」に設定されます。

6.4.18. export
6.4.18. 書き出す

public byte [] export() throws GSSException

公共バイト[]輸出は()てGSSExceptionをスローします

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.

複数のプロセス間での作業の共有をサポートするために提供。このルーチンは、通常、コンテキストアクセプタで使用される、1つのプロセスが着信接続要求を受信し、その上にセキュリティコンテキストを受け付けるアプリケーションでは、メッセージ交換のための1つまたは複数の他のプロセスに確立されたコンテキストを渡します。

This method deactivates the security context and creates an interprocess token which, when passed to the byte array constructor of the GSSContext interface 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.

この方法は、セキュリティコンテキストを非アクティブと、別のプロセスでGSSContextのインターフェイスのバイト配列コンストラクタに渡されたとき、第二の方法でコンテキストを再活性化するプロセス間トークンを作成します。所与のコンテキストの単一のインスタンスは、任意の一時点でアクティブであってもよいです。エクスポートされたセキュリティコンテキストが失敗しますアクセスするためのコンテキスト輸出国によるその後の試み。

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 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の実装では、プロセス間トークン内などの機密情報を配置しないようにするか、またはアプリケーションに戻す前に、トークンを暗号化することが奨励されているが、これは可能ではないかもしれません。したがって、アプリケーションは、プロセス間トークンを保護するために世話をし、トークンが転送されている任意のプロセスが信頼できることを確認する必要があります。

6.4.19. requestMutualAuth
6.4.19. requestMutualAuth

public void requestMutualAuth(boolean state) throws GSSException

公共ボイドrequestMutualAuth(ブール状態は)てGSSExceptionをスローします

Sets the request state of the mutual authentication flag for the context. This method is only valid before the context creation process begins and only for the initiator.

コンテキストの相互認証フラグの要求状態を設定します。コンテキストの作成プロセスが開始され、唯一のイニシエータの前に、この方法でのみ有効です。

Parameters:

パラメーター:

state Boolean representing if mutual authentication should be requested during context establishment.

相互認証がコンテ​​キスト確立時に要求されなければならない場合状態ブール表します。

6.4.20. requestReplayDet
6.4.20. requestReplayDet

public void requestReplayDet(boolean state) throws GSSException

公共ボイドrequestReplayDet(ブール状態は)てGSSExceptionをスローします

Sets the request state of the replay detection service for the context. This method is only valid before the context creation process begins and only for the initiator.

コンテキストのリプレイ検出サービスの要求状態を設定します。コンテキストの作成プロセスが開始され、唯一のイニシエータの前に、この方法でのみ有効です。

Parameters:

パラメーター:

state Boolean representing if replay detection is desired over the established context.

リプレイ検出が確立されたコンテキスト上に所望される場合状態ブール値を表します。

6.4.21. requestSequenceDet
6.4.21. requestSequenceDet

public void requestSequenceDet(boolean state) throws GSSException

公共ボイドrequestSequenceDet(ブール状態は)てGSSExceptionをスローします

Sets the request state for the sequence checking service of the context. This method is only valid before the context creation process begins and only for the initiator.

コンテキストのサービスをチェックするシーケンスのための要求状態を設定します。コンテキストの作成プロセスが開始され、唯一のイニシエータの前に、この方法でのみ有効です。

Parameters:

パラメーター:

state Boolean representing if sequence detection is desired over the established context.

シーケンス検出が確立されたコンテキスト上に所望される場合状態ブール値を表します。

6.4.22. requestCredDeleg
6.4.22. requestCredDeleg

public void requestCredDeleg(boolean state) throws GSSException

公共のボイドrequestCredDeleg(ブール状態は)てGSSExceptionをスローします

Sets the request state for the credential delegation flag for the context. This method is only valid before the context creation process begins and only for the initiator.

コンテキストの資格委任フラグの要求状態を設定します。コンテキストの作成プロセスが開始され、唯一のイニシエータの前に、この方法でのみ有効です。

Parameters:

パラメーター:

state Boolean representing if credential delegation is desired.

資格の委譲を希望する場合は状態ブール表します。

6.4.23. requestAnonymity
6.4.23. requestAnonymity

public void requestAnonymity(boolean state) throws GSSException

公共ボイドrequestAnonymity(ブール状態は)てGSSExceptionをスローします

Requests anonymous support over the context. This method is only valid before the context creation process begins and only for the initiator.

文脈を超える匿名の支援​​を要求します。コンテキストの作成プロセスが開始され、唯一のイニシエータの前に、この方法でのみ有効です。

Parameters:

パラメーター:

state Boolean representing if anonymity support is requested.

匿名のサポートが要求された場合の状態ブール表します。

6.4.24. requestConf
6.4.24. requestConf

public void requestConf(boolean state) throws GSSException

公共ボイドrequestConf(ブール状態は)てGSSExceptionをスローします

Requests that confidentiality service be available over the context. This method is only valid before the context creation process begins and only for the initiator.

機密性サービスは、コンテキスト上で利用することを要求します。コンテキストの作成プロセスが開始され、唯一のイニシエータの前に、この方法でのみ有効です。

Parameters:

パラメーター:

state Boolean indicating if confidentiality services are to be requested for the context.

機密性サービスは、コンテキストのために要求される場合に状態ブール値を示します。

6.4.25. requestInteg
6.4.25. requestInteg

public void requestInteg(boolean state) throws GSSException

公共のボイドrequestInteg(ブール状態は)てGSSExceptionをスローします

Requests that integrity services be available over the context. This method is only valid before the context creation process begins and only for the initiator.

整合性サービスは、文脈上で利用することを要求します。コンテキストの作成プロセスが開始され、唯一のイニシエータの前に、この方法でのみ有効です。

Parameters:

パラメーター:

state Boolean indicating if integrity services are to be requested for the context.

整合性サービスは、コンテキストのために要求される場合に状態ブール値を示します。

6.4.26. requestLifetime
6.4.26. requestLifetime

public void requestLifetime(int lifetime) throws GSSException

公共ボイドrequestLifetime(int型の寿命は)てGSSExceptionをスローします

Sets the desired lifetime for the context in seconds. This method is only valid before the context creation process begins and only for the initiator. Use GSSContext.INDEFINITE_LIFETIME and GSSContext.DEFAULT_LIFETIME to request indefinite or default context lifetime.

秒単位のコンテキストのための所望の寿命を設定します。コンテキストの作成プロセスが開始され、唯一のイニシエータの前に、この方法でのみ有効です。不定またはデフォルトコンテキストの寿命を要求するGSSContext.INDEFINITE_LIFETIMEとGSSContext.DEFAULT_LIFETIMEを使用してください。

Parameters:

パラメーター:

lifetime The desired context lifetime in seconds.

生涯秒で目的のコンテキストの寿命。

6.4.27. setChannelBinding
6。4。27。 せtちゃんえlびんぢんg

public void setChannelBinding(ChannelBinding cb) throws GSSException

公共ボイドsetChannelBinding(でChannelBinding CBは)てGSSExceptionをスローします

Sets the channel bindings to be used during context establishment. This method is only valid before the context creation process begins.

コンテキストが確立しているときに使用するチャネルバインディングが設定します。このメソッドは、コンテキストの作成プロセスが開始される前にのみ有効です。

Parameters:

パラメーター:

cb Channel bindings to be used.

CBチャネルバインディングを使用します。

6.4.28. getCredDelegState
6.4.28. getCredDelegState

public boolean getCredDelegState()

パブリックブールgetCredDelegState()

Returns the state of the delegated credentials for the context. When issued before context establishment is completed or when the isProtReady method returns "false", it returns the desired state, otherwise it will indicate the actual state over the established context.

コンテキストの委任資格証明書の状態を返します。コンテキストの確立が完了する前に発行されたりisProtReady方法は「偽」を返すとき、それが所望の状態に戻ったとき、それ以外の場合は、確立されたコンテキストの上に実際の状態を示します。

6.4.29. getMutualAuthState
6.4.29. getMutualAuthState

public boolean getMutualAuthState()

パブリックブールgetMutualAuthState()

Returns the state of the mutual authentication option for the context. When issued before context establishment completes or when the isProtReady method returns "false", it returns the desired state, otherwise it will indicate the actual state over the established context.

コンテキストの相互認証オプションの状態を返します。コンテキストの確立が完了またはisProtReady方法は「偽」を返すとき、それが所望の状態を返す前に発行された場合、それ以外の場合は、確立されたコンテキストの上に実際の状態を示します。

6.4.30. getReplayDetState
6.4.30. getReplayDetState

public boolean getReplayDetState()

パブリックブールgetReplayDetState()

Returns the state of the replay detection option for the context. When issued before context establishment completes or when the isProtReady method returns "false", it returns the desired state, otherwise it will indicate the actual state over the established context.

コンテキストのリプレイ検出オプションの状態を返します。コンテキストの確立が完了またはisProtReady方法は「偽」を返すとき、それが所望の状態を返す前に発行された場合、それ以外の場合は、確立されたコンテキストの上に実際の状態を示します。

6.4.31. getSequenceDetState
6.4.31. getSequenceDetState

public boolean getSequenceDetState()

パブリックブールgetSequenceDetState()

Returns the state of the sequence detection option for the context. When issued before context establishment completes or when the isProtReady method returns "false", it returns the desired state, otherwise it will indicate the actual state over the established context.

コンテキストの配列検出オプションの状態を返します。コンテキストの確立が完了またはisProtReady方法は「偽」を返すとき、それが所望の状態を返す前に発行された場合、それ以外の場合は、確立されたコンテキストの上に実際の状態を示します。

6.4.32. getAnonymityState
6.4.32. getAnonymityState

public boolean getAnonymityState()

パブリックブールgetAnonymityState()

Returns "true" if this is an anonymous context. When issued before context establishment completes or when the isProtReady method returns "false", it returns the desired state, otherwise it will indicate the actual state over the established context.

これは匿名の文脈であれば「真」を返します。コンテキストの確立が完了またはisProtReady方法は「偽」を返すとき、それが所望の状態を返す前に発行された場合、それ以外の場合は、確立されたコンテキストの上に実際の状態を示します。

6.4.33. isTransferable
6.4.33. isTransferable

public boolean isTransferable() throws GSSException

パブリックブールisTransferable()てGSSExceptionをスローします

Returns "true" if the context is transferable to other processes through the use of the export method. This call is only valid on fully established contexts.

コンテキストは、輸出法を使用して他のプロセスに転送された場合に「真」を返します。この呼び出しは完全に確立コンテキストにのみ有効です。

6.4.34. isProtReady
6.4.34. isProtReady

public boolean isProtReady()

パブリックブールisProtReady()

Returns "true" if the per message operations can be applied over the context. Some mechanisms may allow the usage of per-message operations before the context is fully established. This will also indicate that the get methods will return actual context state characteristics instead of the desired ones.

メッセージあたりの操作は、コンテキスト上に適用することができる場合は「真」を返します。コンテキストが完全に確立される前に、いくつかのメカニズムは、メッセージごとの操作の使用を可能にすることができます。また、これはgetメソッドは、実際のコンテキスト状態特性の代わりに、必要なものを返すことを示します。

6.4.35. getConfState
6.4.35. getConfState

public boolean getConfState()

パブリックブールgetConfState()

Returns the confidentiality service state over the context. When issued before context establishment completes or when the isProtReady method returns "false", it returns the desired state, otherwise it will indicate the actual state over the established context.

文脈上の機密性サービスの状態を返します。コンテキストの確立が完了またはisProtReady方法は「偽」を返すとき、それが所望の状態を返す前に発行された場合、それ以外の場合は、確立されたコンテキストの上に実際の状態を示します。

6.4.36. getIntegState
6.4.36. getIntegState

public boolean getIntegState()

パブリックブールgetIntegState()

Returns the integrity service state over the context. When issued before context establishment completes or when the isProtReady method returns "false", it returns the desired state, otherwise it will indicate the actual state over the established context.

文脈上の整合性サービスの状態を返します。コンテキストの確立が完了またはisProtReady方法は「偽」を返すとき、それが所望の状態を返す前に発行された場合、それ以外の場合は、確立されたコンテキストの上に実際の状態を示します。

6.4.37. getLifetime
6.4.37. getLifetime

public int getLifetime()

公共int型getLifetime()

Returns the context lifetime in seconds. When issued before context establishment completes or when the isProtReady method returns "false", it returns the desired lifetime, otherwise it will indicate the remaining lifetime for the context.

秒単位のコンテキスト寿命を返します。コンテキストの確立が完了またはisProtReady方法は「偽」を返すとき、それは所望の寿命を返す前に発行された場合、それ以外の場合は、コンテキストの残りの寿命を示します。

6.4.38. getSrcName
6.4.38. getSrcName

public GSSName getSrcName() throws GSSException

パブリックたGSSName getSrcName()てGSSExceptionをスローします

Returns the name of the context initiator. This call is valid only after the context is fully established or the isProtReady method returns "true". It is guaranteed to return an MN.

コンテキストイニシエータの名前を返します。この呼び出しは、コンテキストが完全に確立されるかisProtReady方法が「真」を返した後にのみ有効です。 MNを返すことが保証されます。

6.4.39. getTargName
6.4.39. getTargName

public GSSName getTargName() throws GSSException

パブリックたGSSName getTargName()てGSSExceptionをスローします

Returns the name of the context target (acceptor). This call is valid only after the context is fully established or the isProtReady method returns "true". It is guaranteed to return an MN.

コンテキストターゲット(アクセプター)の名前を返します。この呼び出しは、コンテキストが完全に確立されるかisProtReady方法が「真」を返した後にのみ有効です。 MNを返すことが保証されます。

6.4.40. getMech
6.4.40. getMech

public Oid getMech() throws GSSException

公共のOid getMech()てGSSExceptionをスローします

Returns the mechanism oid for this context. This method may be called before the context is fully established, but the mechanism returned may change on successive calls in negotiated mechanism case.

このコンテキストのメカニズムのOIDを返します。コンテキストが完全に確立される前にこのメソッドが呼び出されますが、返されたメカニズムは、交渉さ機構ケース内の連続通話に変更されることがあります。

6.4.41. getDelegCred
6.4.41. getDelegCred

public GSSCredential getDelegCred() throws GSSException

公共GSSCredentialのgetDelegCred()てGSSExceptionをスローします

Returns the delegated credential object on the acceptor's side. To check for availability of delegated credentials call getDelegCredState. This call is only valid on fully established contexts.

アクセプター側の委任資格情報オブジェクトを返します。委任資格情報の可用性をチェックするには、getDelegCredStateを呼び出します。この呼び出しは完全に確立コンテキストにのみ有効です。

6.4.42. isInitiator
6.4.42. isInitiator

public boolean isInitiator() throws GSSException

パブリックブールisInitiator()てGSSExceptionをスローします

Returns "true" if this is the initiator of the context. This call is only valid after the context creation process has started.

これは文脈のイニシエータである場合は「真」を返します。この呼び出しは、コンテキストの作成プロセスが開始された後にのみ有効です。

6.5. public class MessageProp
6.5. パブリッククラスMessageProp

This is a utility class used within the per-message GSSContext methods to convey per-message properties.

これは、メッセージごとの特性を伝えるために、メッセージごとのGSSContextのメソッド内で使用されるユーティリティクラスです。

When used with the GSSContext interface's wrap and getMIC methods, an instance of this class is used to indicate the desired QOP and to request if confidentiality services are to be applied to caller supplied data (wrap only). To request default QOP, the value of 0 should be used for QOP.

GSSContextのインターフェイスのラップメソッドとgetMICメソッドで使用される場合、機密性サービスが供給されたデータを呼び出し元に適用される場合、このクラスのインスタンスは、所望のQOPを示すために、要求するために使用される(のみラップ)。デフォルトのQOPを要求するには、0の値は、QOPのために使用すべきです。

When used with the unwrap and verifyMIC methods of the GSSContext interface, an instance of this class will be used to indicate the applied QOP and confidentiality services over the supplied message. In the case of verifyMIC, the confidentiality state will always be "false". Upon return from these methods, this object will also contain any supplementary status values applicable to the processed token. The supplementary status values can indicate old tokens, out of sequence tokens, gap tokens or duplicate tokens.

GSSContextのインターフェースのアンラップとたverifyMIC方法で使用される場合、このクラスのインスタンスは、供給されたメッセージ上に塗布QOPと機密性サービスを示すために使用されるであろう。たverifyMICの場合には、機密性状態は常に「偽」になります。これらのメソッドから戻ると、このオブジェクトは、処理されたトークンに適用される任意の補助的なステータス値が含まれます。補足ステータス値は、シーケンス・トークン、ギャップトークンまたは重複したトークンのうち、古いトークンを示すことができます。

6.5.1. Constructors
6.5.1. コンストラクタ

public MessageProp(boolean privState)

公共MessageProp(ブールprivState)

Constructor which sets QOP to 0 indicating that the default QOP is requested.

デフォルトのQOPを要求されていることを示す0にQOPを設定しますコンストラクタ。

Parameters:

パラメーター:

privState The desired privacy state. "true" for privacy and "false" for integrity only.

privState希望プライバシ状態。プライバシーのための「真」とだけ整合性のための「偽」。

public MessageProp(int qop, boolean privState)

公共MessageProp(int型QOP、ブールprivState)

Constructor which sets the values for the qop and privacy state.

QOPとプライバシ状態の値を設定するコンストラクタです。

Parameters:

パラメーター:

qop The desired QOP. Use 0 to request a default QOP.

希望QOPをQOP。デフォルトのQOPを要求するために0を使用します。

privState The desired privacy state. "true" for privacy and "false" for integrity only.

privState希望プライバシ状態。プライバシーのための「真」とだけ整合性のための「偽」。

6.5.2. getQOP
6.5.2. getQOP

public int getQOP()

公共int型getQOP()

Retrieves the QOP value.

QOP値を取得します。

6.5.3. getPrivacy
6.5.3. getPrivacy

public boolean getPrivacy()

パブリックブールgetPrivacy()

Retrieves the privacy state.

プライバシーの状態を取得します。

6.5.4. getMinorStatus
6.5.4. getMinorStatus

public int getMinorStatus()

公共int型getMinorStatus()

Retrieves the minor status that the underlying mechanism might have set.

基礎となるメカニズムが設定されている場合がありますマイナー状態を取得します。

6.5.5. getMinorString
6.5.5. getMinorString

public String getMinorString()

公共の文字列getMinorString()

Returns a string explaining the mechanism specific error code. null will be returned when no mechanism error code has been set.

機構固有のエラーコードについて説明する文字列を返します。メカニズムのエラーコードが設定されていない場合はnullが返されます。

6.5.6. setQOP
6.5.6. setQOP

public void setQOP(int qopVal)

公共ボイドsetQOP(qopValをint型)

Sets the QOP value.

QOP値を設定します。

Parameters:

パラメーター:

qopVal The QOP value to be set. Use 0 to request a default QOP value.

設定するqopVal QOP値。デフォルトのQOP値を要求するために0を使用します。

6.5.7. setPrivacy
6.5.7. setPrivacy

public void setPrivacy(boolean privState)

公共ボイドsetPrivacy(ブール状態PRIV)

Sets the privacy state.

プライバシ状態を設定します。

Parameters:

パラメーター:

privState The privacy state to set.

プライバシ状態を設定することprivState。

6.5.8. isDuplicateToken
6.5.8. DuplicateTokenです

public boolean isDuplicateToken()

パブリックブールisDuplicateToken()

Returns "true" if this is a duplicate of an earlier token.

これは以前のトークンの複製である場合は「真」を返します。

6.5.9. isOldToken
6.5.9. isOldToken

public boolean isOldToken()

パブリックブールisOldToken()

Returns "true" if the token's validity period has expired.

トークンの有効期限が切れている場合は「true」を返します。

6.5.10. isUnseqToken
sh.5.10。 isunseyatoken

public boolean isUnseqToken()

パブリックブールisUnseqToken()

Returns "true" if a later token has already been processed.

後続のトークンがすでに処理されている場合は「true」を返します。

6.5.11. isGapToken
6.5.11. isGapToken

public boolean isGapToken()

パブリックブールisGapToken()

Returns "true" if an expected per-message token was not received.

予想されるメッセージごとのトークンが受信されなかった場合は「true」を返します。

6.5.12. setSupplementaryStates
6.5.12. setSupplementaryStates

public void setSupplementaryStates(boolean duplicate, boolean old, boolean unseq, boolean gap, int minorStatus, String minorString)

公共のボイドsetSupplementaryStates(ブール複製、ブール古い、ブールunseq、ブールギャップ、minorStatus、文字列minorStringをint型)

This method sets the state for the supplementary information flags and the minor status in MessageProp. It is not used by the application but by the GSS implementation to return this information to the caller of a per-message context method.

このメソッドは、補足情報フラグの状態とマイナー状態をMessagePropに設定します。メッセージごとのコンテキストメソッドの呼び出し側にこの情報を返すために、アプリケーションではなくGSS実装で使用されていません。

Parameters:

パラメーター:

duplicate true if the token was a duplicate of an earlier token, false otherwise

トークンは以前のトークンの複製であった場合、それ以外の場合はfalse、真の複製

old true if the token's validity period has expired, false otherwise

トークンの有効期限が切れている場合は、false trueの古いそうでありません

unseq true if a later token has already been processed, false otherwise

unseq真後にトークンがすでに処理されている場合は、そうでない場合はfalse

gap true if one or more predecessor tokens have not yet been successfully processed, false otherwise

ギャップ一つ以上の前身トークンがまだ正常に処理されていない場合はtrue、そうでない場合はfalse

minorStatus the integer minor status code that the underlying mechanism wants to set

minorStatus根底にあるメカニズムを設定したい整数マイナー状態コード

minorString the textual representation of the minorStatus value

minorStatus値のテキスト表現をminorString

6.6. public class ChannelBinding
6.6. パブリッククラスでChannelBinding

The GSS-API accommodates the concept of caller-provided channel binding information. Channel bindings are used to strengthen the quality with which peer entity authentication is provided during context establishment. They enable the GSS-API callers to bind the establishment of the security context to relevant characteristics like addresses or to application specific data.

GSS-APIは、呼び出し側から提供されるチャネルバインディング情報の概念を収納します。チャネルバインディングは、ピアエンティティ認証コンテキスト確立中に提供される品質を強化するために使用されます。彼らは、アドレスのような、またはアプリケーション固有のデータに関連する特性へのセキュリティコンテキストの確立をバインドするためにGSS-APIの呼び出し元を有効にします。

The caller initiating the security context must determine the appropriate channel binding values to set in the GSSContext object. The acceptor must provide an identical binding in order to validate that received tokens possess correct channel-related characteristics.

セキュリティコンテキストを開始する発呼者は、GSSContextのオブジェクトに設定する値を結合する適切なチャンネルを決定しなければなりません。アクセプターは、受信されたトークンが正しいチャネルに関連する特性を有する検証するために同一の結合を提供しなければなりません。

Use of channel bindings is optional in GSS-API. Since channel-binding information may be transmitted in context establishment tokens, applications should therefore not use confidential data as channel-binding components.

チャネルバインディングを使用すると、GSS-APIにはオプションです。チャネルバインディング情報はコンテキスト確立トークンに送信することができるので、アプリケーションは、従って、チャネル結合成分などの機密データを使用しないでください。

6.6.1. Constructors
6.6.1. コンストラクタ

public ChannelBinding(InetAddress initAddr, InetAddress acceptAddr, byte[] appData)

公共でChannelBinding(InetAddressのinitAddr、InetAddressのacceptAddr、バイト[] APPDATA)

Create a ChannelBinding object with user supplied address information and data. "null" values can be used for any fields which the application does not want to specify.

ユーザーが入力したアドレス情報とデータを使用して、ChannelBindingオブジェクトを作成します。 「ヌル」値は、アプリケーションが指定したくないすべてのフィールドに使用することができます。

Parameters:

パラメーター:

initAddr The address of the context initiator. "null" value can be supplied to indicate that the application does not want to set this value.

コンテキストイニシエータのアドレスinitAddr。 「ヌル」値は、アプリケーションがこの値を設定したくないことを示すために供給することができます。

acceptAddrThe address of the context acceptor. "null" value can be supplied to indicate that the application does not want to set this value.

コンテキストの受け入れのacceptAddrTheアドレス。 「ヌル」値は、アプリケーションがこの値を設定したくないことを示すために供給することができます。

appData Application supplied data to be used as part of the channel bindings. "null" value can be supplied to indicate that the application does not want to set this value.

APPDATAアプリケーションは、チャネルバインディングの一部として使用されるデータを供給されます。 「ヌル」値は、アプリケーションがこの値を設定したくないことを示すために供給することができます。

public ChannelBinding(byte[] appData)

公共でChannelBinding(バイト[] APPDATA)

Creates a ChannelBinding object without any addressing information.

任意のアドレッシング情報を使用しないでChannelBindingオブジェクトを作成します。

Parameters:

パラメーター:

appData Application supplied data to be used as part of the channel bindings.

APPDATAアプリケーションは、チャネルバインディングの一部として使用されるデータを供給されます。

6.6.2. getInitiatorAddress
6.6.2. getInitiatorAddress

public InetAddress getInitiatorAddress()

公共のInetAddress getInitiatorAddress()

Returns the initiator's address for this channel binding. "null" is returned if the address has not been set.

このチャネルバインディング用の起動側のアドレスを返します。アドレスが設定されていない場合は「ヌル」が返されます。

6.6.3. getAcceptorAddress
6.6.3. getAcceptorAddress

public InetAddress getAcceptorAddress()

公共のInetAddress getAcceptorAddress()

Returns the acceptor's address for this channel binding. "null" is returned if the address has not been set.

このチャネルバインディング用の受け入れ側のアドレスを返します。アドレスが設定されていない場合は「ヌル」が返されます。

6.6.4. getApplicationData
6.6.4. GETAPPLICATIONDATA

public byte[] getApplicationData()

公共バイト[] GETAPPLICATIONDATA()

Returns application data being used as part of the ChannelBinding. "null" is returned if no application data has been specified for the channel binding.

でChannelBindingの一部として使用されているアプリケーションのデータを返します。何のアプリケーションデータをチャネルバインディング用に指定されていない場合、「ヌル」が返されます。

6.6.5. equals
6.6.5. 等しいです

public boolean equals(Object obj)

パブリックブールのequals(オブジェクトobj)

Returns "true" if two channel bindings match. (Note that the Java language specification requires that two objects that are equal according to the equals(Object) method must return the same integer result when the hashCode() method is called on them.)

2つのチャネルバインディングが一致した場合に「真」を返します。 (Java言語仕様では、ハッシュコード()メソッドは、それらの上に呼び出されたときのequals(Object)メソッドに従って等しい2つのオブジェクトが同じ整数の結果を返さなければならないことを要求することに注意してください。)

Parameters:

パラメーター:

obj Another channel binding to compare with.

OBJ別のチャネルは、と比較して結合します。

6.7. public class Oid
6.7. パブリッククラスのOid

This class represents Universal Object Identifiers (Oids) and their associated operations.

このクラスは、ユニバーサル・オブジェクト識別子(OID)とそれに関連付けられた動作を表します。

Oids are hierarchically globally-interpretable identifiers used within the GSS-API framework to identify mechanisms and name formats.

OIDは階層的機構と名前形式を識別するために、GSS-APIフレームワーク内で使用されるグローバルに解釈識別子です。

The structure and encoding of Oids is defined in ISOIEC-8824 and ISOIEC-8825. For example the Oid representation of Kerberos V5 mechanism is "1.2.840.113554.1.2.2"

OIDの構造とエンコーディングはISOIEC-8824及びISOIEC-8825で定義されています。たとえばケルベロスV5機構のOID表現は、「1.2.840.113554.1.2.2」であります

The GSSName name class contains public static Oid objects representing the standard name types defined in GSS-API.

たGSSName名クラスは、GSS-APIで定義された標準の名前型を表すのpublic staticのOidオブジェクトが含まれています。

6.7.1. Constructors
6.7.1. コンストラクタ

public Oid(String strOid) throws GSSException

公共のOid(文字列strOidは)てGSSExceptionをスローします

Creates an Oid object from a string representation of its integer components (e.g. "1.2.840.113554.1.2.2").

その整数成分(例えば、「1.2.840.113554.1.2.2」)の文字列表現からのOidオブジェクトを作成します。

Parameters:

パラメーター:

strOid The string representation for the oid.

ステロイドOIDの文字列表現。

public Oid(InputStream derOid) throws GSSException

公共のOid(のInputStream derOidは)てGSSExceptionをスローします

Creates an Oid object from its DER encoding. This refers to the full encoding including tag and length. The structure and encoding of Oids is defined in ISOIEC-8824 and ISOIEC-8825. This method is identical in functionality to its byte array counterpart.

そのDERエンコーディングからのOidオブジェクトを作成します。これは、タグと長さを含む完全な符号化を指します。 OIDの構造とエンコーディングはISOIEC-8824及びISOIEC-8825で定義されています。このメソッドは、バイト配列の対応と機能的に同じです。

Parameters:

パラメーター:

derOid Stream containing the DER encoded oid.

エンコードされたOID DERを含むderOidストリーム。

public Oid(byte[] DEROid) throws GSSException

公共のOIDは、(バイト[] DEROid)てGSSExceptionをスローします

Creates an Oid object from its DER encoding. This refers to the full encoding including tag and length. The structure and encoding of Oids is defined in ISOIEC-8824 and ISOIEC-8825. This method is identical in functionality to its byte array counterpart.

そのDERエンコーディングからのOidオブジェクトを作成します。これは、タグと長さを含む完全な符号化を指します。 OIDの構造とエンコーディングはISOIEC-8824及びISOIEC-8825で定義されています。このメソッドは、バイト配列の対応と機能的に同じです。

Parameters:

パラメーター:

derOid Byte array storing a DER encoded oid.

OID符号化されたDERを記憶derOidバイト配列。

6.7.2. toString
6.7.2. toString

public String toString()

公共の文字列のtoString()

Returns a string representation of the oid's integer components in dot separated notation (e.g. "1.2.840.113554.1.2.2").

ドット内のOIDの整数部分の文字列表現は、表記(例えば「1.2.840.113554.1.2.2」)を分離返し。

6.7.3. equals
6.7.3. 等しいです

public boolean equals(Object Obj)

パブリックブールに等しい(オブジェクトOBJ)

Returns "true" if the two Oid objects represent the same oid value. (Note that the Java language specification requires that two objects that are equal according to the equals(Object) method must return the same integer result when the hashCode() method is called on them.)

2つのOidオブジェクトが同じOID値を表す場合は「真」を返します。 (Java言語仕様では、ハッシュコード()メソッドは、それらの上に呼び出されたときのequals(Object)メソッドに従って等しい2つのオブジェクトが同じ整数の結果を返さなければならないことを要求することに注意してください。)

Parameters:

パラメーター:

obj Another Oid object to compare with.

OBJ別のOidオブジェクトと比較します。

6.7.4. getDER
6.7.4. getDER

public byte[] getDER()

公共バイト[] getDER()

Returns the full ASN.1 DER encoding for this oid object, which includes the tag and length.

タグと長さを含む、このOIDオブジェクトの完全なASN.1 DERエンコーディングを返します。

6.7.5. containedIn
6.7.5. に含まれた

public boolean containedIn(Oid[] oids)

パブリックブールcontainedIn(OID []のOID)

A utility method to test if an Oid object is contained within the supplied Oid object array.

Oidオブジェクトが供給されたOIDオブジェクト配列内に含まれているかどうかをテストするユーティリティ方法。

Parameters:

パラメーター:

oids An array of oids to search.

検索するOIDの配列をOIDS。

6.8. public class GSSException extends Exception
6.8. パブリッククラスてGSSExceptionは例外を拡張します

This exception is thrown whenever a fatal GSS-API error occurs including mechanism specific errors. It may contain both, the major and minor, GSS-API status codes. The mechanism implementers are responsible for setting appropriate minor status codes when throwing this exception. Aside from delivering the numeric error code(s) to the caller, this class performs the mapping from their numeric values to textual representations. All Java GSS-API methods are declared throwing this exception.

致命的なGSS-APIエラーが機構固有のエラーを含む発生したときに、この例外がスローされます。これは、両方の、メジャーとマイナー、GSS-API状態コードが含まれていてもよいです。メカニズムの実装はこの例外をスローするときに適切なマイナー状態コードを設定するための責任があります。別に呼び出し側に数値エラーコード(単数または複数)を送達するから、このクラスは、テキスト表現にそれらの数値からのマッピングを行います。すべてのJava GSS-APIメソッドは、この例外をスローすると宣言しています。

All implementations are encouraged to use the Java internationalization techniques to provide local translations of the message strings.

すべての実装は、メッセージ文字列の局所的な翻訳を提供するために、Javaの国際化技術を使用することが奨励されています。

6.8.1. Static Constants
6.8.1. 静的定数

All valid major GSS-API error code values are declared as constants in this class.

すべての有効な主要なGSS-APIエラーコードの値は、このクラスの定数として宣言されています。

public static final int BAD_BINDINGS

public static final int型BAD_BINDINGS

Channel bindings mismatch error.

チャネルバインディングは、エラーがミスマッチ。

public static final int BAD_MECH

public static final int型BAD_MECH

Unsupported mechanism requested error.

サポートされていないメカニズムがエラーを要求しました。

public static final int BAD_NAME

public static final int型BAD_NAME

Invalid name provided error.

無効な名前は、エラーを提供します。

public static final int BAD_NAMETYPE

public static final int型BAD_NAMETYPE

Name of unsupported type provided error.

エラーを提供し、サポートされていないタイプの名前。

public static final int BAD_STATUS

public static final int型BAD_STATUS

Invalid status code error - this is the default status value.

無効なステータスコードのエラーが - これはデフォルトのステータス値です。

public static final int BAD_MIC

public static final int型BAD_MIC

Token had invalid integrity check error.

トークンは、無効な整合性チェックエラーが発生しました。

public static final int CONTEXT_EXPIRED

public static final int型CONTEXT_EXPIRED

Specified security context expired error.

指定されたセキュリティコンテキストがエラーを期限切れ。

public static final int CREDENTIALS_EXPIRED

public static final int型CREDENTIALS_EXPIRED

Expired credentials detected error.

期限切れの資格情報には、エラーを検出しました。

public static final int DEFECTIVE_CREDENTIAL

public static final int型DEFECTIVE_CREDENTIAL

Defective credential error.

欠陥のある資格エラー。

public static final int DEFECTIVE_TOKEN

public static final int型DEFECTIVE_TOKEN

Defective token error.

欠陥のあるトークンエラー。

public static final int FAILURE

public static final int型FAILURE

General failure, unspecified at GSS-API level.

一般的な故障、GSS-APIレベルに指定されていません。

public static final int NO_CONTEXT

public static final int型NO_CONTEXT

Invalid security context error.

無効なセキュリティコンテキストエラー。

public static final int NO_CRED

public static final int型NO_CRED

Invalid credentials error.

無効な資格情報のエラー。

public static final int BAD_QOP

public static final int型BAD_QOP

Unsupported QOP value error.

サポートされていないQOP値エラー。

public static final int UNAUTHORIZED

public static final int型不正

Operation unauthorized error.

操作権限のないエラー。

public static final int UNAVAILABLE

public static final int型UNAVAILABLE

Operation unavailable error.

操作使用できないエラー。

public static final int DUPLICATE_ELEMENT

public static final int型DUPLICATE_ELEMENT

Duplicate credential element requested error.

資格要素要求されたエラーを複製します。

public static final int NAME_NOT_MN

public static final int型NAME_NOT_MN

Name contains multi-mechanism elements error.

名前は、マルチ機構部品の誤差が含まれています。

public static final int DUPLICATE_TOKEN

public static final int型DUPLICATE_TOKEN

The token was a duplicate of an earlier token. This is a fatal error code that may occur during context establishment. It is not used to indicate supplementary status values. The MessageProp object is used for that purpose.

トークンは以前のトークンの複製です。これは、コンテキストの確立中に発生する可能性のある致命的なエラーコードです。補助的なステータス値を示すために使用されていません。 MessagePropオブジェクトは、その目的のために使用されています。

public static final int OLD_TOKEN

public static final int型OLD_TOKEN

The token's validity period has expired. This is a fatal error code that may occur during context establishment. It is not used to indicate supplementary status values. The MessageProp object is used for that purpose.

トークンの有効期間が満了しています。これは、コンテキストの確立中に発生する可能性のある致命的なエラーコードです。補助的なステータス値を示すために使用されていません。 MessagePropオブジェクトは、その目的のために使用されています。

public static final int UNSEQ_TOKEN

public static final int型UNSEQ_TOKEN

A later token has already been processed. This is a fatal error code that may occur during context establishment. It is not used to indicate supplementary status values. The MessageProp object is used for that purpose.

後にトークンがすでに処理されています。これは、コンテキストの確立中に発生する可能性のある致命的なエラーコードです。補助的なステータス値を示すために使用されていません。 MessagePropオブジェクトは、その目的のために使用されています。

public static final int GAP_TOKEN

public static final int型GAP_TOKEN

An expected per-message token was not received. This is a fatal error code that may occur during context establishment. It is not used to indicate supplementary status values. The MessageProp object is used for that purpose.

予想されるメッセージごとのトークンが受信されませんでした。これは、コンテキストの確立中に発生する可能性のある致命的なエラーコードです。補助的なステータス値を示すために使用されていません。 MessagePropオブジェクトは、その目的のために使用されています。

6.8.2. Constructors
6.8.2. コンストラクタ

public GSSException(int majorCode)

公衆てGSSException(int型majorCode)

Creates a GSSException object with a specified major code.

指定されたメジャーコードを使用してGSSExceptionオブジェクトを作成します。

Parameters:

パラメーター:

majorCode The GSS error code causing this exception to be thrown.

この例外がスローされる原因となっGSSエラーコードをmajorCode。

public GSSException(int majorCode, int minorCode, String minorString)

公衆てGSSException(int型majorCode、int型minorCode、文字列minorString)

Creates a GSSException object with the specified major code, minor code, and minor code textual explanation. This constructor is to be used when the exception is originating from the security mechanism. It allows to specify the GSS code and the mechanism code.

指定されたメジャーコード、マイナーコード、マイナーコードのテキスト説明を使用してGSSExceptionオブジェクトを作成。このコンストラクタは、例外は、セキュリティ・メカニズムから発信されたときに使用されるべきです。これは、GSSコードと機構コードを指定することができます。

Parameters:

パラメーター:

majorCode The GSS error code causing this exception to be thrown.

この例外がスローされる原因となっGSSエラーコードをmajorCode。

minorCode The mechanism error code causing this exception to be thrown.

この例外がスローされる原因とメカニズムのエラーコードをminorCode。

minorString The textual explanation of the mechanism error code.

機構エラーコードのテキスト説明をminorString。

6.8.3. getMajor
6.8.3. getMajor

public int getMajor()

公共int型getMajor()

Returns the major code representing the GSS error code that caused this exception to be thrown.

この例外がスローされる原因となったGSSエラーコードを表す主要なコードを返します。

6.8.4. getMinor
6.8.4. getMinor

public int getMinor()

公共int型getMinor()

Returns the mechanism error code that caused this exception. The minor code is set by the underlying mechanism. Value of 0 indicates that mechanism error code is not set.

この例外の原因となっ機構エラーコードを返します。マイナーコードは、基礎となるメカニズムによって設定されています。 0の値は、機構エラーコードが設定されていないことを示しています。

6.8.5. getMajorString
6.8.5. getMajorString

public String getMajorString()

公共の文字列getMajorString()

Returns a string explaining the GSS major error code causing this exception to be thrown.

この例外がスローされる原因となっGSSメジャーエラーコードについて説明する文字列を返します。

6.8.6. getMinorString
6.8.6. getMinorString

public String getMinorString()

公共の文字列getMinorString()

Returns a string explaining the mechanism specific error code. null will be returned when no mechanism error code has been set.

機構固有のエラーコードについて説明する文字列を返します。メカニズムのエラーコードが設定されていない場合はnullが返されます。

6.8.7. setMinor
6.8.7. setMinor

public void setMinor(int minorCode, String message)

公共ボイドsetMinor(minorCode、文字列のメッセージをint型)

Used internally by the GSS-API implementation and the underlying mechanisms to set the minor code and its textual representation.

マイナーコードとそのテキスト表現を設定するにはGSS-APIの実装と、基礎となるメカニズムによって内部的に使用されます。

Parameters:

パラメーター:

minorCode The mechanism specific error code.

機構固有のエラーコードをminorCode。

message A textual explanation of the mechanism error code.

メッセージ機構エラーコードのテキスト説明。

6.8.8. toString
6.8.8. toString

public String toString()

公共の文字列のtoString()

Returns a textual representation of both the major and minor status codes.

両方のメジャーおよびマイナー状態コードのテキスト表現を返します。

6.8.9. getMessage
6.8.9. getMessage

public String getMessage()

公共の文字列のgetMessage()

Returns a detailed message of this exception. Overrides Throwable.getMessage. It is customary in Java to use this method to obtain exception information.

この例外の詳細メッセージを返します。オーバーライドあとでThrowable.getMessage。これは、例外情報を取得するために、このメソッドを使用するためにJavaで通例です。

7. Sample Applications
7.サンプルアプリケーション
7.1. Simple GSS Context Initiator
7.1. シンプルGSSコンテキストイニシエータ

import org.ietf.jgss.*;

輸入org.ietf.jgssの*。;

   /**
    * This is a partial sketch for a simple client program that acts
    * as a GSS context initiator.  It illustrates how to use the Java
    * bindings for the GSS-API specified in
    * Generic Security Service API Version 2 : Java bindings
    *
    *
    * This code sketch assumes the existence of a GSS-API
    * implementation that supports the mechanism that it will need and
    * is present as a library package (org.ietf.jgss) either as part of
    * the standard JRE or in the CLASSPATH the application specifies.
    */
        

public class SimpleClient {

パブリッククラスSimpleClient {

       private String serviceName; // name of peer (ie. server)
       private GSSCredential clientCred = null;
       private GSSContext context = null;
       private Oid mech; // underlying mechanism to use
        

private GSSManager mgr = GSSManager.getInstance();

民間のGSSManager MGR = GSSManager.getInstance();

... ...

。。。 。。。

       private void clientActions() {
           initializeGSS();
           establishContext();
           doCommunication();
       }
        
       /**
        * Acquire credentials for the client.
        */
       private void initializeGSS() {
        

try {

{試します

               clientCred = mgr.createCredential(null /*default princ*/,
                   GSSCredential.INDEFINITE_LIFETIME /* max lifetime */,
                   mech /* mechanism  to use */,
                   GSSCredential.INITIATE_ONLY /* init context */);
        
               print("GSSCredential created for " +
                     cred.getName().toString());
               print("Credential lifetime (sec)=" +
                     cred.getRemainingLifetime());
           } catch (GSSException e) {
                   print("GSS-API error in credential acquisition: "
                         + e.getMessage());
                   ...
                   ...
           }
        

... ... }

。。。 。。。 }

       /**
        * Does the security context establishment with the
        * server.
        */
       private void establishContext() {
        
           byte[] inToken = new byte[0];
           byte[] outToken = null;
        

try {

{試します

GSSName peer = mgr.createName(serviceName,

たGSSNameピア= mgr.createName(serviceNameを、

GSSName.NT_HOSTBASED_SERVICE);

GSSName.NT_HOSTBASED_SERVICE);

               context = mgr.createContext(peer, mech, gssCred,
                        GSSContext.INDEFINITE_LIFETIME/*lifetime*/);
        

// Will need to support confidentiality context.requestConf(true);

//は、機密性context.requestConf(true)をサポートする必要があります。

while (!context.isEstablished()) {

しばらく(!context.isEstablished()){

                   outToken = context.initSecContext(inToken, 0,
                                                     inToken.length);
        

if (outToken != null) writeGSSToken(outToken);

(!outToken = null)のwriteGSSToken(outToken)であれば、

if (!context.isEstablished()) inToken = readGSSToken(); }

(もし!context.isEstablished())inToken = readGSSToken(); }

               GSSName peer = context.getSrcName();
               print("Security context established with " + peer +
                     " using underlying mechanism " + mech.toString());
           } catch (GSSException e) {
                   print("GSS-API error during context establishment: "
                         + e.getMessage());
               ...
               ...
           }
        

... ... }

。。。 。。。 }

       /**
        * Sends some data to the server and reads back the
        * response.
        */
       private void doCommunication()  {
               byte[] inToken = null;
               byte[] outToken = null;
               byte[] buffer;
        
               // Container for multiple input-output arguments to and
               // from the per-message routines (e.g., wrap/unwrap).
               MessageProp messgInfo = new MessageProp();
        

try {

{試します

                   /*
                    * Now send some bytes to the server to be
                    * processed. They will be integrity protected but
                    * not encrypted for privacy.
                    */
        

buffer = readFromFile();

バッファ= readFromFile()。

// Set privacy to false and use the default QOP messgInfo.setPrivacy(false);

// falseにプライバシーを設定し、デフォルトのQOP messgInfo.setPrivacy(false)を使用します。

outToken = context.wrap(buffer, 0, buffer.length, messgInfo);

outToken = context.wrap(バッファ、0、buffer.length、messgInfo)。

writeGSSToken(outToken);

writeGSSToken(outToken)。

                   /*
                    * Now read the response from the server.
                    */
        
                   inToken = readGSSToken();
                   buffer = context.unwrap(inToken, 0, inToken.length,
                                           messgInfo);
                   // All ok if no exception was thrown!
        

GSSName peer = context.getSrcName();

たGSSNameピア= context.getSrcName()。

                   print("Message from "       + peer.toString()
                         + " arrived.");
                   print("Was it encrypted? "  +
                         messgInfo.getPrivacy());
                   print("Duplicate Token? "   +
                         messgInfo.isDuplicateToken());
                   print("Old Token? "         +
                         messgInfo.isOldToken());
                   print("Unsequenced Token? " +
                         messgInfo.isUnseqToken());
                   print("Gap Token? "         +
                         messgInfo.isGapToken());
        

... ...

。。。 。。。

} catch (GSSException e) { print("GSS-API error in per-message calls: " + e.getMessage()); ... ...

}キャッチ(てGSSException電子){プリント( "メッセージごとにGSS-APIエラーがコール:" + e.getMessage())。 ... ...

}

...

。。。

...

。。。

} // end of doCommunication method

} // doCommunication方法の終わり

... ...

。。。 。。。

} // end of class SimpleClient

クラスSimpleClientの} //終了

7.2. Simple GSS Context Acceptor
7.2. シンプルGSSコンテキスト・アクセプター

import org.ietf.jgss.*;

輸入org.ietf.jgssの*。;

   /**
    * This is a partial sketch for a simple server program that acts
    * as a GSS context acceptor. It illustrates how to use the Java
    * bindings for the GSS-API specified in
    * Generic Security Service API Version 2 : Java bindings
    *
    * This code sketch assumes the existence of a GSS-API
    * implementation that supports the mechanisms that it will need and
    * is present as a library package (org.ietf.jgss) either as part of
    * the standard JRE or in the CLASSPATH the application specifies.
    */
        

import org.ietf.jgss.*;

輸入org.ietf.jgssの*。;

public class SimpleServer {

パブリッククラスSimpleServerと{

       private String serviceName;
       private GSSName name;
       private GSSCredential cred;
        

private GSSManager mgr;

民間のGSSManager MGR。

... ...

。。。 。。。

       /**
        * Wait for client connections, establish security contexts and
        * provide service.
        */
       private void loop() {
        

... ...

。。。 。。。

mgr = GSSManager.getInstance();

MGR = GSSManager.getInstance()。

name = mgr.createName(serviceName, GSSName.NT_HOSTBASED_SERVICE);

名前= mgr.createName(serviceNameを、GSSName.NT_HOSTBASED_SERVICE)。

cred = mgr.createCredential(name, GSSCredential.INDEFINITE_LIFETIME, null, GSSCredential.ACCEPT_ONLY);

CRED = mgr.createCredential(名前、は、GSSCredential.INDEFINITE_LIFETIME、ヌル、GSSCredential.ACCEPT_ONLY)。

// Loop infinitely while (true) {

//ループ無限一方(TRUE){

Socket s = serverSock.accept();

ソケットS = serverSock.accept()。

               // Start a new thread to serve this connection
               Thread serverThread = new ServerThread(s);
               serverThread.start();
        

} }

} }

       /**
        * Inner class ServerThread whose run() method provides the
        * secure service to a connection.
        */
        

private class ServerThread extends Thread {

プライベートクラスServerThreadは{スレッドを拡張します

... ...

。。。 。。。

           /**
            * Deals with the connection from one client. It also
            * handles all GSSException's thrown while talking to
            * this client.
            */
           public void run() {
        
               byte[] inToken = null;
               byte[] outToken = null;
               byte[] buffer;
        

GSSName peer;

たGSSNameピア。

// Container for multiple input-output arguments to and // from the per-message routines (ie. wrap/unwrap). MessageProp supplInfo = new MessageProp();

//コンテナ複数の入力 - 出力引数のためにと、//メッセージごとのルーチンから(すなわち。ラップ/アンラップ)。 MessageProp supplInfo =新しいMessageProp();

GSSContext secContext = null;

GSSContextのsecContext = NULL;

try {

{試します

// Now do the context establishment loop

//ここコンテキスト確立ループを行います

GSSContext context = mgr.createContext(cred);

GSSContextのコンテキスト= mgr.createContext(CRED)。

while (!context.isEstablished()) {

しばらく(!context.isEstablished()){

inToken = readGSSToken();

inToken readGSSToken =();

outToken = context.acceptSecContext(inToken, 0, inToken.length);

outToken = context.acceptSecContext(inToken、0、inToken.length)。

if (outToken != null) writeGSSToken(outToken);

(!outToken = null)のwriteGSSToken(outToken)であれば、

}

// SimpleServer wants confidentiality to be // available. Check for it. if (!context.getConfState()){ ... ... }

// SimpleServerとは//利用できるように機密性を望んでいます。それを確認してください。 (もし!context.getConfState()){...} ...

                   GSSName peer = context.getSrcName();
                   Oid mech = context.getMech();
                   print("Security context established with " +
                         peer.toString() +
                         " using underlying mechanism " +
                         mech.toString() +
                         " from Provider " +
                         context.getProvider().getName());
        

// Now read the bytes sent by the client to be // processed. inToken = readGSSToken();

//今//処理されるように、クライアントによって送信されたバイトをお読みください。 inToken = readGSSToken()。

// Unwrap the message buffer = context.unwrap(inToken, 0, inToken.length, supplInfo); // All ok if no exception was thrown!

//メッセージ・バッファ= context.unwrap(inToken、0、inToken.length、supplInfo)をラップ解除。 //例外がスローされなかった場合は、すべてOK!

// Print other supplementary per-message status // information

// //情報を印刷その他の補足メッセージごとの状況

                   print("Message from " +
                           peer.toString() + " arrived.");
                   print("Was it encrypted? " +
                           supplInfo.getPrivacy());
                   print("Duplicate Token? " +
                           supplInfo.isDuplicateToken());
                   print("Old Token? "  + supplInfo.isOldToken());
                   print("Unsequenced Token? " +
                           supplInfo.isUnseqToken());
                   print("Gap Token? "  + supplInfo.isGapToken());
        
                   /*
                    * Now process the bytes and send back an encrypted
                    * response.
                    */
        

buffer = serverProcess(buffer);

バッファ= serverProcess(バッファ)

// Encipher it and send it across

//それを暗号化し、全体でそれを送信

                   supplInfo.setPrivacy(true); // privacy requested
                   supplInfo.setQOP(0); // default QOP
                   outToken = context.wrap(buffer, 0, buffer.length,
                                              supplInfo);
                   writeGSSToken(outToken);
        
               } catch (GSSException e) {
                   print("GSS-API Error: " + e.getMessage());
                   // Alternatively, could call e.getMajorMessage()
                   // and e.getMinorMessage()
                   print("Abandoning security context.");
        
                   ...
                   ...
        

}

... ...

。。。 。。。

} // end of run method in ServerThread

ServerThreadでrunメソッドの} //終了

} // end of inner class ServerThread

内部クラスServerThreadの} //端

... ...

。。。 。。。

} // end of class SimpleServer

クラスSimpleServerとの} //終了

8. Security Considerations
8.セキュリティの考慮事項

The Java language security model allows platform providers to have policy based fine-grained access control over any resource that an application wants. When using a Java security manager (such as, but not limited to, the case of applets running in browsers) the application code is in a sandbox by default.

Java言語のセキュリティモデルは、プラットフォームプロバイダが、アプリケーションが必要とするすべてのリソースを超えるポリシーベースのファイングレイン・アクセス・コントロールを持つことができます。 (はなく、アプレットの場合は、ブラウザで実行されているに限定されるものなど)Javaセキュリティマネージャを使用する場合、アプリケーション・コードは、デフォルトでサンドボックスです。

Administrators of the platform JRE determine what permissions, if any, are to be given to source from different codebases. Thus the administrator has to be aware of any special requirements that the GSS provider might have for system resources. For instance, a Kerberos provider might wish to make a network connection to the KDC to obtain initial credentials. This would not be allowed under the sandbox unless the administrator had granted permissions for this. Also note that this granting and checking of permissions happens transparently to the application and is outside the scope of this document.

プラットフォームのJREの管理者権限が、もしあれば、異なるコードベースからソースに与えられることになっているかを決定します。したがって、管理者はGSSプロバイダは、システムリソースを持っているかもしれない特別な要件を知っていなければなりません。例えば、ケルベロス・プロバイダは、初期の資格情報を取得するためにKDCへのネットワーク接続をしたいかもしれません。管理者は、このための権限を付与されていない限り、これは、サンドボックスの下で許可されません。また、アクセス権の付与このとチェックは、アプリケーションに透過的に行われ、この文書の範囲外であることに注意してください。

The Java language allows administrators to pre-configure a list of security service providers in the <JRE>/lib/security/java.security file. At runtime, the system approaches these providers in order of preference when looking for security related services. Applications have a means to modify this list through methods in the "Security" class in the "java.security" package. However, since these modifications would be visible in the entire JVM and thus affect all code executing in it, this operation is not available in the sandbox and requires special permissions to perform. Thus when a GSS application has special needs that are met by a particular security provider, it has two choices:

Java言語を使用すると、管理者は、<JRE> /lib/security/java.securityファイルのセキュリティサービスプロバイダのリストを事前に設定することができます。セキュリティ関連のサービスを探していたときに実行時に、システムは、優先順にこれらのプロバイダに近づきます。アプリケーションは、「java.security」パッケージの「セキュリティ」クラスのメソッドを通じて、このリストを変更する手段を持っています。これらの修飾は全体JVMに表示され、したがって、その中に実行されるすべてのコードに影響を与えるので、この操作は、サンドボックスで利用可能ではなく、実行するために特別な許可を必要とします。 GSSアプリケーションは、特定のセキュリティプロバイダによって満たされている特別なニーズを持っている場合このように、それは2つの選択肢があります:

1) To install the provider on a JVM wide basis using the java.security.Security class and then depend on the system to find the right provider automatically when the need arises. (This would require the application to be granted a "insertProvider SecurityPermission".)

1)java.security.Securityクラスを使用してJVMワイドベースでプロバイダをインストールして、必要が生じたときに、自動的に右のプロバイダを見つけるために、システムに依存するように。 (これは、「insertProviderのsecurityPermission」付与するアプリケーションを必要とします。)

2) To pass an instance of the provider to the local instance of GSSManager so that only factory calls going through that GSSManager use the desired provider. (This would not require any permissions.)

2)のみ工場コールが所望のプロバイダを使用することのGSSManagerを通過するようにのGSSManagerのローカルインスタンスにプロバイダのインスタンスを渡すこと。 (これは任意の権限を必要としません。)

9. Acknowledgments
9.謝辞

This proposed API leverages earlier work performed by the IETF's CAT WG as outlined in both RFC 2743 and RFC 2744. Many conceptual definitions, implementation directions, and explanations have been included from these documents.

この提案されたAPIは、RFC 2743およびRFC 2744多くの概念の定義、実装の両方向に概説し、説明はこれらの文書から含まれているとして、IETFのCAT WGによって行われる以前の作業を活用しています。

We would like to thank Mike Eisler, Lin Ling, Ram Marti, Michael Saltz and other members of Sun's development team for their helpful input, comments and suggestions.

私たちは、彼らの役に立つ入力、コメントと提案のためにマイク・アイスラー、リン・リング、ラムマルティ、マイケルSaltzおよびSunの開発チームの他のメンバーに感謝したいと思います。

We would also like to thank Joe Salowey, and Michael Smith for many insightful ideas and suggestions that have contributed to this document.

また、この文書に貢献してきた多くの洞察に満ちたアイデアや提案をジョー・Salowey、そしてマイケル・スミスに感謝したいと思います。

10. Bibliography
10.参考文献

[GSSAPIv2] Linn, J., "Generic Security Service Application Program Interface, Version 2", RFC 2078, January 1997.

[GSSAPIv2]リン、J.、 "ジェネリックセキュリティーサービス適用業務プログラムインタフェース、バージョン2"、RFC 2078、1997年1月。

[GSSAPIv2-UPDATE] Linn, J., "Generic Security Service Application Program Interface, Version 2, Update 1", RFC 2743, January 2000.

[GSSAPIv2-UPDATE]リン、J.、 "ジェネリックセキュリティーサービス適用業務プログラムインタフェース、バージョン2、アップデート1"、RFC 2743、2000年1月。

[GSSAPI-Cbind] Wray, J., "Generic Security Service API Version 2 : C-bindings", RFC 2744, January 2000.

[GSSAPI-CBIND]レイ、J.、 "ジェネリックセキュリティサービスAPIバージョン2:C-バインディング"、RFC 2744、2000年1月。

[KERBV5] Linn, J., "The Kerberos Version 5 GSS-API Mechanism", RFC 1964, June 1996.

[KERBV5]リン、J.、 "Kerberosバージョン5 GSS-APIメカニズム"、RFC 1964、1996年6月。

[SPKM] Adams, C., "The Simple Public-Key GSS-API Mechanism", RFC 2025, October 1996.

[SPKM]アダムス、C.、 "単純な公開鍵GSS-APIメカニズム"、RFC 2025、1996年10月。

11. Authors' Addresses
11.著者のアドレス

Address comments related to this memorandum to:

この覚書に関連するコメントを住所:

<cat-ietf@mit.edu>

<かtーいえtf@みt。えづ>

Jack Kabat ValiCert, Inc. 339 N. Bernardo Avenue Mountain View, CA 94043, USA

ジャック・カバットValicert社、株式会社339 N.ベルナルド・アベニューマウンテンビュー、CA 94043、USA

Phone: +1-650-567-5496 EMail: jackk@valicert.com

電話:+ 1-650-567-5496 Eメール:jackk@valicert.com

Mayank Upadhyay Sun Microsystems, Inc. 901 San Antonio Road, MS CUP02-102 Palo Alto, CA 94303

Mayank Upadhyayサン・マイクロシステムズ株式会社901サンアントニオの道、MS CUP02-102パロアルト、CA 94303

Phone: +1-408-517-5956 EMail: mdu@eng.sun.com

電話:+ 1-408-517-5956 Eメール:mdu@eng.sun.com

12. Full Copyright Statement
12.完全な著作権声明

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機能のための基金は現在、インターネット協会によって提供されます。