Package com.penta.sdk.ka
Class IssacKACONTEXT
- java.lang.Object
-
- com.penta.sdk.ka.IssacKACONTEXT
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable
public class IssacKACONTEXT extends java.lang.Object implements java.io.Closeable세션키(symmetric) 공유를 위한 정보를 담는 클래스암호학적으로 안전한 임의의 정보, 세션키를 공유하고자 하는 상대방으로부터 공개된 채널을 통해 전달받은 정보를 생성하고 세션키를 얻어내는데 사용된다.
-
-
Field Summary
Fields Modifier and Type Field Description static intHAS160static intISSAC_EC_CURVE_P192NIST curve P-192static intISSAC_EC_CURVE_P224NIST curve P-224static intISSAC_EC_CURVE_P256NIST curve P-256static intISSAC_EC_CURVE_P384NIST curve P-384static intISSAC_EC_CURVE_P521NIST curve P-521static intKEX_DHdefined in PKCS#3static intKEX_DH_X9_42defined in X9.42static intKEX_ECCDHstatic intKEX_ECDHstatic intSHA1static intSHA256
-
Constructor Summary
Constructors Constructor Description IssacKACONTEXT()생성자 (KEX_DH)IssacKACONTEXT(int dhType)생성자 (타입 설정 가능)IssacKACONTEXT(int dhType, boolean initWithDefaultValue)생성자 (타입 설정 가능)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidclose()voidDelete()Deprecated.Resource Leak 의 효율적인 관리를 위해 close() 를 사용할 것을 권장함.voidFinalize(byte[] sessioninfo)세션키를 공유하고자 하는 상대방이 보낸 세션정보를 이용하여 세션 공유 정보를 완성한다.byte[]GenerateKey(int keyLen)세션키를 얻는다.byte[]getKacontext()Deprecated.참조값은 바이너리 데이터가 아니므로 외부에선 절대 사용하지 않도록 한다!byte[]GetSessionKey(int key_len)세션키를 얻는다.byte[]Initialize()세션키 공유를 위한 세션정보가 결정된다.voidSetKDF(int hashAlg)KDF(키유도함수)에 사용될 해시 알고리즘을 설정한다.voidSetKDF(int unused, int hashAlg)Deprecated.사용하지 않는 인자를 입력해야 한다.voidSetParam_ECDH(int curve_id)KEX_ECDH 또는 KEX_ECCDH 인 경우 커브를 설정한다.voidSetParam_PeerCertificate(IssacCERTIFICATE cert)voidSetParam_PeerPublicKey(IssacPUBLICKEY pubKey)voidSetParam_PrivateKey(IssacPRIVATEKEY priKey)
-
-
-
Field Detail
-
ISSAC_EC_CURVE_P192
public static final int ISSAC_EC_CURVE_P192
NIST curve P-192- See Also:
- Constant Field Values
-
ISSAC_EC_CURVE_P224
public static final int ISSAC_EC_CURVE_P224
NIST curve P-224- See Also:
- Constant Field Values
-
ISSAC_EC_CURVE_P256
public static final int ISSAC_EC_CURVE_P256
NIST curve P-256- See Also:
- Constant Field Values
-
ISSAC_EC_CURVE_P384
public static final int ISSAC_EC_CURVE_P384
NIST curve P-384- See Also:
- Constant Field Values
-
ISSAC_EC_CURVE_P521
public static final int ISSAC_EC_CURVE_P521
NIST curve P-521- See Also:
- Constant Field Values
-
KEX_DH
public static final int KEX_DH
defined in PKCS#3- See Also:
- Constant Field Values
-
KEX_DH_X9_42
public static final int KEX_DH_X9_42
defined in X9.42- See Also:
- Constant Field Values
-
KEX_ECDH
public static final int KEX_ECDH
- See Also:
- Constant Field Values
-
KEX_ECCDH
public static final int KEX_ECCDH
- See Also:
- Constant Field Values
-
HAS160
public static final int HAS160
- See Also:
- Constant Field Values
-
SHA1
public static final int SHA1
- See Also:
- Constant Field Values
-
SHA256
public static final int SHA256
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
IssacKACONTEXT
public IssacKACONTEXT() throws IssacSDKException생성자 (KEX_DH)Note: 사용이 끝나면 close()를 호출해야 한다.
- Throws:
IssacSDKException- 오류 발생- See Also:
close()
-
IssacKACONTEXT
public IssacKACONTEXT(int dhType) throws IssacSDKException생성자 (타입 설정 가능)Note: 사용이 끝나면 close()를 호출해야 한다.
- Parameters:
dhType- [IN] DH 타입 [KEX_DH, KEX_DH_X9_42, KEX_ECDH, KEX_ECCDH]- Throws:
IssacSDKException- 오류 발생- See Also:
close()
-
IssacKACONTEXT
public IssacKACONTEXT(int dhType, boolean initWithDefaultValue) throws IssacSDKException생성자 (타입 설정 가능)Note: 사용이 끝나면 close()를 호출해야 한다.
- Parameters:
dhType- [IN] DH 타입 [KEX_DH, KEX_DH_X9_42, KEX_ECDH, KEX_ECCDH]initWithDefaultValue- [IN] 기본값으로 초기화 여부- Throws:
IssacSDKException- 오류 발생- See Also:
close()
-
-
Method Detail
-
getKacontext
public byte[] getKacontext()
Deprecated.참조값은 바이너리 데이터가 아니므로 외부에선 절대 사용하지 않도록 한다!IssacKACONTEXT 객체의 참조값을 리턴한다.- Returns:
- IssacKACONTEXT 객체의 참조값
-
Initialize
public byte[] Initialize() throws IssacSDKException세션키 공유를 위한 세션정보가 결정된다.- Returns:
- 세션키 공유를 위한 세션정보
- Throws:
IssacSDKException- 오류 발생- See Also:
Finalize(byte[])
-
SetParam_ECDH
public void SetParam_ECDH(int curve_id) throws IssacSDKExceptionKEX_ECDH 또는 KEX_ECCDH 인 경우 커브를 설정한다. 반드시 Initialize()를 호출하기 전에 설정해야 한다.- Parameters:
curve_id- [IN] 커브 ID [ ISSAC_EC_CURVE_P192(0), ISSAC_EC_CURVE_P224(1), ISSAC_EC_CURVE_P256(2), ISSAC_EC_CURVE_P384(3), ISSAC_EC_CURVE_P521(4) ]- Throws:
IssacSDKException- 오류 발생
-
SetKDF
public void SetKDF(int unused, int hashAlg) throws IssacSDKExceptionDeprecated.사용하지 않는 인자를 입력해야 한다.KDF(키유도함수) 관련 정보를 설정한다.- Parameters:
unused- [IN] 사용되지 않음hashAlg- [IN] KDF에 사용될 해시 알고리즘 [ HAS160(1), SHA1(2), SHA256(6) ]- Throws:
IssacSDKException- 오류 발생
-
SetKDF
public void SetKDF(int hashAlg) throws IssacSDKExceptionKDF(키유도함수)에 사용될 해시 알고리즘을 설정한다.- Parameters:
hashAlg- [IN] KDF에 사용될 해시 알고리즘 [ HAS160(1), SHA1(2), SHA256(6) ]- Throws:
IssacSDKException- 오류 발생
-
Finalize
public void Finalize(byte[] sessioninfo) throws IssacSDKException세션키를 공유하고자 하는 상대방이 보낸 세션정보를 이용하여 세션 공유 정보를 완성한다.이 함수가 수행된 이후에는 세션키를 얻어낼 수 있다.
- Parameters:
sessioninfo- [IN] 세션키 공유를 위해 상대방이 보낸 세션정보- Throws:
IssacSDKException- 오류 발생- See Also:
Initialize(),GetSessionKey(int)
-
GetSessionKey
public byte[] GetSessionKey(int key_len) throws IssacSDKException세션키를 얻는다.여기서 IssacKACONTEXT 객체는 이미 Initialize와 Finalize를 거쳐서 양단간의 공유하고자 하는 세션 정보를 모두 포함하고 있는 상태이어야 한다.
- Parameters:
key_len- [IN] 공유할 세션키의 바이트 길이. 즉 128 비트는 16, 160 비트는 20을 입력해야 한다.- Returns:
- 공유된 세션키
- Throws:
IssacSDKException- 오류 발생- See Also:
Initialize(),Finalize(byte[])
-
SetParam_PrivateKey
public void SetParam_PrivateKey(IssacPRIVATEKEY priKey) throws IssacSDKException
- Throws:
IssacSDKException
-
SetParam_PeerPublicKey
public void SetParam_PeerPublicKey(IssacPUBLICKEY pubKey) throws IssacSDKException
- Throws:
IssacSDKException
-
SetParam_PeerCertificate
public void SetParam_PeerCertificate(IssacCERTIFICATE cert) throws IssacSDKException
- Throws:
IssacSDKException
-
GenerateKey
public byte[] GenerateKey(int keyLen) throws IssacSDKException세션키를 얻는다.여기서 IssacKACONTEXT 객체는 이미 Initialize와 Finalize를 거쳐서 양단간의 공유하고자 하는 세션 정보를 모두 포함하고 있는 상태이어야 한다.
- Parameters:
keyLen- [IN] 공유할 세션키의 바이트 길이. 즉 128 비트는 16, 160 비트는 20을 입력해야 한다.- Returns:
- 공유된 세션키
- Throws:
IssacSDKException- 오류 발생- See Also:
Initialize(),Finalize(byte[])
-
Delete
public void Delete() throws IssacSDKExceptionDeprecated.Resource Leak 의 효율적인 관리를 위해 close() 를 사용할 것을 권장함.세션키 공유 정보를 삭제한다.- Throws:
IssacSDKException- 오류 발생- See Also:
IssacKACONTEXT()
-
close
public void close() throws IssacSDKException- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Throws:
IssacSDKException
-
-