|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
java.lang.Objectjavax.crypto.KeyAgreement
public class KeyAgreement
이 클래스는, 열쇠의 합의 프로토콜, 즉 열쇠의 교환 프로토콜의 기능을 제공합니다.
공유의 비밀 작성에 관계하는 열쇠는,KeyPairGenerator
또는 KeyGenerator
의 몇개의 열쇠 제네레이터인가,KeyFactory
에 의해, 또는 열쇠 협정 프로토콜의 중간 국면의 결과로서 작성됩니다.
열쇠 교환의 대응 관계 마다,doPhase
를 호출할 필요가 있습니다. 예를 들어, 열쇠 교환의 상대가 1 개의 경우는,lastPhase
플래그를 true
로 설정해 doPhase
를 1 회 호출할 필요가 있습니다. 열쇠 교환의 상대가 2 개의 경우는, 처음은 lastPhase
플래그를 false
로 설정해, 2 번째는 true
로 설정해,doPhase
를 2 회 호출할 필요가 있습니다. 열쇠 교환의 상대의 수는 임의입니다.
KeyGenerator
,
SecretKey
생성자 의 개요 | |
---|---|
protected |
KeyAgreement (KeyAgreementSpi keyAgreeSpi,
Provider provider,
String algorithm)
KeyAgreement 객체를 생성합니다. |
메소드의 개요 | |
---|---|
Key |
doPhase (Key key,
boolean lastPhase)
이 열쇠 합의에 관계하는 상대의 누군가로부터 받은, 지정된 열쇠를 사용해 이 열쇠 합의의 다음의 단계를 실행합니다. |
byte[] |
generateSecret ()
공유의 비밀 정보를 생성해 새로운 버퍼내에 돌려줍니다. |
int |
generateSecret (byte[] sharedSecret,
int offset)
공유의 비밀 정보를 생성해, offset 로부터 시작되는 sharedSecret 버퍼내에 포함합니다. |
SecretKey |
generateSecret (String algorithm)
공유의 비밀 정보를 작성해, 그것이 지정된 알고리즘의 SecretKey 객체로서 돌려줍니다. |
String |
getAlgorithm ()
이 KeyAgreement 객체의 알고리즘명을 돌려줍니다. |
static KeyAgreement |
getInstance (String algorithm)
지정한 열쇠 합의 알고리즘을 구현하는 KeyAgreement 객체를 돌려줍니다. |
static KeyAgreement |
getInstance (String algorithm,
Provider provider)
지정한 열쇠 합의 알고리즘을 구현하는 KeyAgreement 객체를 돌려줍니다. |
static KeyAgreement |
getInstance (String algorithm,
String provider)
지정한 열쇠 합의 알고리즘을 구현하는 KeyAgreement 객체를 돌려줍니다. |
Provider |
getProvider ()
이 KeyAgreement 객체의 프로바이더를 돌려줍니다. |
void |
init (Key key)
지정된 열쇠로 이 열쇠 합의를 초기화합니다. |
void |
init (Key key,
AlgorithmParameterSpec params)
지정된 열쇠와 알고리즘 파라미터세트를 사용해 이 열쇠 합의를 초기화합니다. |
void |
init (Key key,
AlgorithmParameterSpec params,
SecureRandom random)
지정된 열쇠, 알고리즘 파라미터세트, 및 random number generation의 원을 사용해 이 열쇠 합의를 초기화합니다. |
void |
init (Key key,
SecureRandom random)
지정된 열쇠와 random number generation의 원으로 이 열쇠 합의를 초기화합니다. |
클래스 java.lang. Object 로부터 상속된 메소드 |
---|
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait |
생성자 의 상세 |
---|
protected KeyAgreement(KeyAgreementSpi keyAgreeSpi, Provider provider, String algorithm)
keyAgreeSpi
- delegateprovider
- 프로바이더algorithm
- 알고리즘메소드의 상세 |
---|
public final String getAlgorithm()
KeyAgreement
객체의 알고리즘명을 돌려줍니다.
이것은, 이 KeyAgreement
객체를 생성한 getInstance
호출의 1 개로 지정된 이름과 같습니다.
KeyAgreement
객체의 알고리즘명public static final KeyAgreement getInstance(String algorithm) throws NoSuchAlgorithmException
KeyAgreement
객체를 돌려줍니다.
이 메소드는, 최우선의 프로바이더로부터 순서에, 등록을 마친 시큐리티 프로바이더의 리스트를 횡단(traverse) 합니다. 지정된 알고리즘을 지원하는 최초의 프로바이더의 KeyAgreementSpi 구현을 캡슐화하는 새로운 KeyAgreement 객체가 돌려주어집니다.
등록이 끝난 프로바이더의 리스트는,Security.getProviders()
메소드 경유로 취득할 수 있습니다.
algorithm
- 요구된 열쇠 합의 알고리즘의 표준명
표준의 알고리즘명에 대해서는, 「Java 암호화 아키텍쳐(architecture) 레퍼런스 가이드」의 부록 A 를 참조
KeyAgreement
객체
NullPointerException
- 지정된 알고리즘이 null 인 경우
NoSuchAlgorithmException
- 지정한 알고리즘의 KeyAgreementSpi 구현을 지원하는 프로바이더가 존재하지 않는 경우Provider
public static final KeyAgreement getInstance(String algorithm, String provider) throws NoSuchAlgorithmException , NoSuchProviderException
KeyAgreement
객체를 돌려줍니다.
지정된 프로바이더로부터의 KeyAgreementSpi 의 구현을 캡슐화하는 새로운 KeyAgreement 객체가 돌려주어집니다. 지정한 프로바이더는, 시큐리티 프로바이더 리스트에 등록할 필요가 있습니다.
등록이 끝난 프로바이더의 리스트는,Security.getProviders()
메소드 경유로 취득할 수 있습니다.
algorithm
- 요구된 열쇠 합의 알고리즘의 표준명
표준의 알고리즘명에 대해서는, 「Java 암호화 아키텍쳐(architecture) 레퍼런스 가이드」의 부록 A 를 참조provider
- 프로바이더명
KeyAgreement
객체
NullPointerException
- 지정된 알고리즘이 null 인 경우
NoSuchAlgorithmException
- 지정된 프로바이더로 지정된 알고리즘의 KeyAgreementSpi 의 구현이 없는 경우
NoSuchProviderException
- 지정한 프로바이더가 시큐리티 프로바이더 리스트에 등록되지 않은 경우
IllegalArgumentException
- provider
가 null 또는 빈 상태(empty)의 경우Provider
public static final KeyAgreement getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
KeyAgreement
객체를 돌려줍니다.
지정된 Provider 객체로부터의 KeyAgreementSpi 의 구현을 캡슐화하는 새로운 KeyAgreement 객체가 돌려주어집니다. 지정한 Provider 객체는, 프로바이더 리스트에 등록할 필요는 없습니다.
algorithm
- 요구된 열쇠 합의 알고리즘의 표준명
표준의 알고리즘명에 대해서는, 「Java 암호화 아키텍쳐(architecture) 레퍼런스 가이드」의 부록 A 를 참조provider
- 프로바이더
KeyAgreement
객체
NullPointerException
- 지정된 알고리즘이 null 인 경우
NoSuchAlgorithmException
- 지정된 Provider 객체로 지정된 알고리즘의 KeyAgreementSpi 의 구현이 없는 경우
IllegalArgumentException
- provider
가 null 의 경우Provider
public final Provider getProvider()
KeyAgreement
객체의 프로바이더를 돌려줍니다.
KeyAgreement
객체의 프로바이더public final void init(Key key) throws InvalidKeyException
이 열쇠 합의가 난수 바이트를 필요로 하는 경우는, 인스톨 되고 있는 프로바이더 가운데, 가장 우선 순위의 높은 프로바이더
의 구현을 random number generation의 원으로서 사용해 난수 바이트를 가져옵니다. SecureRandom 의 구현을 제공하는 프로바이더가 인스톨되어 있지 않은 경우는, 시스템이 제공하는 random number generation의 원이 사용됩니다.
SecureRandom
key
- 당사자의 비공개 정보. 예를 들어, Diffie-Hellman 의 열쇠 합의의 경우는, 당사자 자신의 Diffie-Hellman 비공개키
InvalidKeyException
- 지정된 열쇠가 이 열쇠 합의에 올바르지 않은 경우. 예를 들어, 형태가 잘못되어 있는 경우, 또는 알고리즘의 형태에 호환성이 없는 경우public final void init(Key key, SecureRandom random) throws InvalidKeyException
열쇠 합의 알고리즘이 난수 바이트를 필요로 하는 경우는, 지정된 random number generation의 원 random
로부터 가져옵니다. 다만, 기본이 되는 알고리즘 구현이 난수 바이트를 필요로 하지 않는 경우,random
는 무시됩니다.
key
- 당사자의 비공개 정보. 예를 들어, Diffie-Hellman 의 열쇠 합의의 경우는, 당사자 자신의 Diffie-Hellman 비공개키random
- random number generation의 원
InvalidKeyException
- 지정된 열쇠가 이 열쇠 합의에 올바르지 않은 경우. 예를 들어, 형태가 잘못되어 있는 경우, 또는 알고리즘의 형태에 호환성이 없는 경우public final void init(Key key, AlgorithmParameterSpec params) throws InvalidKeyException , InvalidAlgorithmParameterException
이 열쇠 합의가 난수 바이트를 필요로 하는 경우는, 인스톨 되고 있는 프로바이더 가운데, 가장 우선 순위의 높은 프로바이더
의 구현을 random number generation의 원으로서 사용해 난수 바이트를 가져옵니다. SecureRandom 의 구현을 제공하는 프로바이더가 인스톨되어 있지 않은 경우는, 시스템이 제공하는 random number generation의 원이 사용됩니다.
SecureRandom
key
- 당사자의 비공개 정보. 예를 들어, Diffie-Hellman 의 열쇠 합의의 경우는, 당사자 자신의 Diffie-Hellman 비공개키params
- 열쇠 합의 파라미터
InvalidKeyException
- 지정된 열쇠가 이 열쇠 합의에 올바르지 않은 경우. 예를 들어, 형태가 잘못되어 있는 경우, 또는 알고리즘의 형태에 호환성이 없는 경우
InvalidAlgorithmParameterException
- 지정된 파라미터가 이 열쇠 합의에 올바르지 않은 경우public final void init(Key key, AlgorithmParameterSpec params, SecureRandom random) throws InvalidKeyException , InvalidAlgorithmParameterException
key
- 당사자의 비공개 정보. 예를 들어, Diffie-Hellman 의 열쇠 합의의 경우는, 당사자 자신의 Diffie-Hellman 비공개키params
- 열쇠 합의 파라미터random
- random number generation의 원
InvalidKeyException
- 지정된 열쇠가 이 열쇠 합의에 올바르지 않은 경우. 예를 들어, 형태가 잘못되어 있는 경우, 또는 알고리즘의 형태에 호환성이 없는 경우
InvalidAlgorithmParameterException
- 지정된 파라미터가 이 열쇠 합의에 올바르지 않은 경우public final Key doPhase(Key key, boolean lastPhase) throws InvalidKeyException , IllegalStateException
key
- 이 단계의 열쇠. 예를 들어, 2 당사자 사이의 Diffie-Hellman 의 경우는, 상대의 Diffie-Hellman 공개키lastPhase
- 이것이 이 열쇠 합의의 마지막 단계인가 어떤가를 나타내는 플래그
InvalidKeyException
- 지정된 열쇠가 이 단계에 올바르지 않은 경우
IllegalStateException
- 이 열쇠 합의가 초기화되어 있지 않은 경우public final byte[] generateSecret() throws IllegalStateException
이 메소드는, 이 KeyAgreement
객체를 리셋 하므로, 게다가 다른 열쇠 합의에 재사용할 수 있습니다. 이 열쇠 합의가 init
메소드의 1 개로 재초기화되지 않는 경우, 그 후의 열쇠 합의에서는, 같은 비공개 정보와 알고리즘 파라미터가 사용됩니다.
IllegalStateException
- 이 열쇠 합의가 아직 완료하고 있지 않는 경우public final int generateSecret(byte[] sharedSecret, int offset) throws IllegalStateException , ShortBufferException
offset
로부터 시작되는 sharedSecret
버퍼내에 포함합니다.
sharedSecret
버퍼가 너무 작아 결과를 보관 유지할 수 없는 경우는,ShortBufferException
가 throw 됩니다. 이 경우, 보다 큰 출력 버퍼를 사용해 이 호출을 반복합니다.
이 메소드는, 이 KeyAgreement
객체를 리셋 하므로, 게다가 다른 열쇠 합의에 재사용할 수 있습니다. 이 열쇠 합의가 init
메소드의 1 개로 재초기화되지 않는 경우, 그 후의 열쇠 합의에서는, 같은 비공개 정보와 알고리즘 파라미터가 사용됩니다.
sharedSecret
- 공유의 비밀 정보를 포함하는 버퍼offset
- 공유의 비밀 정보가 포함되는 sharedSecret
내의 오프셋(offset)
sharedSecret
에 포함된 바이트수
IllegalStateException
- 이 열쇠 합의가 아직 완료하고 있지 않는 경우
ShortBufferException
- 지정된 출력 버퍼가 너무 작아 비밀 정보를 보관 유지할 수 없는 경우public final SecretKey generateSecret(String algorithm) throws IllegalStateException , NoSuchAlgorithmException , InvalidKeyException
SecretKey
객체로서 돌려줍니다.
이 메소드는, 이 KeyAgreement
객체를 리셋 하므로, 게다가 다른 열쇠 합의에 재사용할 수 있습니다. 이 열쇠 합의가 init
메소드의 1 개로 재초기화되지 않는 경우, 그 후의 열쇠 합의에서는, 같은 비공개 정보와 알고리즘 파라미터가 사용됩니다.
algorithm
- 요구된 비밀열쇠 알고리즘
IllegalStateException
- 이 열쇠 합의가 아직 완료하고 있지 않는 경우
NoSuchAlgorithmException
- 지정된 비밀열쇠 알고리즘이 없는 경우
InvalidKeyException
- 공유의 비밀열쇠 데이터를 사용해, 지정된 알고리즘의 비밀열쇠를 생성할 수 없는 경우 (열쇠 데이터가 너무 짧은 등)
|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.