|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
public interface X509Extension
X. 509 확장 기능을 위한 인터페이스입니다.
X. 509 v3 Certificates
및 v2 CRL
(증명서의 취소 리스트)로 정의되는 확장 기능은, 추가 속성을 사용자 또는 공개키에 관련짓거나 인증의 계층을 관리하거나 CRL 의 배포를 관리하거나 하는 방법을 제공합니다. 또, X. 509 확장 기능 형식에서는, 커뮤니티에 고유의 정보를 전하기 위해서(때문에), 커뮤니티 전용의 확장 기능을 정의할 수도 있습니다.
증명서 또는 CRL 의 각 확장 기능은, 위기라고 해도 비위기라고 해도 지정할 수 있습니다. 증명서 또는 CRL 를 사용하는 시스템 (증명서 또는 CRL 의 타당성을 검증하는 어플리케이션)으로, 인식할 수 없는 위기인 확장 기능이 검출되었을 때에는 그 증명서 또는 CRL 를 거부할 필요가 있습니다. 위기가 아닌 확장 기능은, 인식할 수 없는 경우는 무시해도 괜찮습니다.
ASN. 1 정의는 다음과 같습니다.
Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension Extension ::= SEQUENCE { extnId OBJECT IDENTIFIER, critical BOOLEAN DEFAULT FALSE, extnValue OCTET STRING -- contains a DER encoding of a value -- of the type registered for use with -- the extnId object identifier value }모든 확장 기능이 인식되고 있는 것은 아니기 때문에,
getExtensionValue
메소드는, 확장치 (extnValue
)의 DER 로 encode 된 OCTET STRING 를 돌려줍니다. 이것은 확장 기능을 인식할 수 있는 Class 에 의해 처리할 수 있습니다.
메소드의 개요 | |
---|---|
Set <String > |
getCriticalExtensionOIDs ()
이 인터페이스를 구현하는 객체에 의해 관리되고 있는 증명서 또는 CRL 로, CRITICAL 로서 마킹 되고 있는 확장의 OID 캐릭터 라인의 Set 를 가져옵니다. |
byte[] |
getExtensionValue (String oid)
건네받은 oid String 로 식별되는 확장치 (extnValue)의, DER 로 encode 된 OCTET 캐릭터 라인을 가져옵니다. |
Set <String > |
getNonCriticalExtensionOIDs ()
이 인터페이스를 구현하는 객체에 의해 관리되고 있는 증명서 또는 CRL 로, NON-CRITICAL 로서 마킹 되고 있는 확장 기능의 OID 캐릭터 라인의 Set 를 가져옵니다. |
boolean |
hasUnsupportedCriticalExtension ()
지원되어 있지 않은 위기인 확장 기능이 있는지를 체크합니다. |
메소드의 상세 |
---|
boolean hasUnsupportedCriticalExtension()
Set <String > getCriticalExtensionOIDs()
InputStream inStrm = new FileInputStream("DER-encoded-Cert");
CertificateFactory cf = CertificateFactory.getInstance("X. 509");
X509Certificate cert = (X509Certificate) cf.generateCertificate(inStrm);
inStrm.close();
Set critSet = cert.getCriticalExtensionOIDs();
if (critSet ! = null && ! critSet.isEmpty()) {
System.out.println("Set of critical extensions:");
for (Iterator i = critSet.iterator(); i.hasNext();) {
String oid = (String) i.next();
System.out.println(oid);
}
}
Set <String > getNonCriticalExtensionOIDs()
InputStream inStrm = new FileInputStream("DER-encoded-CRL");
CertificateFactory cf = CertificateFactory.getInstance("X. 509");
X509CRL crl = (X509CRL) cf.generateCRL(inStrm);
inStrm.close();
byte[] certData = <DER-encoded certificate data>
ByteArrayInputStream bais = new ByteArrayInputStream(certData);
X509Certificate cert = (X509Certificate) cf.generateCertificate(bais);
bais.close();
X509CRLEntry badCert =
crl.getRevokedCertificate(cert.getSerialNumber());
if (badCert ! = null) {
Set nonCritSet = badCert.getNonCriticalExtensionOIDs();
if (nonCritSet ! = null)
for (Iterator i = nonCritSet.iterator(); i.hasNext();) {
String oid = (String) i.next();
System.out.println(oid);
}
}
byte[] getExtensionValue(String oid)
oid
String 로 식별되는 확장치 (extnValue)의, DER 로 encode 된 OCTET 캐릭터 라인을 가져옵니다. oid
캐릭터 라인은 피리어드로 단락지어진 정의 정수세트에 의해 나타내집니다.
예를 나타냅니다.
OID (객체 식별자) | 확장 기능명 |
---|---|
2.5. 29.14 | SubjectKeyIdentifier |
2.5. 29.15 | KeyUsage |
2.5. 29.16 | PrivateKeyUsage |
2.5. 29.17 | SubjectAlternativeName |
2.5. 29.18 | IssuerAlternativeName |
2.5. 29.19 | BasicConstraints |
2.5. 29.30 | NameConstraints |
2.5. 29.33 | PolicyMappings |
2.5. 29.35 | AuthorityKeyIdentifier |
2.5. 29.36 | PolicyConstraints |
oid
- 확장 기능의 객체 식별자의 값
|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.