====== 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']);
});