|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
java.lang.Objectjavax.crypto.Cipher
public class Cipher
이 클래스는, 암호화 및 복호화의 암호 기능을 제공합니다. 이것은, JCE (Java Cryptographic Extension) 시스템의 코어 부분을 구성합니다.
Cipher 객체를 생성하려면 , 어플리케이션은 Cipher 의 getInstance
메소드를 호출해, 요구된 「변환」의 이름을 건네줍니다. 필요에 따라서, 프로바이더의 이름을 지정할 수가 있습니다.
「변환」은, 지정된 입력에 대해서 실행해, 어떠한 출력을 생성하는 조작 (또는 조작세트)을 설명하는 캐릭터 라인입니다. 변환에는, 암호화 알고리즘 (DES 등)의 이름이 반드시 포함됩니다. 거기에 피드백 모드 및 패딩 방식이 계속되는 경우도 있습니다.
변환은, 다음의 서식에서 기술됩니다.
후자의 경우, 모드 및 패딩 방식에는, 프로바이더 고유의 디폴트 값가 사용됩니다. 예를 들어, 이하는 유효한 변환입니다.
Cipher c = Cipher.getInstance("DES/CBC/PKCS5Padding");
CFB
나 OFB 등의 모드를 사용하면(자), 블록 암호는, 암호의 실제의 블록 사이즈보다 작은 단위로 데이터를 암호화할 수 있습니다. 이러한 모드를 요구하는 경우, 「DES/CFB8/NoPadding
」 및 「DES/OFB32/PKCS5Padding
」변환에 나타나도록(듯이), 이 수치를 모드명에 추가하는 것으로써, 한 번에 처리하는 비트수를 옵션으로 지정할 수 있습니다. 수치를 지정하지 않는 경우, 프로바이더 고유의 디폴트가 사용됩니다(예를 들어, SunJCE 프로바이더에서는 DES 에 디폴트의 64 비트가 사용된다). 따라서, CFB8 나 OFB8 등의 8 비트 모드를 사용하는 것으로, 블록 암호를 바이트 지향의 스트림 암호로 변환할 수 있습니다.
- 도입된 버젼:
- 1.4
- 관련 항목:
KeyGenerator
,
SecretKey
필드의 개요
static int
DECRYPT_MODE
암호를 복호화 모드에 초기화하는데 사용하는 정수입니다.
static int
ENCRYPT_MODE
암호를 암호화 모드에 초기화하는데 사용하는 정수입니다.
static int
PRIVATE_KEY
랩 해제되는 열쇠가 「비공개키」인 것을 나타내는데 사용하는 정수입니다.
static int
PUBLIC_KEY
랩 해제되는 열쇠가 「공개키」인 것을 나타내는데 사용하는 정수입니다.
static int
SECRET_KEY
랩 해제되는 열쇠가 「비밀열쇠」인 것을 나타내는데 사용하는 정수입니다.
static int
UNWRAP_MODE
암호를 열쇠 랩핑 해제 모드에 초기화하는데 사용하는 정수입니다.
static int
WRAP_MODE
암호를 열쇠 랩핑 모드에 초기화하는데 사용하는 정수입니다.
생성자 의 개요
protected
Cipher (CipherSpi cipherSpi,
Provider provider,
String transformation)
Cipher 객체를 생성합니다.
메소드의 개요
byte[]
doFinal ()
복수의 부분으로부터 완성되는 암호화 또는 복호화 조작 (이 암호의 초기화 방법에 의해 다르다)을 종료합니다.
byte[]
doFinal (byte[] input)
단일의 부분으로부터 완성되는 조작으로 데이터를 암호화 또는 복호화 하는지, 복수의 부분으로부터 완성되는 조작을 종료합니다.
int
doFinal (byte[] output,
int outputOffset)
복수의 부분으로부터 완성되는 암호화 또는 복호화 조작 (이 암호의 초기화 방법에 의해 다르다)을 종료합니다.
byte[]
doFinal (byte[] input,
int inputOffset,
int inputLen)
단일의 부분으로부터 완성되는 조작으로 데이터를 암호화 또는 복호화 하는지, 복수의 부분으로부터 완성되는 조작을 종료합니다.
int
doFinal (byte[] input,
int inputOffset,
int inputLen,
byte[] output)
단일의 부분으로부터 완성되는 조작으로 데이터를 암호화 또는 복호화 하는지, 복수의 부분으로부터 완성되는 조작을 종료합니다.
int
doFinal (byte[] input,
int inputOffset,
int inputLen,
byte[] output,
int outputOffset)
단일의 부분으로부터 완성되는 조작으로 데이터를 암호화 또는 복호화 하는지, 복수의 부분으로부터 완성되는 조작을 종료합니다.
int
doFinal (ByteBuffer input,
ByteBuffer output)
단일의 부분으로부터 완성되는 조작으로 데이터를 암호화 또는 복호화 하는지, 복수의 부분으로부터 완성되는 조작을 종료합니다.
String
getAlgorithm ()
이 Cipher
객체의 알고리즘명을 돌려줍니다.
int
getBlockSize ()
블록 사이즈를 돌려줍니다 (바이트 단위).
ExemptionMechanism
getExemptionMechanism ()
이 암호로 사용되는 Exemption Mechanism 객체를 돌려줍니다.
static Cipher
getInstance (String transformation)
지정된 변환을 구현하는 Cipher
객체를 돌려줍니다.
static Cipher
getInstance (String transformation,
Provider provider)
지정된 변환을 구현하는 Cipher
객체를 돌려줍니다.
static Cipher
getInstance (String transformation,
String provider)
지정된 변환을 구현하는 Cipher
객체를 돌려줍니다.
byte[]
getIV ()
새로운 버퍼의 초기화 벡터 (IV)를 돌려줍니다.
static int
getMaxAllowedKeyLength (String transformation)
인스톨 되고 있는 JCE 관할 정책 파일에 따라, 지정된 변환의 열쇠의 최대 길이을 돌려줍니다.
static AlgorithmParameterSpec
getMaxAllowedParameterSpec (String transformation)
관할 정책 파일에 따라, 최대의 암호 파라미터치를 포함한 AlgorithmParameterSpec 객체를 돌려줍니다.
int
getOutputSize (int inputLen)
입력의 길이 inputLen
(바이트 단위)를 지정해, 다음의 update
또는 doFinal
조작의 결과를 보관 유지하기 위해서 필요한 출력 버퍼의 길이를 바이트수로 돌려줍니다.
AlgorithmParameters
getParameters ()
이 암호로 사용되는 파라미터를 돌려줍니다.
Provider
getProvider ()
이 Cipher
객체의 프로바이더를 돌려줍니다.
void
init (int opmode,
Certificate certificate)
이 암호를, 검증 조작을 위해서(때문에) 지정된 공개키로 초기화합니다.
void
init (int opmode,
Certificate certificate,
SecureRandom random)
이 암호를, 검증 조작을 위해서(때문에) 지정된 공개키 및 random number generation의 원을 사용해 초기화합니다.
void
init (int opmode,
Key key)
열쇠를 사용해 이 암호를 초기화합니다.
void
init (int opmode,
Key key,
AlgorithmParameters params)
열쇠와 알고리즘 파라미터세트를 사용해 이 암호를 초기화합니다.
void
init (int opmode,
Key key,
AlgorithmParameterSpec params)
열쇠와 알고리즘 파라미터세트를 사용해 이 암호를 초기화합니다.
void
init (int opmode,
Key key,
AlgorithmParameterSpec params,
SecureRandom random)
열쇠, 알고리즘 파라미터세트, 및 random number generation의 원을 사용해 이 암호를 초기화합니다.
void
init (int opmode,
Key key,
AlgorithmParameters params,
SecureRandom random)
열쇠, 알고리즘 파라미터세트, 및 random number generation의 원을 사용해 이 암호를 초기화합니다.
void
init (int opmode,
Key key,
SecureRandom random)
열쇠와 random number generation의 원을 사용해 이 암호를 초기화합니다.
Key
unwrap (byte[] wrappedKey,
String wrappedKeyAlgorithm,
int wrappedKeyType)
전에 랩 된 열쇠를 랩 해제합니다.
byte[]
update (byte[] input)
복수의 부분으로부터 완성되는 암호화 또는 복호화 조작 (이 암호의 초기화 방법에 의해 다르다)을 계속해, 다른 데이터 부분을 처리합니다.
byte[]
update (byte[] input,
int inputOffset,
int inputLen)
복수의 부분으로부터 완성되는 암호화 또는 복호화 조작 (이 암호의 초기화 방법에 의해 다르다)을 계속해, 다른 데이터 부분을 처리합니다.
int
update (byte[] input,
int inputOffset,
int inputLen,
byte[] output)
복수의 부분으로부터 완성되는 암호화 또는 복호화 조작 (이 암호의 초기화 방법에 의해 다르다)을 계속해, 다른 데이터 부분을 처리합니다.
int
update (byte[] input,
int inputOffset,
int inputLen,
byte[] output,
int outputOffset)
복수의 부분으로부터 완성되는 암호화 또는 복호화 조작 (이 암호의 초기화 방법에 의해 다르다)을 계속해, 다른 데이터 부분을 처리합니다.
int
update (ByteBuffer input,
ByteBuffer output)
복수의 부분으로부터 완성되는 암호화 또는 복호화 조작 (이 암호의 초기화 방법에 의해 다르다)을 계속해, 다른 데이터 부분을 처리합니다.
byte[]
wrap (Key key)
열쇠를 랩 합니다.
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
필드의 상세
ENCRYPT_MODE
public static final int ENCRYPT_MODE
- 암호를 암호화 모드에 초기화하는데 사용하는 정수입니다.
- 관련 항목:
- 정수 필드치
DECRYPT_MODE
public static final int DECRYPT_MODE
- 암호를 복호화 모드에 초기화하는데 사용하는 정수입니다.
- 관련 항목:
- 정수 필드치
WRAP_MODE
public static final int WRAP_MODE
- 암호를 열쇠 랩핑 모드에 초기화하는데 사용하는 정수입니다.
- 관련 항목:
- 정수 필드치
UNWRAP_MODE
public static final int UNWRAP_MODE
- 암호를 열쇠 랩핑 해제 모드에 초기화하는데 사용하는 정수입니다.
- 관련 항목:
- 정수 필드치
PUBLIC_KEY
public static final int PUBLIC_KEY
- 랩 해제되는 열쇠가 「공개키」인 것을 나타내는데 사용하는 정수입니다.
- 관련 항목:
- 정수 필드치
PRIVATE_KEY
public static final int PRIVATE_KEY
- 랩 해제되는 열쇠가 「비공개키」인 것을 나타내는데 사용하는 정수입니다.
- 관련 항목:
- 정수 필드치
SECRET_KEY
public static final int SECRET_KEY
- 랩 해제되는 열쇠가 「비밀열쇠」인 것을 나타내는데 사용하는 정수입니다.
- 관련 항목:
- 정수 필드치
생성자 의 상세
Cipher
protected Cipher(CipherSpi cipherSpi,
Provider provider,
String transformation)
- Cipher 객체를 생성합니다.
- 파라미터:
cipherSpi
- delegateprovider
- 프로바이더transformation
- 변환
메소드의 상세
getInstance
public static final Cipher getInstance(String transformation)
throws NoSuchAlgorithmException ,
NoSuchPaddingException
- 지정된 변환을 구현하는
Cipher
객체를 돌려줍니다.
이 메소드는, 최우선의 프로바이더로부터 순서에, 등록을 마친 시큐리티 프로바이더의 리스트를 횡단(traverse) 합니다. 지정된 알고리즘을 지원하는 최초의 프로바이더로부터의 CipherSpi 구현을 캡슐화하는 새로운 Cipher 객체가 돌려주어집니다.
등록이 끝난 프로바이더의 리스트는,Security.getProviders()
메소드 경유로 취득할 수 있습니다.
- 파라미터:
transformation
- 변환의 이름. 예를 들어,DES/CBC/PKCS5Padding.
표준의 변환명에 대해서는, 「Java 암호화 아키텍쳐(architecture) 레퍼런스 가이드」의 부록 A 를 참조
- 반환값:
- 요구된 변환을 구현하는 암호
- 예외:
NoSuchAlgorithmException
- transformation
가 null, 빈 상태(empty), 또는 무효인 형식의 경우. 혹은, 지정된 알고리즘의 CipherSpi 구현을 지원하는 프로바이더가 존재하지 않는 경우
NoSuchPaddingException
- 사용할 수 없는 패딩 방식이 transformation
에 포함되어 있는 경우- 관련 항목:
Provider
getInstance
public static final Cipher getInstance(String transformation,
String provider)
throws NoSuchAlgorithmException ,
NoSuchProviderException ,
NoSuchPaddingException
- 지정된 변환을 구현하는
Cipher
객체를 돌려줍니다.
지정된 프로바이더로부터의 CipherSpi 구현을 캡슐화하는 새로운 Cipher 객체가 돌려주어집니다. 지정한 프로바이더는, 시큐리티 프로바이더 리스트에 등록할 필요가 있습니다.
등록이 끝난 프로바이더의 리스트는,Security.getProviders()
메소드 경유로 취득할 수 있습니다.
- 파라미터:
transformation
- 변환의 이름. 예를 들어,DES/CBC/PKCS5Padding.
표준의 변환명에 대해서는, 「Java 암호화 아키텍쳐(architecture) 레퍼런스 가이드」의 부록 A 를 참조provider
- 프로바이더명
- 반환값:
- 요구된 변환을 구현하는 암호
- 예외:
NoSuchAlgorithmException
- transformation
가 null, 빈 상태(empty), 또는 무효인 형식의 경우. 혹은, 지정된 알고리즘의 CipherSpi 구현이, 지정된 프로바이더로부터 사용할 수 없는 경우
NoSuchProviderException
- 지정한 프로바이더가 시큐리티 프로바이더 리스트에 등록되지 않은 경우
NoSuchPaddingException
- 사용할 수 없는 패딩 방식이 transformation
에 포함되어 있는 경우
IllegalArgumentException
- provider
가 null 또는 빈 상태(empty)의 경우- 관련 항목:
Provider
getInstance
public static final Cipher getInstance(String transformation,
Provider provider)
throws NoSuchAlgorithmException ,
NoSuchPaddingException
- 지정된 변환을 구현하는
Cipher
객체를 돌려줍니다.
지정된 Provider 객체로부터의 CipherSpi 구현을 캡슐화하는 새로운 Cipher 객체가 돌려주어집니다. 지정한 Provider 객체는, 프로바이더 리스트에 등록할 필요는 없습니다.
- 파라미터:
transformation
- 변환의 이름. 예를 들어,DES/CBC/PKCS5Padding.
표준의 변환명에 대해서는, 「Java 암호화 아키텍쳐(architecture) 레퍼런스 가이드」의 부록 A 를 참조provider
- 프로바이더
- 반환값:
- 요구된 변환을 구현하는 암호
- 예외:
NoSuchAlgorithmException
- transformation
가 null, 빈 상태(empty), 또는 무효인 형식의 경우. 혹은, 지정된 알고리즘의 CipherSpi 구현이, 지정된 Provider 객체로부터 사용할 수 없는 경우
NoSuchPaddingException
- 사용할 수 없는 패딩 방식이 transformation
에 포함되어 있는 경우
IllegalArgumentException
- provider
가 null 의 경우- 관련 항목:
Provider
getProvider
public final Provider getProvider()
- 이
Cipher
객체의 프로바이더를 돌려줍니다.
- 반환값:
- 이
Cipher
객체의 프로바이더
getAlgorithm
public final String getAlgorithm()
- 이
Cipher
객체의 알고리즘명을 돌려줍니다.
이것은, 이 Cipher
객체를 생성한 getInstance
호출의 어떤 것인가로 지정된 이름과 같습니다.
- 반환값:
- 이
Cipher
객체의 알고리즘명
getBlockSize
public final int getBlockSize()
- 블록 사이즈를 돌려줍니다 (바이트 단위).
- 반환값:
- 블록 사이즈 (바이트 단위). 기본이 되는 알고리즘이 블록 암호가 아닌 경우는 0
getOutputSize
public final int getOutputSize(int inputLen)
- 입력의 길이
inputLen
(바이트 단위)를 지정해, 다음의 update
또는 doFinal
조작의 결과를 보관 유지하기 위해서 필요한 출력 버퍼의 길이를 바이트수로 돌려줍니다.
이 호출에서는, 이전의 update
호출의 처리되어 있지 않은 (버퍼에 있다) 데이터를 고려해, 패딩 합니다.
다음의 update
또는 doFinal
호출의 실제의 출력 길이은, 이 메소드가 돌려주는 길이보다 작은 일이 있습니다.
- 파라미터:
inputLen
- 입력 길이 (바이트 단위)
- 반환값:
- 필요한 출력 버퍼 사이즈 (바이트 단위)
- 예외:
IllegalStateException
- 이 암호가 잘못한 상태에 있는 경우 ( 아직 초기화되어 있지 않은 등)
getIV
public final byte[] getIV()
- 새로운 버퍼의 초기화 벡터 (IV)를 돌려줍니다.
이것은, 랜덤 IV 가 작성되었을 경우, 혹은 IV 가 사용자 지정의 패스워드로부터 파생하는 패스워드 베이스의 암호화 또는 복호화의 문맥에 대해 도움이 됩니다.
- 반환값:
- 새로운 버퍼내의 초기화 벡터. 기본이 되는 알고리즘이 IV 를 사용하지 않는 경우, 또는 IV 가 설정되어 있지 않은 경우는 null
getParameters
public final AlgorithmParameters getParameters()
- 이 암호로 사용되는 파라미터를 돌려줍니다.
반환되는 파라미터는, 이 암호를 초기화하는데 사용한 것과 같은 경우가 있습니다. 또는, 반환되는 파라미터에는, 이 암호에 알고리즘 파라미터가 필요해, 한편 알고리즘 파라미터로 초기화되지 않았던 경우에, 기본이 되는 암호 구현으로 사용되는 디폴트와 랜덤의 파라미터치의 편성이 포함되는 일도 있습니다.
- 반환값:
- 이 암호로 사용되는 파라미터. 이 암호로 파라미터를 사용하지 않는 경우는 null
getExemptionMechanism
public final ExemptionMechanism getExemptionMechanism()
- 이 암호로 사용되는 Exemption Mechanism 객체를 돌려줍니다.
- 반환값:
- 이 암호로 사용되는 Exemption Mechanism 객체. 이 암호로 Exemption Mechanism를 사용하지 않는 경우는 null
init
public final void init(int opmode,
Key key)
throws InvalidKeyException
- 열쇠를 사용해 이 암호를 초기화합니다.
이 암호는,opmode
의 값에 따라, 암호화, 복호화, 열쇠 랩핑, 또는 열쇠 랩핑 해제의 4 개의 조작의 1 개에 맞추어 초기화됩니다.
이 암호가, 지정된 key
로부터 파생할 수 없는 알고리즘 파라미터를 필요로 하는 경우, 기본이 되는 암호 구현은, 암호화 또는 열쇠 랩핑용으로 초기화되고 있으면, 프로바이더 고유의 디폴트 또는 랜덤치를 사용해 필요한 파라미터 자체를 생성해, 복호화 또는 열쇠 랩핑 해제용으로 초기화되고 있으면,InvalidKeyException
를 발생시킵니다. 생성된 파라미터는,getParameters
또는 getIV
(파라미터가 IV 의 경우)를 사용해 꺼낼 수가 있습니다.
이 암호 (기본이 되는 피드백 또는 패딩 방식을 포함한다)가 난수 바이트를 필요로 하는 경우 (파라미터 생성을 위해 등)는, random number generation의 원으로서 최우선의 순위로 인스톨 되고 있는 프로바이더 SecureRandom
의 구현을 사용해 가져옵니다. SecureRandom 를 제공하는 프로바이더가 1 개나 인스톨되어 있지 않은 경우는, 시스템이 제공하는 random number generation의 원이 사용됩니다.
Cipher 객체를 초기화하면(자), 그때까지 획득한 상태가 모두 없어지는 것에 유의해 주세요. 즉, Cipher 를 초기화하는 것은, 그 Cipher 의 신규 인스턴스를 작성해 초기화하는 것으로 등가입니다.
- 파라미터:
opmode
- 이 암호의 조작 모드 (ENCRYPT_MODE
,DECRYPT_MODE
,WRAP_MODE
, 또는 UNWRAP_MODE
의 어떤 것이나)key
- 키
- 예외:
InvalidKeyException
- 지정된 열쇠가 이 암호의 초기화에 올바르지 않은 경우, 이 암호가 복호화용으로 초기화되어 지정된 열쇠로부터 판정할 수가 없는 알고리즘 파라미터를 필요로 하는 경우, 또는 지정된 열쇠의 사이즈가 최대 허용열쇠 사이즈 (설정되어 있는 관할 정책 파일에 의해 결정)를 넘는 경우
init
public final void init(int opmode,
Key key,
SecureRandom random)
throws InvalidKeyException
- 열쇠와 random number generation의 원을 사용해 이 암호를 초기화합니다.
이 암호는,opmode
의 값에 따라, 암호화, 복호화, 열쇠 랩핑, 또는 열쇠 랩핑 해제의 4 개의 조작의 1 개에 맞추어 초기화됩니다.
이 암호가, 지정된 key
로부터 파생할 수 없는 알고리즘 파라미터를 필요로 하는 경우, 기본이 되는 암호 구현은, 암호화 또는 열쇠 랩핑용으로 초기화되고 있으면, 프로바이더 고유의 디폴트 또는 랜덤치를 사용해 필요한 파라미터 자체를 생성해, 복호화 또는 열쇠 랩핑 해제용으로 초기화되고 있으면,InvalidKeyException
를 발생시킵니다. 생성된 파라미터는,getParameters
또는 getIV
(파라미터가 IV 의 경우)를 사용해 꺼낼 수가 있습니다.
이 암호 (기본이 되는 피드백 또는 패딩 방식을 포함한다)가 난수 바이트를 필요로 하는 경우 (파라미터 생성을 위해 등)는,random
로부터 가져옵니다.
Cipher 객체를 초기화하면(자), 그때까지 획득한 상태가 모두 없어지는 것에 유의해 주세요. 즉, Cipher 를 초기화하는 것은, 그 Cipher 의 신규 인스턴스를 작성해 초기화하는 것으로 등가입니다.
- 파라미터:
opmode
- 이 암호의 조작 모드 (ENCRYPT_MODE
,DECRYPT_MODE
,WRAP_MODE
, 또는 UNWRAP_MODE
의 어떤 것이나)key
- 암호화열쇠random
- random number generation의 원
- 예외:
InvalidKeyException
- 지정된 열쇠가 이 암호의 초기화에 올바르지 않은 경우, 이 암호가 복호화용으로 초기화되어 지정된 열쇠로부터 판정할 수가 없는 알고리즘 파라미터를 필요로 하는 경우, 또는 지정된 열쇠의 사이즈가 최대 허용열쇠 사이즈 (설정되어 있는 관할 정책 파일에 의해 결정)를 넘는 경우
init
public final void init(int opmode,
Key key,
AlgorithmParameterSpec params)
throws InvalidKeyException ,
InvalidAlgorithmParameterException
- 열쇠와 알고리즘 파라미터세트를 사용해 이 암호를 초기화합니다.
이 암호는,opmode
의 값에 따라, 암호화, 복호화, 열쇠 랩핑, 또는 열쇠 랩핑 해제의 4 개의 조작의 1 개에 맞추어 초기화됩니다.
이 암호가 알고리즘 파라미터를 필요로 해,params
가 null 의 경우, 기본이 되는 암호 구현은, 암호화 또는 열쇠 랩핑용으로 초기화되고 있으면, 프로바이더 고유의 디폴트 또는 랜덤치를 사용해 필요한 파라미터 자체를 생성해, 복호화 또는 열쇠 랩핑 해제용으로 초기화되고 있으면,InvalidAlgorithmParameterException
를 발생시킵니다. 생성된 파라미터는,getParameters
또는 getIV
(파라미터가 IV 의 경우)를 사용해 꺼낼 수가 있습니다.
이 암호 (기본이 되는 피드백 또는 패딩 방식을 포함한다)가 난수 바이트를 필요로 하는 경우 (파라미터 생성을 위해 등)는, random number generation의 원으로서 최우선의 순위로 인스톨 되고 있는 프로바이더 SecureRandom
의 구현을 사용해 가져옵니다. SecureRandom 를 제공하는 프로바이더가 1 개나 인스톨되어 있지 않은 경우는, 시스템이 제공하는 random number generation의 원이 사용됩니다.
Cipher 객체를 초기화하면(자), 그때까지 획득한 상태가 모두 없어지는 것에 유의해 주세요. 즉, Cipher 를 초기화하는 것은, 그 Cipher 의 신규 인스턴스를 작성해 초기화하는 것으로 등가입니다.
- 파라미터:
opmode
- 이 암호의 조작 모드 (ENCRYPT_MODE
,DECRYPT_MODE
,WRAP_MODE
, 또는 UNWRAP_MODE
의 어떤 것이나)key
- 암호화열쇠params
- 알고리즘 파라미터
- 예외:
InvalidKeyException
- 지정된 열쇠가 이 암호의 초기화에 올바르지 않은 경우, 또는 지정된 열쇠의 사이즈가 최대 허용열쇠 사이즈 (설정되어 있는 관할 정책 파일에 의해 결정)를 넘는 경우
InvalidAlgorithmParameterException
- 지정된 알고리즘 파라미터가 이 암호에 올바르지 않은 경우, 이 암호가 복호화용으로 초기화되어 알고리즘 파라미터를 필요로 해,params
가 null 의 경우, 또는 지정된 알고리즘 파라미터가 유효한 제한 (설정되어 있는 관할 정책 파일에 의해 결정)을 넘는 암호화 강도를 나타내는 경우
init
public final void init(int opmode,
Key key,
AlgorithmParameterSpec params,
SecureRandom random)
throws InvalidKeyException ,
InvalidAlgorithmParameterException
- 열쇠, 알고리즘 파라미터세트, 및 random number generation의 원을 사용해 이 암호를 초기화합니다.
이 암호는,opmode
의 값에 따라, 암호화, 복호화, 열쇠 랩핑, 또는 열쇠 랩핑 해제의 4 개의 조작의 1 개에 맞추어 초기화됩니다.
이 암호가 알고리즘 파라미터를 필요로 해,params
가 null 의 경우, 기본이 되는 암호 구현은, 암호화 또는 열쇠 랩핑용으로 초기화되고 있으면, 프로바이더 고유의 디폴트 또는 랜덤치를 사용해 필요한 파라미터 자체를 생성해, 복호화 또는 열쇠 랩핑 해제용으로 초기화되고 있으면,InvalidAlgorithmParameterException
를 발생시킵니다. 생성된 파라미터는,getParameters
또는 getIV
(파라미터가 IV 의 경우)를 사용해 꺼낼 수가 있습니다.
이 암호 (기본이 되는 피드백 또는 패딩 방식을 포함한다)가 난수 바이트를 필요로 하는 경우 (파라미터 생성을 위해 등)는,random
로부터 가져옵니다.
Cipher 객체를 초기화하면(자), 그때까지 획득한 상태가 모두 없어지는 것에 유의해 주세요. 즉, Cipher 를 초기화하는 것은, 그 Cipher 의 신규 인스턴스를 작성해 초기화하는 것으로 등가입니다.
- 파라미터:
opmode
- 이 암호의 조작 모드 (ENCRYPT_MODE
,DECRYPT_MODE
,WRAP_MODE
, 또는 UNWRAP_MODE
의 어떤 것이나)key
- 암호화열쇠params
- 알고리즘 파라미터random
- random number generation의 원
- 예외:
InvalidKeyException
- 지정된 열쇠가 이 암호의 초기화에 올바르지 않은 경우, 또는 지정된 열쇠의 사이즈가 최대 허용열쇠 사이즈 (설정되어 있는 관할 정책 파일에 의해 결정)를 넘는 경우
InvalidAlgorithmParameterException
- 지정된 알고리즘 파라미터가 이 암호에 올바르지 않은 경우, 이 암호가 복호화용으로 초기화되어 알고리즘 파라미터를 필요로 해,params
가 null 의 경우, 또는 지정된 알고리즘 파라미터가 유효한 제한 (설정되어 있는 관할 정책 파일에 의해 결정)을 넘는 암호화 강도를 나타내는 경우
init
public final void init(int opmode,
Key key,
AlgorithmParameters params)
throws InvalidKeyException ,
InvalidAlgorithmParameterException
- 열쇠와 알고리즘 파라미터세트를 사용해 이 암호를 초기화합니다.
이 암호는,opmode
의 값에 따라, 암호화, 복호화, 열쇠 랩핑, 또는 열쇠 랩핑 해제의 4 개의 조작의 1 개에 맞추어 초기화됩니다.
이 암호가 알고리즘 파라미터를 필요로 해,params
가 null 의 경우, 기본이 되는 암호 구현은, 암호화 또는 열쇠 랩핑용으로 초기화되고 있으면, 프로바이더 고유의 디폴트 또는 랜덤치를 사용해 필요한 파라미터 자체를 생성해, 복호화 또는 열쇠 랩핑 해제용으로 초기화되고 있으면,InvalidAlgorithmParameterException
를 발생시킵니다. 생성된 파라미터는,getParameters
또는 getIV
(파라미터가 IV 의 경우)를 사용해 꺼낼 수가 있습니다.
이 암호 (기본이 되는 피드백 또는 패딩 방식을 포함한다)가 난수 바이트를 필요로 하는 경우 (파라미터 생성을 위해 등)는, random number generation의 원으로서 최우선의 순위로 인스톨 되고 있는 프로바이더 SecureRandom
의 구현을 사용해 가져옵니다. SecureRandom 를 제공하는 프로바이더가 1 개나 인스톨되어 있지 않은 경우는, 시스템이 제공하는 random number generation의 원이 사용됩니다.
Cipher 객체를 초기화하면(자), 그때까지 획득한 상태가 모두 없어지는 것에 유의해 주세요. 즉, Cipher 를 초기화하는 것은, 그 Cipher 의 신규 인스턴스를 작성해 초기화하는 것으로 등가입니다.
- 파라미터:
opmode
- 이 암호의 조작 모드 (ENCRYPT_MODE
,DECRYPT_MODE
,WRAP_MODE
, 또는 UNWRAP_MODE
의 어떤 것이나)key
- 암호화열쇠params
- 알고리즘 파라미터
- 예외:
InvalidKeyException
- 지정된 열쇠가 이 암호의 초기화에 올바르지 않은 경우, 또는 지정된 열쇠의 사이즈가 최대 허용열쇠 사이즈 (설정되어 있는 관할 정책 파일에 의해 결정)를 넘는 경우
InvalidAlgorithmParameterException
- 지정된 알고리즘 파라미터가 이 암호에 올바르지 않은 경우, 이 암호가 복호화용으로 초기화되어 알고리즘 파라미터를 필요로 해,params
가 null 의 경우, 또는 지정된 알고리즘 파라미터가 유효한 제한 (설정되어 있는 관할 정책 파일에 의해 결정)을 넘는 암호화 강도를 나타내는 경우
init
public final void init(int opmode,
Key key,
AlgorithmParameters params,
SecureRandom random)
throws InvalidKeyException ,
InvalidAlgorithmParameterException
- 열쇠, 알고리즘 파라미터세트, 및 random number generation의 원을 사용해 이 암호를 초기화합니다.
이 암호는,opmode
의 값에 따라, 암호화, 복호화, 열쇠 랩핑, 또는 열쇠 랩핑 해제의 4 개의 조작의 1 개에 맞추어 초기화됩니다.
이 암호가 알고리즘 파라미터를 필요로 해,params
가 null 의 경우, 기본이 되는 암호 구현은, 암호화 또는 열쇠 랩핑용으로 초기화되고 있으면, 프로바이더 고유의 디폴트 또는 랜덤치를 사용해 필요한 파라미터 자체를 생성해, 복호화 또는 열쇠 랩핑 해제용으로 초기화되고 있으면,InvalidAlgorithmParameterException
를 발생시킵니다. 생성된 파라미터는,getParameters
또는 getIV
(파라미터가 IV 의 경우)를 사용해 꺼낼 수가 있습니다.
이 암호 (기본이 되는 피드백 또는 패딩 방식을 포함한다)가 난수 바이트를 필요로 하는 경우 (파라미터 생성을 위해 등)는,random
로부터 가져옵니다.
Cipher 객체를 초기화하면(자), 그때까지 획득한 상태가 모두 없어지는 것에 유의해 주세요. 즉, Cipher 를 초기화하는 것은, 그 Cipher 의 신규 인스턴스를 작성해 초기화하는 것으로 등가입니다.
- 파라미터:
opmode
- 이 암호의 조작 모드 (ENCRYPT_MODE
,DECRYPT_MODE
,WRAP_MODE
, 또는 UNWRAP_MODE
의 어떤 것이나)key
- 암호화열쇠params
- 알고리즘 파라미터random
- random number generation의 원
- 예외:
InvalidKeyException
- 지정된 열쇠가 이 암호의 초기화에 올바르지 않은 경우, 또는 지정된 열쇠의 사이즈가 최대 허용열쇠 사이즈 (설정되어 있는 관할 정책 파일에 의해 결정)를 넘는 경우
InvalidAlgorithmParameterException
- 지정된 알고리즘 파라미터가 이 암호에 올바르지 않은 경우, 이 암호가 복호화용으로 초기화되어 알고리즘 파라미터를 필요로 해,params
가 null 의 경우, 또는 지정된 알고리즘 파라미터가 유효한 제한 (설정되어 있는 관할 정책 파일에 의해 결정)을 넘는 암호화 강도를 나타내는 경우
init
public final void init(int opmode,
Certificate certificate)
throws InvalidKeyException
- 이 암호를, 검증 조작을 위해서(때문에) 지정된 공개키로 초기화합니다.
이 암호는,opmode
의 값에 따라, 암호화, 복호화, 열쇠 랩핑, 또는 열쇠 랩핑 해제의 4 개의 조작의 1 개에 맞추어 초기화됩니다.
증명서의 종류가 X. 509 로, 중요와 마크 된 key usage 확장 영역이 있어,key usage 확장 영역의 값에 의해 증명서의 공개키와 거기에 대응하는 비공개키가 opmode
의 값으로 나타내지는 조작에 사용되지 않는 것으로 있는 경우는,InvalidKeyException
가 throw 됩니다.
이 암호가, 지정된 증명서의 공개키로부터 파생할 수 없는 알고리즘 파라미터를 필요로 하는 경우, 기본이 되는 암호 구현은, 암호화 또는 열쇠 랩핑용으로 초기화되고 있으면, 프로바이더 고유의 디폴트 또는 랜덤치를 사용해 필요한 파라미터 자체를 생성해, 복호화 또는 열쇠 랩핑 해제용으로 초기화되고 있으면,InvalidKeyException
를 발생시킵니다. 생성된 파라미터는,getParameters
또는 getIV
(파라미터가 IV 의 경우)를 사용해 꺼낼 수가 있습니다.
이 암호 (기본이 되는 피드백 또는 패딩 방식을 포함한다)가 난수 바이트를 필요로 하는 경우 (파라미터 생성을 위해 등)는, random number generation의 원으로서 최우선의 순위로 인스톨 되고 있는 프로바이더의 SecureRandom
의 구현을 사용해 가져옵니다. SecureRandom 를 제공하는 프로바이더가 1 개나 인스톨되어 있지 않은 경우는, 시스템이 제공하는 random number generation의 원이 사용됩니다.
Cipher 객체를 초기화하면(자), 그때까지 획득한 상태가 모두 없어지는 것에 유의해 주세요. 즉, Cipher 를 초기화하는 것은, 그 Cipher 의 신규 인스턴스를 작성해 초기화하는 것으로 등가입니다.
- 파라미터:
opmode
- 이 암호의 조작 모드 (ENCRYPT_MODE
,DECRYPT_MODE
,WRAP_MODE
, 또는 UNWRAP_MODE
의 어떤 것이나)certificate
- 증명서
- 예외:
InvalidKeyException
- 지정된 증명서의 공개키가 이 암호의 초기화에 올바르지 않은 경우, 이 암호가 복호화열쇠 또는 랩핑 해제열쇠용으로 초기화되어 지정된 증명서의 공개키로부터 판정할 수가 없는 알고리즘 파라미터를 필요로 하는 경우, 또는 지정된 증명서의 공개키의 사이즈가 최대 허용열쇠 사이즈 (설정되어 있는 관할 정책 파일에 의해 결정)를 넘는 경우
init
public final void init(int opmode,
Certificate certificate,
SecureRandom random)
throws InvalidKeyException
- 이 암호를, 검증 조작을 위해서(때문에) 지정된 공개키 및 random number generation의 원을 사용해 초기화합니다.
이 암호는,opmode
의 값에 따라, 암호화, 복호화, 열쇠 랩핑, 또는 열쇠 랩핑 해제의 4 개의 조작의 1 개에 맞추어 초기화됩니다.
증명서의 종류가 X. 509 로, 중요와 마크 된 key usage 확장 영역이 있어,key usage 확장 영역의 값에 의해 증명서의 공개키와 거기에 대응하는 비공개키가 opmode
의 값으로 나타내지는 조작에 사용되지 않는 것으로 있는 경우는,InvalidKeyException
가 throw 됩니다.
이 암호가, 지정된 certificate
의 공개키로부터 파생할 수 없는 알고리즘 파라미터를 필요로 하는 경우, 기본이 되는 암호 구현은, 암호화 또는 열쇠 랩핑용으로 초기화되고 있으면, 프로바이더 고유의 디폴트 또는 랜덤치를 사용해 필요한 파라미터 자체를 생성해, 복호화 또는 열쇠 랩핑 해제용으로 초기화되고 있으면,InvalidKeyException
를 발생시킵니다. 생성된 파라미터는,getParameters
또는 getIV
(파라미터가 IV 의 경우)를 사용해 꺼낼 수가 있습니다.
이 암호 (기본이 되는 피드백 또는 패딩 방식을 포함한다)가 난수 바이트를 필요로 하는 경우 (파라미터 생성을 위해 등)는,random
로부터 가져옵니다.
Cipher 객체를 초기화하면(자), 그때까지 획득한 상태가 모두 없어지는 것에 유의해 주세요. 즉, Cipher 를 초기화하는 것은, 그 Cipher 의 신규 인스턴스를 작성해 초기화하는 것으로 등가입니다.
- 파라미터:
opmode
- 이 암호의 조작 모드 (ENCRYPT_MODE
,DECRYPT_MODE
,WRAP_MODE
, 또는 UNWRAP_MODE
의 어떤 것이나)certificate
- 증명서random
- random number generation의 원
- 예외:
InvalidKeyException
- 지정된 증명서의 공개키가 이 암호의 초기화에 올바르지 않은 경우, 이 암호가 복호화열쇠 또는 랩핑 해제열쇠용으로 초기화되어 지정된 증명서의 공개키로부터 판정할 수가 없는 알고리즘 파라미터를 필요로 하는 경우, 또는 지정된 증명서의 공개키의 사이즈가 최대 허용열쇠 사이즈 (설정되어 있는 관할 정책 파일에 의해 결정)를 넘는 경우
update
public final byte[] update(byte[] input)
- 복수의 부분으로부터 완성되는 암호화 또는 복호화 조작 (이 암호의 초기화 방법에 의해 다르다)을 계속해, 다른 데이터 부분을 처리합니다.
input
버퍼내의 바이트가 처리되어 결과가 새로운 버퍼에 포함됩니다.
input
의 길이가 제로의 경우, 이 메소드는 null
를 돌려줍니다.
- 파라미터:
input
- 입력 버퍼
- 반환값:
- 결과가 들어간 새로운 버퍼. 기본이 되는 암호가 블록 암호이며, 입력 데이터가 단인가 지나 새로운 블록이 되지 않는 경우는 null
- 예외:
IllegalStateException
- 이 암호가 잘못한 상태에 있는 경우 (초기화되어 있지 않은 등)
update
public final byte[] update(byte[] input,
int inputOffset,
int inputLen)
- 복수의 부분으로부터 완성되는 암호화 또는 복호화 조작 (이 암호의 초기화 방법에 의해 다르다)을 계속해, 다른 데이터 부분을 처리합니다.
inputOffset
로부터 시작되는,input
버퍼내의 최초의 inputLen
바이트가 처리되어 결과가 새로운 버퍼에 포함됩니다.
inputLen
가 제로의 경우, 이 메소드는 null
를 돌려줍니다.
- 파라미터:
input
- 입력 버퍼inputOffset
- 입력을 개시하는 input
내의 오프셋(offset)inputLen
- 입력 길이
- 반환값:
- 결과가 들어간 새로운 버퍼. 기본이 되는 암호가 블록 암호이며, 입력 데이터가 단인가 지나 새로운 블록이 되지 않는 경우는 null
- 예외:
IllegalStateException
- 이 암호가 잘못한 상태에 있는 경우 (초기화되어 있지 않은 등)
update
public final int update(byte[] input,
int inputOffset,
int inputLen,
byte[] output)
throws ShortBufferException
- 복수의 부분으로부터 완성되는 암호화 또는 복호화 조작 (이 암호의 초기화 방법에 의해 다르다)을 계속해, 다른 데이터 부분을 처리합니다.
inputOffset
로부터 시작되는,input
버퍼내의 최초의 inputLen
바이트가 처리되어 결과가 output
버퍼에 포함됩니다.
output
버퍼가 너무 작아 결과를 보관 유지할 수 없는 경우는,ShortBufferException
가 throw 됩니다. 이 경우, 보다 큰 출력 버퍼를 사용해 이 호출을 반복합니다. getOutputSize
를 사용해, 필요한 출력 버퍼의 사이즈를 판정합니다.
inputLen
가 0 의 경우, 이 메소드는 길이 제로를 돌려줍니다.
주:이 메소드는 카피에 대해서 안전한 필요가 있습니다. 즉,input
및 output
버퍼는 같은 바이트 배열을 참조할 수가 있어 결과가 출력 버퍼에 카피될 때 미처리의 입력 데이터가 덧쓰기되지 않는 것이 필요합니다.
- 파라미터:
input
- 입력 버퍼inputOffset
- 입력을 개시하는 input
내의 오프셋(offset)inputLen
- 입력 길이output
- 결과를 포함하는 버퍼
- 반환값:
output
에 포함된 바이트수
- 예외:
IllegalStateException
- 이 암호가 잘못한 상태에 있는 경우 (초기화되어 있지 않은 등)
ShortBufferException
- 지정된 출력 버퍼가 너무 작아 결과를 보관 유지할 수 없는 경우
update
public final int update(byte[] input,
int inputOffset,
int inputLen,
byte[] output,
int outputOffset)
throws ShortBufferException
- 복수의 부분으로부터 완성되는 암호화 또는 복호화 조작 (이 암호의 초기화 방법에 의해 다르다)을 계속해, 다른 데이터 부분을 처리합니다.
inputOffset
로부터 시작되는,input
버퍼내의 최초의 inputLen
바이트가 처리되어 결과는 output
버퍼의 outputOffset
로부터 시작되는 위치에 포함됩니다.
output
버퍼가 너무 작아 결과를 보관 유지할 수 없는 경우는,ShortBufferException
가 throw 됩니다. 이 경우, 보다 큰 출력 버퍼를 사용해 이 호출을 반복합니다. getOutputSize
를 사용해, 필요한 출력 버퍼의 사이즈를 판정합니다.
inputLen
가 0 의 경우, 이 메소드는 길이 제로를 돌려줍니다.
주:이 메소드는 카피에 대해서 안전한 필요가 있습니다. 즉,input
및 output
버퍼는 같은 바이트 배열을 참조할 수가 있어 결과가 출력 버퍼에 카피될 때 미처리의 입력 데이터가 덧쓰기되지 않는 것이 필요합니다.
- 파라미터:
input
- 입력 버퍼inputOffset
- 입력을 개시하는 input
내의 오프셋(offset)inputLen
- 입력 길이output
- 결과를 포함하는 버퍼outputOffset
- 결과가 포함되는 output
내의 오프셋(offset)
- 반환값:
output
에 포함된 바이트수
- 예외:
IllegalStateException
- 이 암호가 잘못한 상태에 있는 경우 (초기화되어 있지 않은 등)
ShortBufferException
- 지정된 출력 버퍼가 너무 작아 결과를 보관 유지할 수 없는 경우
update
public final int update(ByteBuffer input,
ByteBuffer output)
throws ShortBufferException
- 복수의 부분으로부터 완성되는 암호화 또는 복호화 조작 (이 암호의 초기화 방법에 의해 다르다)을 계속해, 다른 데이터 부분을 처리합니다.
input.position()
로부터 시작되는 모든 input.remaining()
바이트가 처리됩니다. 결과는 출력 버퍼에 포함됩니다. 종료시에, 입력 버퍼의 위치는 리밋트에 동일해집니다만, 리밋트는 변경되지 않습니다. 출력 버퍼의 위치는 n 만 증가합니다. n 는, 이 메소드가 돌려주는 값입니다. 출력 버퍼의 리밋트는 변경되지 않습니다.
output.remaining()
바이트가 결과를 보관 유지하는데 불충분한 경우는,ShortBufferException
가 throw 됩니다. 이 경우, 보다 큰 출력 버퍼를 사용해 이 호출을 반복합니다. getOutputSize
를 사용해, 필요한 출력 버퍼의 사이즈를 판정합니다.
주:이 메소드는 카피에 대해서 안전한 필요가 있습니다. 즉,input
및 output
버퍼는 같은 메모리 블록을 참조할 수가 있어 결과가 출력 버퍼에 카피될 때 미처리의 입력 데이터가 덧쓰기되지 않는 것이 필요합니다.
- 파라미터:
input
- 입력 ByteBufferoutput
- 출력 ByteByffer
- 반환값:
output
에 포함된 바이트수
- 예외:
IllegalStateException
- 이 암호가 잘못한 상태에 있는 경우 (초기화되어 있지 않은 등)
IllegalArgumentException
- 입력과 출력이 같은 객체인 경우
ReadOnlyBufferException
- 출력 버퍼가 읽어내 전용의 경우
ShortBufferException
- 출력 버퍼내에 남아 있는 용량이 부족한 경우- 도입된 버젼:
- 1.5
doFinal
public final byte[] doFinal()
throws IllegalBlockSizeException ,
BadPaddingException
- 복수의 부분으로부터 완성되는 암호화 또는 복호화 조작 (이 암호의 초기화 방법에 의해 다르다)을 종료합니다.
입력 데이터는 전의 update
조작중에 버퍼에 넣어져, 패딩 (요구되었을 경우)이 적용되고 있는 경우가 있습니다. 결과는 새로운 버퍼에 포함됩니다.
종료시에, 이 메소드는 이 암호 객체를 앞에 두고 init
를 호출해 초기화되었을 때 상태에 리셋 합니다. 즉, 객체는 리셋 되어, 한층 더 데이터를 암호화 또는 복호화 하기 위해서 사용할 수 있습니다 (init
의 호출로 지정된 조작 모드에 의해 다르다).
주:예외가 throw 되는 경우, 이 암호 객체는 리셋 하지 않으면 재차 사용할 수 없는 경우가 있습니다.
- 반환값:
- 결과가 들어간 새로운 버퍼
- 예외:
IllegalStateException
- 이 암호가 잘못한 상태에 있는 경우 (초기화되어 있지 않은 등)
IllegalBlockSizeException
- 이 암호가 블록 암호이며, 패딩이 요구되지 않고 (암호화 모드의 경우만), 이 암호로 처리된 데이터의 입력 길이의 합계가 블록 사이즈의 배수가 아닌 경우. 또는, 이 암호화 알고리즘이, 지정된 입력 데이터를 처리할 수 없는 경우
BadPaddingException
- 이 암호가 복호화 모드이며, 패딩 (또는 패딩 해제)이 요구되었지만, 복호화 된 데이터가 적절한 패딩 바이트로 바인드 되지 않는 경우
doFinal
public final int doFinal(byte[] output,
int outputOffset)
throws IllegalBlockSizeException ,
ShortBufferException ,
BadPaddingException
- 복수의 부분으로부터 완성되는 암호화 또는 복호화 조작 (이 암호의 초기화 방법에 의해 다르다)을 종료합니다.
입력 데이터는 전의 update
조작중에 버퍼에 넣어져, 패딩 (요구되었을 경우)이 적용되고 있는 경우가 있습니다. 결과는,outputOffset
로부터 시작되는 output
버퍼에 포함됩니다.
output
버퍼가 너무 작아 결과를 보관 유지할 수 없는 경우는,ShortBufferException
가 throw 됩니다. 이 경우, 보다 큰 출력 버퍼를 사용해 이 호출을 반복합니다. getOutputSize
를 사용해, 필요한 출력 버퍼의 사이즈를 판정합니다.
종료시에, 이 메소드는 이 암호 객체를 앞에 두고 init
를 호출해 초기화되었을 때 상태에 리셋 합니다. 즉, 객체는 리셋 되어, 한층 더 데이터를 암호화 또는 복호화 하기 위해서 사용할 수 있습니다 (init
의 호출로 지정된 조작 모드에 의해 다르다).
주:예외가 throw 되는 경우, 이 암호 객체는 리셋 하지 않으면 재차 사용할 수 없는 경우가 있습니다.
- 파라미터:
output
- 결과를 포함하는 버퍼outputOffset
- 결과가 포함되는 output
내의 오프셋(offset)
- 반환값:
output
에 포함된 바이트수
- 예외:
IllegalStateException
- 이 암호가 잘못한 상태에 있는 경우 (초기화되어 있지 않은 등)
IllegalBlockSizeException
- 이 암호가 블록 암호이며, 패딩이 요구되지 않고 (암호화 모드의 경우만), 이 암호로 처리된 데이터의 입력 길이의 합계가 블록 사이즈의 배수가 아닌 경우. 또는, 이 암호화 알고리즘이, 지정된 입력 데이터를 처리할 수 없는 경우
ShortBufferException
- 지정된 출력 버퍼가 너무 작아 결과를 보관 유지할 수 없는 경우
BadPaddingException
- 이 암호가 복호화 모드이며, 패딩 (또는 패딩 해제)이 요구되었지만, 복호화 된 데이터가 적절한 패딩 바이트로 바인드 되지 않는 경우
doFinal
public final byte[] doFinal(byte[] input)
throws IllegalBlockSizeException ,
BadPaddingException
- 단일의 부분으로부터 완성되는 조작으로 데이터를 암호화 또는 복호화 하는지, 복수의 부분으로부터 완성되는 조작을 종료합니다. 데이터는, 이 암호가 초기화된 방법에 따라, 암호화 또는 복호화 됩니다.
input
버퍼내의 바이트, 및 전의 update
조작중에 버퍼에 넣어진 가능성이 있는 모든 입력 바이트가 처리되어 패딩 (요구되었을 경우)이 적용됩니다. 결과는 새로운 버퍼에 포함됩니다.
종료시에, 이 메소드는 이 암호 객체를 앞에 두고 init
를 호출해 초기화되었을 때 상태에 리셋 합니다. 즉, 객체는 리셋 되어, 한층 더 데이터를 암호화 또는 복호화 하기 위해서 사용할 수 있습니다 (init
의 호출로 지정된 조작 모드에 의해 다르다).
주:예외가 throw 되는 경우, 이 암호 객체는 리셋 하지 않으면 재차 사용할 수 없는 경우가 있습니다.
- 파라미터:
input
- 입력 버퍼
- 반환값:
- 결과가 들어간 새로운 버퍼
- 예외:
IllegalStateException
- 이 암호가 잘못한 상태에 있는 경우 (초기화되어 있지 않은 등)
IllegalBlockSizeException
- 이 암호가 블록 암호이며, 패딩이 요구되지 않고 (암호화 모드의 경우만), 이 암호로 처리된 데이터의 입력 길이의 합계가 블록 사이즈의 배수가 아닌 경우. 또는, 이 암호화 알고리즘이, 지정된 입력 데이터를 처리할 수 없는 경우
BadPaddingException
- 이 암호가 복호화 모드이며, 패딩 (또는 패딩 해제)이 요구되었지만, 복호화 된 데이터가 적절한 패딩 바이트로 바인드 되지 않는 경우
doFinal
public final byte[] doFinal(byte[] input,
int inputOffset,
int inputLen)
throws IllegalBlockSizeException ,
BadPaddingException
- 단일의 부분으로부터 완성되는 조작으로 데이터를 암호화 또는 복호화 하는지, 복수의 부분으로부터 완성되는 조작을 종료합니다. 데이터는, 이 암호가 초기화된 방법에 따라, 암호화 또는 복호화 됩니다.
inputOffset
로부터 시작되는 input
버퍼내의 최초의 inputLen
바이트, 및 전의 update
조작으로 버퍼에 넣어진 가능성이 있는 모든 입력 바이트가 처리되어 패딩 (요구되었을 경우)이 적용됩니다. 결과는 새로운 버퍼에 포함됩니다.
종료시에, 이 메소드는 이 암호 객체를 앞에 두고 init
를 호출해 초기화되었을 때 상태에 리셋 합니다. 즉, 객체는 리셋 되어, 한층 더 데이터를 암호화 또는 복호화 하기 위해서 사용할 수 있습니다 (init
의 호출로 지정된 조작 모드에 의해 다르다).
주:예외가 throw 되는 경우, 이 암호 객체는 리셋 하지 않으면 재차 사용할 수 없는 경우가 있습니다.
- 파라미터:
input
- 입력 버퍼inputOffset
- 입력을 개시하는 input
내의 오프셋(offset)inputLen
- 입력 길이
- 반환값:
- 결과가 들어간 새로운 버퍼
- 예외:
IllegalStateException
- 이 암호가 잘못한 상태에 있는 경우 (초기화되어 있지 않은 등)
IllegalBlockSizeException
- 이 암호가 블록 암호이며, 패딩이 요구되지 않고 (암호화 모드의 경우만), 이 암호로 처리된 데이터의 입력 길이의 합계가 블록 사이즈의 배수가 아닌 경우. 또는, 이 암호화 알고리즘이, 지정된 입력 데이터를 처리할 수 없는 경우
BadPaddingException
- 이 암호가 복호화 모드이며, 패딩 (또는 패딩 해제)이 요구되었지만, 복호화 된 데이터가 적절한 패딩 바이트로 바인드 되지 않는 경우
doFinal
public final int doFinal(byte[] input,
int inputOffset,
int inputLen,
byte[] output)
throws ShortBufferException ,
IllegalBlockSizeException ,
BadPaddingException
- 단일의 부분으로부터 완성되는 조작으로 데이터를 암호화 또는 복호화 하는지, 복수의 부분으로부터 완성되는 조작을 종료합니다. 데이터는, 이 암호가 초기화된 방법에 따라, 암호화 또는 복호화 됩니다.
inputOffset
로부터 시작되는 input
버퍼내의 최초의 inputLen
바이트, 및 전의 update
조작으로 버퍼에 넣어진 가능성이 있는 모든 입력 바이트가 처리되어 패딩 (요구되었을 경우)이 적용됩니다. 결과는 output
버퍼에 포함됩니다.
output
버퍼가 너무 작아 결과를 보관 유지할 수 없는 경우는,ShortBufferException
가 throw 됩니다. 이 경우, 보다 큰 출력 버퍼를 사용해 이 호출을 반복합니다. getOutputSize
를 사용해, 필요한 출력 버퍼의 사이즈를 판정합니다.
종료시에, 이 메소드는 이 암호 객체를 앞에 두고 init
를 호출해 초기화되었을 때 상태에 리셋 합니다. 즉, 객체는 리셋 되어, 한층 더 데이터를 암호화 또는 복호화 하기 위해서 사용할 수 있습니다 (init
의 호출로 지정된 조작 모드에 의해 다르다).
주:예외가 throw 되는 경우, 이 암호 객체는 리셋 하지 않으면 재차 사용할 수 없는 경우가 있습니다.
주:이 메소드는 카피에 대해서 안전한 필요가 있습니다. 즉,input
및 output
버퍼는 같은 바이트 배열을 참조할 수가 있어 결과가 출력 버퍼에 카피될 때 미처리의 입력 데이터가 덧쓰기되지 않는 것이 필요합니다.
- 파라미터:
input
- 입력 버퍼inputOffset
- 입력을 개시하는 input
내의 오프셋(offset)inputLen
- 입력 길이output
- 결과를 포함하는 버퍼
- 반환값:
output
에 포함된 바이트수
- 예외:
IllegalStateException
- 이 암호가 잘못한 상태에 있는 경우 (초기화되어 있지 않은 등)
IllegalBlockSizeException
- 이 암호가 블록 암호이며, 패딩이 요구되지 않고 (암호화 모드의 경우만), 이 암호로 처리된 데이터의 입력 길이의 합계가 블록 사이즈의 배수가 아닌 경우. 또는, 이 암호화 알고리즘이, 지정된 입력 데이터를 처리할 수 없는 경우
ShortBufferException
- 지정된 출력 버퍼가 너무 작아 결과를 보관 유지할 수 없는 경우
BadPaddingException
- 이 암호가 복호화 모드이며, 패딩 (또는 패딩 해제)이 요구되었지만, 복호화 된 데이터가 적절한 패딩 바이트로 바인드 되지 않는 경우
doFinal
public final int doFinal(byte[] input,
int inputOffset,
int inputLen,
byte[] output,
int outputOffset)
throws ShortBufferException ,
IllegalBlockSizeException ,
BadPaddingException
- 단일의 부분으로부터 완성되는 조작으로 데이터를 암호화 또는 복호화 하는지, 복수의 부분으로부터 완성되는 조작을 종료합니다. 데이터는, 이 암호가 초기화된 방법에 따라, 암호화 또는 복호화 됩니다.
inputOffset
로부터 시작되는 input
버퍼내의 최초의 inputLen
바이트, 및 전의 update
조작으로 버퍼에 넣어진 가능성이 있는 모든 입력 바이트가 처리되어 패딩 (요구되었을 경우)이 적용됩니다. 결과는,outputOffset
로부터 시작되는 output
버퍼에 포함됩니다.
output
버퍼가 너무 작아 결과를 보관 유지할 수 없는 경우는,ShortBufferException
가 throw 됩니다. 이 경우, 보다 큰 출력 버퍼를 사용해 이 호출을 반복합니다. getOutputSize
를 사용해, 필요한 출력 버퍼의 사이즈를 판정합니다.
종료시에, 이 메소드는 이 암호 객체를 앞에 두고 init
를 호출해 초기화되었을 때 상태에 리셋 합니다. 즉, 객체는 리셋 되어, 한층 더 데이터를 암호화 또는 복호화 하기 위해서 사용할 수 있습니다 (init
의 호출로 지정된 조작 모드에 의해 다르다).
주:예외가 throw 되는 경우, 이 암호 객체는 리셋 하지 않으면 재차 사용할 수 없는 경우가 있습니다.
주:이 메소드는 카피에 대해서 안전한 필요가 있습니다. 즉,input
및 output
버퍼는 같은 바이트 배열을 참조할 수가 있어 결과가 출력 버퍼에 카피될 때 미처리의 입력 데이터가 덧쓰기되지 않는 것이 필요합니다.
- 파라미터:
input
- 입력 버퍼inputOffset
- 입력을 개시하는 input
내의 오프셋(offset)inputLen
- 입력 길이output
- 결과를 포함하는 버퍼outputOffset
- 결과가 포함되는 output
내의 오프셋(offset)
- 반환값:
output
에 포함된 바이트수
- 예외:
IllegalStateException
- 이 암호가 잘못한 상태에 있는 경우 (초기화되어 있지 않은 등)
IllegalBlockSizeException
- 이 암호가 블록 암호이며, 패딩이 요구되지 않고 (암호화 모드의 경우만), 이 암호로 처리된 데이터의 입력 길이의 합계가 블록 사이즈의 배수가 아닌 경우. 또는, 이 암호화 알고리즘이, 지정된 입력 데이터를 처리할 수 없는 경우
ShortBufferException
- 지정된 출력 버퍼가 너무 작아 결과를 보관 유지할 수 없는 경우
BadPaddingException
- 이 암호가 복호화 모드이며, 패딩 (또는 패딩 해제)이 요구되었지만, 복호화 된 데이터가 적절한 패딩 바이트로 바인드 되지 않는 경우
doFinal
public final int doFinal(ByteBuffer input,
ByteBuffer output)
throws ShortBufferException ,
IllegalBlockSizeException ,
BadPaddingException
- 단일의 부분으로부터 완성되는 조작으로 데이터를 암호화 또는 복호화 하는지, 복수의 부분으로부터 완성되는 조작을 종료합니다. 데이터는, 이 암호가 초기화된 방법에 따라, 암호화 또는 복호화 됩니다.
input.position()
로부터 시작되는 모든 input.remaining()
바이트가 처리됩니다. 결과는 출력 버퍼에 포함됩니다. 종료시에, 입력 버퍼의 위치는 리밋트에 동일해집니다만, 리밋트는 변경되지 않습니다. 출력 버퍼의 위치는 n 만 증가합니다. n 는, 이 메소드가 돌려주는 값입니다. 출력 버퍼의 리밋트는 변경되지 않습니다.
output.remaining()
바이트가 결과를 보관 유지하는데 불충분한 경우는,ShortBufferException
가 throw 됩니다. 이 경우, 보다 큰 출력 버퍼를 사용해 이 호출을 반복합니다. getOutputSize
를 사용해, 필요한 출력 버퍼의 사이즈를 판정합니다.
종료시에, 이 메소드는 이 암호 객체를 앞에 두고 init
를 호출해 초기화되었을 때 상태에 리셋 합니다. 즉, 객체는 리셋 되어, 한층 더 데이터를 암호화 또는 복호화 하기 위해서 사용할 수 있습니다 (init
의 호출로 지정된 조작 모드에 의해 다르다).
주:예외가 throw 되는 경우, 이 암호 객체는 리셋 하지 않으면 재차 사용할 수 없는 경우가 있습니다.
주:이 메소드는 카피에 대해서 안전한 필요가 있습니다. 즉,input
및 output
버퍼는 같은 바이트 배열을 참조할 수가 있어 결과가 출력 버퍼에 카피될 때 미처리의 입력 데이터가 덧쓰기되지 않는 것이 필요합니다.
- 파라미터:
input
- 입력 ByteBufferoutput
- 출력 ByteBuffer
- 반환값:
output
에 포함된 바이트수
- 예외:
IllegalStateException
- 이 암호가 잘못한 상태에 있는 경우 (초기화되어 있지 않은 등)
IllegalArgumentException
- 입력과 출력이 같은 객체인 경우
ReadOnlyBufferException
- 출력 버퍼가 읽어내 전용의 경우
IllegalBlockSizeException
- 이 암호가 블록 암호이며, 패딩이 요구되지 않고 (암호화 모드의 경우만), 이 암호로 처리된 데이터의 입력 길이의 합계가 블록 사이즈의 배수가 아닌 경우. 또는, 이 암호화 알고리즘이, 지정된 입력 데이터를 처리할 수 없는 경우
ShortBufferException
- 출력 버퍼내에 남아 있는 용량이 부족한 경우
BadPaddingException
- 이 암호가 복호화 모드이며, 패딩 (또는 패딩 해제)이 요구되었지만, 복호화 된 데이터가 적절한 패딩 바이트로 바인드 되지 않는 경우- 도입된 버젼:
- 1.5
wrap
public final byte[] wrap(Key key)
throws IllegalBlockSizeException ,
InvalidKeyException
- 열쇠를 랩 합니다.
- 파라미터:
key
- 랩 되는 열쇠
- 반환값:
- 랩 된 열쇠
- 예외:
IllegalStateException
- 이 암호가 잘못한 상태에 있는 경우 (초기화되어 있지 않은 등)
IllegalBlockSizeException
- 이 암호가 블록 암호이며, 패딩이 요구되지 않고, 랩 되는 열쇠의 인코딩의 길이가 블록 사이즈의 배수가 아닌 경우
InvalidKeyException
- 이 암호를 사용해 열쇠를 랩 하는 것이 불가능한가 안전하지 않은 경우 (하드웨어 보호된 열쇠가 소프트웨어만의 암호에게 건네지는 경우 등)
unwrap
public final Key unwrap(byte[] wrappedKey,
String wrappedKeyAlgorithm,
int wrappedKeyType)
throws InvalidKeyException ,
NoSuchAlgorithmException
- 전에 랩 된 열쇠를 랩 해제합니다.
- 파라미터:
wrappedKey
- 랩이 해제되는 열쇠wrappedKeyAlgorithm
- 랩 된 열쇠에 관련한 알고리즘wrappedKeyType
- 랩 된 열쇠의 타입. SECRET_KEY
,PRIVATE_KEY
, 또는 PUBLIC_KEY
의 어떤 것인가일 필요가 있다
- 반환값:
- 랩 해제된 열쇠
- 예외:
IllegalStateException
- 이 암호가 잘못한 상태에 있는 경우 (초기화되어 있지 않은 등)
NoSuchAlgorithmException
- 인스톨 되고 있는 어느 프로바이더도 wrappedKeyAlgorithm
의 타입 wrappedKeyType
의 열쇠를 작성할 수 없는 경우
InvalidKeyException
- wrappedKey
가 wrappedKeyAlgorithm
의 wrappedKeyType
타입의 랩 된 열쇠를 나타내지 않는 경우
getMaxAllowedKeyLength
public static final int getMaxAllowedKeyLength(String transformation)
throws NoSuchAlgorithmException
- 인스톨 되고 있는 JCE 관할 정책 파일에 따라, 지정된 변환의 열쇠의 최대 길이을 돌려줍니다. 강도가 무제한의 JCE 관할 정책 파일이 인스톨 되고 있는 경우는, Integer.MAX_VALUE 가 돌려주어집니다. JCE 관할 정책 파일의 열쇠의 디폴트 사이즈에 대해서는, 「Java 암호화 아키텍쳐(architecture) 레퍼런스 가이드」의 부록 E 를 참조해 주세요.
- 파라미터:
transformation
- 암호 변환
- 반환값:
- 비트 단위의 열쇠의 최대 길이 또는 Integer.MAX_VALUE
- 예외:
NullPointerException
- transformation
가 null 의 경우
NoSuchAlgorithmException
- transformation
가 유효한 변환이 아닌 경우. 즉, 「algorithm」또는 「algorithm/mode/padding」의 형식이 아닌 경우- 도입된 버젼:
- 1.5
getMaxAllowedParameterSpec
public static final AlgorithmParameterSpec getMaxAllowedParameterSpec(String transformation)
throws NoSuchAlgorithmException
- 관할 정책 파일에 따라, 최대의 암호 파라미터치를 포함한 AlgorithmParameterSpec 객체를 돌려줍니다. 강도가 무제한의 JCE 관할 정책 파일이 인스톨 되고 있는 경우, 또는 지정된 변환의 파라미터의 최대 리밋트가 정책 파일에 존재하지 않는 경우, null 가 돌려주어집니다.
- 파라미터:
transformation
- 암호 변환
- 반환값:
- 최대치를 보관 유지하는 AlgorithmParameterSpec 또는 null
- 예외:
NullPointerException
- transformation
가 null 의 경우
NoSuchAlgorithmException
- transformation
가 유효한 변환이 아닌 경우. 즉, 「algorithm」또는 「algorithm/mode/padding」의 형식이 아닌 경우- 도입된 버젼:
- 1.5
개요
패키지
클래스
사용
계층 트리
비추천 API
색인
헬프
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 도 참조해 주세요.