KEMSpi — 키 캡슐화 메커니즘 서비스 제공자 인터페이스
KEMSpi — 키 캡슐화 메커니즘 서비스 제공자 인터페이스
KEMSpi 인터페이스는 KEM 클래스를 위한 서비스 제공자 인터페이스(SPI)를 정의해요. 보안 제공자가 이 인터페이스를 구현해 키 캡슐화 메커니즘(KEM) 알고리즘 구현을 제공해요.
본문
KEM 알고리즘은 구성(configuration)의 모음을 지원할 수 있어요. 각 구성은 다른 종류의 키, 암호 프리미티브, 공유 비밀과 키 캡슐화 메시지의 크기를 받아들일 수 있어요. 구성은 KEM 알고리즘 이름, 사용하는 키, 선택적인 AlgorithmParameterSpec 인자로 정의돼요.
KEMSpi 구현은 변경 불가능해야 하고, 여러 engineNewEncapsulator와 engineNewDecapsulator 메서드를 동시에 호출해도 안전해야 해요.
구현해야 할 핵심 메서드는 다음과 같아요.
EncapsulatorSpi engineNewEncapsulator(PublicKey publicKey, AlgorithmParameterSpec spec, SecureRandom secureRandom)— 공개키 기반 캡슐레이터를 만들어요.InvalidAlgorithmParameterException이 발생할 수 있어요.DecapsulatorSpi engineNewDecapsulator(PrivateKey privateKey, AlgorithmParameterSpec spec)— 개인키 기반 디캡슐레이터를 만들어요.- 중첩 인터페이스
KEMSpi.EncapsulatorSpi는engineSecretSize(),engineEncapsulationSize(),engineEncapsulate()메서드를 가지고,KEMSpi.DecapsulatorSpi는engineDecapsulate()메서드를 가져요.
제공자는 이 인터페이스를 구현해 특정 KEM 알고리즘의 동작을 제공해요.