====== WizSign NPKI API ======= ===== 개요 ===== WizSign은 모바일 환경에서 전자서명, 인증서 관리등의 PKI 응용프로그램 개발에 필요한 라이브러리를 제공하며, 공개키기반 응용 프로그램에서 사용하는 PKI 기반 기능들을 구현할 수 있다. 아래에서는 HybridApp 환경에서 전자서명, 인증서 관련 기능들을 사용하기 위한 API 명세서와 WizSign 서비스에 대한 설명을 제공한다. * 전자서명 API * 인증서관련 API ==== 전제조건 ==== ^구분^내용^ |테스트 디바이스 |Galaxy S2| |테스트 플랫폼 |Android 2.3.6| NPKI WizSign Library ^파일명^설명^ |libs/jldap-4.3.jar| WizSign 라이브러리 | |libs/KSignCrypto_Applet.jar| WizSign 라이브러리 | |libs/WizSign.jar| 전자서명, 보안채널, 인증서 관련 기능들을 수행하는 핵심 라이브러리| |assets/www/js/egovframework/mbl/hyb/wizsignpg.js| WizSign PhoneGap Plugin JavaScript| res/xml/plgins.xml 설정 ===== API Doc ===== ==== 전자서명 API ==== 전자서명을 하기 위한 API 이다. == doSignature == * 선택한 인증서로 전자서명을 수행하여 서명값을 반환한다. \\ - 파라메터 : 인증서 번호, 인증서 비밀번호, 서명대상 원문 \\ - 반환값(해시 테이블) \\ 'signedData' : 서명데이터 \\ 'errMsg' : 에러 발생시 에러메시지 \\ var args = new Array(); args[0] = selectCertNum.toString() ; args[1] = '1'; args[2] = stringToSign; WizSignPG.doSignature(args, function(result) { var signedData = result['signedData']; // 서명데이터 }, function(error) { alert(error['errMsg']); // 에러메시지 }); ==== 인증서관련 API ==== == getCertificates == * 저장된 인증서목록을 가져와 반환한다. - 파라메터 : N/A \\ - 반환값(해시 테이블) \\ 'Certificates' : 인증서 목록 \\ 'errMsg' : 에러 발생시 에러메시지 \\ WizSignPG.getCertificates("", function(result) { var certList = result['Certificates']; for(var i=0 ; i 인증서 정보 해시테이블 ^해시테이블^설명^ |NUM|인증서 번호| |버전|인증서 버전| |일련번호|인증서 시리얼번호| |서명알고리즘|인증서 서명알고리즘| |발급자|인증서의 발급자 정보| |효력발생일|인증서의 효력 발생일| |만료일|인증서 만료일| |주체자|인증서 주체자 정보| |공개키알고리즘|인증서 공개키 알고리즘| |발급자시리얼번호|발급자시리얼번호| |공개키|공개키값| |기관키식별자|기관키식별자| |주체자식별자|주체자식별자| |정책|정책| |주체대체이름|주체대체이름| |CRL분배지점|CRL분배지점| |기관정보액세스|기관정보액세스(OCSP)| |키사용|키사용용도| |서명|인증서 서명값| == verifyCertPassword == * 선택한 인증서의 비밀번호를 검증한다. - 파라메터 : 인증서 번호, 인증서 비밀번호 \\ - 반환값(해시 테이블) \\ 'result' : 인증서 비밀번호 검증결과(성공시 'OK') \\ 'errMsg' : 에러 발생시 에러메시지 \\ var args = new Array(); args[0] = certNum.toString(); args[1] = certPass; WizSignPG.verifyCertPassword(args, function(result) { var runResult = result['result']; if(runResult == 'OK') { alert('인증서 비밀번호가 일치합니다.'); } }, function(error) { alert(error['errMsg']); }); == changeCertPassword == * 선택한 인증서의 비밀번호를 변경한다. - 파라메터 : 인증서 번호, 인증서 비밀번호, 새로운 인증서 비밀번호 \\ - 반환값(해시 테이블) \\ 'result' : 인증서 비밀번호 변경 결과(성공시 'OK') \\ 'errMsg' : 에러 발생시 에러메시지 \\ var args = new Array(); args[0] = certNum.toString(); args[1] = beforePass; args[2] = afterPass; WizSignPG.changeCertPassword(args, function(result) { var runResult = result['result']; if(runResult == 'OK') { alert('인증서 비밀번호를 변경하였습니다.'); } }, function(error) { alert(error['errMsg']); }); == removeCert == * 선택한 인증서를 삭제한다. - 파라메터 인증서 번호 \\ - 반환값(해시 테이블) \\ 'result' : 인증서 삭제 결과(성공시 'OK') \\ 'Certificate' : 삭제된 인증서 정보 \\ 'errMsg' : 에러 발생시 에러메시지 \\ var args = new Array(); args[0] = certNum.toString(); WizSignPG.removeCert(args, function(result) { var runResult = result['result']; if(runResult == 'OK') { alert('인증서가 삭제되었습니다.') } }, function(error) { alert(error['errMsg']); }); == doValidateCert == * 선택한 인증서의 유효성 검증을 수행한다. (CRL 검증) - 파라메터 인증서 번호 \\ - 반환값(해시 테이블) \\ 'result' : 인증서 CRL 검증결과(성공시 'OK') \\ 'status' : 인증서 상태 \\ 'errMsg' : 에러 발생시 에러메시지 \\ var args = new Array(); args[0] = certNum.toString(); WizSignPG.doValidateCert(args, function(result) { var runResult = result['result']; var certStatus = result['status']; if(runResult == 'OK') { alert(certStatus); } }, function(error) { alert(error['errMsg']); });