CertPath — 인증 경로
CertPath — 인증 경로
불변(immutable) 인증서 시퀀스(인증 경로)예요. 이 클래스는 모든 CertPath에 공통인 메서드를 정의하는 추상 클래스예요. 하위 클래스는 서로 다른 종류의 인증서(X.509, PGP 등)를 다룰 수 있어요. 모든 CertPath 객체는 유형(type), Certificate 목록, 하나 이상의 지원 인코딩을 가져요.
본문
CertPath 클래스는 불변이므로, 생성된 후 어떤 외부적으로 보이는 방식으로도 변경될 수 없어요. 유형은 인증 경로의 Certificate 유형을 식별하는 String이에요. 인증 경로 certPath의 각 인증서 cert에 대해 cert.getType().equals(certPath.getType())가 true여야 해요.
모든 CertPath 객체는 Serializable이에요. 직렬화 중에 CertPath 객체는 대체 CertPathRep 객체로 해석되어, 기반 구현에 관계없이 동등한 표현으로 직렬화될 수 있어요.
컨벤션상 X.509 CertPath(X509Certificate들로 구성)는 대상 인증서로 시작해 신뢰 앵커(trust anchor)가 발급한 인증서로 끝나는 순서로 정렬돼요. 즉 한 인증서의 발급자가 다음 인증서의 주체예요. 검증되지 않은 X.509 CertPath는 이 컨벤션을 따르지 않을 수 있고, PKIX CertPathValidator는 인증 경로를 무효로 만드는 컨벤션 이탈을 감지해 CertPathValidatorException을 던져요.
모든 CertPath 객체는 스레드 안전해야 해요. 즉 여러 스레드가 단일 CertPath 객체에서 이 클래스가 정의하는 메서드를 동시에 호출할 수 있어요.
주요 메서드
public String getType()— 이 인증 경로의 유형을 반환해요.public abstract Iterator<Certificate> getCertificates()— 이 인증 경로의Certificate목록을 반복하는 반복자를 반환해요.public abstract byte[] getEncoded() throws CertificateEncodingException— 기본 인코딩으로 이 인증 경로를 인코딩해 반환해요.public abstract byte[] getEncoded(String encoding) throws CertificateEncodingException— 지정된 인코딩으로 이 인증 경로를 인코딩해 반환해요.public abstract Iterator<String> getEncodings()— 이 인증 경로가 지원하는 인코딩의 반복자를 반환해요.public abstract List<? extends Certificate> getCertificates()— 이 인증 경로의Certificate불변 목록을 반환해요.
CertPath path = builder.build(params).getCertPath();
System.out.println("유형: " + path.getType());
for (Certificate cert : path.getCertificates()) {{
System.out.println(cert);
}}