KeyPairGeneratorSpi

KeyPairGeneratorSpi (키 쌍 생성기 SPI)

KeyPairGenerator 클래스의 Service Provider Interface(SPI)를 정의하는 클래스입니다. 특정 알고리즘의 키 쌍 생성기 구현을 제공하려는 암호화 서비스 프로바이더는 이 클래스의 모든 추상 메서드를 구현해야 합니다.

출처: Java API Reference

본문

KeyPairGeneratorSpi는 공개 키·개인 키 쌍을 생성하는 키 쌍 생성기의 내부 엔진(engine) 역할을 수행합니다. 클라이언트가 KeyPairGenerator를 명시적으로 초기화하지 않으면 각 프로바이더는 기본 초기화를 제공하고 문서화해야 합니다.

프로바이더별 기본값은 서로 다를 수 있고 미래 버전에서 바뀔 수 있으므로, 프로바이더별 기본값에 의존하기보다는 KeyPairGenerator를 명시적으로 초기화하는 것이 권장됩니다.

SPI가 정의하는 메서드는 다음과 같습니다.

  • public abstract void initialize(int keysize, SecureRandom random) — 기본 매개변수 집합을 사용해 지정된 키 크기로 초기화합니다. keysize는 조각 길이 같은 알고리즘 특유의 지표로, 비트 수로 지정됩니다. 키 크기가 지원되지 않으면 InvalidParameterException이 발생합니다.
  • public void initialize(AlgorithmParameterSpec params, SecureRandom random) — 사용자가 제공한 난수 소스와 지정된 매개변수 집합으로 초기화합니다. 프로바이더가 오버라이드할 수 있는 구체 메서드이며, 오버라이드하지 않으면 항상 UnsupportedOperationException을 던집니다.
  • public abstract KeyPair generateKeyPair() — 키 쌍을 생성합니다. 초기화 메서드를 호출하지 않았다면 알고리즘 특유 기본값을 사용합니다. 호출할 때마다 새로운 키 쌍을 만듭니다.

더 알아보기 (Learn more)

Java 공식 API