JavaTM Platform
Standard Ed. 6

javax.crypto
클래스 SecretKeyFactory

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


public class SecretKeyFactory
extends Object

이 클래스는, 비밀열쇠의 팩토리를 나타냅니다.

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

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

어플리케이션 개발자는, 프로바이더의 문서를 참조해,generateSecretgetKeySpec 메소드로 지원되고 있는 열쇠 스펙을 확인할 필요가 있습니다. 예를 들어, 「SunJCE」프로바이더가 제공하는 DES 비밀열쇠 팩토리는,DESKeySpec 를 DES 열쇠의 투명한 표현으로서 지원해, 그 프로바이더의 Triple DES 열쇠의 비밀열쇠 팩토리는 DESedeKeySpec 를 Triple DES 열쇠의 투명한 표현으로서 지원합니다.

도입된 버젼:
1.4
관련 항목:
SecretKey , DESKeySpec , DESedeKeySpec , PBEKeySpec

생성자 의 개요
protected SecretKeyFactory (SecretKeyFactorySpi  keyFacSpi, Provider  provider, String  algorithm)
          SecretKeyFactory 객체를 생성합니다.
 
메소드의 개요
 SecretKey generateSecret (KeySpec  keySpec)
          지정된 열쇠 스펙 (열쇠 데이터)으로부터 SecretKey 객체를 생성합니다.
 String getAlgorithm ()
          이 SecretKeyFactory 객체의 알고리즘명을 돌려줍니다.
static SecretKeyFactory getInstance (String  algorithm)
          지정된 알고리즘의 비밀열쇠를 변환하는 SecretKeyFactory 객체를 돌려줍니다.
static SecretKeyFactory getInstance (String  algorithm, Provider  provider)
          지정된 알고리즘의 비밀열쇠를 변환하는 SecretKeyFactory 객체를 돌려줍니다.
static SecretKeyFactory getInstance (String  algorithm, String  provider)
          지정된 알고리즘의 비밀열쇠를 변환하는 SecretKeyFactory 객체를 돌려줍니다.
 KeySpec getKeySpec (SecretKey  key, Class  keySpec)
          지정된 열쇠 객체의 스펙 (열쇠 데이터)이 요구된 형식에서 돌려줍니다.
 Provider getProvider ()
          이 SecretKeyFactory 객체의 프로바이더를 돌려줍니다.
 SecretKey translateKey (SecretKey  key)
          프로바이더가 미지인지, 신뢰할 수 없을 가능성이 있는 열쇠 객체를, 이 비밀열쇠 팩토리의 대응하는 열쇠 객체로 변환합니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

생성자 의 상세

SecretKeyFactory

protected SecretKeyFactory(SecretKeyFactorySpi  keyFacSpi,
                           Provider  provider,
                           String  algorithm)
SecretKeyFactory 객체를 생성합니다.

파라미터:
keyFacSpi - delegate
provider - 프로바이더
algorithm - 비밀열쇠 알고리즘
메소드의 상세

getInstance

public static final SecretKeyFactory  getInstance(String  algorithm)
                                          throws NoSuchAlgorithmException 
지정된 알고리즘의 비밀열쇠를 변환하는 SecretKeyFactory 객체를 돌려줍니다.

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

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

파라미터:
algorithm - 요구된 비밀열쇠 알고리즘의 표준명 표준의 알고리즘명에 대해서는, 「Java 암호화 아키텍쳐(architecture) 레퍼런스 가이드」의 부록 A 를 참조
반환값:
새로운 SecretKeyFactory 객체
예외:
NullPointerException - 지정된 알고리즘이 null 인 경우
NoSuchAlgorithmException - 지정한 알고리즘의 SecretKeyFactorySpi 구현을 지원하는 프로바이더가 존재하지 않는 경우
관련 항목:
Provider

getInstance

public static final SecretKeyFactory  getInstance(String  algorithm,
                                                 String  provider)
                                          throws NoSuchAlgorithmException ,
                                                 NoSuchProviderException 
지정된 알고리즘의 비밀열쇠를 변환하는 SecretKeyFactory 객체를 돌려줍니다.

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

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

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

getInstance

public static final SecretKeyFactory  getInstance(String  algorithm,
                                                 Provider  provider)
                                          throws NoSuchAlgorithmException 
지정된 알고리즘의 비밀열쇠를 변환하는 SecretKeyFactory 객체를 돌려줍니다.

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

파라미터:
algorithm - 요구된 비밀열쇠 알고리즘의 표준명 표준의 알고리즘명에 대해서는, 「Java 암호화 아키텍쳐(architecture) 레퍼런스 가이드」의 부록 A 를 참조
provider - 프로바이더
반환값:
새로운 SecretKeyFactory 객체
예외:
NullPointerException - 지정된 알고리즘이 null 인 경우
NoSuchAlgorithmException - 지정된 Provider 객체로 지정된 알고리즘의 SecretKeyFactorySpi 의 구현이 없는 경우
IllegalArgumentException - provider 가 null 의 경우
관련 항목:
Provider

getProvider

public final Provider  getProvider()
SecretKeyFactory 객체의 프로바이더를 돌려줍니다.

반환값:
SecretKeyFactory 객체의 프로바이더

getAlgorithm

public final String  getAlgorithm()
SecretKeyFactory 객체의 알고리즘명을 돌려줍니다.

이것은, 이 SecretKeyFactory 객체를 생성한 getInstance 호출의 1 개로 지정된 이름과 같습니다.

반환값:
SecretKeyFactory 객체의 알고리즘명

generateSecret

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

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

getKeySpec

public final KeySpec  getKeySpec(SecretKey  key,
                                Class  keySpec)
                         throws InvalidKeySpecException 
지정된 열쇠 객체의 스펙 (열쇠 데이터)이 요구된 형식에서 돌려줍니다.

파라미터:
key - 키
keySpec - 열쇠 데이터가 반환된다, 요구된 형식
반환값:
요구된 형식에서의 기본이 되는 열쇠 스펙 (열쇠 데이터)
예외:
InvalidKeySpecException - 요구된 열쇠 스펙이 지정된 열쇠에 부적절 (keykeySpec 에 관련하는 알고리즘이 일치하지 않는, 혹은 key 는 암호화 하드웨어 디바이스의 열쇠를 참조하지만,keySpec 는 소프트웨어 베이스의 열쇠의 스펙인 등)인 경우, 혹은 지정된 열쇠를 취급할 수 없는 경우 (예를 들어, 지정된 열쇠의 알고리즘 또는 형식이 이 비밀열쇠 팩토리로 지원되어 있지 않다)

translateKey

public final SecretKey  translateKey(SecretKey  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 도 참조해 주세요.