KEMSpi — 키 캡슐화 메커니즘 서비스 제공자 인터페이스

KEMSpi — 키 캡슐화 메커니즘 서비스 제공자 인터페이스

KEMSpi 인터페이스는 KEM 클래스를 위한 서비스 제공자 인터페이스(SPI)를 정의해요. 보안 제공자가 이 인터페이스를 구현해 키 캡슐화 메커니즘(KEM) 알고리즘 구현을 제공해요.

출처: Java API Reference

본문

KEM 알고리즘은 구성(configuration)의 모음을 지원할 수 있어요. 각 구성은 다른 종류의 키, 암호 프리미티브, 공유 비밀과 키 캡슐화 메시지의 크기를 받아들일 수 있어요. 구성은 KEM 알고리즘 이름, 사용하는 키, 선택적인 AlgorithmParameterSpec 인자로 정의돼요.

KEMSpi 구현은 변경 불가능해야 하고, 여러 engineNewEncapsulatorengineNewDecapsulator 메서드를 동시에 호출해도 안전해야 해요.

구현해야 할 핵심 메서드는 다음과 같아요.

  • EncapsulatorSpi engineNewEncapsulator(PublicKey publicKey, AlgorithmParameterSpec spec, SecureRandom secureRandom) — 공개키 기반 캡슐레이터를 만들어요. InvalidAlgorithmParameterException이 발생할 수 있어요.
  • DecapsulatorSpi engineNewDecapsulator(PrivateKey privateKey, AlgorithmParameterSpec spec) — 개인키 기반 디캡슐레이터를 만들어요.
  • 중첩 인터페이스 KEMSpi.EncapsulatorSpiengineSecretSize(), engineEncapsulationSize(), engineEncapsulate() 메서드를 가지고, KEMSpi.DecapsulatorSpiengineDecapsulate() 메서드를 가져요.

제공자는 이 인터페이스를 구현해 특정 KEM 알고리즘의 동작을 제공해요.

더 알아보기 (Learn more)