MacSpi — 메시지 인증 코드 서비스 제공자 인터페이스
MacSpi — 메시지 인증 코드 서비스 제공자 인터페이스
MacSpi 클래스는 Mac 클래스를 위한 서비스 제공자 인터페이스(SPI)를 정의해요. 특정 MAC 알고리즘 구현을 제공하려는 각 암호화 서비스 제공자는 이 클래스의 모든 추상 메서드를 구현해야 해요.
본문
구현은 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)—input의offset부터len바이트를 처리해요.void engineUpdate(ByteBuffer input)—ByteBuffer에서input.remaining()바이트를 처리해요.
제공자는 엔진 메서드를 구현해 실제 MAC 로직을 제공해요.