JavaTM Platform
Standard Ed. 6

java.security
클래스 KeyFactory

java.lang.Object 
  상위를 확장 java.security.KeyFactory


public class KeyFactory
extends Object

열쇠 팩토리는,Key 형의 불투명한 암호열쇠인 「열쇠」라고, 기본의 열쇠 데이터의 투명한 표현인 「열쇠 스펙」이라는 사이의 변환을 실시하기 위해서(때문에) 사용합니다.

열쇠 팩토리는, 쌍방향성이 있습니다. 즉, 지정한 열쇠 스펙 (열쇠 데이터)으로부터 불투명한 열쇠 객체를 구축하는 일도, 적절한 형식에서 열쇠 객체의 기본의 열쇠 데이타를 뽑기 시작할 수도 있습니다.

동일한 열쇠에 대해서, 복수의 호환성이 있는 열쇠 스펙이 존재하는 일이 있습니다. 예를 들어 DSA 공개키는,DSAPublicKeySpec 또는 X509EncodedKeySpec 를 사용해 지정할 수 있습니다. 열쇠 팩토리는, 호환성이 있는 열쇠 스펙간의 변환에 사용할 수 있습니다.

다음에, 열쇠 팩토리를 사용해, DSA 공개키를 encode 한 상태로부터 인스턴스를 생성하는 예를 나타냅니다. Alice 가 Bob 로부터 디지털 서명을 받았다고 합니다. Bob 는, 그의 서명을 검증하기 위한 encode 형식의 공개키도 보냈습니다. Alice 는, 이것들을 다음과 같이 처리합니다.

X509EncodedKeySpec bobPubKeySpec = new X509EncodedKeySpec(bobEncodedPubKey);
KeyFactory keyFactory = KeyFactory.getInstance("DSA");
PublicKey bobPubKey = keyFactory.generatePublic(bobPubKeySpec);
Signature sig = Signature.getInstance("DSA");
sig.initVerify(bobPubKey);
sig.update(data);
sig.verify(signature);
 

도입된 버젼:
1.2
관련 항목:
Key , PublicKey , PrivateKey , KeySpec , DSAPublicKeySpec , X509EncodedKeySpec

생성자 의 개요
protected KeyFactory (KeyFactorySpi  keyFacSpi, Provider  provider, String  algorithm)
          KeyFactory 객체를 작성합니다.
 
메소드의 개요
 PrivateKey generatePrivate (KeySpec  keySpec)
          지정된 열쇠 스펙 (열쇠 데이터)으로부터 비공개키 객체를 생성합니다.
 PublicKey generatePublic (KeySpec  keySpec)
          지정된 열쇠 스펙 (열쇠 데이터)으로부터 공개키 객체를 생성합니다.
 String getAlgorithm ()
          이 KeyFactory 에 관련한 알고리즘의 이름을 가져옵니다.
static KeyFactory getInstance (String  algorithm)
          지정의 알고리즘의 공개키 또는 비공개키를 변환하는 KeyFactory 객체를 돌려줍니다.
static KeyFactory getInstance (String  algorithm, Provider  provider)
          지정의 알고리즘의 공개키 또는 비공개키를 변환하는 KeyFactory 객체를 돌려줍니다.
static KeyFactory getInstance (String  algorithm, String  provider)
          지정의 알고리즘의 공개키 또는 비공개키를 변환하는 KeyFactory 객체를 돌려줍니다.
<T extends KeySpec >
T
getKeySpec (Key  key, Class <T> keySpec)
          지정된 열쇠 객체의 스펙 (열쇠 데이터)을 돌려줍니다.
 Provider getProvider ()
          이 열쇠 팩토리 객체의 프로바이더를 돌려줍니다.
 Key translateKey (Key  key)
          프로바이더가 미지인지, 신뢰할 수 없을 가능성이 있는 열쇠 객체를, 이 열쇠 팩토리의 대응하는 열쇠 객체로 변환합니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

생성자 의 상세

KeyFactory

protected KeyFactory(KeyFactorySpi  keyFacSpi,
                     Provider  provider,
                     String  algorithm)
KeyFactory 객체를 작성합니다.

파라미터:
keyFacSpi - delegate
provider - 프로바이더
algorithm - 이 KeyFactory 에 관련짓는 알고리즘의 이름
메소드의 상세

getInstance

public static KeyFactory  getInstance(String  algorithm)
                              throws NoSuchAlgorithmException 
지정의 알고리즘의 공개키 또는 비공개키를 변환하는 KeyFactory 객체를 돌려줍니다.

이 메소드는, 최우선의 Provider 로부터 순서에, 등록을 마친 시큐리티 Provider 의 리스트를 횡단(traverse) 합니다. 지정된 알고리즘을 지원하는 최초의 Provider 의 KeyFactorySpi 구현을 캡슐화하는 새로운 KeyFactory 객체가 돌려주어집니다.

등록이 끝난 프로바이더의 리스트는,Security.getProviders() 메소드 경유로 취득할 수 있습니다.

파라미터:
algorithm - 요구되는 열쇠 알고리즘의 이름. 알고리즘의 표준명에 대해서는,「Java 암호화 아키텍쳐(architecture) API 스펙 & 레퍼런스」의 부록 A 를 참조
반환값:
새로운 KeyFactory 객체
예외:
NoSuchAlgorithmException - 지정된 알고리즘의 KeyFactorySpi 구현을 지원하는 Provider 가 존재하지 않는 경우
관련 항목:
Provider

getInstance

public static KeyFactory  getInstance(String  algorithm,
                                     String  provider)
                              throws NoSuchAlgorithmException ,
                                     NoSuchProviderException 
지정의 알고리즘의 공개키 또는 비공개키를 변환하는 KeyFactory 객체를 돌려줍니다.

지정된 프로바이더의 KeyFactorySpi 구현을 캡슐화하는 새로운 KeyFactory 객체가 돌려주어집니다. 지정한 프로바이더는, 시큐리티 프로바이더 리스트에 등록할 필요가 있습니다.

등록이 끝난 프로바이더의 리스트는,Security.getProviders() 메소드 경유로 취득할 수 있습니다.

파라미터:
algorithm - 요구되는 열쇠 알고리즘의 이름. 알고리즘의 표준명에 대해서는,「Java 암호화 아키텍쳐(architecture) API 스펙 & 레퍼런스」의 부록 A 를 참조
provider - 프로바이더명
반환값:
새로운 KeyFactory 객체
예외:
NoSuchAlgorithmException - 지정된 프로바이더로 지정된 알고리즘의 KeyFactorySpi 구현이 없는 경우
NoSuchProviderException - 지정된 프로바이더가 시큐리티 프로바이더 리스트에 등록되지 않은 경우
IllegalArgumentException - 프로바이더의 이름이 null 나 빈 상태(empty)의 경우
관련 항목:
Provider

getInstance

public static KeyFactory  getInstance(String  algorithm,
                                     Provider  provider)
                              throws NoSuchAlgorithmException 
지정의 알고리즘의 공개키 또는 비공개키를 변환하는 KeyFactory 객체를 돌려줍니다.

지정된 Provider 객체의 KeyFactorySpi 구현을 캡슐화하는 새로운 KeyFactory 객체가 돌려주어집니다. 지정된 Provider 객체는, 프로바이더 리스트에 등록할 필요는 없습니다.

파라미터:
algorithm - 요구되는 열쇠 알고리즘의 이름. 알고리즘의 표준명에 대해서는,「Java 암호화 아키텍쳐(architecture) API 스펙 & 레퍼런스」의 부록 A 를 참조
provider - 프로바이더
반환값:
새로운 KeyFactory 객체
예외:
NoSuchAlgorithmException - 지정된 Provider 객체로 지정된 알고리즘의 KeyFactorySpi 구현이 없는 경우
IllegalArgumentException - 지정된 프로바이더가 null 의 경우
도입된 버젼:
1.4
관련 항목:
Provider

getProvider

public final Provider  getProvider()
이 열쇠 팩토리 객체의 프로바이더를 돌려줍니다.

반환값:
이 열쇠 팩토리 객체의 프로바이더

getAlgorithm

public final String  getAlgorithm()
KeyFactory 에 관련한 알고리즘의 이름을 가져옵니다.

반환값:
KeyFactory 에 관련지을 수 있었던 알고리즘의 이름

generatePublic

public final PublicKey  generatePublic(KeySpec  keySpec)
                               throws InvalidKeySpecException 
지정된 열쇠 스펙 (열쇠 데이터)으로부터 공개키 객체를 생성합니다.

파라미터:
keySpec - 공개키의 스펙 (열쇠 데이터)
반환값:
공개키
예외:
InvalidKeySpecException - 지정된 열쇠 스펙이 이 열쇠 팩토리에 의한 공개키의 생성에 올바르지 않은 경우

generatePrivate

public final PrivateKey  generatePrivate(KeySpec  keySpec)
                                 throws InvalidKeySpecException 
지정된 열쇠 스펙 (열쇠 데이터)으로부터 비공개키 객체를 생성합니다.

파라미터:
keySpec - 비공개키의 스펙 (열쇠 데이터)
반환값:
비공개키
예외:
InvalidKeySpecException - 지정된 열쇠 스펙이 이 열쇠 팩토리에 의한 비공개키의 생성에 올바르지 않은 경우

getKeySpec

public final <T extends KeySpec > T getKeySpec(Key  key,
                                              Class <T> keySpec)
                                   throws InvalidKeySpecException 
지정된 열쇠 객체의 스펙 (열쇠 데이터)을 돌려줍니다. keySpec 는, 열쇠 데이터가 반환되는 스펙 클래스를 식별합니다. 예를 들어,DSAPublicKeySpec.class 는, 열쇠의 데이터가 DSAPublicKeySpec 클래스의 인스턴스에 돌려주어져야 하는 것인 것을 지시합니다.

파라미터:
key - 열쇠
keySpec - 열쇠 데이터가 반환되는 스펙 클래스
반환값:
요구되는 스펙 클래스의 인스턴스에 있어서의 기본의 열쇠 스펙 (열쇠 데이터)
예외:
InvalidKeySpecException - 요구되는 열쇠 스펙이 지정된 열쇠에 올바르지 않은 경우, 또는 인식되지 않는 알고리즘이나 형식의 열쇠를 지정했을 경우 등, 지정된 열쇠를 처리할 수 없는 경우

translateKey

public final Key  translateKey(Key  key)
                       throws InvalidKeyException 
프로바이더가 미지인지, 신뢰할 수 없을 가능성이 있는 열쇠 객체를, 이 열쇠 팩토리의 대응하는 열쇠 객체로 변환합니다.

파라미터:
key - 프로바이더가 미지인지, 신뢰할 수 없는 열쇠
반환값:
변환한 열쇠
예외:
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 도 참조해 주세요.