JavaTM Platform
Standard Ed. 6

javax.net.ssl
클래스 SSLContext

java.lang.Object 
  상위를 확장 javax.net.ssl.SSLContext


public class SSLContext
extends Object

이 클래스의 인스턴스는, 시큐어 소켓 팩토리 또는 SSLEngine 의 팩토리로서 기능하는, 시큐어 소켓 프로토콜의 구현을 나타냅니다. 이 클래스는, 열쇠 매니저와 신뢰 매니저의 임의의 편성 , 및 안전한 난수 바이트의 소스를 사용해 초기화됩니다.

도입된 버젼:
1.4

생성자 의 개요
protected SSLContext (SSLContextSpi  contextSpi, Provider  provider, String  protocol)
          SSLContext 객체를 생성합니다.
 
메소드의 개요
 SSLEngine createSSLEngine ()
          이 문맥을 사용해, 새로운 SSLEngine 를 작성합니다.
 SSLEngine createSSLEngine (String  peerHost, int peerPort)
          이 문맥과 보완적인 피어 정보를 사용해, 새로운 SSLEngine 를 작성합니다.
 SSLSessionContext getClientSessionContext ()
          클라이언트 세션 문맥을 돌려줍니다.
static SSLContext getDefault ()
          디폴트의 SSL 문맥을 돌려줍니다.
 SSLParameters getDefaultSSLParameters ()
          이 SSL 문맥의 디폴트 설정을 나타내는 SSLParameters 의 카피를 돌려줍니다.
static SSLContext getInstance (String  protocol)
          지정된 시큐어 소켓 프로토콜을 구현하는 SSLContext 객체를 돌려줍니다.
static SSLContext getInstance (String  protocol, Provider  provider)
          지정된 시큐어 소켓 프로토콜을 구현하는 SSLContext 객체를 돌려줍니다.
static SSLContext getInstance (String  protocol, String  provider)
          지정된 시큐어 소켓 프로토콜을 구현하는 SSLContext 객체를 돌려줍니다.
 String getProtocol ()
          이 SSLContext 의 프로토콜명을 돌려줍니다.
 Provider getProvider ()
          이 SSLContext 객체의 프로바이더를 돌려줍니다.
 SSLSessionContext getServerSessionContext ()
          서버 세션 문맥을 돌려줍니다.
 SSLServerSocketFactory getServerSocketFactory ()
          이 문맥의 ServerSocketFactory 객체를 돌려줍니다.
 SSLSocketFactory getSocketFactory ()
          이 문맥의 SocketFactory 객체를 돌려줍니다.
 SSLParameters getSupportedSSLParameters ()
          이 SSL 문맥으로 지원되는 설정을 나타내는 SSLParameters 의 카피를 돌려줍니다.
 void init (KeyManager [] km, TrustManager [] tm, SecureRandom  random)
          이 문맥을 초기화합니다.
static void setDefault (SSLContext  context)
          디폴트의 SSL 문맥을 설정합니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

생성자 의 상세

SSLContext

protected SSLContext(SSLContextSpi  contextSpi,
                     Provider  provider,
                     String  protocol)
SSLContext 객체를 생성합니다.

파라미터:
contextSpi - delegate
provider - 프로바이더
protocol - 프로토콜
메소드의 상세

getDefault

public static SSLContext  getDefault()
                             throws NoSuchAlgorithmException 
디폴트의 SSL 문맥을 돌려줍니다.

SSLContext.setDefault() 메소드를 사용해 디폴트 문맥이 설정되어 있었을 경우는, 그 디폴트 문맥이 돌려주어집니다. 그렇지 않은 경우는, 이 메소드를 최초로 호출했을 때에 SSLContext.getInstance("Default") 의 호출이 트리거됩니다. 성공하면(자), 그 객체가 디폴트의 SSL 문맥이 되어, 돌려주어집니다.

디폴트 문맥은 곧바로 사용 가능해져,초기화할 필요는 없습니다.

반환값:
디폴트의 SSL 문맥
예외:
NoSuchAlgorithmException - SSLContext.getInstance() 의 호출해에 실패했을 경우
도입된 버젼:
1.6

setDefault

public static void setDefault(SSLContext  context)
디폴트의 SSL 문맥을 설정합니다. 이것은, 후속의 getDefault() 의 호출로 돌려주어집니다. 디폴트 문맥은 곧바로 사용 가능해질 필요가 있어,초기화를 필요로 해서는 안됩니다.

파라미터:
context - SSLContext
예외:
NullPointerException - context 가 null 의 경우
SecurityException - 시큐리티 매니저가 존재해, 시큐리티 매니저의 checkPermission 메소드가 SSLPermission("setDefaultSSLContext") 를 허가하지 않는 경우
도입된 버젼:
1.6

getInstance

public static SSLContext  getInstance(String  protocol)
                              throws NoSuchAlgorithmException 
지정된 시큐어 소켓 프로토콜을 구현하는 SSLContext 객체를 돌려줍니다.

이 메소드는, 최우선의 프로바이더로부터 순서에, 등록을 마친 시큐리티 프로바이더의 리스트를 횡단(traverse) 합니다. 지정된 알고리즘을 지원하는 최초의 프로바이더의 SSLContextSpi 구현을 캡슐화하는 새로운 SSLContext 객체가 돌려주어집니다.

등록이 끝난 프로바이더의 리스트는,Security.getProviders() 메소드 경유로 취득할 수 있습니다.

파라미터:
protocol - 요구된 프로토콜의 표준명 표준의 프로토콜명에 대해서는, 「Java Secure Socket Extension 레퍼런스 가이드」의 부록 A 를 참조.
반환값:
새로운 SSLContext 객체.
예외:
NoSuchAlgorithmException - 지정한 프로토콜의 TrustManagerFactorySpi 의 구현을 지원하는 프로바이더가 존재하지 않는 경우
관련 항목:
Provider

getInstance

public static SSLContext  getInstance(String  protocol,
                                     String  provider)
                              throws NoSuchAlgorithmException ,
                                     NoSuchProviderException 
지정된 시큐어 소켓 프로토콜을 구현하는 SSLContext 객체를 돌려줍니다.

지정된 프로바이더의 SSLContextSpi 구현을 캡슐화하는 새로운 SSLContext 객체가 돌려주어집니다. 지정한 프로바이더는, 시큐리티 프로바이더 리스트에 등록할 필요가 있습니다.

등록이 끝난 프로바이더의 리스트는,Security.getProviders() 메소드 경유로 취득할 수 있습니다.

파라미터:
protocol - 요구된 프로토콜의 표준명 표준의 프로토콜명에 대해서는, 「Java Secure Socket Extension 레퍼런스 가이드」의 부록 A 를 참조.
provider - 프로바이더명
반환값:
새로운 SSLContext 객체.
예외:
NoSuchAlgorithmException - 지정된 프로바이더에, 지정된 프로토콜의 SSLContextSpi 의 구현이 없는 경우
NoSuchProviderException - 지정한 프로바이더가 시큐리티 프로바이더 리스트에 등록되지 않은 경우.
IllegalArgumentException - 프로바이더의 이름이 null 나 빈 상태(empty)의 경우
관련 항목:
Provider

getInstance

public static SSLContext  getInstance(String  protocol,
                                     Provider  provider)
                              throws NoSuchAlgorithmException 
지정된 시큐어 소켓 프로토콜을 구현하는 SSLContext 객체를 돌려줍니다.

지정된 Provider 객체의 SSLContextSpi 구현을 캡슐화하는 새로운 SSLContext 객체가 돌려주어집니다. 지정한 Provider 객체는, 프로바이더 리스트에 등록할 필요는 없습니다.

파라미터:
protocol - 요구된 프로토콜의 표준명 표준의 프로토콜명에 대해서는, 「Java Secure Socket Extension 레퍼런스 가이드」의 부록 A 를 참조.
provider - 프로바이더의 인스턴스.
반환값:
새로운 SSLContext 객체.
예외:
NoSuchAlgorithmException - 지정된 Provider 객체로 지정된 프로토콜의 KeyManagerFactorySpi 의 구현이 없는 경우.
IllegalArgumentException - 프로바이더명이 null 의 경우.
관련 항목:
Provider

getProtocol

public final String  getProtocol()
SSLContext 의 프로토콜명을 돌려줍니다.

SSLContext 객체를 생성한 getInstance 호출로 지정된 알고리즘명이 돌려주어집니다.

반환값:
SSLContext 객체의 프로토콜명

getProvider

public final Provider  getProvider()
SSLContext 객체의 프로바이더를 돌려줍니다.

반환값:
SSLContext 객체의 프로바이더

init

public final void init(KeyManager [] km,
                       TrustManager [] tm,
                       SecureRandom  random)
                throws KeyManagementException 
이 문맥을 초기화합니다. 최초의 2 개의 파라미터의 어느 쪽인지를 null 로 했을 경우는, 인스톨 되고 있는 시큐리티 프로바이더로부터, 해당하는 팩토리의 가장 우선 순위의 높은 구현이 검색됩니다. 같이 SecureRandom 파라미터를 null 로 했을 경우는, 디폴트의 구현이 사용됩니다.  

열쇠 매니저나 신뢰 매니저는, 배열내에 최초로 배치되고 있는 구현형의 인스턴스만이 사용됩니다 (예를 들어, 배열내의 최초의 javax.net.ssl.X509KeyManager 만이 사용된다).

파라미터:
km - 인증 키의 소스 또는 null
tm - 피어 인증의 신뢰를 판단하는 소스, 또는 null
random - 이 제네레이터의 random number generation의 원, 또는 null
예외:
KeyManagementException - 이 처리가 실패했을 경우

getSocketFactory

public final SSLSocketFactory  getSocketFactory()
이 문맥의 SocketFactory 객체를 돌려줍니다.

반환값:
SocketFactory 객체
예외:
IllegalStateException - SSLContextImpl 가 초기화를 필요로 해,init() 가 불려 가지 않았던 경우

getServerSocketFactory

public final SSLServerSocketFactory  getServerSocketFactory()
이 문맥의 ServerSocketFactory 객체를 돌려줍니다.

반환값:
ServerSocketFactory 객체
예외:
IllegalStateException - SSLContextImpl 가 초기화를 필요로 해,init() 가 불려 가지 않았던 경우

createSSLEngine

public final SSLEngine  createSSLEngine()
이 문맥을 사용해, 새로운 SSLEngine 를 작성합니다.  

이 팩토리 메소드를 사용하고 있는 어플리케이션은, 내부 세션의 재사용에 관한 힌트를 제공하지 않습니다. 힌트를 제공하고 싶은 경우는, 대신에 createSSLEngine(String, int) 를 사용해 주세요.  

Kerberos 등, 원격 호스트명의 정보를 필요로 하는 암호화 방식군도 있습니다. 이 경우는, 이 팩토리 메소드를 사용하지 말아 주세요.

반환값:
SSLEngine 객체
예외:
UnsupportedOperationException - 기본이 되는 프로바이더가 이 조작을 구현하고 있지 않는 경우.
IllegalStateException - SSLContextImpl 가 초기화를 필요로 해,init() 가 불려 가지 않았던 경우
도입된 버젼:
1.5

createSSLEngine

public final SSLEngine  createSSLEngine(String  peerHost,
                                       int peerPort)
이 문맥과 보완적인 피어 정보를 사용해, 새로운 SSLEngine 를 작성합니다.  

이 팩토리 메소드를 사용하고 있는 어플리케이션은, 내부 세션의 재사용에 관한 힌트를 제공합니다.  

Kerberos 등, 원격 호스트명의 정보를 필요로 하는 암호화 방식군도 있습니다. 이 경우는, peerHost 를 지정할 필요가 있습니다.

파라미터:
peerHost - 임의 지정의 호스트명
peerPort - 임의 지정의 포트
반환값:
새로운 SSLEngine 객체
예외:
UnsupportedOperationException - 기본이 되는 프로바이더가 이 조작을 구현하고 있지 않는 경우.
IllegalStateException - SSLContextImpl 가 초기화를 필요로 해,init() 가 불려 가지 않았던 경우
도입된 버젼:
1.5

getServerSessionContext

public final SSLSessionContext  getServerSessionContext()
서버 세션 문맥을 돌려줍니다. 이 문맥에는, 서버측 SSL 소켓의 핸드 쉐이크중에 사용할 수 있는 SSL 세션이 지정되고 있습니다.  

문맥은, 일부의 환경에서는 취득할 수 없습니다. 그 경우는 null 를 돌려줍니다. 예를 들어, 기본이 되는 SSL 프로바이더가 SSLSessionContext 인터페이스를 구현하고 있지 않는 경우는, null 가 돌려주어집니다. 구현하고 있는 경우는, null 이외의 세션 문맥이 돌려주어집니다.

반환값:
이 SSL 문맥에 바인드 되고 있는 서버 세션 문맥

getClientSessionContext

public final SSLSessionContext  getClientSessionContext()
클라이언트 세션 문맥을 돌려줍니다. 이 문맥에는, 클라이언트측 SSL 소켓의 핸드 쉐이크중에 사용할 수 있는 SSL 세션이 지정되고 있습니다.  

문맥은, 일부의 환경에서는 취득할 수 없습니다. 그 경우는 null 를 돌려줍니다. 예를 들어, 기본이 되는 SSL 프로바이더가 SSLSessionContext 인터페이스를 구현하고 있지 않는 경우는, null 가 돌려주어집니다. 구현하고 있는 경우는, null 이외의 세션 문맥이 돌려주어집니다.

반환값:
이 SSL 문맥에 바인드 되고 있는 클라이언트 세션 문맥

getDefaultSSLParameters

public final SSLParameters  getDefaultSSLParameters()
이 SSL 문맥의 디폴트 설정을 나타내는 SSLParameters 의 카피를 돌려줍니다.

파라미터는, null 치 이외에 설정된 암호화 방식군과 프로토콜 배열을 항상 가집니다.

반환값:
디폴트 설정을 가지는 SSLParameters 객체의 카피
예외:
UnsupportedOperationException - 디폴트의 SSL 파라미터를 취득할 수 없었던 경우
도입된 버젼:
1.6

getSupportedSSLParameters

public final SSLParameters  getSupportedSSLParameters()
이 SSL 문맥으로 지원되는 설정을 나타내는 SSLParameters 의 카피를 돌려줍니다.

파라미터는, null 치 이외에 설정된 암호화 방식군과 프로토콜 배열을 항상 가집니다.

반환값:
지원되는 설정을 가지는 SSLParameters 객체의 카피
예외:
UnsupportedOperationException - 지원되는 SSL 파라미터를 취득할 수 없었던 경우.
도입된 버젼:
1.6

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.