|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
java.lang.Objectjavax.crypto.Mac
public class Mac
이 클래스는, 「메세지 인증 코드」(MAC) 알고리즘의 기능을 제공합니다.
MAC 는, 신뢰할 수 없는 매체에 송신 또는 포함된 정보의 무결성을, 비밀열쇠에 근거해 체크하는 방법을 제공합니다. 일반적으로, 메세지 인증 코드는, 비밀열쇠를 공유하는 2 개의 파티간에 송신되는 정보의 유효성을 검증하는 경우에 사용됩니다.
암호화 해시 기능에 근거하는 MAC 기구는, HMAC 로 불립니다. HMAC 는, 비밀 공유열쇠와 조합해, MD5 나 SHA-1 등의 임의의 암호화 해시 기능으로 사용할 수 있습니다. HMAC 에 대해서는, RFC 2104 로 규정되고 있습니다.
생성자 의 개요 | |
---|---|
protected |
Mac (MacSpi macSpi,
Provider provider,
String algorithm)
MAC 객체를 생성합니다. |
메소드의 개요 | |
---|---|
Object |
clone ()
프로바이더의 구현이 복제 가능한 경우는 복제를 돌려줍니다. |
byte[] |
doFinal ()
MAC 조작을 종료합니다. |
byte[] |
doFinal (byte[] input)
지정된 바이트의 배열을 처리해 MAC 조작을 종료합니다. |
void |
doFinal (byte[] output,
int outOffset)
MAC 조작을 종료합니다. |
String |
getAlgorithm ()
이 Mac 객체의 알고리즘명을 돌려줍니다. |
static Mac |
getInstance (String algorithm)
지정한 알고리즘을 구현하는 Mac 객체를 돌려줍니다. |
static Mac |
getInstance (String algorithm,
Provider provider)
지정한 알고리즘을 구현하는 Mac 객체를 돌려줍니다. |
static Mac |
getInstance (String algorithm,
String provider)
지정한 알고리즘을 구현하는 Mac 객체를 돌려줍니다. |
int |
getMacLength ()
MAC 의 길이를 바이트 단위로 돌려줍니다. |
Provider |
getProvider ()
이 Mac 객체의 프로바이더를 돌려줍니다. |
void |
init (Key key)
지정된 열쇠를 사용해 이 Mac 객체를 초기화합니다. |
void |
init (Key key,
AlgorithmParameterSpec params)
지정된 열쇠와 알고리즘 파라미터를 사용해 이 Mac 객체를 초기화합니다. |
void |
reset ()
이 Mac 객체를 리셋 합니다. |
void |
update (byte input)
지정된 바이트를 처리합니다. |
void |
update (byte[] input)
지정된 바이트의 배열을 처리합니다. |
void |
update (byte[] input,
int offset,
int len)
input 내의 len 바이트를 처리합니다. |
void |
update (ByteBuffer input)
ByteBuffer input 내의 input.position() 로부터 시작되는 input.remaining() 바이트를 처리합니다. |
클래스 java.lang. Object 로부터 상속된 메소드 |
---|
equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait |
생성자 의 상세 |
---|
protected Mac(MacSpi macSpi, Provider provider, String algorithm)
macSpi
- delegateprovider
- 프로바이더algorithm
- 알고리즘메소드의 상세 |
---|
public final String getAlgorithm()
Mac
객체의 알고리즘명을 돌려줍니다.
이것은, 이 Mac
객체를 생성한 getInstance
호출의 1 개로 지정된 이름과 같습니다.
Mac
객체의 알고리즘명public static final Mac getInstance(String algorithm) throws NoSuchAlgorithmException
Mac
객체를 돌려줍니다.
이 메소드는, 최우선의 프로바이더로부터 순서에, 등록을 마친 시큐리티 프로바이더의 리스트를 횡단(traverse) 합니다. 지정된 알고리즘을 지원하는 최초의 프로바이더로부터의 MacSpi 의 구현을 캡슐화하는 새로운 Mac 객체가 돌려주어집니다.
등록이 끝난 프로바이더의 리스트는,Security.getProviders()
메소드 경유로 취득할 수 있습니다.
algorithm
- 요구된 MAC 알고리즘의 표준명
표준의 알고리즘명에 대해서는, 「Java 암호화 아키텍쳐(architecture) 레퍼런스 가이드」의 부록 A 를 참조
Mac
객체
NoSuchAlgorithmException
- 지정한 알고리즘의 MacSpi 구현을 지원하는 프로바이더가 존재하지 않는 경우Provider
public static final Mac getInstance(String algorithm, String provider) throws NoSuchAlgorithmException , NoSuchProviderException
Mac
객체를 돌려줍니다.
지정된 프로바이더로부터의 MacSpi 구현을 캡슐화하는 새로운 Mac 객체가 돌려주어집니다. 지정한 프로바이더는, 시큐리티 프로바이더 리스트에 등록할 필요가 있습니다.
등록이 끝난 프로바이더의 리스트는,Security.getProviders()
메소드 경유로 취득할 수 있습니다.
algorithm
- 요구된 MAC 알고리즘의 표준명
표준의 알고리즘명에 대해서는, 「Java 암호화 아키텍쳐(architecture) 레퍼런스 가이드」의 부록 A 를 참조provider
- 프로바이더명
Mac
객체
NoSuchAlgorithmException
- 지정된 프로바이더로 지정된 알고리즘의 MacSpi 의 구현이 없는 경우
NoSuchProviderException
- 지정한 프로바이더가 시큐리티 프로바이더 리스트에 등록되지 않은 경우
IllegalArgumentException
- provider
가 null 또는 빈 상태(empty)의 경우Provider
public static final Mac getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
Mac
객체를 돌려줍니다.
지정된 Provider 객체로부터의 MacSpi 구현을 캡슐화하는 새로운 Mac 객체가 돌려주어집니다. 지정한 Provider 객체는, 프로바이더 리스트에 등록할 필요는 없습니다.
algorithm
- 요구된 MAC 알고리즘의 표준명
표준의 알고리즘명에 대해서는, 「Java 암호화 아키텍쳐(architecture) 레퍼런스 가이드」의 부록 A 를 참조provider
- 프로바이더
Mac
객체
NoSuchAlgorithmException
- 지정된 Provider 객체로 지정된 알고리즘의 MacSpi 의 구현이 없는 경우
IllegalArgumentException
- provider
가 null 의 경우Provider
public final Provider getProvider()
Mac
객체의 프로바이더를 돌려줍니다.
Mac
객체의 프로바이더public final int getMacLength()
public final void init(Key key) throws InvalidKeyException
Mac
객체를 초기화합니다.
key
- 열쇠
InvalidKeyException
- 지정된 열쇠가 이 MAC 의 초기화에 올바르지 않은 경우public final void init(Key key, AlgorithmParameterSpec params) throws InvalidKeyException , InvalidAlgorithmParameterException
Mac
객체를 초기화합니다.
key
- 열쇠params
- 알고리즘 파라미터
InvalidKeyException
- 지정된 열쇠가 이 MAC 의 초기화에 올바르지 않은 경우
InvalidAlgorithmParameterException
- 지정된 알고리즘 파라미터가 이 MAC 에 올바르지 않은 경우public final void update(byte input) throws IllegalStateException
input
- 처리되는 입력 바이트
IllegalStateException
- 이 Mac
가 초기화되어 있지 않은 경우public final void update(byte[] input) throws IllegalStateException
input
- 처리되는 바이트의 배열
IllegalStateException
- 이 Mac
가 초기화되어 있지 않은 경우public final void update(byte[] input, int offset, int len) throws IllegalStateException
input
내의 len
바이트를 처리합니다. offset
로부터 시작합니다.
input
- 입력 버퍼offset
- 입력을 개시하는 input
내의 오프셋(offset)len
- 처리하는 바이트수
IllegalStateException
- 이 Mac
가 초기화되어 있지 않은 경우public final void update(ByteBuffer input)
input
내의 input.position()
로부터 시작되는 input.remaining()
바이트를 처리합니다. 종료시에, 버퍼의 위치는 리밋트에 동일해집니다만, 리밋트는 변경되지 않습니다.
input
- ByteBuffer
IllegalStateException
- 이 Mac
가 초기화되어 있지 않은 경우public final byte[] doFinal() throws IllegalStateException
이 메소드를 호출하면(자),Mac
객체는,init(Key)
또는 init(Key, AlgorithmParameterSpec)
의 호출을 개입시켜 이전 초기화된 상태에 리셋 됩니다. 즉, 객체는, 필요에 따라서 update
및 doFinal
의 신규의 호출을 개입시켜 리셋 되어 같은 열쇠로부터 다른 MAC 를 생성하기 위해서 사용 가능하게 됩니다. 다른 열쇠로 이 Mac
객체를 재사용하기 위해서는,init(Key)
또는 init(Key, AlgorithmParameterSpec)
의 호출을 개입시켜 재차 초기화할 필요가 있습니다.
IllegalStateException
- 이 Mac
가 초기화되어 있지 않은 경우public final void doFinal(byte[] output, int outOffset) throws ShortBufferException , IllegalStateException
이 메소드를 호출하면(자),Mac
객체는,init(Key)
또는 init(Key, AlgorithmParameterSpec)
의 호출을 개입시켜 이전 초기화된 상태에 리셋 됩니다. 즉, 객체는, 필요에 따라서 update
및 doFinal
의 신규의 호출을 개입시켜 리셋 되어 같은 열쇠로부터 다른 MAC 를 생성하기 위해서 사용 가능하게 됩니다. 다른 열쇠로 이 Mac
객체를 재사용하기 위해서는,init(Key)
또는 init(Key, AlgorithmParameterSpec)
의 호출을 개입시켜 재차 초기화할 필요가 있습니다.
MAC 결과는 output
에 포함됩니다. outOffset
로부터 시작됩니다.
output
- MAC 결과가 포함되는 버퍼outOffset
- MAC 가 포함되는 output
내의 오프셋(offset)
ShortBufferException
- 지정된 출력 버퍼가 너무 작아 결과를 보관 유지할 수 없는 경우
IllegalStateException
- 이 Mac
가 초기화되어 있지 않은 경우public final byte[] doFinal(byte[] input) throws IllegalStateException
이 메소드를 호출하면(자),Mac
객체는,init(Key)
또는 init(Key, AlgorithmParameterSpec)
의 호출을 개입시켜 이전 초기화된 상태에 리셋 됩니다. 즉, 객체는, 필요에 따라서 update
및 doFinal
의 신규의 호출을 개입시켜 리셋 되어 같은 열쇠로부터 다른 MAC 를 생성하기 위해서 사용 가능하게 됩니다. 다른 열쇠로 이 Mac
객체를 재사용하기 위해서는,init(Key)
또는 init(Key, AlgorithmParameterSpec)
의 호출을 개입시켜 재차 초기화할 필요가 있습니다.
input
- 바이트 단위의 데이터
IllegalStateException
- 이 Mac
가 초기화되어 있지 않은 경우public final void reset()
Mac
객체를 리셋 합니다.
이 메소드를 호출하면(자),Mac
객체는,init(Key)
또는 init(Key, AlgorithmParameterSpec)
의 호출을 개입시켜 이전 초기화된 상태에 리셋 됩니다. 즉, 객체는, 필요에 따라서 update
및 doFinal
의 신규의 호출을 개입시켜 리셋 되어 같은 열쇠로부터 다른 MAC 를 생성하기 위해서 사용 가능하게 됩니다. 다른 열쇠로 이 Mac
객체를 재사용하기 위해서는,init(Key)
또는 init(Key, AlgorithmParameterSpec)
의 호출을 개입시켜 재차 초기화할 필요가 있습니다.
public final Object clone() throws CloneNotSupportedException
Object
내의 clone
CloneNotSupportedException
- Cloneable
를 지원하고 있지 않는 delegate에서 불려 갔을 경우Cloneable
|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.