MacSpi — 메시지 인증 코드 서비스 제공자 인터페이스

MacSpi — 메시지 인증 코드 서비스 제공자 인터페이스

MacSpi 클래스는 Mac 클래스를 위한 서비스 제공자 인터페이스(SPI)를 정의해요. 특정 MAC 알고리즘 구현을 제공하려는 각 암호화 서비스 제공자는 이 클래스의 모든 추상 메서드를 구현해야 해요.

출처: Java API Reference

본문

구현은 Cloneable 인터페이스를 구현할 수 있어요. 구현이 복제 가능하면 clone()을 오버라이드해 복제본을 반환하고, 그렇지 않으면 CloneNotSupportedException을 던져야 해요.

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

  • byte[] engineDoFinal() — MAC 연산을 완료하고 MAC을 재사용을 위해 재설정하며, 초기화에 사용된 비밀 키를 유지해요.
  • int engineGetMacLength() — MAC의 길이(바이트)를 반환해요.
  • void engineInit(Key key, AlgorithmParameterSpec params) — 비밀 키와 알고리즘 매개변수로 MAC을 초기화해요. InvalidKeyException, InvalidAlgorithmParameterException이 발생할 수 있어요.
  • void engineReset() — MAC을 재사용을 위해 재설정하고 초기화에 사용된 비밀 키를 유지해요.
  • void engineUpdate(byte input) — 주어진 바이트를 처리해요.
  • void engineUpdate(byte[] input, int offset, int len)inputoffset부터 len 바이트를 처리해요.
  • void engineUpdate(ByteBuffer input)ByteBuffer에서 input.remaining() 바이트를 처리해요.

제공자는 엔진 메서드를 구현해 실제 MAC 로직을 제공해요.

더 알아보기 (Learn more)