|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
java.lang.Objectjava.security.SignatureSpi
java.security.Signature
public abstract class Signature
Signature 클래스는, 어플리케이션에 대해서 디지털 서명 알고리즘의 기능을 제공하기 위해서 사용됩니다. 디지털 서명은, 인증이나 디지털 데이타의 무결성을 보증하기 위해서 사용됩니다.
많은 서명 알고리즘 중(안)에서, DSA 및 SHA-1 를 사용한, NIST 표준의 DSA 를 사용할 수 있습니다. SHA-1 메세지 다이제스트 알고리즘을 사용하는 DSA 알고리즘은,SHA1withDSA 와 같이 지정할 수 있습니다. RSA 의 경우는, 메세지 다이제스트 알고리즘에 복수의 선택사항이 있습니다. 따라서, 서명 알고리즘은,MD2withRSA,MD5withRSA, 또는 SHA1withRSA 와 같이 지정합니다. 디폴트는 없기 때문에, 반드시 알고리즘의 이름을 지정하지 않으면 안됩니다.
Signature 객체는, 디지털 서명을 생성해, 검증하기 위해서 사용할 수 있습니다.
데이터의 서명시 또는 서명의 검증시에 Signature 객체를 사용하는 경우, 3 개의 단계가 있습니다.
initVerify
를 참조).
initSign(PrivateKey)
및 initSign(PrivateKey, SecureRandom)
를 참조).
초기화의 종류에 응해, 서명 또는 검증의 대상이 되는 바이트를 갱신합니다. update
메소드를 참조해 주세요.
sign
메소드 및 verify
메소드를 참조해 주세요.
이 클래스는, 역사적인 사정으로부터 SignatureSpi
클래스로부터 확장된 abstract 클래스가 되어 있는 것에 주의해 주세요. 어플리케이션의 개발자는, 이 Signature
클래스에서의 메소드 정의인 만큼 배려해 주세요. 슈퍼 클래스의 모든 메소드는, 디지털 서명 알고리즘의 독자적인 구현을 제공할 필요가 있는 암호 서비스 프로바이더로 사용되는 것을 상정하고 있습니다.
필드의 개요 | |
---|---|
protected static int |
SIGN
이 서명 객체가 서명용으로 초기화가 끝난 상태인 것을 나타내는, state 의 가능한 값입니다. |
protected int |
state
이 서명 객체의 현재 상태입니다. |
protected static int |
UNINITIALIZED
이 서명 객체의 초기화가 종료하고 있지 않는 것을 나타내는, state 의 가능한 값입니다. |
protected static int |
VERIFY
이 서명 객체가 검증용으로 초기화가 끝난 상태인 것을 나타내는, state 의 가능한 값입니다. |
클래스 java.security. SignatureSpi 로부터 상속된 필드 |
---|
appRandom |
생성자 의 개요 | |
---|---|
protected |
Signature (String algorithm)
지정된 알고리즘에 대한 Signature 객체를 작성합니다. |
메소드의 개요 | |
---|---|
Object |
clone ()
구현이 복제 가능한 경우는 복제를 돌려줍니다. |
String |
getAlgorithm ()
이 서명 객체에 대한 알고리즘명을 돌려줍니다. |
static Signature |
getInstance (String algorithm)
지정된 서명 알고리즘을 구현하는 Signature 객체를 돌려줍니다. |
static Signature |
getInstance (String algorithm,
Provider provider)
지정된 서명 알고리즘을 구현하는 Signature 객체를 돌려줍니다. |
static Signature |
getInstance (String algorithm,
String provider)
지정된 서명 알고리즘을 구현하는 Signature 객체를 돌려줍니다. |
Object |
getParameter (String param)
추천 되고 있지 않습니다. |
AlgorithmParameters |
getParameters ()
이 서명 객체를 사용하는 파라미터를 돌려줍니다. |
Provider |
getProvider ()
이 서명 객체의 프로바이더를 돌려줍니다. |
void |
initSign (PrivateKey privateKey)
서명용으로 이 객체를 초기화합니다. |
void |
initSign (PrivateKey privateKey,
SecureRandom random)
서명용으로 이 객체를 초기화합니다. |
void |
initVerify (Certificate certificate)
서명 객체를, 검증 조작을 위해서(때문에) 지정된 공개키로 초기화합니다. |
void |
initVerify (PublicKey publicKey)
검증용으로 이 객체를 초기화합니다. |
void |
setParameter (AlgorithmParameterSpec params)
서명 엔진을, 지정된 파라미터 세트를 사용해 초기화합니다. |
void |
setParameter (String param,
Object value)
추천 되고 있지 않습니다. setParameter 를 사용해 주세요. |
byte[] |
sign ()
갱신된 모든 데이터의 서명 바이트를 돌려줍니다. |
int |
sign (byte[] outbuf,
int offset,
int len)
서명 조작을 종료해, 결과적으로 얻을 수 있는 서명 바이트를, 지정된 버퍼 outbuf 에 포함합니다 (개시 위치는 offset ). |
String |
toString ()
이 서명 객체의 캐릭터 라인 표현을 돌려주어, 객체 상태와 사용되는 알고리즘의 이름을 포함한 정보를 제공합니다. |
void |
update (byte b)
지정된 바이트를 사용해, 서명 또는 검증의 대상 데이터를 갱신합니다. |
void |
update (byte[] data)
지정된 바이트 배열을 사용해, 서명 또는 검증의 대상 데이터를 갱신합니다. |
void |
update (byte[] data,
int off,
int len)
서명 또는 검증하는 데이터를, 지정된 바이트의 배열을 사용해, 지정된 오프셋(offset)로부터 갱신합니다. |
void |
update (ByteBuffer data)
서명 또는 검증하는 데이터를, 지정된 ByteBuffer 를 사용해 갱신합니다. |
boolean |
verify (byte[] signature)
건네받은 서명을 검증합니다. |
boolean |
verify (byte[] signature,
int offset,
int length)
지정된 오프셋(offset)로부터 개시해, 지정된 바이트 데이터의 배열이 건네받은 서명을 검증합니다. |
클래스 java.security. SignatureSpi 로부터 상속된 메소드 |
---|
engineGetParameter , engineGetParameters , engineInitSign , engineInitSign , engineInitVerify , engineSetParameter , engineSetParameter , engineSign , engineSign , engineUpdate , engineUpdate , engineUpdate , engineVerify , engineVerify |
클래스 java.lang. Object 로부터 상속된 메소드 |
---|
equals , finalize , getClass , hashCode , notify , notifyAll , wait , wait , wait |
필드의 상세 |
---|
protected static final int UNINITIALIZED
state
의 가능한 값입니다.
protected static final int SIGN
state
의 가능한 값입니다.
protected static final int VERIFY
state
의 가능한 값입니다.
protected int state
생성자 의 상세 |
---|
protected Signature(String algorithm)
algorithm
- 알고리즘의 표준명을 나타내는 캐릭터 라인
알고리즘의 표준명에 대해서는,「Java 암호화 아키텍쳐(architecture) API 스펙 & 레퍼런스」의 부록 A 를 참조메소드의 상세 |
---|
public static Signature getInstance(String algorithm) throws NoSuchAlgorithmException
이 메소드는, 최우선의 Provider 로부터 순서에, 등록을 마친 시큐리티 Provider 의 리스트를 횡단(traverse) 합니다. 지정된 알고리즘을 지원하는 최초의 Provider 의 SignatureSpi 구현을 캡슐화하는 새로운 Signature 객체가 돌려주어집니다.
등록이 끝난 프로바이더의 리스트는,Security.getProviders()
메소드 경유로 취득할 수 있습니다.
algorithm
- 요구된 알고리즘의 표준적인 이름.
알고리즘의 표준명에 대해서는,「Java 암호화 아키텍쳐(architecture) API 스펙 & 레퍼런스」의 부록 A 를 참조
NoSuchAlgorithmException
- 지정된 알고리즘의 Signature 구현을 지원하는 Provider 가 존재하지 않는 경우Provider
public static Signature getInstance(String algorithm, String provider) throws NoSuchAlgorithmException , NoSuchProviderException
지정된 프로바이더의 SignatureSpi 구현을 캡슐화하는 새로운 Signature 객체가 돌려주어집니다. 지정한 프로바이더는, 시큐리티 프로바이더 리스트에 등록할 필요가 있습니다.
등록이 끝난 프로바이더의 리스트는,Security.getProviders()
메소드 경유로 취득할 수 있습니다.
algorithm
- 요구하는 알고리즘의 이름
알고리즘의 표준명에 대해서는,「Java 암호화 아키텍쳐(architecture) API 스펙 & 레퍼런스」의 부록 A 를 참조provider
- 프로바이더명
NoSuchAlgorithmException
- 지정된 프로바이더로 지정된 알고리즘의 SignatureSpi 구현이 없는 경우
NoSuchProviderException
- 지정된 프로바이더가 시큐리티 프로바이더 리스트에 등록되지 않은 경우
IllegalArgumentException
- 프로바이더의 이름이 null 나 빈 상태(empty)의 경우Provider
public static Signature getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
지정된 Provider 객체의 SignatureSpi 구현을 캡슐화하는 새로운 Signature 객체가 돌려주어집니다. 지정된 Provider 객체는, 프로바이더 리스트에 등록할 필요는 없습니다.
algorithm
- 요구하는 알고리즘의 이름
알고리즘의 표준명에 대해서는,「Java 암호화 아키텍쳐(architecture) API 스펙 & 레퍼런스」의 부록 A 를 참조provider
- 프로바이더
NoSuchAlgorithmException
- 지정된 Provider 객체로 지정된 알고리즘의 SignatureSpi 구현이 없는 경우
IllegalArgumentException
- 프로바이더가 null 의 경우Provider
public final Provider getProvider()
public final void initVerify(PublicKey publicKey) throws InvalidKeyException
publicKey
- 서명이 검증되는 아이덴티티의 공개키
InvalidKeyException
- 열쇠가 무효인 경우public final void initVerify(Certificate certificate) throws InvalidKeyException
증명서의 종류가 X. 509 로, 중요와 마크 된 key usage 확장 영역이 있어,key usage 확장 영역의 값에 의해 증명서의 비공개키와 거기에 대응하는 비공개키가 디지털 서명에 사용되지 않는 것으로 있는 경우는,InvalidKeyException
는 throw 됩니다.
certificate
- 서명이 검증되는 아이덴티티의 증명서
InvalidKeyException
- 증명서의 공개키가 올바르고 encode되어 있지 않은 경우, 필요한 파라미터 정보가 없는 경우, 또는 디지털 서명용으로 사용할 수 없는 경우public final void initSign(PrivateKey privateKey) throws InvalidKeyException
privateKey
- 서명을 생성하는 아이덴티티의 비공개키
InvalidKeyException
- 열쇠가 무효인 경우public final void initSign(PrivateKey privateKey, SecureRandom random) throws InvalidKeyException
privateKey
- 서명을 생성하는 아이덴티티의 비공개키random
- 이 제네레이터의 random number generation의 원
InvalidKeyException
- 열쇠가 무효인 경우public final byte[] sign() throws SignatureException
이 메소드를 호출하면(자), 이 서명 객체는,initSign(PrivateKey)
의 호출을 개입시켜 서명용으로 이전 초기화된 상태에 리셋 됩니다. 즉, 객체는, 필요에 따라서 update
와 sign
의 신규의 호출을 개입시켜 리셋 되어 같은 서명자로부터 다른 서명을 생성하기 위해서 사용 가능하게 됩니다.
SignatureException
- 이 서명 객체가 올바르게 초기화되어 있지 않은 경우, 또는 이 서명 알고리즘이 지정된 입력 데이터를 처리할 수 없는 경우public final int sign(byte[] outbuf, int offset, int len) throws SignatureException
outbuf
에 포함합니다 (개시 위치는 offset
). 서명의 형식은 기본으로 되는 서명 방식으로 의존합니다.
이 서명 객체는, 초기 상태 (initSign
메소드의 1 개에 불려 간 직후 상태)에 리셋 됩니다. 리셋 된 뒤는, 같은 비공개키를 사용해 한층 더 서명을 생성하기 위해서 재사용할 수 있습니다.
outbuf
- 최종적인 서명을 포함하는 버퍼offset
- outbuf
에 서명을 포함할 때의 오프셋(offset)len
- outbuf
내에 서명용으로서 할당할 수 있는 바이트수
outbuf
에 포함된 바이트수
SignatureException
- 이 서명 객체가 올바르게 초기화되어 있지 않은 경우, 이 서명 알고리즘이 지정된 입력 데이터를 처리할 수 없는 경우, 또는 len
의 값이 실제의 서명의 길이보다 작은 경우public final boolean verify(byte[] signature) throws SignatureException
이 메소드를 호출하면(자), 객체를 initVerify
를 개입시켜, 이전에 검증용으로 초기화된 상태로 합니다. 즉, 객체를 리셋 하므로,initVerify
에의 호출로 지정한 공개키를 가지는 식별의 다른 서명을 검증할 수 있습니다.
signature
- 검증 대상의 서명 바이트
SignatureException
- 이 서명 객체가 올바르게 초기화되어 있지 않은 경우, 지정된 서명의 encode 방법이 올바르지 않은 경우, 지정된 서명의 형태가 부정한 경우, 이 서명 알고리즘이 지정된 입력 데이터를 처리할 수 없는 경우 등public final boolean verify(byte[] signature, int offset, int length) throws SignatureException
이 메소드를 호출하면(자), 객체를 initVerify
를 개입시켜, 이전에 검증용으로 초기화된 상태로 합니다. 즉, 객체를 리셋 하므로,initVerify
에의 호출로 지정한 공개키를 가지는 식별의 다른 서명을 검증할 수 있습니다.
signature
- 검증 대상의 서명 바이트offset
- 바이트의 배열에서의 개시 오프셋(offset)length
- 오프셋(offset)로부터 개시해 사용되는 바이트수
SignatureException
- 이 서명 객체가 올바르게 초기화되어 있지 않은 경우, 지정된 서명의 encode 방법이 올바르지 않은 경우, 지정된 서명의 형태가 부정한 경우, 이 서명 알고리즘이 지정된 입력 데이터를 처리할 수 없는 경우 등
IllegalArgumentException
- signature
바이트 배열이 null 의 경우,offset
나 length
가 0 이하의 경우, 또는 offset
와 length
와의 합계가 signature
바이트 배열의 길이의 값보다 큰 경우public final void update(byte b) throws SignatureException
b
- 갱신에 사용하는 바이트
SignatureException
- 이 서명 객체가 올바르게 초기화되어 있지 않은 경우public final void update(byte[] data) throws SignatureException
data
- 갱신에 사용하는 바이트 배열
SignatureException
- 이 서명 객체가 올바르게 초기화되어 있지 않은 경우public final void update(byte[] data, int off, int len) throws SignatureException
data
- 바이트의 배열off
- 바이트의 배열에서의 개시 오프셋(offset)len
- 오프셋(offset)로부터 개시해 사용되는 바이트수
SignatureException
- 이 서명 객체가 올바르게 초기화되어 있지 않은 경우public final void update(ByteBuffer data) throws SignatureException
data.position()
로부터 시작되는 data.remaining()
바이트를 처리합니다. 종료시에, 버퍼의 위치는 리밋트에 동일해집니다만, 리밋트는 변경되지 않습니다.
data
- ByteBuffer
SignatureException
- 이 서명 객체가 올바르게 초기화되어 있지 않은 경우public final String getAlgorithm()
public String toString()
Object
내의 toString
@Deprecated public final void setParameter(String param, Object value) throws InvalidParameterException
setParameter
를 사용해 주세요.
param
- 파라미터의 캐릭터 라인 식별자value
- 파라미터치
InvalidParameterException
- param
가 이 서명 알고리즘 엔진에 대해서 무효인 경우, 파라미터가 설정이 끝난 상태로 재설정할 수 없는 경우, 시큐리티 예외가 발생했을 경우 등getParameter(java.lang.String)
public final void setParameter(AlgorithmParameterSpec params) throws InvalidAlgorithmParameterException
params
- 파라미터
InvalidAlgorithmParameterException
- 지정된 파라미터가 이 서명 엔진에 대해서 올바르지 않은 경우getParameters()
public final AlgorithmParameters getParameters()
반환된 파라미터는, 이 서명을 초기화하기 위해서 사용된 파라미터와 같게 되는 일이 있습니다. 혹은, 이 서명이 알고리즘 파라미터를 요구해도, 어느 알고리즘 파라미터에서도 초기화되지 않았던 경우에는, 반환된 파라미터에는, 기본으로 되는 서명의 구현으로 사용되는 디폴트의 파라미터치와 랜덤에 생성된 파라미터치의 편성이 포함되는 일이 있습니다.
setParameter(AlgorithmParameterSpec)
@Deprecated public final Object getParameter(String param) throws InvalidParameterException
param
- 파라미터의 캐릭터 라인명
InvalidParameterException
- param
가 이 엔진에 대해서 무효인 파라미터인 경우, 또는 이 파라미터를 취득하려고 하고 있는 동안에 다른 예외가 발생했을 경우setParameter(String, Object)
public Object clone() throws CloneNotSupportedException
SignatureSpi
내의 clone
CloneNotSupportedException
- Cloneable
를 지원하고 있지 않는 구현으로 불려 갔을 경우Cloneable
|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.