JavaTM 2
Platform
Std.  Ed.  v1. 4.0

java.security.cert
클래스 CertificateFactory

java.lang.Object 
  |
  +--java.security.cert.CertificateFactory

public class CertificateFactory
extends Object

증명서 팩토리의 기능을 정의합니다. 증명서 팩토리는 증명서 오브젝트, 증명서 패스 (CertPath) 및 증명서의 취소 리스트 (CRL) 오브젝트를 부호로부터 생성하기 위해서 사용합니다.

복수의 증명서로부터 되는 부호에서는 무관계라고 생각되는 증명서의 콜렉션을 구문 분석 할 경우에 generateCertificates 를 사용합니다. 그렇지 않은 경우는 CertPath (증명서 최인)를 생성해 CertPathValidator 로 검증할 경우에 generateCertPath 를 사용합니다.

X. 509 의 증명서 팩토리는 java.security.cert.X509Certificate 의 인스턴스인 증명서와java.security.cert.X509CRL 의 인스턴스인 CRL 를 돌려줄 필요가 있습니다.

다음의 예는 Base64 로 encode 된 증명서를 가지는 파일을 읽어냅니다. 이러한 증명서는 선두가 -----BEGIN CERTIFICATE----- 에 의해 단락지어져 종단이 -----END CERTIFICATE----- 에 의해 단락지어집니다. generateCertificate 의 각 호출이 1 개의 증명서만을 사용해, 입력 스트림의 읽기 위치가 파일내의 다음의 증명서에 놓여지도록(듯이),FileInputStream (markreset 를 서포트하고 있지 않다)를 BufferedInputStream (이러한 메소드를 서포트)로 변환합니다.

 FileInputStream fis = new FileInputStream(filename);
 BufferedInputStream bis = new BufferedInputStream(fis);

 CertificateFactory cf = CertificateFactory.getInstance("X. 509");

 while (bis.available() > 0) {
    Certificate cert = cf.generateCertificate(bis);
    System.out.println(cert.toString());
 }
 

다음의 예는 파일에 저장되고 있는 PKCS#7 형식의 증명서 응답을 구문 분석 해, 모든 증명서를 추출합니다.

 FileInputStream fis = new FileInputStream(filename);
 CertificateFactory cf = CertificateFactory.getInstance("X. 509");
 Collection c = cf.generateCertificates(fis);
 Iterator i = c.iterator();
 while (i.hasNext()) {
    Certificate cert = (Certificate) i.next();
    System.out.println(cert);
 }
 

도입된 버젼:
1.2
관련 항목:
Certificate , X509Certificate , CertPath , CRL , X509CRL

생성자의 개요
protected CertificateFactory (CertificateFactorySpi  certFacSpi, Provider  provider, String  type)
          지정된 타입의 CertificateFactory 오브젝트를 작성해, 지정된 프로바이더의 구현 (SPI 오브젝트)을 거기에 캡슐화합니다.
 
메소드의 개요
 Certificate generateCertificate (InputStream  inStream)
          증명서 오브젝트를 생성해, 입력 스트림 inStream 로부터 읽어내진 데이터를 사용해 그 증명서 오브젝트를 초기화합니다.
 Collection generateCertificates (InputStream  inStream)
          지정된 입력 스트림 inStream 로부터 읽어내진 증명서의 코레크션뷰를 돌려줍니다.
 CertPath generateCertPath (InputStream  inStream)
          CertPath 오브젝트를 생성해,InputStream 인 inStream 로부터 읽힌 데이터로 초기화합니다.
 CertPath generateCertPath (InputStream  inStream, String  encoding)
          CertPath 오브젝트를 생성해,InputStream 인 inStream 로부터 읽힌 데이터로 초기화합니다.
 CertPath generateCertPath (List  certificates)
          CertPath 오브젝트를 생성해,CertificateList 로 초기화합니다.
 CRL generateCRL (InputStream  inStream)
          증명서의 취소 리스트 (CRL) 오브젝트를 생성해, 입력 스트림 inStream 로부터 읽어내진 데이터를 사용해 초기화합니다.
 Collection generateCRLs (InputStream  inStream)
          지정된 입력 스트림 inStream 로부터 읽어내진 CRL 의 코레크션뷰를 돌려줍니다.
 Iterator getCertPathEncodings ()
          이 증명서 팩토리로 서포트하는 CertPath 의 encode의 반복을 돌려줍니다.
static CertificateFactory getInstance (String  type)
          지정된 타입의 증명서를 구현하는 증명서 팩토리 오브젝트를 작성합니다.
static CertificateFactory getInstance (String  type, Provider  provider)
          지정한 증명서 타입으로, 지정한 프로바이더로부터 증명서 팩토리 오브젝트를 생성합니다.
static CertificateFactory getInstance (String  type, String  provider)
          지정된 증명서 타입의 증명서 팩토리 오브젝트를, 지정된 프로바이더로부터 작성합니다.
 Provider getProvider ()
          이 증명서 팩토리의 프로바이더를 돌려줍니다.
 String getType ()
          이 증명서 팩토리에 관련한 증명서 타입의 이름을 돌려줍니다.
 
클래스 java.lang. Object 에서 상속받은 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

생성자의 상세

CertificateFactory

protected CertificateFactory(CertificateFactorySpi  certFacSpi,
                             Provider  provider,
                             String  type)
지정된 타입의 CertificateFactory 오브젝트를 작성해, 지정된 프로바이더의 구현 (SPI 오브젝트)을 거기에 캡슐화합니다.

파라미터:
certFacSpi - 프로바이더의 구현
provider - 프로바이더
type - 증명서 타입
메소드의 상세

getInstance

public static final CertificateFactory  getInstance(String  type)
                                            throws CertificateException 
지정된 타입의 증명서를 구현하는 증명서 팩토리 오브젝트를 작성합니다. 디폴트의 프로바이더 패키지가, 요구된 증명서 타입의 구현을 제공하는 경우는 그 구현이 저장되고 있는 증명서 팩토리의 인스턴스가 돌려주어집니다. 그 타입이 디폴트의 프로바이더 패키지에 없는 경우는 다른 패키지를 찾습니다.

파라미터:
type - 요구된 증명서 타입의 이름. 표준의 증명서 타입의 자세한 것은 「Java 암호화 아키텍쳐 API 사양 & 레퍼런스」의 부록 A 를 참조
반환값:
지정된 타입의 증명서 팩토리 오브젝트
예외:
CertificateException - 요구된 증명서 타입이, 디폴트의 프로바이더 패키지에도, 검색한 것 외의 프로바이더 패키지에도 없는 경우

getInstance

public static final CertificateFactory  getInstance(String  type,
                                                   String  provider)
                                            throws CertificateException ,
                                                   NoSuchProviderException 
지정된 증명서 타입의 증명서 팩토리 오브젝트를, 지정된 프로바이더로부터 작성합니다.

파라미터:
type - 증명서 타입
provider - 프로바이더명
반환값:
지정된 타입의 증명서 팩토리 오브젝트
예외:
CertificateException - 증명서 타입이, 지정된 프로바이더에 없는 경우
NoSuchProviderException - 프로바이더가 설정되어 있지 않은 경우
관련 항목:
Provider

getInstance

public static final CertificateFactory  getInstance(String  type,
                                                   Provider  provider)
                                            throws CertificateException 
지정한 증명서 타입으로, 지정한 프로바이더로부터 증명서 팩토리 오브젝트를 생성합니다. 주: provider 는 등록되어 있을 필요는 없습니다.

파라미터:
type - 증명서 타입
provider - 프로바이더
반환값:
지정된 타입의 증명서 팩토리 오브젝트
예외:
CertificateException - 증명서 타입이, 지정된 프로바이더에 없는 경우
IllegalArgumentException - provider 가 null 의 경우
도입된 버젼:
1.4
관련 항목:
Provider

getProvider

public final Provider  getProvider()
이 증명서 팩토리의 프로바이더를 돌려줍니다.

반환값:
이 증명서 팩토리의 프로바이더

getType

public final String  getType()
이 증명서 팩토리에 관련한 증명서 타입의 이름을 돌려줍니다.

반환값:
이 증명서 팩토리에 관련한 증명서 타입의 이름

generateCertificate

public final Certificate  generateCertificate(InputStream  inStream)
                                      throws CertificateException 
증명서 오브젝트를 생성해, 입력 스트림 inStream 로부터 읽어내진 데이터를 사용해 그 증명서 오브젝트를 초기화합니다.

이 증명서 팩토리에 의해 서포트되고 있는 특수 형식의 증명서를 이용하기 위해서, 돌려주어진 증명서 오브젝트를 대응하는 증명서 클래스에 형태 캐스트 할 수 있습니다. 예를 들어, 이 증명서 팩토리가 X. 509 증명서를 구현하는 경우, 돌려주어진 증명서 오브젝트를 X509Certificate 클래스에 형태 캐스트 할 수 있습니다.

X. 509 증명서의 증명서 팩토리의 경우는 inStream 로 제공되는 증명서는 DER 로 encode 될 필요가 있어, 바이너리 또는 프린트 가능 (Base64)인 부호로 제공되는 일도 있습니다. 증명서가 Base64 의 부호로 제공되었을 경우, 선두는 -----BEGIN CERTIFICATE----- 에 의해 단락지어져 종단은 -----END CERTIFICATE----- 에 의해 단락지어질 필요가 있습니다.

지정된 입력 스트림이 markreset 를 서포트하고 있지 않는 경우, 이 메소드는 입력 스트림 전체를 사용합니다. 그렇지 않은 경우, 이 메소드가 불려 갈 때마다 증명서를 1 개 소비해, 입력 스트림의 read 위치는 고유의 end-of-certificate 마커의 나중에 다음에 사용 가능한 바이트로 설정됩니다. 고유의 end-of-certificate 마커 (EOF 이외)가 입력 스트림의 데이터에 포함되지 않고 증명서가 구문 분석 된 후에 데이터가 계속되는 경우는 CertificateException 가 슬로우 됩니다.

파라미터:
inStream - 증명서 데이터를 가지는 입력 스트림
반환값:
입력 스트림의 데이터를 사용해 초기화된 증명서 오브젝트
예외:
CertificateException - 구문 분석 에러의 경우

getCertPathEncodings

public final Iterator  getCertPathEncodings()
이 증명서 팩토리로 서포트하는 CertPath 의 encode의 반복을 돌려줍니다. 반복의 처음은 디폴트의 encode가 됩니다. 표준의 encode명과 그 형식에 대해서는 「Java Certification Path API Programmer's Guide」 의 부록 A 를 참조해 주세요.

돌려주어진 Iteratorremove 메소드로 변경하려고 하면(자),UnsupportedOperationException 가 슬로우 됩니다.

반환값:
서포트되는 CertPath 의 encode (String 로서)의 이름에 대한 Iterator
도입된 버젼:
1.4

generateCertPath

public final CertPath  generateCertPath(InputStream  inStream)
                                throws CertificateException 
CertPath 오브젝트를 생성해,InputStream 인 inStream 로부터 읽힌 데이터로 초기화합니다. 데이터는 디폴트의 encode가 되고 있으면(자) 가정됩니다. 디폴트의 encode의 이름은 getCertPathEncodings 메소드로 돌려주어지는 Iterator 의 최초의 요소가 됩니다.

파라미터:
inStream - 데이터가 포함되는 InputStream
반환값:
InputStream 로부터의 데이터로 초기화된 CertPath
예외:
CertificateException - 복호화(decode)중에 예외가 발생했을 경우
도입된 버젼:
1.4

generateCertPath

public final CertPath  generateCertPath(InputStream  inStream,
                                       String  encoding)
                                throws CertificateException 
CertPath 오브젝트를 생성해,InputStream 인 inStream 로부터 읽힌 데이터로 초기화합니다. 데이터는 지정한 encode가 되고 있으면(자) 가정됩니다. 표준의 encode명과 그 형식에 대해서는 「Java Certification Path API Programmer's Guide」 의 부록 A 를 참조해 주세요.

파라미터:
inStream - 데이터가 포함되는 InputStream
encoding - 데이터로 사용되는 encode
반환값:
InputStream 로부터의 데이터로 초기화된 CertPath
예외:
CertificateException - 복호화(decode)중에 예외가 발생했을 경우, 혹은 지정한 encode가 서포트되어 있지 않은 경우
도입된 버젼:
1.4

generateCertPath

public final CertPath  generateCertPath(List  certificates)
                                throws CertificateException 
CertPath 오브젝트를 생성해,CertificateList 로 초기화합니다.

제공되는 증명서는 CertificateFactory 로 서포트되고 있는 종류가 아니면 안됩니다.

파라미터:
certificates - CertificateList
반환값:
제공된 증명서의 리스트로 초기화된 CertPath
예외:
CertificateException - 예외가 발생하는 경우
도입된 버젼:
1.4

generateCertificates

public final Collection  generateCertificates(InputStream  inStream)
                                      throws CertificateException 
지정된 입력 스트림 inStream 로부터 읽어내진 증명서의 코레크션뷰를 돌려줍니다. 코레크션뷰는 비었을 경우도 있습니다.

이 증명서 팩토리에 의해 서포트되고 있는 특수한 형식의 증명서를 이용하기 위해서, 돌려주어진 코레크션뷰의 각 요소를 대응하는 증명서 클래스에 형태 캐스트 할 수 있습니다. 예를 들어, 이 증명서 팩토리가 X. 509 증명서를 구현하는 경우, 돌려주어진 콜렉션내의 요소를 X509Certificate 클래스에 형태 캐스트 할 수 있습니다.

X. 509 증명서로 사용하는 증명서 팩토리의 경우,inStream 에는 generateCertificate 로 설명되고 있는 형식의, DER 로 encode 된 일련의 증명서가 저장됩니다. 또,inStream 에는 PKCS#7 증명 연쇄가 저장됩니다. 이것은 PKCS#7 SignedData 오브젝트이며, 상위 필드는 certificates 뿐입니다. 특히, 서명과 내용은 무시됩니다. 이 형식의 경우, 복수의 증명서를 1 회에 다운로드할 수 있습니다. 증명서가 없는 경우는 하늘의 콜렉션이 돌려주어집니다.

지정된 입력 스트림이 markreset 를 서포트하고 있지 않는 경우, 이 메소드는 입력 스트림 전체를 사용합니다.

파라미터:
inStream - 증명서를 가지는 입력 스트림
반환값:
입력 스트림으로부터 의 데이터를 사용해 초기화된 java.security.cert.Certificate 오브젝트의 코레크션뷰. 비었을 경우도 있다
예외:
CertificateException - 구문 분석 에러의 경우

generateCRL

public final CRL  generateCRL(InputStream  inStream)
                      throws CRLException 
증명서의 취소 리스트 (CRL) 오브젝트를 생성해, 입력 스트림 inStream 로부터 읽어내진 데이터를 사용해 초기화합니다.

이 증명서 팩토리에 의해 서포트되고 있는 특수한 형식의 CRL 를 이용하기 위해서, 돌려주어진 CRL 오브젝트를 대응하는 CRL 클래스에 형태 캐스트 할 수 있습니다. 예를 들어, 이 증명서 팩토리가 X. 509 CRL 를 구현하는 경우, 돌려주어진 CRL 오브젝트를 X509CRL 클래스에 형태 캐스트 할 수 있습니다.

지정된 입력 스트림이 markreset 를 서포트하고 있지 않는 경우, 이 메소드는 입력 스트림 전체를 사용합니다. 그렇지 않은 경우, 이 메소드가 불려 갈 때마다 CRL 를 1 개 소비해, 입력 스트림의 read 위치는 고유의 end-of-CRL 마커의 나중에 다음에 사용 가능한 바이트로 설정됩니다. 고유의 end-of-CRL 마커 (EOF 이외)가 입력 스트림의 데이터에 포함되지 않고 증명서가 구문 분석 된 후에 데이터가 계속되는 경우는 CRLException 가 슬로우 됩니다.

파라미터:
inStream - CRL 데이터를 가지는 입력 스트림
반환값:
입력 스트림의 데이터를 사용해 초기화된 CRL 오브젝트
예외:
CRLException - 구문 분석 에러의 경우

generateCRLs

public final Collection  generateCRLs(InputStream  inStream)
                              throws CRLException 
지정된 입력 스트림 inStream 로부터 읽어내진 CRL 의 코레크션뷰를 돌려줍니다. 코레크션뷰는 비었을 경우도 있습니다.

이 증명서 팩토리에 의해 서포트되고 있는 특수한 형식의 CRL 를 이용하기 위해서, 돌려주어진 코레크션뷰의 각 요소를 대응하는 CRL 클래스에 형태 캐스트 할 수 있습니다. 예를 들어, 이 증명서 팩토리가 X. 509 CRL 를 구현하는 경우, 돌려주어진 콜렉션내의 요소를 X509CRL 클래스에 형태 캐스트 할 수 있습니다.

X. 509 CRL 의 증명서 팩토리의 경우는 inStream 에는 DER 로 encode 된 일련의 CRL 가 저장됩니다. 또,inStream 에는 PKCS#7 CRL 세트가 저장됩니다. 이것은 PKCS#7 SignedData 오브젝트로, 상위 필드는 crls 뿐입니다. 특히, 서명과 내용은 무시됩니다. 이 형식의 경우, 복수의 CRL 를 1 회에 다운로드할 수 있습니다. CRL 가 없는 경우는 하늘의 콜렉션이 돌려주어집니다.

지정된 입력 스트림이 markreset 를 서포트하고 있지 않는 경우, 이 메소드는 입력 스트림 전체를 사용합니다.

파라미터:
inStream - CRL 를 가지는 입력 스트림
반환값:
입력 스트림으로부터 의 데이터를 사용해 초기화된 java.security.cert.Certificate 오브젝트의 코레크션뷰. 비었을 경우도 있다
예외:
CRLException - 구문 분석 에러의 경우

JavaTM 2
Platform
Std.  Ed.  v1. 4.0

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

Java, Java 2 D, 및 JDBC 는 미국 및 그 외의 나라에 있어서의 미국 Sun Microsystems, Inc. 의 상표 혹은 등록상표입니다.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.