SignatureSpi
SignatureSpi (서명 SPI)
Signature 클래스의 Service Provider Interface(SPI)를 정의하는 클래스입니다. 디지털 서명 알고리즘 구현을 제공하려는 각 서비스 프로바이더는 이 클래스의 모든 추상 메서드를 구현해야 합니다.
본문
SignatureSpi는 디지털 서명 알고리즘의 내부 엔진(engine) 역할을 수행하며, 실제 Signature 객체의 공개 메서드가 이 SPI의 engine* 메서드들을 호출합니다.
SPI가 정의하는 주요 메서드는 다음과 같습니다.
protected abstract void engineInitSign(PrivateKey privateKey)— 서명 모드로 초기화합니다. 난수 소스를 추가로 받는engineInitSign(PrivateKey, SecureRandom)과 매개변수를 받는engineInitSign(PrivateKey, SecureRandom, AlgorithmParameterSpec)변형도 있습니다.protected abstract void engineInitVerify(PublicKey publicKey)— 검증 모드로 초기화합니다.protected abstract void engineUpdate(byte b)— 바이트 하나로 서명·검증 데이터를 갱신합니다.protected abstract void engineUpdate(byte[] b, int off, int len)— 지정된 바이트 배열의 일부로 데이터를 갱신합니다.protected abstract byte[] engineSign()— 서명을 생성합니다.protected int engineSign(byte[] outbuf, int offset, int len)— 서명을 생성해outbuf에 저장합니다.protected abstract boolean engineVerify(byte[] sigBytes)— 주어진 서명을 검증합니다.protected abstract void engineSetParameter(String param, Object value),engineSetParameter(AlgorithmParameterSpec params)— 알고리즘 특유의 매개변수를 설정합니다.protected abstract AlgorithmParameterSpec engineGetParameters()— 알고리즘 특유의 매개변수를 반환합니다.protected abstract Object engineGetParameter(String param)—engineSetParameter(String, Object)와 함께 레거시 매개변수 접근을 제공합니다.protected abstract void engineReset()— 서명 엔진을 재설정합니다.
프로바이더는 이 클래스를 확장해 특정 서명 알고리즘을 구현하며, 구현이 완료되면 Signature 클래스를 통해 사용됩니다.