JavaTM Platform
Standard Ed. 6

java.security.cert
인터페이스 X509Extension

기존의 구현 클래스의 일람:
X509Certificate , X509CRL , X509CRLEntry


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 ()
          지원되어 있지 않은 위기인 확장 기능이 있는지를 체크합니다.
 

메소드의 상세

hasUnsupportedCriticalExtension

boolean hasUnsupportedCriticalExtension()
지원되어 있지 않은 위기인 확장 기능이 있는지를 체크합니다.

반환값:
지원되어 있지 않은 위기인 확장 기능이 발견되었을 경우는 true, 그렇지 않은 경우는 false

getCriticalExtensionOIDs

Set <String > getCriticalExtensionOIDs()
이 인터페이스를 구현하는 객체에 의해 관리되고 있는 증명서 또는 CRL 로, CRITICAL 로서 마킹 되고 있는 확장의 OID 캐릭터 라인의 Set 를 가져옵니다. 다음의 코딩예는, X509Certificate 로부터 위기인 확장 기능의 Set 를 취득해, OID 를 출력하는 예입니다.

 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); } }

반환값:
위기로서 마킹 되고 있는 확장 기능의 확장 OID 캐릭터 라인의 Set. 위기로서 마킹 되고 있는 확장 기능이 없는 경우는 빈 상태(empty)의 Set. 확장이 없는 경우는 null

getNonCriticalExtensionOIDs

Set <String > getNonCriticalExtensionOIDs()
이 인터페이스를 구현하는 객체에 의해 관리되고 있는 증명서 또는 CRL 로, NON-CRITICAL 로서 마킹 되고 있는 확장 기능의 OID 캐릭터 라인의 Set 를 가져옵니다. 다음의 코딩예는, X509CRL 취소 증명서 엔트리로부터 비위기인 확장 기능의 Set 를 취득해, OID 를 출력하는 예입니다.

 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); } }

반환값:
비위기로서 마킹 되고 있는 확장 기능의 확장 OID 캐릭터 라인의 Set. 비위기로서 마킹 되고 있는 확장 기능이 없는 경우는 빈 상태(empty)의 Set. 확장이 없는 경우는 null

getExtensionValue

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 - 확장 기능의 객체 식별자의 값
반환값:
확장치의 DER 로 encode 된 8중창 캐릭터 라인. 이 캐릭터 라인이 없는 경우는 null

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 도 참조해 주세요.