JavaTM Platform
Standard Ed. 6

java.security.cert
클래스 X509CRL

java.lang.Object 
  상위를 확장 java.security.cert.CRL 
      상위를 확장 java.security.cert.X509CRL
모든 구현된 인터페이스:
X509Extension


public abstract class X509CRL
extends CRL
implements X509Extension

X. 509 증명서의 취소 리스트 (CRL)의 abstract 클래스입니다. CRL 는, 타임 스탬프가 붙은 리스트로, 삭제된 증명서를 나타내고 있습니다. CRL 는 증명서 발행국 (CA)에 의해 서명되어 공용 리포지터리(repository)로 자유롭게 이용할 수 있습니다.

삭제된 각 증명서는, CRL 에서는 증명서의 시리얼 번호에 의해 식별됩니다. 증명서 사용 시스템이 증명서를 사용할 때 (원격 사용자-의 디지털 서명의 검증을 위해 등), 시스템은 증명서의 서명과 유효기간을 확인할 뿐만 아니라, 새로운 CRL 를 취득해, 증명서의 시리얼 번호가 그 CRL 에 없는 것도 확인합니다. 「새롭다」의 의미는 로컬 정책에 따라서 다릅니다만, 일반적으로은 가장 새롭게 발행된 CRL 를 의미합니다. CA 는 새로운 CRL 를 정기적으로 (매시, 매일, 매주 등) 발행합니다. 취소가 있을 때마다 엔트리가 CRL 에 추가되어 증명서의 유효기간이 끊어지면(자) 엔트리가 삭제됩니다.  

X. 509 v2 CRL 형식은, ASN. 1 으로 다음과 같이 기술됩니다.

 CertificateList  ::=  SEQUENCE  {
     tbsCertList          TBSCertList,
     signatureAlgorithm   AlgorithmIdentifier,
     signature            BIT STRING  }
 

자세한 것은,http://www.ietf.org/rfc/rfc2459.txt 에 있는 RFC 2459 의 「Internet X. 509 Public Key Infrastructure Certificate and CRL Profile」를 참조해 주세요.  

tbsCertList 의 ASN. 1 정의는 다음과 같습니다.

 TBSCertList  ::=  SEQUENCE  {
     version    Version OPTIONAL,
                -- if present, must be v2
     signature            AlgorithmIdentifier,
     issuer               Name,
     thisUpdate              ChoiceOfTime,
     nextUpdate              ChoiceOfTime OPTIONAL,
     revokedCertificates    SEQUENCE OF SEQUENCE  {
         userCertificate    CertificateSerialNumber,
         revocationDate     ChoiceOfTime,
         crlEntryExtensions Extensions OPTIONAL
                            -- if present, must be v2
         }  OPTIONAL,
     crlExtensions           [0]  EXPLICIT Extensions OPTIONAL
                                  -- if present, must be v2
     }
 

CRL 의 인스턴스는, 증명서 팩토리를 사용해 생성됩니다. 이하의 예는 X. 509 CRL 의 인스턴스를 생성하는 방법을 나타내고 있습니다.

 
 InputStream inStream = new FileInputStream("fileName-of-crl");
 CertificateFactory cf = CertificateFactory.getInstance("X. 509");
 X509CRL crl = (X509CRL) cf.generateCRL(inStream);
 inStream.close();
 

관련 항목:
CRL , CertificateFactory , X509Extension

생성자 의 개요
protected X509CRL ()
          X. 509 CRL 의 생성자 입니다.
 
메소드의 개요
 boolean equals (Object  other)
          지정된 객체와 이 CRL 가 동일한지 어떤지를 판정합니다.
abstract  byte[] getEncoded ()
          이 CRL 의 ASN. 1 DER 로 encode 된 형식을 돌려줍니다.
abstract  Principal getIssuerDN ()
          비추천 getIssuerX500Principal() 로 옮겨놓을 수 있었습니다.
 X500Principal getIssuerX500Principal ()
          CRL 로부터 발행자 (발행자의 식별명)의 값을 X500Principal 로서 돌려줍니다.
abstract  Date getNextUpdate ()
          CRL 로부터 nextUpdate 의 일자를 가져옵니다.
abstract  X509CRLEntry getRevokedCertificate (BigInteger  serialNumber)
          지정된 증명서의 serialNumber 를 가지는 CRL 엔트리를 가져옵니다 (있는 경우).
 X509CRLEntry getRevokedCertificate (X509Certificate  certificate)
          지정된 증명서에 대한 CRL 엔트리를 가져옵니다 (존재하는 경우).
abstract  Set <? extends X509CRLEntry > getRevokedCertificates ()
          모든 엔트리를 가져옵니다.
abstract  String getSigAlgName ()
          서명 알고리즘명을 가져옵니다.
abstract  String getSigAlgOID ()
          CRL 로부터 서명 알고리즘의 OID 캐릭터 라인을 가져옵니다.
abstract  byte[] getSigAlgParams ()
          이 CRL 의 서명 알고리즘으로부터, DER 로 encode 된 서명 알고리즘 파라미터를 가져옵니다.
abstract  byte[] getSignature ()
          signature 치 (생의 시그니챠빗트)를 가져옵니다.
abstract  byte[] getTBSCertList ()
          DER 로 encode 된 CRL 정보 tbsCertList 를 CRL 로부터 가져옵니다.
abstract  Date getThisUpdate ()
          CRL 로부터 thisUpdate 의 일자를 가져옵니다.
abstract  int getVersion ()
          CRL 로부터 version (버젼 번호) 치를 가져옵니다.
 int hashCode ()
          encode 된 형식으로부터 이 CRL 의 해시 코드값를 돌려줍니다.
abstract  void verify (PublicKey  key)
          지정된 공개키에 대응하는 비공개키를 사용해, 이 CRL 가 서명된 것을 검증합니다.
abstract  void verify (PublicKey  key, String  sigProvider)
          지정된 공개키에 대응하는 비공개키를 사용해, 이 CRL 가 서명된 것을 검증합니다.
 
클래스 java.security.cert. CRL 로부터 상속된 메소드
getType , isRevoked , toString
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , finalize , getClass , notify , notifyAll , wait , wait , wait
 
인터페이스 java.security.cert. X509Extension 로부터 상속된 메소드
getCriticalExtensionOIDs , getExtensionValue , getNonCriticalExtensionOIDs , hasUnsupportedCriticalExtension
 

생성자 의 상세

X509CRL

protected X509CRL()
X. 509 CRL 의 생성자 입니다.

메소드의 상세

equals

public boolean equals(Object  other)
지정된 객체와 이 CRL 가 동일한지 어떤지를 판정합니다. other 객체가 X509CRL 의 인스턴스의 경우는, encode 된 형식이 꺼내져 이 CRL 의 encode 된 형식이라고 비교됩니다.

오버라이드(override):
클래스 Object 내의 equals
파라미터:
other - 이 CRL 와 동일한지 어떤지가 판정되는 객체
반환값:
2 개의 CRL 의 encode 된 형식이 일치했을 경우는 true, 그렇지 않은 경우는 false
관련 항목:
Object.hashCode() , Hashtable

hashCode

public int hashCode()
encode 된 형식으로부터 이 CRL 의 해시 코드값를 돌려줍니다.

오버라이드(override):
클래스 Object 내의 hashCode
반환값:
해시 코드값
관련 항목:
Object.equals(java.lang.Object) , Hashtable

getEncoded

public abstract byte[] getEncoded()
                           throws CRLException 
이 CRL 의 ASN. 1 DER 로 encode 된 형식을 돌려줍니다.

반환값:
이 증명서의 encode 된 형식
예외:
CRLException - encode 에러가 발생했을 경우

verify

public abstract void verify(PublicKey  key)
                     throws CRLException ,
                            NoSuchAlgorithmException ,
                            InvalidKeyException ,
                            NoSuchProviderException ,
                            SignatureException 
지정된 공개키에 대응하는 비공개키를 사용해, 이 CRL 가 서명된 것을 검증합니다.

파라미터:
key - 검증에 사용하는 PublicKey
예외:
NoSuchAlgorithmException - 지원되어 있지 않은 서명 알고리즘의 경우
InvalidKeyException - 무효인 열쇠의 경우
NoSuchProviderException - 디폴트의 프로바이더가 없는 경우
SignatureException - 서명 에러의 경우
CRLException - encode 에러의 경우

verify

public abstract void verify(PublicKey  key,
                            String  sigProvider)
                     throws CRLException ,
                            NoSuchAlgorithmException ,
                            InvalidKeyException ,
                            NoSuchProviderException ,
                            SignatureException 
지정된 공개키에 대응하는 비공개키를 사용해, 이 CRL 가 서명된 것을 검증합니다. 이 메소드는, 지정된 프로바이더에 의해 제공된 서명 검증 엔진을 사용합니다.

파라미터:
key - 검증에 사용하는 PublicKey
sigProvider - 서명 프로바이더의 이름
예외:
NoSuchAlgorithmException - 지원되어 있지 않은 서명 알고리즘의 경우
InvalidKeyException - 무효인 열쇠의 경우
NoSuchProviderException - 무효인 프로바이더의 경우
SignatureException - 서명 에러의 경우
CRLException - encode 에러의 경우

getVersion

public abstract int getVersion()
CRL 로부터 version (버젼 번호) 치를 가져옵니다. ASN. 1 정의는 다음과 같습니다.
 version    Version OPTIONAL,
             -- if present, must be v2

Version ::= INTEGER { v1(0), v2(1), v3(2) } -- v3 does not apply to CRLs but appears for consistency -- with definition of Version for certs

반환값:
버젼 번호 (1 또는 2)

getIssuerDN

public abstract Principal  getIssuerDN()
비추천 getIssuerX500Principal() 로 옮겨놓을 수 있었습니다. 이 메소드는,issuer 를 구현 고유의 Principal 객체로서 돌려줍니다. 이식성이 있는 코드가 이러한 객체에 의존해야 하지는 않습니다.

CRL 로부터 issuer (발행자 식별명) 치를 가져옵니다. 발행자명은, CRL 의 서명과 발행을 행한 엔티티를 식별합니다.

발행자명 필드에는, X. 500 식별명 (DN)이 포함됩니다. ASN. 1 정의는 다음과 같습니다.

 issuer    Name

 Name ::= CHOICE { RDNSequence }
 RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
 RelativeDistinguishedName ::=
     SET OF AttributeValueAssertion

 AttributeValueAssertion ::= SEQUENCE {
                               AttributeType,
                               AttributeValue }
 AttributeType ::= OBJECT IDENTIFIER
 AttributeValue ::= ANY
 
Name 에는, 국명등의 속성과 거기에 대응하는, US 등의 값으로부터 되는 계층적인 이름을 기술합니다. AttributeValue 컴퍼넌트의 형태는,AttributeType 에 의해 정해집니다. 일반적으로는,directoryString 입니다. directoryString 은, 일반적으로 PrintableString,TeletexString,UniversalString 의 어떤 것인가입니다.

반환값:
이름이 발행자 식별명인 Principal

getIssuerX500Principal

public X500Principal  getIssuerX500Principal()
CRL 로부터 발행자 (발행자의 식별명)의 값을 X500Principal 로서 돌려줍니다.  

서브 클래스에서 이 메소드를 오버라이드(override) 하는 것을 추천합니다.

반환값:
발행자의 식별명을 나타내는 X500Principal
도입된 버젼:
1.4

getThisUpdate

public abstract Date  getThisUpdate()
CRL 로부터 thisUpdate 의 일자를 가져옵니다. ASN. 1 정의는 다음과 같습니다.
 thisUpdate   ChoiceOfTime
 ChoiceOfTime ::= CHOICE {
     utcTime        UTCTime,
     generalTime    GeneralizedTime }
 

반환값:
CRL 로부터의 thisUpdate 의 일자

getNextUpdate

public abstract Date  getNextUpdate()
CRL 로부터 nextUpdate 의 일자를 가져옵니다.

반환값:
CRL 로부터의 nextUpdate 의 일자. 일자가 없는 경우는 null

getRevokedCertificate

public abstract X509CRLEntry  getRevokedCertificate(BigInteger  serialNumber)
지정된 증명서의 serialNumber 를 가지는 CRL 엔트리를 가져옵니다 (있는 경우).

파라미터:
serialNumber - CRL 입력이 참조되는 증명서의 시리얼 번호
반환값:
지정된 시리얼 번호를 가지는 엔트리. 이 CRL 에 그 엔트리가 없는 경우는 null
관련 항목:
X509CRLEntry

getRevokedCertificate

public X509CRLEntry  getRevokedCertificate(X509Certificate  certificate)
지정된 증명서에 대한 CRL 엔트리를 가져옵니다 (존재하는 경우).

이 메소드를 사용하면(자), 간접 CRL (CRL 발행자 이외의 발행자에 의해 발행된 엔트리를 포함한 CRL) 내의 CRL 엔트리를 검색할 수 있습니다. 디폴트 구현은, CRL 발행자에 의해 발행된 증명서 엔트리만을 돌려줍니다. 간접 CRL 의 지원가 필요한 서브 클래스는, 이 메소드를 오버라이드(override) 할 필요가 있습니다.

파라미터:
certificate - CRL 엔트리의 검색 대상이 되는 증명서
반환값:
지정된 증명서에 대한 엔트리. 그러한 엔트리가 이 CRL 내에 존재하지 않는 경우는 null
예외:
NullPointerException - 증명서가 null 의 경우
도입된 버젼:
1.5

getRevokedCertificates

public abstract Set <?  extends X509CRLEntry > getRevokedCertificates()
모든 엔트리를 가져옵니다. X509CRLEntry 객체의 Set 가 돌려주어집니다.

반환값:
모든 엔트리. 엔트리가 없는 경우는 null
관련 항목:
X509CRLEntry

getTBSCertList

public abstract byte[] getTBSCertList()
                               throws CRLException 
DER 로 encode 된 CRL 정보 tbsCertList 를 CRL 로부터 가져옵니다. 이 정보는 서명을 개별적으로 검증하기 위해서 사용됩니다.

반환값:
DER 로 encode 된 CRL 정보
예외:
CRLException - encode 에러가 발생했을 경우

getSignature

public abstract byte[] getSignature()
signature 치 (생의 시그니챠빗트)를 가져옵니다. ASN. 1 정의는 다음과 같습니다.
 signature     BIT STRING  
 

반환값:
시그니챠

getSigAlgName

public abstract String  getSigAlgName()
서명 알고리즘명을 가져옵니다. 예를 들어, 캐릭터 라인 「SHA-1/DSA」 등입니다. ASN. 1 정의는 다음과 같습니다.
 signatureAlgorithm   AlgorithmIdentifier

AlgorithmIdentifier ::= SEQUENCE { algorithm OBJECT IDENTIFIER, parameters ANY DEFINED BY algorithm OPTIONAL } -- contains a value of the type -- registered for use with the -- algorithm object identifier value

알고리즘명은 algorithm OID 캐릭터 라인으로부터 판정됩니다.

반환값:
서명 알고리즘명

getSigAlgOID

public abstract String  getSigAlgOID()
CRL 로부터 서명 알고리즘의 OID 캐릭터 라인을 가져옵니다. OID 는 피리어드로 단락지어진 부가 되지 않는 정수세트로 나타내집니다. 예를 들어, 캐릭터 라인 「1.2. 840.10040. 4.3」에서는, DSA 서명 알고리즘을 가지는 SHA-1 가 식별됩니다 (RFC 2459 를 참조).

관련하는 ASN. 1 정의에 대해서는,getSigAlgName 를 참조해 주세요.

반환값:
서명 알고리즘의 OID 캐릭터 라인

getSigAlgParams

public abstract byte[] getSigAlgParams()
이 CRL 의 서명 알고리즘으로부터, DER 로 encode 된 서명 알고리즘 파라미터를 가져옵니다. 대부분의 경우, 서명 알고리즘 파라미터는 null 로, 일반적으로은 공개키와 함께 제공됩니다. 개개의 파라미터치에의 액세스가 필요한 경우는,AlgorithmParameters 를 사용해,getSigAlgName 에 의해 반환되는 이름을 사용해 인스턴스를 생성합니다.

관련하는 ASN. 1 정의에 대해서는,getSigAlgName 를 참조해 주세요.

반환값:
DER 로 encode 된 서명 알고리즘 파라미터. 파라미터가 존재하지 않는 경우는 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 도 참조해 주세요.