JavaTM Platform
Standard Ed. 6

javax.crypto
클래스 Cipher

java.lang.Object 
  상위를 확장 javax.crypto.Cipher
직계의 기존의 서브 클래스:
NullCipher


public class Cipher
extends Object

이 클래스는, 암호화 및 복호화의 암호 기능을 제공합니다. 이것은, JCE (Java Cryptographic Extension) 시스템의 코어 부분을 구성합니다.

Cipher 객체를 생성하려면 , 어플리케이션은 Cipher 의 getInstance 메소드를 호출해, 요구된 「변환」의 이름을 건네줍니다. 필요에 따라서, 프로바이더의 이름을 지정할 수가 있습니다.

「변환」은, 지정된 입력에 대해서 실행해, 어떠한 출력을 생성하는 조작 (또는 조작세트)을 설명하는 캐릭터 라인입니다. 변환에는, 암호화 알고리즘 (DES 등)의 이름이 반드시 포함됩니다. 거기에 피드백 모드 및 패딩 방식이 계속되는 경우도 있습니다.

변환은, 다음의 서식에서 기술됩니다.

후자의 경우, 모드 및 패딩 방식에는, 프로바이더 고유의 디폴트 값가 사용됩니다. 예를 들어, 이하는 유효한 변환입니다.

Cipher c = Cipher.getInstance("DES/CBC/PKCS5Padding");
 
CFBOFB 등의 모드를 사용하면(자), 블록 암호는, 암호의 실제의 블록 사이즈보다 작은 단위로 데이터를 암호화할 수 있습니다. 이러한 모드를 요구하는 경우, 「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 - delegate
provider - 프로바이더
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 의 경우, 이 메소드는 길이 제로를 돌려줍니다.

주:이 메소드는 카피에 대해서 안전한 필요가 있습니다. 즉,inputoutput 버퍼는 같은 바이트 배열을 참조할 수가 있어 결과가 출력 버퍼에 카피될 때 미처리의 입력 데이터가 덧쓰기되지 않는 것이 필요합니다.

파라미터:
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 의 경우, 이 메소드는 길이 제로를 돌려줍니다.

주:이 메소드는 카피에 대해서 안전한 필요가 있습니다. 즉,inputoutput 버퍼는 같은 바이트 배열을 참조할 수가 있어 결과가 출력 버퍼에 카피될 때 미처리의 입력 데이터가 덧쓰기되지 않는 것이 필요합니다.

파라미터:
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 를 사용해, 필요한 출력 버퍼의 사이즈를 판정합니다.

주:이 메소드는 카피에 대해서 안전한 필요가 있습니다. 즉,inputoutput 버퍼는 같은 메모리 블록을 참조할 수가 있어 결과가 출력 버퍼에 카피될 때 미처리의 입력 데이터가 덧쓰기되지 않는 것이 필요합니다.

파라미터:
input - 입력 ByteBuffer
output - 출력 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 되는 경우, 이 암호 객체는 리셋 하지 않으면 재차 사용할 수 없는 경우가 있습니다.

주:이 메소드는 카피에 대해서 안전한 필요가 있습니다. 즉,inputoutput 버퍼는 같은 바이트 배열을 참조할 수가 있어 결과가 출력 버퍼에 카피될 때 미처리의 입력 데이터가 덧쓰기되지 않는 것이 필요합니다.

파라미터:
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 되는 경우, 이 암호 객체는 리셋 하지 않으면 재차 사용할 수 없는 경우가 있습니다.

주:이 메소드는 카피에 대해서 안전한 필요가 있습니다. 즉,inputoutput 버퍼는 같은 바이트 배열을 참조할 수가 있어 결과가 출력 버퍼에 카피될 때 미처리의 입력 데이터가 덧쓰기되지 않는 것이 필요합니다.

파라미터:
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 되는 경우, 이 암호 객체는 리셋 하지 않으면 재차 사용할 수 없는 경우가 있습니다.

주:이 메소드는 카피에 대해서 안전한 필요가 있습니다. 즉,inputoutput 버퍼는 같은 바이트 배열을 참조할 수가 있어 결과가 출력 버퍼에 카피될 때 미처리의 입력 데이터가 덧쓰기되지 않는 것이 필요합니다.

파라미터:
input - 입력 ByteBuffer
output - 출력 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 - wrappedKeywrappedKeyAlgorithmwrappedKeyType 타입의 랩 된 열쇠를 나타내지 않는 경우

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

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