Package com.penta.sdk.pe
Class IssacPE
- java.lang.Object
-
- com.penta.sdk.pe.IssacPE
-
public class IssacPE extends java.lang.Object공개키 암복호화 기능을 처리하는 클래스 (PKCS#8 EnvelopedData 또는 단순 공개키 암복호화)
-
-
Constructor Summary
Constructors Constructor Description IssacPE()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static byte[]AppendHeader(byte[] ciphertext)Deprecated.사이즈 제한이 있음 (65kb 이상은 미지원)static byte[]Decrypt(byte[] ciphertext, IssacCERTIFICATE cert, IssacPRIVATEKEY privatekey)PKCS#7 EnvelopedData 메시지를 복호화하여 원문을 가져온다.static byte[]Decrypt(byte[] ciphertext, IssacPRIVATEKEY privatekey)PKCS#7 EnvelopedData 메시지를 복호화하여 원문을 가져온다.static voidDecrypt_File(java.lang.String plaintext_file, java.lang.String ciphertext_file, IssacCERTIFICATE cert, IssacPRIVATEKEY privatekey)Decrypt()와 같은 기능을 수행하지만, 입력과 출력으로 주어지는 정보가 파일의 형태이다.static voidDecrypt_File(java.lang.String plaintext_file, java.lang.String ciphertext_file, IssacPRIVATEKEY privatekey)Decrypt()와 같은 기능을 수행하지만, 입력과 출력으로 주어지는 정보가 파일의 형태이다.static byte[]Encrypt(byte[] plaintext, IssacCERTIFICATE cert, int cipher_id)PKCS#7 EnvelopedData 메시지를 만든다.static byte[]Encrypt(byte[] plaintext, IssacCERTIFICATES certs, int cipher_id)PKCS#7 EnvelopedData 메시지를 만든다.static voidEncrypt_File(java.lang.String ciphertext_file, java.lang.String plaintext_file, IssacCERTIFICATE cert, int cipher_id)Encrypt()와 같은 기능을 수행하지만, 입력과 출력으로 주어지는 메시지와 암호화 결과가 파일의 형태를 갖는다.static voidEncrypt_File(java.lang.String ciphertext_file, java.lang.String plaintext_file, IssacCERTIFICATES certs, int cipher_id)Encrypt()와 같은 기능을 수행하지만, 입력과 출력으로 주어지는 메시지와 암호화 결과가 파일의 형태를 갖는다.byte[]EncryptGetKey(byte[] plaintext, IssacCERTIFICATES certs, int cipher_id)PKCS#7 EnvelopedData 메시지를 만든다.byte[]GetSessionKeyFromCipherText(byte[] ciphertext, IssacCERTIFICATE cert, IssacPRIVATEKEY privatekey)PKCS#8 EnvelopedData에서 세션키를 가져온다.static byte[]RemoveHeader(byte[] pkcs7)Deprecated.사이즈 제한이 있음 (65kb 이상은 미지원)static byte[]RSA15_DecryptRawBytes(byte[] ciphertext, IssacPRIVATEKEY key)Deprecated.기존 API 호환용.static byte[]RSA15_EncryptRawBytes(byte[] plaintext, IssacPUBLICKEY key)Deprecated.잘못된 패딩 방법이 사용되므로 다른 모듈과 호환되지 않는다.static byte[]RSA15_RSAES_Decrypt(byte[] ciphertext, IssacPRIVATEKEY key)RSA 복호화static byte[]RSA15_RSAES_Encrypt(byte[] plaintext, IssacPUBLICKEY key)RSA 암호화
-
-
-
Field Detail
-
SEED
public static final int SEED
- See Also:
- Constant Field Values
-
TDES
public static final int TDES
- See Also:
- Constant Field Values
-
AES128
public static final int AES128
- See Also:
- Constant Field Values
-
AES256
public static final int AES256
- See Also:
- Constant Field Values
-
ARIA128
public static final int ARIA128
- See Also:
- Constant Field Values
-
ARIA192
public static final int ARIA192
- See Also:
- Constant Field Values
-
ARIA256
public static final int ARIA256
- See Also:
- Constant Field Values
-
-
Method Detail
-
GetSessionKeyFromCipherText
public byte[] GetSessionKeyFromCipherText(byte[] ciphertext, IssacCERTIFICATE cert, IssacPRIVATEKEY privatekey) throws IssacSDKExceptionPKCS#8 EnvelopedData에서 세션키를 가져온다.- Parameters:
ciphertext- [IN] PKCS#8 EnvelopedDatacert- [IN] 수신자의 인증서privatekey- [IN] 수신자의 개인키- Returns:
- 세션키
- Throws:
IssacSDKException- 오류 발생
-
Encrypt
public static byte[] Encrypt(byte[] plaintext, IssacCERTIFICATE cert, int cipher_id) throws IssacSDKExceptionPKCS#7 EnvelopedData 메시지를 만든다.임의로 안전하게 생성된 비밀키를 이용하여 메시지를 암호화하고, 이 비밀키를 상대방의 공개키로 다시 암호화한다.
수신자의 인증서인 Cert 에 대해서는 이 함수를 수행하기 이전에 검증 절차(Verify 등 이용)를 수행하여 적법하며 유효한지를 확인한 것이라고 가정한다.
비밀키 암호화에 사용되는 알고리즘은 함수의 호출 단계에서 cipher_id 인자로 결정 지을 수 있다.- Parameters:
plaintext- [IN] 암호화될 메시지cert- [IN] 수신자의 인증서cipher_id- [IN] 메시지 암호화에 사용될 비밀키 암호 알고리즘 [ SEED(2), TDES(4), AES128(6), AES256(12), ARIA128(9), ARIA192(10), ARIA256(11) ]- Returns:
- 암호화된 메시지
- Throws:
IssacSDKException- 오류 발생- See Also:
IssacCERTIFICATE.Verify(IssacPATHS, IssacCERTIFICATES, IssacCERTIFICATES, IssacPOLICYCONTEXT, IssacCRL, Date, int),IssacCERTIFICATE.Verify(IssacPATHS, IssacCERTIFICATES, IssacCERTIFICATES, IssacPOLICYCONTEXT, IssacCRL, int),Decrypt(byte[], IssacPRIVATEKEY)
-
Encrypt
public static byte[] Encrypt(byte[] plaintext, IssacCERTIFICATES certs, int cipher_id) throws IssacSDKExceptionPKCS#7 EnvelopedData 메시지를 만든다. (수신자가 여러명인 경우)임의로 안전하게 생성된 비밀키를 이용하여 메시지를 암호화하고, 이 비밀키를 복수개의 상대방의(한명도 가능함) 공개키로 다시 암호화한다.
수신자의 인증서들인 Certs에 대해서는 이 함수를 수행하기 이전에 검증 절차(com.penta.sdk.bs.IssacCERTIFICATE.Verify 등을 이용)를 수행하여 적법하며 유효한지를 확인한 것이라고 가정한다.
이 함수로 암호화된 정보는 Decrypt(byte[], IssacCERTIFICATE, IssacPRIVATEKEY) method를 사용하여 복호화할 수 있다.
Decrypt(byte[] ,IssacPRIVATEKEY ) method를 사용하면 안된다.- Parameters:
plaintext- [IN] 암호화될 메세지certs- [IN] 수신자들의 인증서 집합cipher_id- [IN] 메세지 암호화에 사용될 비밀키 암호 알고리즘 [ SEED(2), TDES(4), AES128(6), AES256(12), ARIA128(9), ARIA192(10), ARIA256(11) ]- Returns:
- 암호화된 메세지
- Throws:
IssacSDKException- 오류 발생- See Also:
IssacCERTIFICATE.Verify(IssacPATHS, IssacCERTIFICATES, IssacCERTIFICATES, IssacPOLICYCONTEXT, IssacCRL, Date, int),IssacCERTIFICATE.Verify(IssacPATHS, IssacCERTIFICATES, IssacCERTIFICATES, IssacPOLICYCONTEXT, IssacCRL, int),Decrypt(byte[], IssacCERTIFICATE, IssacPRIVATEKEY)
-
EncryptGetKey
public byte[] EncryptGetKey(byte[] plaintext, IssacCERTIFICATES certs, int cipher_id) throws IssacSDKExceptionPKCS#7 EnvelopedData 메시지를 만든다. (수신자가 여러명인 경우)Encrypt()와 같으나 암호화 과정중에 생기는 세션키를 객체 내부에 저장한다.
- Parameters:
plaintext- [IN] 암호화될 메세지certs- [IN] 수신자들의 인증서 집합cipher_id- [IN] 메세지 암호화에 사용될 비밀키 암호 알고리즘 [ SEED(2), TDES(4), AES128(6), AES256(12), ARIA128(9), ARIA192(10), ARIA256(11) ]- Returns:
- 암호화된 메세지
- Throws:
IssacSDKException- 오류 발생- See Also:
IssacCERTIFICATE.Verify(IssacPATHS, IssacCERTIFICATES, IssacCERTIFICATES, IssacPOLICYCONTEXT, IssacCRL, Date, int),IssacCERTIFICATE.Verify(IssacPATHS, IssacCERTIFICATES, IssacCERTIFICATES, IssacPOLICYCONTEXT, IssacCRL, int),Decrypt(byte[], IssacCERTIFICATE, IssacPRIVATEKEY)
-
Decrypt
public static byte[] Decrypt(byte[] ciphertext, IssacPRIVATEKEY privatekey) throws IssacSDKExceptionPKCS#7 EnvelopedData 메시지를 복호화하여 원문을 가져온다.- Parameters:
ciphertext- [IN] PKCS#7 EnvelopedDataprivatekey- [IN] 수신자의 개인키- Returns:
- 복호화된 메시지
- Throws:
IssacSDKException- 오류 발생- See Also:
Encrypt(byte[], IssacCERTIFICATE, int)
-
Decrypt
public static byte[] Decrypt(byte[] ciphertext, IssacCERTIFICATE cert, IssacPRIVATEKEY privatekey) throws IssacSDKExceptionPKCS#7 EnvelopedData 메시지를 복호화하여 원문을 가져온다.수신자의 인증서를 입력하여 복수개의 수신자 중에 어느 수신자인지를 판별할 수 있게 해준다.
- Parameters:
ciphertext- [IN] PKCS#7 EnvelopedDatacert- [IN] 수신자의 인증서privatekey- [IN] 수신자의 개인키- Returns:
- 복호화된 메시지
- Throws:
IssacSDKException- 오류 발생- See Also:
Encrypt(byte[], IssacCERTIFICATE, int),Encrypt(byte[], IssacCERTIFICATES, int)
-
Encrypt_File
public static void Encrypt_File(java.lang.String ciphertext_file, java.lang.String plaintext_file, IssacCERTIFICATE cert, int cipher_id) throws IssacSDKExceptionEncrypt()와 같은 기능을 수행하지만, 입력과 출력으로 주어지는 메시지와 암호화 결과가 파일의 형태를 갖는다.- Parameters:
ciphertext_file- [IN] 생성될 PKCS#7 EnvelopedData 파일의 경로plaintext_file- [IN] 암호화될 파일의 경로cert- [IN] 수신자의 인증서cipher_id- [IN] 암호화과정에서 비밀키 암호화를 위해 사용될 알고리즘 [ SEED(2), TDES(4), AES128(6), AES256(12), ARIA128(9), ARIA192(10), ARIA256(11) ]- Throws:
IssacSDKException- 오류 발생- See Also:
Encrypt(byte[], IssacCERTIFICATE, int),Decrypt_File(String, String, IssacPRIVATEKEY)
-
Encrypt_File
public static void Encrypt_File(java.lang.String ciphertext_file, java.lang.String plaintext_file, IssacCERTIFICATES certs, int cipher_id) throws IssacSDKExceptionEncrypt()와 같은 기능을 수행하지만, 입력과 출력으로 주어지는 메시지와 암호화 결과가 파일의 형태를 갖는다.- Parameters:
ciphertext_file- [IN] 생성될 PKCS#7 EnvelopedData 파일의 경로plaintext_file- [IN] 암호화될 파일의 경로certs- [IN] 수신자들의 인증서 집합cipher_id- [IN] 암호화과정에서 비밀키 암호화를 위해 사용될 알고리즘 [ SEED(2), TDES(4), AES128(6), AES256(12), ARIA128(9), ARIA192(10), ARIA256(11) ]- Throws:
IssacSDKException- 오류 발생- See Also:
Encrypt(byte[], IssacCERTIFICATES, int),Decrypt_File(String, String, IssacCERTIFICATE, IssacPRIVATEKEY)
-
Decrypt_File
public static void Decrypt_File(java.lang.String plaintext_file, java.lang.String ciphertext_file, IssacPRIVATEKEY privatekey) throws IssacSDKExceptionDecrypt()와 같은 기능을 수행하지만, 입력과 출력으로 주어지는 정보가 파일의 형태이다.- Parameters:
plaintext_file- [IN] 복호화된 원문이 저장될 파일의 경로ciphertext_file- [IN] PKCS#7 EnvelopedData 파일의 경로privatekey- [IN] 수신자의 개인키- Throws:
IssacSDKException- 오류 발생- See Also:
Decrypt(byte[], IssacPRIVATEKEY),Encrypt_File(String, String, IssacCERTIFICATE, int)
-
Decrypt_File
public static void Decrypt_File(java.lang.String plaintext_file, java.lang.String ciphertext_file, IssacCERTIFICATE cert, IssacPRIVATEKEY privatekey) throws IssacSDKExceptionDecrypt()와 같은 기능을 수행하지만, 입력과 출력으로 주어지는 정보가 파일의 형태이다.- Parameters:
plaintext_file- [IN] 복호화된 원문이 저장될 파일의 경로ciphertext_file- [IN] PKCS#7 EnvelopedData 파일의 경로cert- [IN] 수신자의 인증서privatekey- [IN] 수신자의 개인키- Throws:
IssacSDKException- 오류 발생- See Also:
Decrypt(byte[], IssacCERTIFICATE, IssacPRIVATEKEY),Encrypt_File(String, String, IssacCERTIFICATE, int),Encrypt_File(String, String, IssacCERTIFICATES, int)
-
AppendHeader
public static byte[] AppendHeader(byte[] ciphertext) throws IssacSDKExceptionDeprecated.사이즈 제한이 있음 (65kb 이상은 미지원)PKCS#7 EnvelopedData 에 헤더를 붙여 PKCS#7 메시지를 생성한다.- Parameters:
ciphertext- [IN] PKCS#7 EnvelopedData- Returns:
- PKCS#7 메시지
- Throws:
IssacSDKException- 오류 발생
-
RemoveHeader
public static byte[] RemoveHeader(byte[] pkcs7) throws IssacSDKExceptionDeprecated.사이즈 제한이 있음 (65kb 이상은 미지원)PKCS#7 메시지에서 헤더를 삭제하여 PKCS#7 EnvelopedData를 가져온다.- Parameters:
pkcs7- [IN] PKCS#7 메시지- Returns:
- PKCS#7 EnvelopedData
- Throws:
IssacSDKException- 오류 발생
-
RSA15_EncryptRawBytes
public static byte[] RSA15_EncryptRawBytes(byte[] plaintext, IssacPUBLICKEY key) throws IssacSDKExceptionDeprecated.잘못된 패딩 방법이 사용되므로 다른 모듈과 호환되지 않는다. 기존 서버와의 호환 목적이 아니라면 RSA15_RSAES_Encrypt() 를 사용하도록 한다.RSA 암호화- Parameters:
plaintext- [IN] 원문key- [IN] 공개키- Returns:
- 암호문
- Throws:
IssacSDKException- 오류 발생
-
RSA15_DecryptRawBytes
public static byte[] RSA15_DecryptRawBytes(byte[] ciphertext, IssacPRIVATEKEY key) throws IssacSDKExceptionDeprecated.기존 API 호환용. RSA15_RSAES_Decrypt() 를 사용하도록 한다.RSA 복호화- Parameters:
ciphertext- [IN] 암호문key- [IN] 개인키- Returns:
- 원문
- Throws:
IssacSDKException- 오류 발생
-
RSA15_RSAES_Encrypt
public static byte[] RSA15_RSAES_Encrypt(byte[] plaintext, IssacPUBLICKEY key) throws IssacSDKExceptionRSA 암호화- Parameters:
plaintext- [IN] 원문key- [IN] 공개키- Returns:
- 암호문
- Throws:
IssacSDKException- 오류 발생
-
RSA15_RSAES_Decrypt
public static byte[] RSA15_RSAES_Decrypt(byte[] ciphertext, IssacPRIVATEKEY key) throws IssacSDKExceptionRSA 복호화- Parameters:
ciphertext- [IN] 암호문key- [IN] 개인키- Returns:
- 원문
- Throws:
IssacSDKException- 오류 발생
-
-