|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
java.lang.Objectjavax.crypto.SealedObject
public class SealedObject
프로그래머는, 이 클래스를 사용해 객체를 생성해, 암호화 알고리즘을 이용해 그 기밀성을 보호할 수가 있습니다.
Serializable 객체를 지정하면(자), 원의 객체를 직렬화 형식 (즉 「딥 카피」)에서 캡슐화해, 직렬화 된 컨텐츠를 씰 (암호화) 해, DES 등의 암호화 알고리즘을 사용해 그 기밀을 보호하는 SealedObject 를 작성할 수 있습니다. 그 후, 암호화된 내용의 암호 해독 (적정한 암호 해독열쇠를 사용), 및 직렬화 해제를 실시하는 것으로, 원의 객체를 복원할 수 있습니다.
Cipher 객체는, 올바른 알고리즘, 열쇠, 패딩 방식등으로 완전하게 초기화하고 나서 SealedObject 에 적용할 필요가 있습니다.
씰 된 원의 객체는, 다음이 다른 2 개의 방법으로 복원 가능합니다.
Cipher
객체를 취하는 getObject
메소드를 사용한다.
이 메소드는, 객체를 씰 하는데 사용한 것과 완전히 같은 알고리즘, 열쇠, 패딩 방식등으로 완전하게 초기화된 Cipher
객체를 필요로 합니다.
이 방법에는, 암호 해독열쇠에 관한 지식이 없어도, 씰 된 객체의 안시르를 실행할 수 있다고 하는 이점이 있습니다. 예를 들어, 어느 파티가 암호 객체를 필수의 암호 해독열쇠를 사용해 초기화한 후에, 다른 파티에 건네주면(자), 그 파티는 씰 된 객체를 안시르 할 수 있습니다.
Key
객체를 취하는 getObject
메소드의 1 개를 사용한다.
이 방법에서는,getObject
메소드는, 적절한 암호 해독 알고리즘용의 암호 객체를 생성해, 씰 끝난 객체에 포함된 암호 해독열쇠 및 알고리즘 파라미터 (존재하는 경우)를 사용해 초기화를 실시합니다.
이 방식에는, 객체를 씰 해제하는 당사자는 객체를 씰 하는데 사용된 파라미터 (예를 들어, IV)를 추적할 필요가 없다고 하는 이점이 있습니다.
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 |
필드의 상세 |
---|
protected byte[] encodedParams
즉,cipher.getParameters(). getEncoded()
입니다.
생성자 의 상세 |
---|
public SealedObject(Serializable object, Cipher c) throws IOException , IllegalBlockSizeException
지정된 객체는 직렬화 되어 그 직렬화 된 컨텐츠는, 완전하게 초기화된, 지정된 Cipher 를 사용해 암호화됩니다.
암호화 조작으로 사용될 가능성이 있는 알고리즘 파라미터는, 새로운 SealedObject
의 내부에 포함됩니다.
object
- 씰 하는 객체. null 도 가능c
- 객체를 씰 하는데 사용되는 암호
NullPointerException
- 지정된 암호가 null 의 경우
IOException
- 직렬화로 에러가 발생했을 경우
IllegalBlockSizeException
- 지정된 암호가 블록 암호이며, 패딩이 요구되지 않고, 입력 길이의 합계 (즉, 직렬화 된 객체의 컨텐츠의 길이)가 암호의 블록 사이즈의 배수가 아닌 경우protected SealedObject(SealedObject so)
so
- SealedObject 객체
NullPointerException
- 지정된 객체가 null 의 경우메소드의 상세 |
---|
public final String getAlgorithm()
public final Object getObject(Key key) throws IOException , ClassNotFoundException , NoSuchAlgorithmException , InvalidKeyException
이 메소드는, 씰 조작으로 사용된 알고리즘의 암호를 작성합니다. 디폴트의 프로바이더 패키지가 그 알고리즘을 구현하는 경우는, 그 구현을 포함한 Cipher 의 인스턴스가 사용됩니다. 지정된 알고리즘이 디폴트의 패키지로 사용 가능하지 않은 경우는, 다른 패키지가 검색됩니다. Cipher 객체는, 지정된 key
와 씰 조작에 사용된 파라미터 (만약 있으면)를 사용해, 복호화용으로 초기화됩니다.
캡슐화된 객체는, 씰과 직렬화를 해제하고 나서 돌려주어집니다.
key
- 객체를 씰 해제하는데 사용하는 열쇠
IOException
- 직렬화 해제로 에러가 발생했을 경우
ClassNotFoundException
- 직렬화 해제로 에러가 발생했을 경우
NoSuchAlgorithmException
- 객체를 씰 해제하는 알고리즘이 없는 경우
InvalidKeyException
- 알고리즘이 잘못되어 있는 경우 등, 지정된 열쇠를 사용해 객체를 씰 해제할 수 없는 경우
NullPointerException
- key
가 null 의 경우public final Object getObject(Cipher c) throws IOException , ClassNotFoundException , IllegalBlockSizeException , BadPaddingException
캡슐화된 객체는, Cipher 가 벌써 적절히 초기화되고 있는 것을 전제로서 지정된 Cipher 를 사용해 씰 해제되어 직렬화 해제되고 나서 돌려주어집니다.
c
- 객체를 씰 해제하는데 사용되는 암호
NullPointerException
- 지정된 암호가 null 의 경우
IOException
- 직렬화 해제로 에러가 발생했을 경우
ClassNotFoundException
- 직렬화 해제로 에러가 발생했을 경우
IllegalBlockSizeException
- 지정된 암호가 블록 암호이며, 패딩이 요구되지 않고, 입력 길이의 합계가 암호의 블록 사이즈의 배수가 아닌 경우
BadPaddingException
- 지정된 암호가 복호화용으로 초기화되고 있어 패딩이 지정되고 있지만, 입력 데이터에 적절한 예기 되는 패딩 바이트가 없는 경우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 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.