SignatureSpi

SignatureSpi (서명 SPI)

Signature 클래스의 Service Provider Interface(SPI)를 정의하는 클래스입니다. 디지털 서명 알고리즘 구현을 제공하려는 각 서비스 프로바이더는 이 클래스의 모든 추상 메서드를 구현해야 합니다.

출처: Java API Reference

본문

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 클래스를 통해 사용됩니다.

더 알아보기 (Learn more)

Java 공식 API