|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
java.lang.Objectjava.security.cert.CertificateFactory
public class CertificateFactory
증명서 팩토리의 기능을 정의합니다. 증명서 팩토리는, 증명서 객체, 증명서 패스 (CertPath
) 및 증명서의 취소 리스트 (CRL) 객체를 부호로부터 생성하기 위해서 사용합니다.
복수의 증명서로부터 되는 encode에서는, 서로 관련성이 없다고 생각되는 증명서의 컬렉션을 해석하는 경우에,generateCertificates
를 사용합니다. 그렇지 않은 경우는,CertPath
(증명서 체인)를 생성해 CertPathValidator
로 검증할 경우에 generateCertPath
를 사용합니다.
X. 509 의 증명서 팩토리는,java.security.cert.X509Certificate
의 인스턴스인 증명서, 및 java.security.cert.X509CRL
의 인스턴스인 CRL 를 돌려줍니다.
다음의 예는, Base64 로 encode 된 증명서를 가지는 파일을 읽어냅니다. 이러한 증명서는, 선두가 -----BEGIN CERTIFICATE----- 에 의해 단락지어져 끝이 -----END CERTIFICATE----- 에 의해 단락지어집니다. generateCertificate
의 각 호출이 1 개의 증명서만을 사용해, 입력 스트림의 읽기 위치가 파일내의 다음의 증명서에 놓여지도록(듯이),FileInputStream
(mark
및 reset
를 지원하고 있지 않다)를 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); }
Certificate
,
X509Certificate
,
CertPath
,
CRL
,
X509CRL
생성자 의 개요 | |
---|---|
protected |
CertificateFactory (CertificateFactorySpi certFacSpi,
Provider provider,
String type)
지정된 타입의 CertificateFactory 객체를 작성해, 지정된 프로바이더의 구현 (SPI 객체)을 거기에 캡슐화합니다. |
메소드의 개요 | |
---|---|
Certificate |
generateCertificate (InputStream inStream)
증명서 객체를 생성해, 입력 스트림 inStream 로부터 읽어내진 데이터를 사용해 그 증명서 객체를 초기화합니다. |
Collection <? extends Certificate > |
generateCertificates (InputStream inStream)
지정된 입력 스트림 inStream 로부터 읽어내진 증명서의 코레크션뷰를 돌려줍니다. |
CertPath |
generateCertPath (InputStream inStream)
CertPath 객체를 생성해,InputStream 인 inStream 로부터 읽힌 데이터로 초기화합니다. |
CertPath |
generateCertPath (InputStream inStream,
String encoding)
CertPath 객체를 생성해,InputStream 인 inStream 로부터 읽힌 데이터로 초기화합니다. |
CertPath |
generateCertPath (List <? extends Certificate > certificates)
CertPath 객체를 생성해,Certificate 의 List 로 초기화합니다. |
CRL |
generateCRL (InputStream inStream)
증명서의 취소 리스트 (CRL) 객체를 생성해, 입력 스트림 inStream 로부터 읽어내진 데이터를 사용해 초기화합니다. |
Collection <? extends CRL > |
generateCRLs (InputStream inStream)
지정된 입력 스트림 inStream 로부터 읽어내진 CRL 의 코레크션뷰를 돌려줍니다. |
Iterator <String > |
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 |
생성자 의 상세 |
---|
protected CertificateFactory(CertificateFactorySpi certFacSpi, Provider provider, String type)
certFacSpi
- 프로바이더의 구현provider
- 프로바이더type
- 증명서 타입메소드의 상세 |
---|
public static final CertificateFactory getInstance(String type) throws CertificateException
이 메소드는, 최우선의 Provider 로부터 순서에, 등록을 마친 시큐리티 Provider 의 리스트를 횡단(traverse) 합니다. 지정된 타입을 지원하는 최초의 Provider 의 CertificateFactorySpi 구현을 캡슐화하는 새로운 CertificateFactory 객체가 돌려주어집니다.
등록이 끝난 프로바이더의 리스트는,Security.getProviders()
메소드 경유로 취득할 수 있습니다.
type
- 요구된 증명서 타입의 이름.
표준의 증명서 타입의 자세한 것은,「Java 암호화 아키텍쳐(architecture) API 스펙 & 레퍼런스」의 부록 A 를 참조
CertificateException
- 지정된 타입의 CertificateFactorySpi 구현을 지원하는 Provider 가 존재하지 않는 경우Provider
public static final CertificateFactory getInstance(String type, String provider) throws CertificateException , NoSuchProviderException
지정된 프로바이더의 CertificateFactorySpi 구현을 캡슐화하는 새로운 CertificateFactory 객체가 돌려주어집니다. 지정한 프로바이더는, 시큐리티 프로바이더 리스트에 등록할 필요가 있습니다.
등록이 끝난 프로바이더의 리스트는,Security.getProviders()
메소드 경유로 취득할 수 있습니다.
type
- 증명서 타입
표준의 증명서 타입의 자세한 것은,「Java 암호화 아키텍쳐(architecture) API 스펙 & 레퍼런스」의 부록 A 를 참조provider
- 프로바이더명
CertificateException
- 지정된 프로바이더로 지정된 알고리즘의 CertificateFactorySpi 구현이 없는 경우
NoSuchProviderException
- 지정된 프로바이더가 시큐리티 프로바이더 리스트에 등록되지 않은 경우
IllegalArgumentException
- 프로바이더의 이름이 null 나 빈 상태(empty)의 경우Provider
public static final CertificateFactory getInstance(String type, Provider provider) throws CertificateException
지정된 Provider 객체의 CertificateFactorySpi 구현을 캡슐화하는 새로운 CertificateFactory 객체가 돌려주어집니다. 지정된 Provider 객체는, 프로바이더 리스트에 등록할 필요는 없습니다.
type
- 증명서 타입
표준의 증명서 타입의 자세한 것은,「Java 암호화 아키텍쳐(architecture) API 스펙 & 레퍼런스」의 부록 A 를 참조provider
- 프로바이더
CertificateException
- 지정된 Provider 객체로 지정된 알고리즘의 CertificateFactorySpi 구현이 없는 경우
IllegalArgumentException
- provider
가 null 의 경우Provider
public final Provider getProvider()
public final String getType()
public final Certificate generateCertificate(InputStream inStream) throws CertificateException
inStream
로부터 읽어내진 데이터를 사용해 그 증명서 객체를 초기화합니다.
이 증명서 팩토리에 의해 지원되고 있는 특수 형식의 증명서를 이용하기 위해서, 반환된 증명서 객체를 대응하는 증명서 클래스에 형태 캐스트 할 수 있습니다. 예를 들어, 이 증명서 팩토리가 X. 509 증명서를 구현하는 경우, 반환된 증명서 객체를 X509Certificate
클래스에 형태 캐스트 할 수 있습니다.
X. 509 증명서의 증명서 팩토리의 경우는,inStream
로 제공되는 증명서는 DER 로 encode 될 필요가 있어, 바이너리 또는 프린트 가능 (Base64)인 부호로 제공되는 일도 있습니다. 증명서가 Base64 의 부호로 제공되었을 경우, 선두는 -----BEGIN CERTIFICATE----- 에 의해 단락지어져 끝은 -----END CERTIFICATE----- 에 의해 단락지어질 필요가 있습니다.
지정된 입력 스트림이 mark
및 reset
를 지원하고 있지 않는 경우, 이 메소드는 입력 스트림 전체를 사용합니다. 그렇지 않은 경우, 이 메소드가 불려 갈 때마다 증명서를 1 개 소비해, 입력 스트림의 read 위치는, 고유의 end-of-certificate 마커의 나중에 다음에 사용 가능한 바이트로 설정됩니다. 고유의 end-of-certificate 마커 (EOF 이외)가 입력 스트림의 데이터에 포함되지 않고, 증명서가 구문 분석 된 후에 데이터가 계속되는 경우는,CertificateException
가 throw 됩니다.
inStream
- 증명서 데이터를 가지는 입력 스트림
CertificateException
- 구문 분석 에러의 경우public final Iterator <String > getCertPathEncodings()
CertPath
의 encode의 반복을 돌려줍니다. 반복의 처음은 디폴트의 encode가 됩니다. 표준의 encode명과 그 형식에 대해서는,「Java Certification Path API 개발자 안내」 의 부록 A 를 참조해 주세요.
반환된 Iterator
를 remove
메소드로 변경하려고 하면(자),UnsupportedOperationException
가 throw 됩니다.
CertPath
의 encode의 이름 (String
)을 반복하는 Iterator
public final CertPath generateCertPath(InputStream inStream) throws CertificateException
CertPath
객체를 생성해,InputStream
인 inStream 로부터 읽힌 데이터로 초기화합니다. 데이터는 디폴트의 encode가 되고 있으면(자) 가정됩니다. 디폴트의 encode의 이름은,getCertPathEncodings
메소드로 반환되는 Iterator
의 최초의 요소가 됩니다.
inStream
- 데이터가 포함되는 InputStream
InputStream
로부터의 데이터로 초기화된 CertPath
CertificateException
- 복호화중에 예외가 발생했을 경우public final CertPath generateCertPath(InputStream inStream, String encoding) throws CertificateException
CertPath
객체를 생성해,InputStream
인 inStream 로부터 읽힌 데이터로 초기화합니다. 데이터는 지정한 encode가 되고 있으면(자) 가정됩니다. 표준의 encode명과 그 형식에 대해서는,「Java Certification Path API 개발자 안내」 의 부록 A 를 참조해 주세요.
inStream
- 데이터가 포함되는 InputStream
encoding
- 데이터로 사용되는 encode
InputStream
로부터의 데이터로 초기화된 CertPath
CertificateException
- 복호화중에 예외가 발생했을 경우, 또는 지정한 encode가 지원되어 있지 않은 경우public final CertPath generateCertPath(List <? extends Certificate > certificates) throws CertificateException
CertPath
객체를 생성해,Certificate
의 List
로 초기화합니다.
제공되는 증명서는,CertificateFactory
로 지원되고 있는 종류일 필요가 있습니다. 이것들은, 지정된 List
객체로부터 카피됩니다.
certificates
- Certificate
의 List
CertPath
CertificateException
- 예외가 발생하는 경우public final Collection <? extends Certificate > generateCertificates(InputStream inStream) throws CertificateException
inStream
로부터 읽어내진 증명서의 코레크션뷰를 돌려줍니다. 코레크션뷰는 빈 상태(empty)의 경우도 있습니다.
이 증명서 팩토리에 의해 지원되고 있는 특수한 형식의 증명서를 이용하기 위해서, 반환된 코레크션뷰의 각 요소를 대응하는 증명서 클래스에 형태 캐스트 할 수 있습니다. 예를 들어, 이 증명서 팩토리가 X. 509 증명서를 구현하는 경우, 반환된 컬렉션내의 요소를 X509Certificate
클래스에 형태 캐스트 할 수 있습니다.
X. 509 증명서로 사용하는 증명서 팩토리의 경우,inStream
에는,generateCertificate
로 설명되고 있는 형식의, DER 로 encode 된 일련의 증명서가 포함됩니다. 또,inStream
에는 PKCS#7 증명서 체인이 포함됩니다. 이것은 PKCS#7 SignedData 객체이며, 상위 필드는 certificates 뿐입니다. 특히, 서명 및 내용은 무시됩니다. 이 형식의 경우, 복수의 증명서를 1 회에 다운로드할 수 있습니다. 증명서가 없는 경우는, 빈 상태(empty)의 컬렉션이 돌려주어집니다.
지정된 입력 스트림이 mark
및 reset
를 지원하고 있지 않는 경우, 이 메소드는 입력 스트림 전체를 사용합니다.
inStream
- 증명서를 가지는 입력 스트림
CertificateException
- 구문 분석 에러의 경우public final CRL generateCRL(InputStream inStream) throws CRLException
inStream
로부터 읽어내진 데이터를 사용해 초기화합니다.
이 증명서 팩토리에 의해 지원되고 있는 특수한 형식의 CRL 를 이용하기 위해서, 반환된 CRL 객체를 대응하는 CRL 클래스에 형태 캐스트 할 수 있습니다. 예를 들어, 이 증명서 팩토리가 X. 509 CRL 를 구현하는 경우, 반환된 CRL 객체를 X509CRL
클래스에 형태 캐스트 할 수 있습니다.
지정된 입력 스트림이 mark
및 reset
를 지원하고 있지 않는 경우, 이 메소드는 입력 스트림 전체를 사용합니다. 그렇지 않은 경우, 이 메소드가 불려 갈 때마다 CRL 를 1 개 소비해, 입력 스트림의 read 위치는, 고유의 end-of-CRL 마커의 나중에 다음에 사용 가능한 바이트로 설정됩니다. 고유의 end-of-CRL 마커 (EOF 이외)가 입력 스트림의 데이터에 포함되지 않고, CRL 가 구문 분석 된 후에 데이터가 계속되는 경우는,CertificateException
가 throw 됩니다.
inStream
- CRL 데이터를 가지는 입력 스트림
CRLException
- 구문 분석 에러의 경우public final Collection <? extends CRL > generateCRLs(InputStream inStream) throws CRLException
inStream
로부터 읽어내진 CRL 의 코레크션뷰를 돌려줍니다. 코레크션뷰는 빈 상태(empty)의 경우도 있습니다.
이 증명서 팩토리에 의해 지원되고 있는 특수한 형식의 CRL 를 이용하기 위해서, 반환된 코레크션뷰의 각 요소를 대응하는 CRL 클래스에 형태 캐스트 할 수 있습니다. 예를 들어, 이 증명서 팩토리가 X. 509 CRL 를 구현하는 경우, 반환된 컬렉션내의 요소를 X509CRL
클래스에 형태 캐스트 할 수 있습니다.
X. 509 CRL 의 증명서 팩토리의 경우는,inStream
에는, DER 로 encode 된 일련의 CRL 가 포함됩니다. 또,inStream
에는 PKCS#7 CRL 세트가 포함됩니다. 이것은 PKCS#7 SignedData 객체로, 상위 필드는 crls 뿐입니다. 특히, 서명 및 내용은 무시됩니다. 이 형식의 경우, 복수의 CRL 를 1 회에 다운로드할 수 있습니다. CRL 가 없는 경우는, 빈 상태(empty)의 컬렉션이 돌려주어집니다.
지정된 입력 스트림이 mark
및 reset
를 지원하고 있지 않는 경우, 이 메소드는 입력 스트림 전체를 사용합니다.
inStream
- CRL 를 가지는 입력 스트림
CRLException
- 구문 분석 에러의 경우
|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.