JavaTM Platform
Standard Ed. 6

javax.crypto
클래스 SealedObject

java.lang.Object 
  상위를 확장 javax.crypto.SealedObject
모든 구현된 인터페이스:
Serializable


public class SealedObject
extends Object
implements Serializable

프로그래머는, 이 클래스를 사용해 객체를 생성해, 암호화 알고리즘을 이용해 그 기밀성을 보호할 수가 있습니다.

Serializable 객체를 지정하면(자), 원의 객체를 직렬화 형식 (즉 「딥 카피」)에서 캡슐화해, 직렬화 된 컨텐츠를 씰 (암호화) 해, DES 등의 암호화 알고리즘을 사용해 그 기밀을 보호하는 SealedObject 를 작성할 수 있습니다. 그 후, 암호화된 내용의 암호 해독 (적정한 암호 해독열쇠를 사용), 및 직렬화 해제를 실시하는 것으로, 원의 객체를 복원할 수 있습니다.

Cipher 객체는, 올바른 알고리즘, 열쇠, 패딩 방식등으로 완전하게 초기화하고 나서 SealedObject 에 적용할 필요가 있습니다.

씰 된 원의 객체는, 다음이 다른 2 개의 방법으로 복원 가능합니다.

도입된 버젼:
1.4
관련 항목:
Cipher , 직렬화 된 형식

필드의 개요
protected  byte[] encodedParams
          씰 하는 암호에 의해 사용되는, 디폴트의 형식에서 encode 된 암호화 파라미터입니다.
 
생성자 의 개요
protected SealedObject (SealedObject  so)
          건네받은 SealedObject 객체로부터 SealedObject 객체를 구축합니다.
  SealedObject (Serializable  object, Cipher  c)
          임의의 Serializable 객체로부터 SealedObject 를 구축합니다.
 
메소드의 개요
 String getAlgorithm ()
          이 객체를 씰 하는데 사용된 알고리즘을 돌려줍니다.
 Object getObject (Cipher  c)
          원의 (캡슐화된) 객체를 꺼냅니다.
 Object getObject (Key  key)
          원의 (캡슐화된) 객체를 꺼냅니다.
 Object getObject (Key  key, String  provider)
          원의 (캡슐화된) 객체를 꺼냅니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

필드의 상세

encodedParams

protected byte[] encodedParams
씰 하는 암호에 의해 사용되는, 디폴트의 형식에서 encode 된 암호화 파라미터입니다.  

즉,cipher.getParameters(). getEncoded() 입니다.

생성자 의 상세

SealedObject

public SealedObject(Serializable  object,
                    Cipher  c)
             throws IOException ,
                    IllegalBlockSizeException 
임의의 Serializable 객체로부터 SealedObject 를 구축합니다.

지정된 객체는 직렬화 되어 그 직렬화 된 컨텐츠는, 완전하게 초기화된, 지정된 Cipher 를 사용해 암호화됩니다.

암호화 조작으로 사용될 가능성이 있는 알고리즘 파라미터는, 새로운 SealedObject 의 내부에 포함됩니다.

파라미터:
object - 씰 하는 객체. null 도 가능
c - 객체를 씰 하는데 사용되는 암호
예외:
NullPointerException - 지정된 암호가 null 의 경우
IOException - 직렬화로 에러가 발생했을 경우
IllegalBlockSizeException - 지정된 암호가 블록 암호이며, 패딩이 요구되지 않고, 입력 길이의 합계 (즉, 직렬화 된 객체의 컨텐츠의 길이)가 암호의 블록 사이즈의 배수가 아닌 경우

SealedObject

protected SealedObject(SealedObject  so)
건네받은 SealedObject 객체로부터 SealedObject 객체를 구축합니다.

파라미터:
so - SealedObject 객체
예외:
NullPointerException - 지정된 객체가 null 의 경우
메소드의 상세

getAlgorithm

public final String  getAlgorithm()
이 객체를 씰 하는데 사용된 알고리즘을 돌려줍니다.

반환값:
이 객체를 씰 하는데 사용된 알고리즘

getObject

public final Object  getObject(Key  key)
                       throws IOException ,
                              ClassNotFoundException ,
                              NoSuchAlgorithmException ,
                              InvalidKeyException 
원의 (캡슐화된) 객체를 꺼냅니다.

이 메소드는, 씰 조작으로 사용된 알고리즘의 암호를 작성합니다. 디폴트의 프로바이더 패키지가 그 알고리즘을 구현하는 경우는, 그 구현을 포함한 Cipher 의 인스턴스가 사용됩니다. 지정된 알고리즘이 디폴트의 패키지로 사용 가능하지 않은 경우는, 다른 패키지가 검색됩니다. Cipher 객체는, 지정된 key와 씰 조작에 사용된 파라미터 (만약 있으면)를 사용해, 복호화용으로 초기화됩니다.

캡슐화된 객체는, 씰과 직렬화를 해제하고 나서 돌려주어집니다.

파라미터:
key - 객체를 씰 해제하는데 사용하는 열쇠
반환값:
원의 객체
예외:
IOException - 직렬화 해제로 에러가 발생했을 경우
ClassNotFoundException - 직렬화 해제로 에러가 발생했을 경우
NoSuchAlgorithmException - 객체를 씰 해제하는 알고리즘이 없는 경우
InvalidKeyException - 알고리즘이 잘못되어 있는 경우 등, 지정된 열쇠를 사용해 객체를 씰 해제할 수 없는 경우
NullPointerException - key 가 null 의 경우

getObject

public final Object  getObject(Cipher  c)
                       throws IOException ,
                              ClassNotFoundException ,
                              IllegalBlockSizeException ,
                              BadPaddingException 
원의 (캡슐화된) 객체를 꺼냅니다.

캡슐화된 객체는, Cipher 가 벌써 적절히 초기화되고 있는 것을 전제로서 지정된 Cipher 를 사용해 씰 해제되어 직렬화 해제되고 나서 돌려주어집니다.

파라미터:
c - 객체를 씰 해제하는데 사용되는 암호
반환값:
원의 객체
예외:
NullPointerException - 지정된 암호가 null 의 경우
IOException - 직렬화 해제로 에러가 발생했을 경우
ClassNotFoundException - 직렬화 해제로 에러가 발생했을 경우
IllegalBlockSizeException - 지정된 암호가 블록 암호이며, 패딩이 요구되지 않고, 입력 길이의 합계가 암호의 블록 사이즈의 배수가 아닌 경우
BadPaddingException - 지정된 암호가 복호화용으로 초기화되고 있어 패딩이 지정되고 있지만, 입력 데이터에 적절한 예기 되는 패딩 바이트가 없는 경우

getObject

public final Object  getObject(Key  key,
                              String  provider)
                       throws IOException ,
                              ClassNotFoundException ,
                              NoSuchAlgorithmException ,
                              NoSuchProviderException ,
                              InvalidKeyException 
원의 (캡슐화된) 객체를 꺼냅니다.

이 메소드는, 씰 조작에 사용된 알고리즘의 암호를, 지정된 provider 로부터 그 알고리즘의 구현을 사용해 작성합니다. Cipher 객체는, 지정된 key와 씰 조작에 사용된 파라미터 (만약 있으면)를 사용해, 복호화용으로 초기화됩니다.

캡슐화된 객체는, 씰과 직렬화를 해제하고 나서 돌려주어집니다.

파라미터:
key - 객체를 씰 해제하는데 사용하는 열쇠
provider - 객체를 씰 해제하는 알고리즘의 프로바이더명
반환값:
원의 객체
예외:
IllegalArgumentException - 지정된 프로바이더가 null 나 빈 상태(empty)의 경우
IOException - 직렬화 해제로 에러가 발생했을 경우
ClassNotFoundException - 직렬화 해제로 에러가 발생했을 경우
NoSuchAlgorithmException - 객체를 씰 해제하는 알고리즘이 없는 경우
NoSuchProviderException - 지정된 프로바이더가 설정되어 있지 않은 경우
InvalidKeyException - 알고리즘이 잘못되어 있는 경우 등, 지정된 열쇠를 사용해 객체를 씰 해제할 수 없는 경우
NullPointerException - key 가 null 의 경우

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 도 참조해 주세요.