X509ExtendedKeyManager — X509KeyManager 확장을 위한 추상 클래스
X509ExtendedKeyManager — X509KeyManager 확장을 위한 추상 클래스
X509ExtendedKeyManager는 X509KeyManager 인터페이스의 확장을 제공하는 추상 클래스예요. SSLEngine 기반 연결에서 사용할 별칭(alias) 선택을 지원해요. 이 클래스의 메서드는 실제 구현을 제공하려면 오버라이드해야 해요.
본문
public abstract class X509ExtendedKeyManager extends Object implements X509KeyManager
생성자
protected X509ExtendedKeyManager()— 하위 클래스에서만 사용하는 생성자예요.
메서드
String chooseEngineClientAlias(String[] keyType, Principal[] issuers, SSLEngine engine)— 공개 키 타입과 피어가 인식하는 인증서 발급자 기관 목록이 주어졌을 때,SSLEngine연결의 클라이언트 쪽을 인증할 별칭을 선택해요. 기본 구현은null을 반환해요.keyType은 가장 선호되는 키 타입이 먼저 오도록 정렬된 키 알고리즘 타입 이름이고,issuers는 허용되는 CA 발급자 주체 이름 목록이거나 어떤 발급자를 사용해도 상관없다면null이에요.engine은 이 연결에 사용될SSLEngine으로,null이 될 수 있고 이 경우 구현이 어떤 엔진에도 적용 가능한 별칭을 자유롭게 선택할 수 있어요. 일치하는 항목이 없으면null을 반환해요.String chooseEngineServerAlias(String keyType, Principal[] issuers, SSLEngine engine)— 공개 키 타입과 피어가 인식하는 인증서 발급자 기관 목록이 주어졌을 때,SSLEngine연결의 서버 쪽을 인증할 별칭을 선택해요. 기본 구현은null을 반환해요.keyType은 키 알고리즘 타입 이름이고,issuers는 허용되는 CA 발급자 주체 이름 목록이거나null이에요.engine은 이 연결에 사용될SSLEngine으로null이 될 수 있어요. 일치하는 항목이 없으면null을 반환해요.
왜 필요한가요?
기존 X509KeyManager의 chooseClientAlias/chooseServerAlias 메서드는 Socket을 받지만, SSLEngine을 사용하는 비블로킹 방식의 통신에서는 소켓 대신 엔진 기준으로 별칭을 선택해야 해요. X509ExtendedKeyManager는 바로 그런 SSLEngine 기반 시나리오를 위해 설계된 확장이에요. 나머지 chooseClientAlias, chooseServerAlias, getCertificateChain, getClientAliases, getPrivateKey, getServerAliases 등은 X509KeyManager에서 선언된 메서드예요.