Package com.penta.sdk.easig
Class IssacEASIGCONTEXT
- java.lang.Object
-
- com.penta.sdk.easig.IssacEASIGCONTEXT
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable
public class IssacEASIGCONTEXT extends java.lang.Object implements java.io.Closeable객체인증을 처리하는 클래스개요 IssacEASIGCONTEXT은 객체 인증에 있어 전자서명 방식 인증을 구현한 것이다. 현재 영지식 인증 방식의 IssacEACONTEXT과 전자서명 인증 방식의 IssacEASIGCONTEXT가 구현되어 있다. 지원되는 서명 알고리즘은 KCDSA와 RSA이다. 구조 설명 전자 서명 인증 방식인 IssacEASIGCONTEXT모듈에서는 단방향 인증과 양방향 인증 모두를 제공한다. [단방향 인증] 1) 검증자가 주장자에게 도전값을 생성해서 주면, 2)주장자는 자신을 증명할 수 있는 값을 생성해 증명값으로 전달한다. 3)검증자는 도전값과 증명값을 이용해 주장자에 대한 인증을 한다. 사용 메소드 IssacEASIGCONTEXT.MakeChallenge IssacEASIGCONTEXT.MakeResponse IssacEASIGCONTEXT.AuthenticatePeer [양방향 인증] 양방향 인증의 경우는 양쪽이 모두 검증자와 주장자가 되기 때문에 각 주체를 peer로 표기하였다. Part1. PeerA가 PeerB를 인증 1) PeerA가 PeerB에게 도전값을 생성해서 주면, 2) PeerB는 자신을 증명할 수 있는 값을 생성해 증명값으로 전달한다. 3) PeerA는 도전값과 증명값을 이용해 PeerB에 대한 인증을 한다. Part2. PeerB가 PeerA를 인증 4) PeerA는 Part1에서 PeerB가 전달한 증명값을 이용해 자신을 증명할 수 있는 값을 생성해 증명값2로 전달한다. 5) PeerB는 도전값과 증명값, 증명값2을 이용해 PeerA에 대한 인증을 한다. 사용 메소드 IssacEASIGCONTEXT.MakeChallenge IssacEASIGCONTEXT.MakeResponse IssacEASIGCONTEXT.AuthenticatePeer 메시지 포맷(Message Format) IssacAPI_EA_SIG 모듈에서 사용하는 메시지의 형식은 다음과 같다. 문서에 첨부된 ASN.1 Type을 참고 1. 도전값 challenge = nonce-A || cert-A 2. 증명값 response = message || sig-B || cert-B message = nonce-A || dn-A || Nonce-B
-
-
Constructor Summary
Constructors Constructor Description IssacEASIGCONTEXT()생성자
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description intAuthenticatePeer(byte[] challenge, byte[] response, IssacCERTIFICATES caCerts, IssacCERTIFICATES trustedCerts, IssacPOLICYCONTEXT policy, IssacCRL crl, java.util.Date now_time, int flags)단방향 또는 양방향 인증을 위한 증명값 검증 함수이다.intAuthenticatePeerMessage(byte[] challenge, byte[] response)증명자가 보낸 메시지만을 검증한다.voidclose()voidDelete()Deprecated.Resource Leak 의 효율적인 관리를 위해 close() 를 사용할 것을 권장함.voidGetPeerCertificate(IssacCERTIFICATE cert)객체 인증 과정을 성공적으로 수행한 후에 인증에 참여한 상대방의 인증서를 얻어내는 함수이다.byte[]MakeChallenge()단방향 또는 양방향 인증을 위해 도전값을 만드는 함수이다.byte[]MakeResponse(byte[] challenge, IssacPRIVATEKEY privatekey, IssacCERTIFICATE cert)단방향 또는 양방향 인증을 위해 증명값을 만드는 함수이다.byte[]MakeResponse_WithHashNid(byte[] challenge, IssacPRIVATEKEY privatekey, IssacCERTIFICATE cert, int hashNid)단방향 또는 양방향 인증을 위해 증명값을 만드는 함수이다.
-
-
-
Field Detail
-
SHA1
public static final int SHA1
- See Also:
- Constant Field Values
-
SHA256
public static final int SHA256
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
IssacEASIGCONTEXT
public IssacEASIGCONTEXT() throws IssacSDKException생성자Note: 사용이 끝나면 close()를 호출해야 한다.
- Throws:
IssacSDKException- 오류 발생- See Also:
close()
-
-
Method Detail
-
MakeChallenge
public byte[] MakeChallenge() throws IssacSDKException단방향 또는 양방향 인증을 위해 도전값을 만드는 함수이다.도전값을 생성하기 위해 Nonce-A를 생성한다.
도전값은 임의로 생성된 난수 Nonce-A와 검증자(또는 PeerA)의 인증서로 이루어진다.- Returns:
- 도전값
- Throws:
IssacSDKException- 오류 발생
-
AuthenticatePeer
public int AuthenticatePeer(byte[] challenge, byte[] response, IssacCERTIFICATES caCerts, IssacCERTIFICATES trustedCerts, IssacPOLICYCONTEXT policy, IssacCRL crl, java.util.Date now_time, int flags) throws IssacSDKException단방향 또는 양방향 인증을 위한 증명값 검증 함수이다.검증자(또는 PeerA)는 자신이 만든 도전값과 주장자(또는 PeerB)가 만든 response값을 이용해 인증 여부를 판단한다.
이때 검증 과정은 증명값 내에 Nonce값이 일치하는지, 서명값이 올바른지, 인증서가 유효한지의 세단계로 이루어진다.
모든 단계에서 문제가 없으면 인증은 성공을 리턴한다.- Parameters:
challenge- [IN] 자신이 만든 도전값response- [IN] 상대로부터 받은 응답값caCerts- [IN] 검증에 필요한 CA 의 인증서들trustedCerts- [IN] 신뢰할 수 있는 인증서들policy- [IN] 인증서 검증 정책crl- [IN] 인증서 폐기 목록now_time- [IN] 검증하고자 하는 시간flags- [IN] 경로 검증 설정(모든 검증을 수행한다. = 0, 기본적인 검증만 수행한다. = 4, 인증서 정책 검증을 하지 않음. = 4, pathLenConstraint를 무시함. = 10, basicConstraints를 무시함. = 20)- Returns:
- 성공(0) 또는 실패
- Throws:
IssacSDKException- 오류 발생- See Also:
IssacCERTIFICATE.Verify(IssacPATHS, IssacCERTIFICATES, IssacCERTIFICATES, IssacPOLICYCONTEXT, IssacCRL, Date, int)
-
MakeResponse
public byte[] MakeResponse(byte[] challenge, IssacPRIVATEKEY privatekey, IssacCERTIFICATE cert) throws IssacSDKException단방향 또는 양방향 인증을 위해 증명값을 만드는 함수이다.증명값은 Message(도전값 내의 Nonce-A와 주장자(또는 PeerB)가 임의로 생성한 Nonce-B)에 대한 주장자(또는 PeerB)의 서명값과 인증서로 이루어진다.
- Parameters:
challenge- [IN] 도전값privatekey- [IN] 전자서명용 개인키cert- [IN] 증명값을 생성하는 쪽의 인증서(주장자 또는 PeerB)- Returns:
- 증명값
- Throws:
IssacSDKException- 오류 발생
-
MakeResponse_WithHashNid
public byte[] MakeResponse_WithHashNid(byte[] challenge, IssacPRIVATEKEY privatekey, IssacCERTIFICATE cert, int hashNid) throws IssacSDKException단방향 또는 양방향 인증을 위해 증명값을 만드는 함수이다. (해시함수 지정 가능)- Parameters:
challenge- [IN] 도전값privatekey- [IN] 전자서명용 개인키cert- [IN] 증명값을 생성하는 쪽의 인증서(주장자 또는 PeerB)hashNid- [IN] 해시 알고리즘 지정자 [SHA1(134),SHA256(385) ]- Returns:
- 증명값
- Throws:
IssacSDKException- 오류 발생
-
GetPeerCertificate
public void GetPeerCertificate(IssacCERTIFICATE cert) throws IssacSDKException
객체 인증 과정을 성공적으로 수행한 후에 인증에 참여한 상대방의 인증서를 얻어내는 함수이다.- Parameters:
cert- [OUT] 추출한 인증서- Throws:
IssacSDKException- 오류 발생
-
Delete
public void Delete() throws IssacSDKExceptionDeprecated.Resource Leak 의 효율적인 관리를 위해 close() 를 사용할 것을 권장함.IssacEASIGCONTEXT 객체를 메모리에서 삭제- Throws:
IssacSDKException- 오류 발생
-
close
public void close() throws IssacSDKException- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Throws:
IssacSDKException
-
AuthenticatePeerMessage
public int AuthenticatePeerMessage(byte[] challenge, byte[] response) throws IssacSDKException증명자가 보낸 메시지만을 검증한다.검증자는 자신이 만든 도전값과 증명자가 만든 response값을 이용해 인증 여부를 판단한다.
이때 검증 과정은 증명값 내에 Nonce값이 일치하는지, 서명값이 올바른지 두 단계로 이루어진다.- Parameters:
challenge- [IN] 인증을 위해 검증자가 증명자에게 보낼 도전값response- [IN] 증명자가 검증자에게 보낸 응답값- Returns:
- 성공(0) 또는 실패
- Throws:
IssacSDKException- 오류 발생- See Also:
AuthenticatePeer(byte[], byte[], IssacCERTIFICATES, IssacCERTIFICATES, IssacPOLICYCONTEXT, IssacCRL, Date, int)
-
-