JavaTM Platform
Standard Ed. 6

javax.crypto
클래스 KeyAgreementSpi

java.lang.Object 
  상위를 확장 javax.crypto.KeyAgreementSpi


public abstract class KeyAgreementSpi
extends Object

이 클래스는,KeyAgreement 클래스의 Service Provider Interface (SPI)를 정의합니다. 특정의 열쇠 합의 알고리즘의 구현을 제공하는 각 암호화 서비스 프로바이더는, 이 클래스의 모든 추상 메소드를 구현할 필요가 있습니다.

공유의 비밀 정보의 확립에 관계하는 열쇠는, 열쇠 제네레이터 (KeyPairGenerator 또는 KeyGenerator)의 1 개, 또는 KeyFactory 에 의해, 혹은 열쇠 합의 프로토콜 (engineDoPhase )의 중간 단계의 결과로서 작성됩니다.

열쇠 교환의 대응 관계 마다,engineDoPhase 를 호출할 필요가 있습니다. 예를 들어, 열쇠 교환의 상대가 1 개의 경우는,lastPhase 플래그를 true 로 설정해 engineDoPhase 를 1 회 호출할 필요가 있습니다. 열쇠 교환의 상대가 2 개의 경우는, 처음은 lastPhase 플래그를 false 로 설정해, 2 번째는 true 로 설정해,engineDoPhase 를 2 회 호출할 필요가 있습니다. 열쇠 교환의 상대의 수는 임의입니다.

도입된 버젼:
1.4
관련 항목:
KeyGenerator , SecretKey

생성자 의 개요
KeyAgreementSpi ()
           
 
메소드의 개요
protected abstract  Key engineDoPhase (Key  key, boolean lastPhase)
          이 열쇠 합의에 관계하는 상대의 누군가로부터 받은, 지정된 열쇠를 사용해 이 열쇠 합의의 다음의 단계를 실행합니다.
protected abstract  byte[] engineGenerateSecret ()
          공유의 비밀 정보를 생성해 새로운 버퍼내에 돌려줍니다.
protected abstract  int engineGenerateSecret (byte[] sharedSecret, int offset)
          공유의 비밀 정보를 생성해,offset 로부터 시작되는 sharedSecret 버퍼내에 포함합니다.
protected abstract  SecretKey engineGenerateSecret (String  algorithm)
          공유의 비밀 정보를 작성해, 그것이 요구된 알고리즘형의 비밀열쇠 객체로서 돌려줍니다.
protected abstract  void engineInit (Key  key, AlgorithmParameterSpec  params, SecureRandom  random)
          지정된 열쇠, 알고리즘 파라미터세트, 및 random number generation의 원을 사용해 이 열쇠 합의를 초기화합니다.
protected abstract  void engineInit (Key  key, SecureRandom  random)
          지정된 열쇠와 random number generation의 원으로 이 열쇠 합의를 초기화합니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

생성자 의 상세

KeyAgreementSpi

public KeyAgreementSpi()
메소드의 상세

engineInit

protected abstract void engineInit(Key  key,
                                   SecureRandom  random)
                            throws InvalidKeyException 
지정된 열쇠와 random number generation의 원으로 이 열쇠 합의를 초기화합니다. 지정된 열쇠에는, 이 열쇠 합의에 필요한 모든 알고리즘 파라미터를 포함할 필요가 있습니다.

열쇠 합의 알고리즘이 난수 바이트를 필요로 하는 경우는, 지정된 random number generation의 원 random 로부터 가져옵니다. 다만, 기본이 되는 알고리즘 구현이 난수 바이트를 필요로 하지 않는 경우,random 는 무시됩니다.

파라미터:
key - 당사자의 비공개 정보. 예를 들어, Diffie-Hellman 의 열쇠 합의의 경우는, 당사자 자신의 Diffie-Hellman 비공개키
random - random number generation의 원
예외:
InvalidKeyException - 지정된 열쇠가 이 열쇠 합의에 올바르지 않은 경우. 예를 들어, 형태가 잘못되어 있는 경우, 또는 알고리즘의 형태에 호환성이 없는 경우

engineInit

protected abstract void engineInit(Key  key,
                                   AlgorithmParameterSpec  params,
                                   SecureRandom  random)
                            throws InvalidKeyException ,
                                   InvalidAlgorithmParameterException 
지정된 열쇠, 알고리즘 파라미터세트, 및 random number generation의 원을 사용해 이 열쇠 합의를 초기화합니다.

파라미터:
key - 당사자의 비공개 정보. 예를 들어, Diffie-Hellman 의 열쇠 합의의 경우는, 당사자 자신의 Diffie-Hellman 비공개키
params - 열쇠 합의 파라미터
random - random number generation의 원
예외:
InvalidKeyException - 지정된 열쇠가 이 열쇠 합의에 올바르지 않은 경우. 예를 들어, 형태가 잘못되어 있는 경우, 또는 알고리즘의 형태에 호환성이 없는 경우
InvalidAlgorithmParameterException - 지정된 파라미터가 이 열쇠 합의에 올바르지 않은 경우

engineDoPhase

protected abstract Key  engineDoPhase(Key  key,
                                     boolean lastPhase)
                              throws InvalidKeyException ,
                                     IllegalStateException 
이 열쇠 합의에 관계하는 상대의 누군가로부터 받은, 지정된 열쇠를 사용해 이 열쇠 합의의 다음의 단계를 실행합니다.

파라미터:
key - 이 단계의 열쇠. 예를 들어, 2 당사자 사이의 Diffie-Hellman 의 경우는, 상대의 Diffie-Hellman 공개키
lastPhase - 이것이 이 열쇠 합의의 마지막 단계인가 어떤가를 나타내는 플래그
반환값:
이 단계의 결과의 (중간) 열쇠. 이 단계에서 열쇠가 생성되지 않는 경우는 null
예외:
InvalidKeyException - 지정된 열쇠가 이 단계에 올바르지 않은 경우
IllegalStateException - 이 열쇠 합의가 초기화되어 있지 않은 경우

engineGenerateSecret

protected abstract byte[] engineGenerateSecret()
                                        throws IllegalStateException 
공유의 비밀 정보를 생성해 새로운 버퍼내에 돌려줍니다.

이 메소드는, 이 KeyAgreementSpi 객체를 리셋 하므로, 게다가 다른 열쇠 합의에 재사용할 수 있습니다. 이 열쇠 합의가 engineInit 메소드의 1 개로 재초기화되지 않는 경우, 그 후의 열쇠 합의에서는, 같은 비공개 정보와 알고리즘 파라미터가 사용됩니다.

반환값:
공유의 비밀 정보가 들어간 새로운 버퍼
예외:
IllegalStateException - 이 열쇠 합의가 아직 완료하고 있지 않는 경우

engineGenerateSecret

protected abstract int engineGenerateSecret(byte[] sharedSecret,
                                            int offset)
                                     throws IllegalStateException ,
                                            ShortBufferException 
공유의 비밀 정보를 생성해,offset 로부터 시작되는 sharedSecret 버퍼내에 포함합니다.

sharedSecret 버퍼가 너무 작아 결과를 보관 유지할 수 없는 경우는,ShortBufferException 가 throw 됩니다. 이 경우, 보다 큰 출력 버퍼를 사용해 이 호출을 반복합니다.

이 메소드는, 이 KeyAgreementSpi 객체를 리셋 하므로, 게다가 다른 열쇠 합의에 재사용할 수 있습니다. 이 열쇠 합의가 engineInit 메소드의 1 개로 재초기화되지 않는 경우, 그 후의 열쇠 합의에서는, 같은 비공개 정보와 알고리즘 파라미터가 사용됩니다.

파라미터:
sharedSecret - 공유의 비밀 정보를 포함하는 버퍼
offset - 공유의 비밀 정보가 포함되는 sharedSecret 내의 오프셋(offset)
반환값:
sharedSecret 에 포함된 바이트수
예외:
IllegalStateException - 이 열쇠 합의가 아직 완료하고 있지 않는 경우
ShortBufferException - 지정된 출력 버퍼가 너무 작아 비밀 정보를 보관 유지할 수 없는 경우

engineGenerateSecret

protected abstract SecretKey  engineGenerateSecret(String  algorithm)
                                           throws IllegalStateException ,
                                                  NoSuchAlgorithmException ,
                                                  InvalidKeyException 
공유의 비밀 정보를 작성해, 그것이 요구된 알고리즘형의 비밀열쇠 객체로서 돌려줍니다.

이 메소드는, 이 KeyAgreementSpi 객체를 리셋 하므로, 게다가 다른 열쇠 합의에 재사용할 수 있습니다. 이 열쇠 합의가 engineInit 메소드의 1 개로 재초기화되지 않는 경우, 그 후의 열쇠 합의에서는, 같은 비공개 정보와 알고리즘 파라미터가 사용됩니다.

파라미터:
algorithm - 요구된 비밀열쇠 알고리즘
반환값:
공유의 비밀열쇠
예외:
IllegalStateException - 이 열쇠 합의가 아직 완료하고 있지 않는 경우
NoSuchAlgorithmException - 요구된 비밀열쇠 알고리즘이 없는 경우
InvalidKeyException - 공유의 비밀열쇠 데이터를 사용해, 요구된 알고리즘형의 비밀열쇠를 생성할 수 없는 경우 (열쇠 데이터가 너무 짧은 등)

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.