JavaTM Platform
Standard Ed. 6

java.security.cert
클래스 CertPath

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


public abstract class CertPath
extends Object
implements Serializable

불변인 증명서의 순서 (증명서 패스)입니다.  

이것은 모든 CertPath 에 공통된 메소드를 정의하는 abstract 클래스입니다. 서브 클래스에서는, 다양한 종류의 증명서 (X. 509, PGP 등)을 처리할 수 있습니다.  

모든 CertPath 에는 타입,Certificate 의 리스트, 지원되는 1 개(살) 이상의 encode가 있습니다. CertPath 클래스는 불변이기 (위해)때문에, 구축 후에 외부로부터 눈에 보이는 형태로 CertPath 를 변경할 수 없습니다. 이것은, 이 클래스의 모든 public 필드와 메소드, 그리고 서브 클래스에서 추가 또는 오버라이드(override) 된 public 필드와 메소드에 들어맞읍니다.  

타입은 String 로, 증명서 패스로 Certificate 의 타입을 특정합니다. 증명서 패스 certPath 의 각 증명서 cert 에서는,cert.getType(). equals(certPath.getType())true 가 아니면 안됩니다.  

Certificate 의 리스트는 0 개 이상의 Certificate 로부터 되는 순서 첨부의 List 입니다. 이 List 와 포함되는 Certificate 는 불변일 필요가 있습니다.  

각각의 CertPath 객체는, 다른 상대에게 포함하거나 전송하거나 하기 위해서 바이트 배열로 변환할 수 있도록(듯이), 1 개(살) 이상의 encode를 지원하고 있지 않으면 안됩니다. 가능한 한 그 encode는, PKCS#7 와 같이 명확하게 문서화 되고 있는 표준으로 합니다. CertPath 로 지원되고 있는 encode 가운데 1 개를, 디폴트의 encode로 합니다. encode를 명시적으로 요구하지 않는 경우 (예를 들어 getEncoded() 메소드)에, 디폴트의 encode가 사용됩니다.  

모든 CertPath 객체는 또,Serializable 입니다. 직렬화중에 CertPath 객체는 대체 CertPathRep 객체로 해석 처리됩니다. 이것에 의해, 기본적인 구현에 관계없이,CertPath 객체를 동등의 표현에 직렬화할 수 있습니다.  

CertPath 객체는 CertificateFactory 로 작성됩니다만,CertPathBuilder 와 같은 다른 클래스로부터 반환되는 일도 있습니다.  

규칙에서는,X509Certificate 로 구성되어 있는 X. 509 CertPath 는, 타겟 증명서로 시작되어, 트러스트 엥커가 발행한 증명서로 끝나도록(듯이) 순서 붙이고 되고 있습니다. 즉, 증명서의 발행자는, 그 다음에 계속되는 증명서의 주체가 됩니다. TrustAnchor 를 나타내는 증명서는, 증명서 패스에 포함되지 않습니다. 미검사의 X. 509 CertPath 는 이 규칙에 따르지 않습니다. PKIX CertPathValidator 는, 이 규칙의 위반을 검출하는 것으로써, 증명서 패스가 무효가 되어 CertPathValidatorException. 하지만 throw 되는 것을 막습니다.  

병행 액세스  

모든 CertPath 객체는, thread에 대해서 안전하지 않으면 안됩니다. 즉, 이 클래스에서 정의된 메소드는, 악영향을 주는 일 없이, 복수 thread가 병행해 단일 CertPath 객체 (또는 1 개(살) 이상) 상에서 호출할 수가 있습니다. 이것은 CertPath.getCertificates 가 돌려주는 List 에 대해서도 들어맞읍니다.  

CertPath 객체는 불변으로, 한편 thread에 대해서 안전하지 않으면 안 되기 때문에, 액세스의 동기의 걱정을 하는 일 없이, 다양한 코드에 이 객체를 건네줄 수가 있습니다. CertPath 객체와 List 객체가 불변이므로, 일반적으로, thread에 대해서 안전하게 하는 것은 어렵지는 않습니다.

도입된 버젼:
1.4
관련 항목:
CertificateFactory , CertPathBuilder , 직렬화 된 형식

상자의 클래스의 개요
protected static class CertPath.CertPathRep
          직렬화의 대체 CertPath 클래스입니다.
 
생성자 의 개요
protected CertPath (String  type)
          지정된 타입의 CertPath 를 작성합니다.
 
메소드의 개요
 boolean equals (Object  other)
          지정된 객체와 이 증명서 패스가 동일한지 어떤지를 비교합니다.
abstract  List <? extends Certificate > getCertificates ()
          이 증명서 패스내의 증명서의 리스트를 돌려줍니다.
abstract  byte[] getEncoded ()
          디폴트의 encode를 사용해, 이 증명서 패스의 encode 된 형식을 돌려줍니다.
abstract  byte[] getEncoded (String  encoding)
          지정한 encode를 사용해, 이 증명서 패스의 encode 된 형식을 돌려줍니다.
abstract  Iterator <String > getEncodings ()
          이 증명서 패스로 지원하는 encode의 반복을 돌려줍니다.
 String getType ()
          이 증명서 패스내의 Certificate 의 타입을 돌려줍니다.
 int hashCode ()
          이 증명서 패스의 해시 코드를 돌려줍니다.
 String toString ()
          이 증명서 패스의 캐릭터 라인 표현을 돌려줍니다.
protected  Object writeReplace ()
          직렬화 되는 CertPathCertPathRep 객체에 옮겨놓습니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , finalize , getClass , notify , notifyAll , wait , wait , wait
 

생성자 의 상세

CertPath

protected CertPath(String  type)
지정된 타입의 CertPath 를 작성합니다.  

대부분의 사용자는 CertificateFactory 를 사용해 CertPath 를 작성하기 위해(때문에), 이 생성자 은 보호되고 있습니다.

파라미터:
type - 이 패스내의 Certificate 의 타입의 표준명
메소드의 상세

getType

public String  getType()
이 증명서 패스내의 Certificate 의 타입을 돌려줍니다. 이것은, 증명서 패스내의 모든 Certificate 에 대한 cert.getType() 로 반환되는 캐릭터 라인과 같습니다.

반환값:
이 증명서 패스내의 Certificate 의 타입 (null 는 되지 않는다)

getEncodings

public abstract Iterator <String > getEncodings()
이 증명서 패스로 지원하는 encode의 반복을 돌려줍니다. 반환된 Iteratorremove 메소드로 변경하려고 하면(자),UnsupportedOperationException 가 throw 됩니다.

반환값:
지원되는 encode의 이름 (String)을 반복하는 Iterator

equals

public boolean equals(Object  other)
지정된 객체와 이 증명서 패스가 동일한지 어떤지를 비교합니다. 2 개의 CertPath 의 타입이 동일하고, 증명서의 List 가 (즉 List 내의 Certificate 가 암묵적으로) 동일한 경우, 이러한 CertPath 는 동일하게 됩니다. CertPathCertPath 가 아닌 객체와 동일해질 것은 없습니다.  

이 알고리즘은 이 메소드에 구현되고 있습니다. 오버라이드(override) 할 때는, 여기서 설명한 동작이 유지되도록(듯이) 하지 않으면 안됩니다.

오버라이드(override):
클래스 Object 내의 equals
파라미터:
other - 이 증명서 패스와 동일한지 어떤지가 판정되는 객체
반환값:
지정된 객체가 이 증명서 패스에 동일한 경우는 true, 그렇지 않은 경우는 false
관련 항목:
Object.hashCode() , Hashtable

hashCode

public int hashCode()
이 증명서 패스의 해시 코드를 돌려줍니다. 증명서 패스의 해시 코드는, 다음의 계산의 결과로서 정의됩니다.

hashCode = path.getType(). hashCode();
hashCode = 31*hashCode + path.getCertificates(). hashCode();
 
이것에 의해,Object.hashCode 의 일반 규약에 의해 요구되도록(듯이), 임의의 2 개의 증명서 패스 path1path2 로,path1.equals(path2) 이면 path1.hashCode() ==path2.hashCode() 가 되는 것이 보증됩니다.

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

toString

public String  toString()
이 증명서 패스의 캐릭터 라인 표현을 돌려줍니다. 패스의 각 CertificatetoString 메소드를 호출합니다.

오버라이드(override):
클래스 Object 내의 toString
반환값:
이 증명서 패스의 캐릭터 라인 표현

getEncoded

public abstract byte[] getEncoded()
                           throws CertificateEncodingException 
디폴트의 encode를 사용해, 이 증명서 패스의 encode 된 형식을 돌려줍니다.

반환값:
encode 된 바이트
예외:
CertificateEncodingException - encode 에러가 발생했을 경우

getEncoded

public abstract byte[] getEncoded(String  encoding)
                           throws CertificateEncodingException 
지정한 encode를 사용해, 이 증명서 패스의 encode 된 형식을 돌려줍니다.

파라미터:
encoding - 사용하는 encode명
반환값:
encode 된 바이트
예외:
CertificateEncodingException - encode 에러가 발생했을 경우, 또는 지정된 encode가 지원되어 있지 않은 경우

getCertificates

public abstract List <?  extends Certificate > getCertificates()
이 증명서 패스내의 증명서의 리스트를 돌려줍니다. 반환되는 List 는 불변으로, thread에 대해서 안전하지 않으면 안됩니다.

반환값:
Certificate 의 불변인 List (빈 상태(empty)은 가능, null 는 불가)

writeReplace

protected Object  writeReplace()
                       throws ObjectStreamException 
직렬화 되는 CertPathCertPathRep 객체에 옮겨놓습니다.

반환값:
직렬화 되는 CertPathRep
예외:
ObjectStreamException - 이 증명서 패스를 나타내는 CertPathRep 를 생성할 수 없었던 경우

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